4

以下に示すように、私はLinux(RHEL)でPython 2.6を実行していますが、何らかの理由でos.O_EXLOCKがありません。理由はありますか?そして、これを回避する方法はありますか?

Python 2.6.5 (r265:79063, Apr  9 2010, 11:16:46) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.O_EXLOCK
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'O_EXLOCK'
>>> os.O_DSYNC
4096
>>>
4

1 に答える 1

7

Python標準ライブラリのドキュメントに記載されているように、

次の定数は、open()関数のflagsパラメーターのオプションです。これらは、ビットごとのOR演算子|を使用して組み合わせることができます。それらのいくつかは、すべてのプラットフォームで利用できるわけではありません。それらの可用性と使用法の説明については、Unixのopen(2)マニュアルページまたはWindowsのMSDNを参照してください。

O_EXLOCK BSDの世界で生まれました; 通常、Linuxでは使用できません。代わりにPythonfcntlモジュールを使用できる場合があります。

于 2012-08-23T01:39:10.793 に答える