commit: ac907b005a91168c9cab426b06f213a461773fe7
parent 4c6821655aafba29b848235abf95e156b4ac86bb
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Mon, 6 Mar 2023 06:49:29 +0100
notes/unix-defects: Filesystem I/O
Diffstat:
1 file changed, 9 insertions(+), 0 deletions(-)
diff --git a/notes/unix-defects.xhtml b/notes/unix-defects.xhtml
@@ -45,6 +45,15 @@
<h3 id="gethostbyname"><code>gethostbyname(3)</code></h3>
<p>The older brother of <a href="#getaddrinfo"><code>getaddrinfo(3)</code></a>, it doesn't handles multiple records.</p>
+ <h3 id="fs_io">Filesystem I/O</h3>
+ <p>
+ Removable storage has been a thing on computers since more or less the beginning (punched cards, tape, floppies, CDs, …).
+ Buggy storage devices also happen too often to be ignorable.
+ Networked filesystems and services exposing a filesystem (Plan9, FUSE) have also been there for a long time.<br />
+ Yet somehow, even modern Unixes usually cannot handle them properly, leaving <strong>uninterruptible</strong> processes if they happen to use I/O syscalls on an errorneous target.
+ </p>
+ <p>Even BSD sockets work better on this front (which is probably why <code>libnfs</code> exists).</p>
+
<h2>See Also</h2>
<ul>
<li><a href="https://utcc.utoronto.ca/~cks/space/blog/unix/CLibraryAPIRequiresC">The Unix C library API can only be reliably used from C</a></li>