3.10 思考与练习
- 打开文件时,如果希望总是创建一个新文件,应当使用什么标志?如果希望每次写出的数据都实际写到物理存储设备,应当使用什么标志?
- 程序3-1中,存放读写数据的缓冲区大小为1024字节。请在你的机器上指定不同大小的缓冲区来运行这个程序,仔细体会缓冲区大小对程序效率的影响。
- open()调用成功总是返回当前可用的编号 的描述字。对同一个文件用不同open()打开的文件描述字具有 的文件位置,由dup()重复的文件描述字具有 的文件位置。
- 编写一个程序打印出指定文件的文件状态标签。
- 用fcntl()设置文件状态标签时,为什么只能设置O_APPEND和O_NONBLOCK而不能设置其他标志?
- 什么是所谓的“慢系统调用”?
- 如何实现非阻塞I/O?请给出一个需要使用非阻塞I/O的应用例子。