Linux C文件I/O核心函数详解及应用场景

需积分: 0 1 下载量 152 浏览量 更新于2024-09-07 收藏 38KB DOCX 举报
本文档总结了Linux环境下C语言中常用的文件输入/输出(File Input/Output,简称I/O)函数,对于理解和实践文件操作具有很高的参考价值。主要内容包括: 1. **文件打开与创建**: - `int open(const char* pathname, int flags, mode_t mode);` 这个函数用于打开或创建一个文件,`pathname`是文件路径,`flags`决定了打开模式,如只读(O_RDONLY),只写(O_WRONLY),读写(O_RDWR)。`mode`只有在创建新文件(O_CREAT)时才使用,用于设置文件权限。 - 常用标志位组合: - O_CREAT: 如果文件不存在,创建新文件。 - O_EXCL: 与O_CREAT配合,若文件已存在则返回失败。 - O_TRUNC: 若文件存在且以写模式打开,将文件内容清空至0字节。 2. **文件读取**: - `ssize_t read(int fd, void* buf, size_t count);` 此函数从文件描述符`fd`读取数据到内存缓冲区`buf`,返回实际读取的字节数。当文件末尾时,返回0;出错时返回-1并设置errno。 3. **文件写入**: - `ssize_t write(int fd, const void* buf, size_t count);` 将内存缓冲区`buf`中的数据写入文件描述符`fd`,返回写入的字节数。出错时返回-1。 4. **文件关闭**: - `int close(int fd);` 关闭指定的文件描述符`fd`,成功时返回0,失败时返回-1并设置errno。 5. **文件指针移动**: - `off_t fseek(int fildes, off_t offset, int whence);` 这个函数用于移动文件的读写指针,`fildes`是文件描述符,`offset`是相对于`whence`的偏移量,可以是文件开始(SEEK_SET, 0),当前位置(SEEK_CUR, 1),或文件结束(SEEK_END, 2)。返回当前指针位置,出错时返回-1。 这些函数是开发C程序时处理文件操作的基础,理解它们的工作原理和使用方法对于编写高效、稳定的系统程序至关重要。在实际应用中,开发者需要根据需求灵活运用这些函数,确保文件操作的正确性和安全性。