flags参数有一系列常数值可供选择,可以同时选择多个常数用按位或运算符连接起来,所以这些常数的宏定义都以O_开头,表示or。 ======================================== 不了解这些宏定义的起名缘由,不过个人直觉这个O,应该是option的缩写吧?
我们可以把Shell进程的umask改成0,再重复上述实验: $ umask 0 $ touch file123 $ rm file123 a.out $ touch file123 ... --------- 第二行$ touch file123应该删去。
谢谢指出
文中有好几处的0666都错写成了0664
可以利用这一点在标准输入、标准输出或标准错误输出上打开一个新文件,实现重定向的功能。例如,首先调用close关闭文件描述符1,然后调用open打开一个常规文件,则一定会返回文件描述符1,这时候标准输出就不再是终端,而是一个常规文件了,再调用printf就不会打印到屏幕上,而是写到这个文件中了。 这个具体怎么实现?实验了很多次文件内容都是空的。
可以在这里或者后面讲内核数据结构的时候强调下文件描述符和FILE指针(句柄)的区别和联系
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!