Linux Unix中的无缓冲I/O
在UNIX中,大多数都是像读、写、关闭这样的非缓冲I/O。我不明白为什么它被称为非缓冲I/O UNIX读取是一个系统调用。下面是read的结构Linux Unix中的无缓冲I/O,linux,unix,Linux,Unix,在UNIX中,大多数都是像读、写、关闭这样的非缓冲I/O。我不明白为什么它被称为非缓冲I/O UNIX读取是一个系统调用。下面是read的结构 ssize_t read(int fd, void *buf, size_t count); read()尝试从文件描述符fd向缓冲区读取最多个字节,从buf开始。甚至read函数也可以像这样读取输入 一个字符接一个字符,但最后它被存储在名为“buf”的缓冲区中。所以,这里也使用了缓冲区。因此,read如何成为无缓冲I/O。printf函
ssize_t read(int fd, void *buf, size_t count);
read()尝试从文件描述符fd向缓冲区读取最多个字节,从buf开始。甚至read函数也可以像这样读取输入
一个字符接一个字符,但最后它被存储在名为“buf”的缓冲区中。所以,这里也使用了缓冲区。因此,read如何成为无缓冲I/O。printf函数还将字符串文本存储在名为buffer的数组中。一旦到达数组,\n将打印缓冲区。这种机制也类似于read。那么,如何分类这些函数是非缓冲函数还是缓冲函数呢。在…上
它们是根据什么区分的?这些函数是缓冲的,而这些函数是非缓冲的。您提供的
读取
函数是非缓冲I/O
函数的一部分
术语unbuffered
表示每个read
或write
调用内核中的系统调用
在read
的情况下,它不会逐个字符读取,而是通过单个内核调用读取您使用count
参数指定的字节数
标准I/O
库提供的缓冲
函数的目标是使用最小数量的读取
和写入
调用。它还自动化了最佳缓冲区大小的计数
计算,以获得更好的性能
现在,希望或多或少是清楚的。您提供的
read
函数是无缓冲I/O
函数的一部分
术语unbuffered
表示每个read
或write
调用内核中的系统调用
在read
的情况下,它不会逐个字符读取,而是通过单个内核调用读取您使用count
参数指定的字节数
标准I/O
库提供的缓冲
函数的目标是使用最小数量的读取
和写入
调用。它还自动化了最佳缓冲区大小的计数
计算,以获得更好的性能
现在,希望或多或少是清楚的