【发布时间】:2018-11-13 03:57:22
【问题描述】:
我读过教科书(Unix环境下的高级编程)
本章中描述的函数通常称为无缓冲 I/O,与我们在第 5 章中描述的标准 I/O 例程相反。术语无缓冲意味着每次读取或写入都会调用一个内核中的系统调用。 这些无缓冲 I/O 函数不是 ISO C 的一部分,而是 POSIX.1 和 Single UNIX 规范的一部分。
我对无缓冲一词感到困惑,意思是每次读取或写入都会调用内核中的系统调用。
读写函数是
ssize_t read(int fd, void *buf, size_t nbytes);
ssize_t write(int fd, const void *buf, size_t nbytes);
我没发现他们的参数有什么特别之处,哪个参数是系统调用?
【问题讨论】:
-
read和write本身是系统调用的直接调用。不要与标准 IO 例程fread和fwrite混淆。 -
哦,明白了,unbuffered就是手动定义BUFFSIZE。您能否转发评论以回答。 @user58697
标签: c