当前位置: 首页 > news >正文

做阀门网站中山市中国建设银行网站

做阀门网站,中山市中国建设银行网站,中国经济网,找人做网站被骗2.文件IO **1. 文件I/O概述****2. 文件I/O函数接口****3. 文件定位****4. 文件描述符与文件流指针的转换****5. 文件I/O与标准I/O的比较****6. 练习与作业****7. 文件I/O与标准I/O的对应关系****8. 其他注意事项****9. 总结** 1. 文件I/O概述 文件I/O:操作系统为了…

2.文件IO

      • **1. 文件I/O概述**
      • **2. 文件I/O函数接口**
      • **3. 文件定位**
      • **4. 文件描述符与文件流指针的转换**
      • **5. 文件I/O与标准I/O的比较**
      • **6. 练习与作业**
      • **7. 文件I/O与标准I/O的对应关系**
      • **8. 其他注意事项**
      • **9. 总结**


1. 文件I/O概述

  • 文件I/O:操作系统为了方便用户使用系统功能而提供的一组系统函数,称为系统调用。文件I/O是其中的一部分。
  • 特性
    • 没有缓存区。
    • 操作对象是文件描述符(int类型),而不是流(FILE*)。
    • 文件描述符是一个很小的非负整数(0-1023),内核每打开一个文件就会分配一个文件描述符。
  • 默认文件描述符
    • 0STDIN_FILENO(标准输入,对应stdin)。
    • 1STDOUT_FILENO(标准输出,对应stdout)。
    • 2STDERR_FILENO(标准错误,对应stderr)。

2. 文件I/O函数接口

  • open
    • 函数原型:int open(const char *pathname, int flags, int mode);
    • 功能:打开文件并返回文件描述符。
    • 参数:
      • pathname:文件名。
      • flags:打开文件的模式(如O_RDONLYO_WRONLYO_RDWR等)。
      • mode:文件权限(如0666)。
    • 返回值:成功返回文件描述符,失败返回-1
  • write
    • 函数原型:ssize_t write(int fd, const void *buf, size_t count);
    • 功能:向文件中写入数据。
    • 参数:
      • fd:文件描述符。
      • buf:要写入的数据缓冲区。
      • count:要写入的字节数。
    • 返回值:成功返回实际写入的字节数,失败返回-1
  • read
    • 函数原型:ssize_t read(int fd, void *buf, size_t count);
    • 功能:从文件中读取数据。
    • 参数:
      • fd:文件描述符。
      • buf:存放读取数据的缓冲区。
      • count:要读取的字节数。
    • 返回值:成功返回实际读取的字节数,失败返回-1,读到文件末尾返回0
  • close
    • 函数原型:int close(int fd);
    • 功能:关闭文件描述符。
    • 返回值:成功返回0,失败返回-1

3. 文件定位

  • lseek
    • 函数原型:off_t lseek(int fd, off_t offset, int whence);
    • 功能:移动文件指针。
    • 参数:
      • fd:文件描述符。
      • offset:偏移量(正数向后偏移,负数向前偏移)。
      • whence:起始位置(SEEK_SETSEEK_CURSEEK_END)。
    • 返回值:成功返回偏移量,失败返回-1
  • lseek与fseek的区别
    • lseek不支持O_APPEND模式,无法生成空洞文件。
    • lseek在设备文件上偏移无效。

4. 文件描述符与文件流指针的转换

  • fileno
    • 函数原型:int fileno(FILE *stream);
    • 功能:将文件流指针(FILE*)转换为文件描述符(int)。
    • 返回值:成功返回文件描述符,失败返回-1
  • fdopen
    • 函数原型:FILE *fdopen(int fd, const char *mode);
    • 功能:将文件描述符(int)转换为文件流指针(FILE*)。
    • 参数:
      • fd:文件描述符。
      • mode:打开模式(如"r""w"等)。
    • 返回值:成功返回文件流指针,失败返回NULL

5. 文件I/O与标准I/O的比较

  • 文件I/O
    • 无缓存,直接操作文件描述符。
    • 适用于底层设备开发,效率和安全性较低。
  • 标准I/O
    • 有缓存,操作对象是文件流指针(FILE*)。
    • 适用于上层开发,效率高且移植性好。

6. 练习与作业

  • 练习1:使用文件I/O测试无缓存特性,验证终端和文件的直接读写。
  • 练习2:封装一个简单的printf函数,支持缓存和直接输出。
  • 作业1:使用文件I/O完成两个文件的比较功能,测试文件是否相等。
  • 作业2:使用文件I/O向终端输出100以内的所有偶数。

7. 文件I/O与标准I/O的对应关系

标准I/O文件I/O
fopenopen
fputc / fgetcwrite / read
fputs / fgetswrite / read
fwrite / freadwrite / read
fcloseclose
fseeklseek
ftelllseek
rewindlseek(fd, 0, SEEK_SET)

8. 其他注意事项

  • 文件描述符的最大值:1024(范围0-1023),可通过ulimit -a查看。
  • 阻塞与非阻塞
    • 阻塞:程序因某种条件未触发而暂停执行。
    • 非阻塞:程序继续执行,不等待条件触发。

9. 总结

文件I/O是操作系统提供的底层接口,适用于设备相关的开发。与标准I/O相比,文件I/O没有缓存,操作对象是文件描述符。通过openreadwriteclose等函数可以实现文件的读写操作。文件I/O与标准I/O各有优缺点,开发时应根据需求选择合适的I/O方式。

http://www.yayakq.cn/news/88411/

相关文章:

  • 白酒网站源码wordpress做物流网站
  • 免费建个人网站上海营销型网站建设费用
  • 广州自助网站推广制作网页游戏大全slg
  • 定州市建设局网站辽宁建设工程信息网项目经理变更
  • 网站建设好友一次备案多个网站
  • 中信建设有限责任公司经济性质宁波网站运营优化系统
  • 个人网站名称wordpress设置付费
  • 建设银行网站流水账单怎么打a5wordpress模板
  • 江苏省 建设 注册中心网站首页王烨烨
  • 企业网站怎么做毕业设计免费的网络营销方式有哪些
  • 网站建设必须买数据库么福田企业网站推广公司
  • 公司内部网站的作用公司企业logo
  • 做网站挣钱快吗iis默认网站打不开
  • 网站名称怎么备案王也电脑壁纸
  • asp 建站wdcp装wordpress
  • 免费网站制作教程单机网页游戏网站
  • 做彩票网站模板快速网站建设
  • 会员网站免费建设wordpress dux3.0主题
  • 台州小型网站建设网站注销申请
  • 网站建设培训费用一级建造师价格最新行情
  • 专注网站开发制作网站语言
  • wordpress怎么代码高亮北京检查站优化
  • 建设 展示型企业网站php做网站基本流程
  • 松岗网站制作网页平台
  • 哪个网站是动态什么是在线设计平台
  • 网易网站建设seo网站平台
  • 素材免费下载网站wordpress弹框
  • 成都网站建设 四川冠辰网站建设铜川市网站建设
  • 网站备份挖掘平面设计作品集如何制作
  • 嘉定网站建设哪里便宜在手机上建设网站教程