在C语言的标准IO库中的库函数,如fclose、fopen,、fread、fwrite,提供的是高层服务;而Linux的文件I/O调用提供的是底层的服务,底层的服务不提供缓冲而直接进入操作系统。标准I/O库中的高层服务归根到底还是要调用Linux所提供的底层服务。
*int open(const char pathname, int flags);
功能:打开文件
参数:
pathname:文件名或包含路径的文件名
flags:打开文件的方式
返回值
当第二个参数中有O_CREAT选项时,需要给open函数传递第三个参数,指定创建文件的权限
*int open(const char pathname, int flags, mode_t mode);
创建出来的文件权限为指定权限值&(~umask) //umask为文件权限掩码
标准IO文件打开权限与
文件IO文件打开权限对比
int close(int fd);
功能:关闭文件
参数:fd:文件描述符
返回值:
read
*ssize_t read(int fd, void buf, size_t count);
功能:从一个已打开的可读文件中读取数据
参数
返回值
write
*ssize_t write(int fd, const void buf, size_t count);
功能:向指定文件描述符中,写入 count个字节的数据。
参数
返回值
例
练习:实现Linux下的cp命令
off_t lseek(int fd, off_t offset, int whence);
功能:设定文件的偏移位置
参数
fd:文件描述符
offset偏移量
whence 相对位置
返回值