首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Day4-Linux软件编程(文件IO和目录IO输入输出(3))
📅 2026/11/2 1:38:43
✍️ 爱科研究院
👁 阅读 3,247
今天要学习文件IO和目录IO的一些操作了解了标准IO与文件IO还有目录IO这三者的区别以及系统调用和库函数调用的一些区别文件IO的接口openreadclosewrite还有一些函数接口一.文件IO1标准IO与文件IO的区别1.标准IO是库函数2.标准IO是对文件IO的封装3.有缓存不适合操作设备文件、通信相关文件2.文件IO1.文件IO是系统调用2.是没有缓存的可以用于操作设备文件和通信相关文件3.系统调用和库函数的区别1. 库函数.对系统调用的封装最终会调用系统调用完成功能.库函数移植性比较好2.系统调用1.Linux内核中的函数接口2.移植性差4.函数接口1.open标准IO 文件IO r O_RDONLY r O_RDWR w O_WRONLY | O_CREAT | O_TRUNC, 0664 w O_RDWR | O_CREAT | O_TRUNC, 0664 a O_WRONLY | O_CREAT | O_APPEND, 0664 a O_RDWR | O_CREAT | O_APPEND, 066int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 功能 打开文件 参数 pathname:打开文件的路径 flags: O_RDONLY 只读 O_WRONLY 只写 O_RDWR 读写 O_CREAT 文件不存在创建 必须启用第3个参数mode rwxrwxrwx rw-rw-r-- O_EXCL 文件存在报错 O_TRUNC 文件存在清0 O_APPEND 追加 返回值 成功返回文件描述符 失败返回-1文件描述符规律总是取最小的非负整数三个默认打开的文件描述符0标准输入1标准输出2标准错误2.writessize_t write(int fd, const void *buf, size_t count); 功能 向文件描述符中写入buf开始的count个字节 参数 fd:文件描述符 buf:要写入的数据空间的首地址 count:写入的字节数 返回值 成功返回实际写入字节数 失败返回-13.readssize_t read(int fd, void *buf, size_t count); 功能 尝试从文件描述符fd中接收count个字节存入buf开始的空间中 参数 fd:文件描述符 buf:存放数据的空间首地址 count:尝试读取的字节数 返回值 成功返回实际读到的字节数 失败返回-1 读到文件末尾返回04.lseekoff_t lseek(int fd, off_t offset, int whence); 功能 定位文件描述符的偏移量到whence相关联的offset的位置 参数 fd:文件描述符 offset:偏移量 whence:SEEK_SET SEEK_CUR SEEK_END 返回值 成功返回偏移量 失败返回-12.目录IO1.opendirDIR *opendir(const char *name); 功能 打开目录获得目录流指针 参数 name:目录的路径 返回值 成功返回目录流指针 失败返回NULL2.closedir6. getcwd 7. chdir int closedir(DIR *dirp); 功能 关闭目录流指针 参数 dirp:目录流指针 返回值 成功返回0 失败返回-13.readdirstruct dirent *readdir(DIR *dirp); 功能 从流中读取一个目录项 参数 dirp:目录流指针 返回值 成功返回目录项信息空间首地址 失败返回NULL 读到目录的末尾返回NULL struct dirent { ino_t d_ino; /* Inode number */ off_t d_off; /* Not an offset; see below */ unsigned short d_reclen; /* Length of this record */ unsigned char d_type; /* Type of file; not supported by all filesystem types */ char d_name[256]; /* Null-terminated filename */ };4.mkdirr进入目录是否能够读取目录下所有的目录项信息 w能够在目录下新建、删除文件 x是否能够进入目录5.rmdir6.getcwdchar *getcwd(char *buf, size_t size); 功能 获得当前程序的工作路径7.chdirint chdir(const char *path); 功能 修改当前程序的工作路径
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/11/2 1:38:43
4 个代码分割手段彻底拆掉 umi 首屏大包
2026/11/2 1:38:43
向 claude-motion 社区贡献作品:加入画廊与改进品味规则的指南
2026/11/2 1:38:43
ikuai-bypass 安全实践指南:守护路由器账密与 WebUI 认证的 5 个关键设置
2026/11/2 6:39:06
学习的反思与回顾
2026/11/2 6:39:06
MyBatis Generator
2026/11/2 6:39:06
SAR ADC
2026/11/2 6:39:06
SAP ADT for VS Code 1.0.1 补丁发布,RFC 密码登录与 AGENTS.md 让 ABAP AI 开发真正落地
2026/11/2 6:39:06
给GEO验收写个可回放批次校验器
2026/11/2 6:34:06
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
2026/11/2 1:03:35
工业SPI隔离方案:K64主控+MAX14431从设计到排查
2026/11/2 1:03:35
SPI隔离器MAX14431与PIC18F8722实现工业级稳定通信的实战指南
2026/11/2 1:03:35
雷达信号调制技术解析:从LFM到相位连续调频波形设计
2026/11/2 2:42:45
面向复杂光照与角度的宠物面部识别鲁棒性增强策略
2026/11/2 2:42:47
DRV8818PWPR与R7FA8M1AHECBD工业步进驱动实战指南
2026/11/2 2:42:50
STM32与DRV8818双极步进电机驱动方案:从选型到调试全流程解析
2026/11/2 2:42:45
面向复杂光照与角度的宠物面部识别鲁棒性增强策略
2026/11/2 2:42:47
DRV8818PWPR与R7FA8M1AHECBD工业步进驱动实战指南
2026/11/2 2:42:50
STM32与DRV8818双极步进电机驱动方案:从选型到调试全流程解析