[Python-Dev] error in doc for fcntl module

Guido van Rossum guido at python.org
Thu Jan 8 01:36:20 CET 2009


Well my Linux man page says that the only flags supported are
O_APPEND,  O_ASYNC,  O_DIRECT, O_NOATIME, and O_NONBLOCK; and all of
those are typically off -- so I'm not sure that it's a mistake or need
correcting. These APIs should only be used by people who know what
they're doing anyways; the examples are meant to briefly show the call
format.

On Wed, Jan 7, 2009 at 1:31 PM, Mike Coleman <tutufan at gmail.com> wrote:
> In the doc page for the fcntl module, the example below is given.
> This seems like an error, or at least very misleading, as the normal
> usage is to get the flags (F_GETFL), set or unset the bits you want to
> change, then set the flags (F_SETFL).  A reader might think that the
> example below merely sets O_NDELAY, but it also stomps all of the
> other bits to zero.
>
> If someone can confirm my thinking, this ought to be changed.
>
> import struct, fcntl, os
>
> f = open(...)
> rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NDELAY)

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list