in reply to What are O_RDWR and O_CREAT and why does Perldoc assume I know this already?

You can guess that DB_File sits at top of a dependency tree. And you've seen that things from lower down bubble up, without complete explanation or reference (which happens from time to time, we hope appropriately).

Searching for "O_CREAT O_RDWR", the first result for me has this blurb on the first page:

     O_RDONLY
         Open for reading only. 
     O_WRONLY
         Open for writing only. 
     O_RDWR
         Open for reading and writing. The result is undefined if this flag is applied to a FIFO. 

As to why this is required, as well as file permissions: File permissions relate to who can read, write, or execute, not when to allow it. But a process may only need read access, or only write access, or something more complicated. Just because a user can write to a file, doesn't mean every process needs write access.

Process read/write access should always be limited to what is needed in the immediate future, without churning. This prevents a once-in-a-thousand error (that the unit tests missed), wiping out the file system.

If you think the documentation of DB_File should have links for this (or perhaps say that they come from Fcntl), raise a bug on DB_File.

-QM
--
Quantum Mechanics: The dreams stuff is made of

  • Comment on Re: What are O_RDWR and O_CREAT and why does Perldoc assume I know this already?