Jul 20, 2023

Standard lockfile library

This library implements a number of functions found in -lmail on SysV systems. These functions are designed to lock the standard mailboxes in /var/mail or wherever the system puts them.

In additions, this library adds a number of functions to create, manage and remove generic lockfiles.

The lockfiles are created by this library in an NFS-safe manner, that is by using a tempfile and using link2 to create the lockfile. It works around several defects in NFS servers to make sure the lockfile is created atomically.

The locking strategy is compatible with other well-written NFS-safe programs that create lockfiles - such as procmail, exim and mutt.

If you are trying to lock a mailbox in a directory writable for group mail, the locking functions will call a helper application which runs setgid to do the actual locking. The helper application “dotlockfile” can also be used directly, for example for use in shellscripts.

This means a program such as a MUA doesn’t need to be setgid mail anymore to be able to lock the mailbox.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler