文件IO不带缓存,每个read和write都调用内核中的相应系统调用。
文件IO常用函数:
open,close,read,write,lseek
对于内核而言,所有打开文件都有文件描述符引用。
文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,你诶和向进程返回一个文件描述符。
当读、写一个文件时,用open返回的文件描述符标识该文件,将其作为参数传给read或write。
1.open(被打开的文件名(可包含文件路径),int flag, mode)
falg : O_RDONLY,O_WDONLY,O_RDWR,O_CREAT,O_EXCL(如果存在返回错误信息)
O_TRUNC(如果已存在,则删除文件中数据)
2.read(fd,buf,size_t count)
调用成功返回读取的字节数。
如果返回0,表示到达文件的末尾。
如果返回-1,表示出错,通过errno设置错误码。
3.write()
4.lseek(fd,offset,whence)
5.打开文件目录opendir()
6.获取文件属性函数:这组函数还蛮重要的。
stat()获取一个于此命名文件有关的信息结构
fstat()获得已在描述符filedes上打开的文件的有关信息
lstat()返回该符号链接的有关信息,而不是有该符号链接引用的文件信息
stat内结构体中参数:st_mode ,st_mode 是被打开文件的属性描述。