• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
游浩贤
博客园    首页    新随笔    联系   管理    订阅  订阅

学习笔记2

第九章I/O库函数
一、I/O库函数与系统调用
● 系统调用函数:open()、read()、write()、lseek()、close();
● I/O 库函数:fopen()、fread()、fwrite()、fseek()、fclose()。
二、I/O库函数的算法
● fread算法
● fwrite算法
● fclose算法
三、I/O库模式
● 操作

1.字符模式I/O
2.行模式I/O
3.格式化I/O
4.其他I/O库函数
● fseek()、ftell()、rewind():更改文件流中的读/写字节位置。
● feof()、ferr()、fileno():测试文件流状态。
● fdopen():用文件描述符打开文件流。
● freopen():以新名称重新打开现有的流。
● setbuf()、setvbuf():设置缓冲方案。
● popen():创建管道,复刻子进程来调用sh。
四、文件流缓冲
● 无缓冲:从非缓冲流中写入或读取的字符将尽快单独传输到文件或从文件中传输。例如,文件流stderr通常无缓冲。到stderr的所有输出都会立即发出。
● 行缓冲:遇到换行符时,写入行缓冲流的字符以块的形式传输。例如,文件流stdout 通常是行缓冲,逐行输出数据。
● 全缓冲:写入全缓冲流或从中读取的字符以块大小传输到文件或从文件传输。这是文件流的正常缓冲方案。
● JONBUF:无缓冲。
● JOLBUF:行缓冲。
● JOFBUF:全缓冲。
五、变参函数
1.项目规范
● %c: print char
● %s:print string
● %u: print unsigned integer
● %d:print signed integer
● %x:print unsigned integer in HEX
2.myprintf()的算法
(1 )扫描格式字符串fmt。打印任何不是%的字符。对于每个'\n'字符,打印一个额外的'\r'字符。
(2)当遇到'%'时,得到的下一个字符必须是'c'、's'、'u'、'd'或’x'中的 一个。使用va_arg(ap, type)来取相应的参数。然后通过参数类型调用打印函数。
(3)当fmt字符串扫描结束时,算法结束。

实验截图(文件复制)

posted @ 2022-09-11 20:31  游浩贤  阅读(34)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3