Почему флаги, возвращаемые fcntl (... F_GETFL), отличаются от флагов, используемых для открытия дескриптора файла через os.open? - PullRequest
1 голос
/ 06 марта 2012

Мне нужно получить флаги открытого fd с помощью fcnlt F_GETFL.

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 для 1-го отпечатка и 66 для 2-го.Я ожидал получить одинаковый вывод флага из двух отпечатков.Есть идеи, почему есть разница?спасибо большое -jfas

1 Ответ

0 голосов
/ 06 марта 2012

Я использую 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...