Linux文件操作函数

creat() 函数

  

close() 函数

  

read() 函数

  

  • read 函数实际读到的字节数少于要求读的字节数时:
  1. 读普通文件,在读到要求字节数之前就到达文件尾
  2. 当从终端设备读,通常一次最多读一行;
  3. 当从网络读时,网络中的缓冲机构可能造成返回值小于所要求读的字节数;
  4. 某些面向记录的设备,如磁带,一次最多返回一个记录;
  • 读操作完成后,文件的当前位置将从读之前的位置加上实际读的字节数;
  • 当有错误发生时则返回 -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;
}

猜你喜欢

转载自www.cnblogs.com/51try-again/p/11035105.html