title: Use case for low-level os.open, os.fdopen, and friends?
body: <p>In Python 3.2 (and other versions), the <a href="http://docs.python.org/3.2/library/os.html#os.open" rel="nofollow noreferrer">documentation for os.open</a> states:</p>
  
  <blockquote>
    <p>This function is intended for low-level I/O. For normal usage, use the built-in function open(), which returns a file object with read() and write() methods (and many more). To wrap a file descriptor in a file object, use fdopen().</p>
  </blockquote>
  
  <p>And <a href="http://docs.python.org/3.2/library/os.html#os.fdopen" rel="nofollow noreferrer">for fdopen()</a>:</p>
  
  <blockquote>
    <p>Return an open file object connected to the file descriptor fd. This is an alias of open() and accepts the same arguments. The only difference is that the first argument of fdopen() must always be an integer.</p>
  </blockquote>
  
  <p><a href="https://stackoverflow.com/questions/7219511/whats-the-difference-between-io-open-and-os-open-on-python/7219537#comment8678465_7219535">This comment</a> in a question on the difference between <code>io.open</code> and <code>os.open</code> (<em>this difference is entirely clear to me, I always use <code>io.open</code>, never <code>os.open</code></em>) asks: <em>why would anyone choose Python for low-level I/O?</em>, but doesn't really get an answer.</p>
  
  <p>My question is very similar to the comment-question: <em>In Python, what is the use case of low-level I/O through <code>os.open</code>, <code>os.fdopen</code>, <code>os.close</code>, <code>os.read</code>, etc.?</em> I used to think it was needed to deamonise a process, but <a href="http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/" rel="nofollow noreferrer">I'm not so sure anymore</a>. Is there any task that can <em>only</em> be performed using low-level I/O, and not with the higher-level wrappers?</p>