Tag
posix
- Oct 8, 2026 Reading a Directory as a Stream: readdir and Its Weak Guarantees Directory listing is a cursor over mutable records, not a snapshot; what the offset cookie means, which entries can be missed or repeated, and why sorting requires reading everything first. filesystems
- Oct 6, 2026 Exit Status Semantics and the Limits of set -e What the 8-bit exit status encodes, which failures errexit deliberately ignores, and why a pipeline reports only one stage of its work. developer tools
- Sep 24, 2026 Signals: Delivery, Interruption, and the Async-Signal-Safe Set A signal handler runs on the thread it interrupted, with that thread half-finished, which is why only a small set of functions may be called from one. Delivery, masking, and the self-pipe pattern follow from the handler running on an interrupted thread. systems programming
- Jun 2, 2026 System Call ABIs and the Register Argument Convention How arguments and return values cross the privilege boundary, why there are at most six of them, and why two ABIs on one machine can disagree about the layout of a struct. operating systems
- Apr 24, 2026 Short Counts: Why read and write Return Less Than Asked A successful read or write may transfer fewer bytes than requested, and the reasons differ by object type. The cases differ by object type, and each needs a loop that distinguishes end-of-file, interruption, and a partial transfer. systems programming
- Apr 18, 2026 UNIX Domain Sockets and Passing File Descriptors A socket in the filesystem namespace carries data without a network stack, and its control-message channel can hand a descriptor to another process. Address formats, the credential channel, and what a descriptor transfer actually copies. systems programming
- Mar 13, 2026 Open File Descriptions and the Offsets They Share Three separate kernel objects stand behind a file descriptor, and knowing which one carries the offset explains dup, fork, append mode, and why two opens of one file disagree about position. filesystems
- Dec 25, 2025 Error Returns and the errno Convention Why the kernel signals failure with a negative value in the result register, how the C library turns that into errno, and which failures a caller cannot distinguish. operating systems
- Oct 17, 2025 mmap and the Page-Fault Path: What a Mapping Really Does A memory mapping installs page-table entries lazily, so the first touch of each page faults into the page cache. The fault path, the shared and private cases, and the failure modes that follow from the split between mapping and page tables. systems programming
- Jun 26, 2025 Field Splitting, IFS, and the Difference Between "$@" and $* The expansion order POSIX mandates, why an unquoted variable becomes several arguments, and which quoting forms actually preserve a filename with a space in it. developer tools
- Jun 3, 2025 Option Parsing Contracts and the Ambiguities of Command-Line Syntax How POSIX utility syntax constrains argument order, what changes when GNU permutation is enabled, and why optional option-arguments are a design trap. developer tools
- Apr 1, 2025 What a File Descriptor Is: An Index Into a Process Table The descriptor is a small integer indexing a per-process array of pointers, and that indirection explains dup, fork, close, and the shared-offset bugs that follow from each. systems programming
- Feb 14, 2025 From Command Name to Process: The execve Argument Contract How a typed command becomes a running program, what the kernel inspects before the first instruction executes, and which process state survives the replacement. developer tools
- Nov 18, 2024 Readiness Notification: What select, poll, and epoll Actually Report All three interfaces answer the same question about whether an operation would block, but they differ in how much work the kernel does per call and in what a returned descriptor guarantees. systems programming
- Jan 11, 2024 File Descriptor Lifetime, Inheritance, and Table Exhaustion What a descriptor actually indexes, how the process and system tables share file descriptions, and why closing in the wrong process leaves the resource open. systems programming
- Dec 20, 2023 Rename Atomicity and the Replacement of a Directory Entry How rename changes two directory entries without a window of invisibility, which cross-filesystem cases the guarantee excludes, and why the call is the primitive behind atomic file updates. filesystems
- Aug 30, 2023 Exit Status, Zombies, and What waitpid Can Tell a Parent A terminated process leaves a status word and an entry that must be reaped. Status encoding, the reason the record survives termination, and the four ways a parent can wait without deadlocking. systems programming
- Mar 21, 2022 What an Inode Stores, and Why It Stores No Name The inode is the object a filesystem calls a file: its fields, what it deliberately omits, how stat exposes it, and why a full inode table can refuse a write on a filesystem with free space. filesystems