我需要使用fcnlt F_GETFL检索open fd的标志。
import os
import fcntl
fd = os.open('/tmp/test', os.O_CREAT|os.O_RDWR, 0777)
print fcntl.fcntl(fd, fcntl.F_GETFL)
print os.O_CREAT|os.O_RDWR
我得到:
第一次打印32770,第二次打印66次。 我期待从两个打印件获得相同的标志输出。 任何想法为何有区别? 多谢 -jfas
答案 0 :(得分:0)
我正在使用Python 2.7,但我没有相同的结果:
>>> import os, fcntl
>>> fd = os.open('/tmp/test', os.O_CREAT|os.O_RDWR, 0777)
>>> print fcntl.fcntl(fd, fcntl.F_GETFL)
2
>>> print os.O_CREAT|os.O_RDWR
514
>>> print fcntl.fcntl(fd, fcntl.F_GETFL)
2
>>> print os.O_CREAT
512
>>> print os.O_RDWR
2
所以只有标志O_CREAT不再在这里了。打开后文件的状态仅为O_RDWR。