当前位置:嗨网首页>书籍在线阅读

14-练习

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.10 练习

4-1.  tee命令是从标准输入中读取数据,直至文件结尾,随后将数据写入标准输出和命令行参数所指定的文件。(44.7节讨论FIFO时,会展示使用tee命令的一个例子。)请使用I/O系统调用实现tee命令。默认情况下,若已存在与命令行参数指定文件同名的文件,tee命令会将其覆盖。如文件已存在,请实现-a命令行选项(tee-a file)在文件结尾处追加数据。(请参考附录B中对getopt()函数的描述来解析命令行选项。)

4-2.  编写一个类似于cp命令的程序,当使用该程序复制一个包含空洞(连续的空字节)的普通文件时,要求目标文件的空洞与源文件保持一致。

①译者注:所谓synchronized I/O data integration completion在SUS的base definition 3.374中有详细定义,但学究气十足,语焉不详。建议参考《UNIX环境高级编程》v2一书(后续译注中简称为APUEv2)3.3节关于O_DSYNC的描述。

②译者注:简而言之,相对于文件头部的绝对偏移量=当前文件偏移量+offset。