|
发表于 2008-9-27 08:42:21
|
显示全部楼层
如果从语义上来说, 那么 nh 应该是一个字符串或者指针, 表示文件名, 0666 表示如果文件不存在, 且打开模式有 O_CREAT 的话, 那么新创建的文件的权限位是 0666.
问题在于 0000 这个参数, 它表示打开模式为 0. 根据文档, O_RDONLY, O_WRONLY, O_RDWR 这三个中必须指明且仅指明一个, 根据 fcntl.h 中的定义, O_RDONLY 的值为 0x0000, 因此这句代码最终可理解成
idh = open(nh, O_RDONLY, 0666);
实际上由于没有指定 O_CREAT, 那么 0666 应该也不会产生作用, 于是应该可以进一步简化为
idh = open(nh, O_RDONLY); |
|