logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
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:

Mnotes/unix-defects.xhtml9+++++++++
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>