是否可以使用文件描述符作为句柄读取和写入任意大小的数据(可能使用自定义内核驱动程序)?
或者是否存在操作系统强制要求的缓冲区大小限制,用于通过文件描述符传输数据?
我知道
我想创建一个永远不会阻止写入的fd。
用法会是这样的:
fd = open("/dev/new_buffer")
write(fd, data, huge_size, NON_BLOCK)
read(fd, data2, huge_size, NON_BLOCK)
后端实施将是这样的 (原谅过度简化):
on_write(fd, data, size, opts)
{
void* buffers[fd] = malloc(size);
memcpy(buffers[fd], data, size);
}
on_read(fd, data, size, opts)
{
memcpy(data, buffers[fd], size);
}