creat() 函数
close() 函数
read() 函数
- read 函数实际读到的字节数少于要求读的字节数时:
- 读普通文件,在读到要求字节数之前就到达文件尾;
- 当从终端设备读,通常一次最多读一行;
- 当从网络读时,网络中的缓冲机构可能造成返回值小于所要求读的字节数;
- 某些面向记录的设备,如磁带,一次最多返回一个记录;
- 读操作完成后,文件的当前位置将从读之前的位置加上实际读的字节数;
- 当有错误发生时则返回 -1,错误代码存入 errno 中,而文件读写位置则无法预期;
write() 函数
- 数据无法一次性读完时
第二次读 buf 中数据时,读位置指针并不会自动移动
按如下格式实现读位置移动: write(fp, p1+len, (strlen(p1) len)len),直至指针恢复
- Write 一次可以写的最大数据范围是 8192
写入数据大小最好小于 buff 中的值
Count 参数值大于 SSIZE_MAX ,则 write 调用的结果未定义
Count 参数值为 0 时, write 调用会立即返回 0 这个值
- Write 调用返回时,内核已经将缓冲区所提供的数据复制到内核的缓冲区,
但是无法保证数据已经写出到预定的目的地
// Read 和 write 函数示例 #include <stdio.h > #include <stdlib.h #include <unistd.h int main(void) { char buf [100]; int num = 0; if ((num = read(STDIN_FILENO, buf , 10)) == -1) { printf("read error"); error(-1); } else { // 将键盘输入又输出到屏幕上 write(STDOUT_FILENO,buf , num ); } return 0; }