之前介绍了IO库函数,本文主要介绍系统提供的IO接口,与IO库函数搭配食用效果更佳。
常使用的IO系统调用接口如下:
接口 | 作用 |
---|---|
open | 打开指定的文件 |
write | 向指定的文件写入数据 |
read | 从指定的文件读取数据 |
lseek | 跳转指定文件的读写位置 |
close | 关闭指定文件 |
系统调用IO接口的操作离不开文件描述符,那么什么是文件描述符?
在IO库函数中,操作一个文件使用的是文件流指针,可以说文件流指针就是文件的操作句柄。操作句柄就是用来操作东西的手柄,就像操控电视的遥控器一样。
IO库函数其实就是对IO接口的封装,将IO接口中的文件描述符封装后就变成了文件流指针,因此文件描述符就是IO接口中文件的操作句柄。
int open(const char *pathname, int flags, mode_t mode)
作用:用指定方式打开指定文件
返回值:成功返回一个非负整数(就是文件描述符),失败返回-1。
flags选项(前三种必须选择一个):
ssize_t write(int fd, const void *buf, size_t count)
作用:向指定文件写入指定大小的数据。
返回值:成功返回实际写入文件的数据长度,失败返回-1
ssize_t read(int fd, void *buf, size_t count)
作用:从指定文件读取指定大小的数据。
返回值:成功返回实际读取到的数据的长度,出错返回-1
off_t lseek(int fd, off_t offset, int whence)
作用:跳转读写位置
返回值:成功返回当前跳转后的位置相对于起始位置的偏移量,出错返回-1
whence选项:
int close(int fd)
作用:关闭文件
下一篇:C语言枚举使用技巧