diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-04-28 08:44:56 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-04-28 08:44:56 +0000 |
| commit | e92e5cbc9c42a7f926eb4b25fdf6e52ec9d2fa4c (patch) | |
| tree | 13984417993446fd673e45076296920b023bc076 /doc | |
| parent | 3d15149f5d02339fa5d6a9ec35ef067791f772ef (diff) | |
| download | skalibs-e92e5cbc9c42a7f926eb4b25fdf6e52ec9d2fa4c.tar.gz | |
Update docs to latest posix version
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/crosscompile.html | 2 | ||||
| -rw-r--r-- | doc/djblegacy.html | 2 | ||||
| -rw-r--r-- | doc/flags.html | 2 | ||||
| -rw-r--r-- | doc/index.html | 2 | ||||
| -rw-r--r-- | doc/libstddjb/alarm.html | 8 | ||||
| -rw-r--r-- | doc/libstddjb/alloc.html | 2 | ||||
| -rw-r--r-- | doc/libstddjb/allreadwrite.html | 20 | ||||
| -rw-r--r-- | doc/libstddjb/bytestr.html | 2 | ||||
| -rw-r--r-- | doc/libstddjb/cspawn.html | 6 | ||||
| -rw-r--r-- | doc/libstddjb/djbunix.html | 26 | ||||
| -rw-r--r-- | doc/libstddjb/env.html | 2 | ||||
| -rw-r--r-- | doc/libstddjb/index.html | 6 | ||||
| -rw-r--r-- | doc/libstddjb/iopause.html | 10 | ||||
| -rw-r--r-- | doc/libstddjb/lolstdio.html | 14 | ||||
| -rw-r--r-- | doc/libstddjb/safewrappers.html | 8 | ||||
| -rw-r--r-- | doc/libstddjb/selfpipe.html | 4 | ||||
| -rw-r--r-- | doc/libstddjb/tai.html | 10 | ||||
| -rw-r--r-- | doc/libunixonacid/unix-transactional.html | 6 | ||||
| -rw-r--r-- | doc/upgrade.html | 10 |
19 files changed, 71 insertions, 71 deletions
diff --git a/doc/crosscompile.html b/doc/crosscompile.html index ab0977f..75b8e8e 100644 --- a/doc/crosscompile.html +++ b/doc/crosscompile.html @@ -91,7 +91,7 @@ skalibs-2.14.0.1, there are two sysdeps in this case: pseudorandom generation device in <tt>/dev/urandom</tt>, and <tt>no</tt> otherwise. </li> <li> <tt>posixspawnearlyreturn</tt>: <tt>yes</tt> if the target has a broken -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn.html">posix_spawn()</a> implementation that can return before the child has successfully exec'ed. That happens with old glibcs and some virtual platforms. </li> </ul> diff --git a/doc/djblegacy.html b/doc/djblegacy.html index dcf27cc..b9f6d3d 100644 --- a/doc/djblegacy.html +++ b/doc/djblegacy.html @@ -98,7 +98,7 @@ What do you do? interfaces, even if it amounts to cramming a square peg into a round hole. This is why buffer overflows exist. This is why people use abominations such as -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/gets.html">gets()</a>, +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/gets.html">gets()</a>, <em>which is still in the Single Unix Specification as of version 4, in freaking June 2011</em>. This is why the System V initialization scheme is still prevalent in Linux distributions, diff --git a/doc/flags.html b/doc/flags.html index 76ae476..7fb2049 100644 --- a/doc/flags.html +++ b/doc/flags.html @@ -85,7 +85,7 @@ uncommon, thing to do: <ul> <li> ↑ The main advantage of this setup is that it makes your system clock <em>linear</em>. In other words, -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/gettimeofday.html">gettimeofday()</a> becomes suitable for both timestamping (which needs absolute time) and timeout computations (which need reliable interval measurements); if your clock is accurate enough, it can function as both a wall clock and a stopwatch. diff --git a/doc/index.html b/doc/index.html index f7a2c56..e58ff6b 100644 --- a/doc/index.html +++ b/doc/index.html @@ -44,7 +44,7 @@ programming, skalibs might be for you. <ul> <li> A Unix-like system, compliant with -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/">The +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">The Open Group Base Specifications Issue 7</a>, with a standard C development environment </li> <li> GNU make, version 3.81 or later </li> diff --git a/doc/libstddjb/alarm.html b/doc/libstddjb/alarm.html index cf673f6..00d2838 100644 --- a/doc/libstddjb/alarm.html +++ b/doc/libstddjb/alarm.html @@ -29,18 +29,18 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>alarm</tt> is a set of primitives to provide the same functionality as -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html">alarm()</a>, but with sub-second precision. </p> <p> Depending on the functionality the underlying system provides, the precision can be 1 nanosecond (implementation via -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html">timer_settime()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_getoverrun.html">timer_settime()</a>, 1 microsecond (implementation via -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/setitimer.html">setitimer()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/setitimer.html">setitimer()</a>, or 1 second (fallback implementation with -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html">alarm()</a> when nothing better can be found). </p> diff --git a/doc/libstddjb/alloc.html b/doc/libstddjb/alloc.html index 646a206..b110b61 100644 --- a/doc/libstddjb/alloc.html +++ b/doc/libstddjb/alloc.html @@ -30,7 +30,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>alloc</tt> is the skalibs heap memory manager. It's actually a wrapper for the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/malloc.html">malloc()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/malloc.html">malloc()</a> series of functions; it unifies a few system-dependent <tt>malloc</tt> behaviours. It's also the API to implement and preload if for some reason you need to plug in your own allocator: replacing <tt>alloc()</tt> diff --git a/doc/libstddjb/allreadwrite.html b/doc/libstddjb/allreadwrite.html index 9ad14de..3f580e9 100644 --- a/doc/libstddjb/allreadwrite.html +++ b/doc/libstddjb/allreadwrite.html @@ -46,17 +46,17 @@ use higher-level APIs such as <a href="buffer.html">buffer</a> and <p> <code> typedef ssize_t io_func (int fd, char *buf, size_t len) </code> <br /> This is the simplified type of IO functions such as -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/read.html">read()</a> and -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/write.html">write()</a>. </p> <p> <code> typedef ssize_t iov_func (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> This is the simplified type of IO functions such as -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/readv.html">readv()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/readv.html">readv()</a> and -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/writev.html">writev()</a>, +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/writev.html">writev()</a>, where the content to perform IO on is specified as a <a href="siovec.html">scatter/gather array</a> of <em>vlen</em> elements instead of a single string. @@ -122,42 +122,42 @@ elements instead of a single string. <p> <code> ssize_t fd_read (int fd, char *s, size_t len) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/read.html">read()</a> function. </p> <p> <code> ssize_t fd_write (int fd, char const *s, size_t len) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/write.html">write()</a> function. </p> <p> <code> ssize_t fd_readv (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/readv.html">readv()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/readv.html">readv()</a> function. </p> <p> <code> ssize_t fd_writev (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/writev.html">writev()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/writev.html">writev()</a> function. </p> <p> <code> ssize_t fd_recv (int fd, char *s, size_t len, unsigned int flags) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/recv.html">recv()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/recv.html">recv()</a> function. </p> <p> <code> ssize_t fd_send (int fd, char const *s, size_t len, unsigned int flags) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/send.html">send()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/send.html">send()</a> function. </p> diff --git a/doc/libstddjb/bytestr.html b/doc/libstddjb/bytestr.html index 951712b..1daf39c 100644 --- a/doc/libstddjb/bytestr.html +++ b/doc/libstddjb/bytestr.html @@ -30,7 +30,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> These functions handle arrays of bytes (strings). They are similar to their counterparts from the standard - <a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/string.h.html">string.h</a> + <a href="https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/string.h.html">string.h</a> header, but they return <em>indices</em> instead of <em>pointers</em>. </p> diff --git a/doc/libstddjb/cspawn.html b/doc/libstddjb/cspawn.html index 73096df..3316e41 100644 --- a/doc/libstddjb/cspawn.html +++ b/doc/libstddjb/cspawn.html @@ -29,10 +29,10 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>cspawn</tt> is a unifier API to spawn child processes with -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn.html">posix_spawn()</a> as a backend if supported by the system, falling back on -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html">fork()</a> + -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/execve.html">execve()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/fork.html">fork()</a> + +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/execve.html">execve()</a> otherwise. </p> diff --git a/doc/libstddjb/djbunix.html b/doc/libstddjb/djbunix.html index 63eca54..18af549 100644 --- a/doc/libstddjb/djbunix.html +++ b/doc/libstddjb/djbunix.html @@ -71,21 +71,21 @@ Returns 0 if it succeeds, or -1 (and sets errno) if it fails. <p> <code> int pipenb (int *p) </code> <br /> Like -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are in non-blocking mode. </p> <p> <code> int pipecoe (int *p) </code> <br /> Like -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are close-on-exec. </p> <p> <code> int pipenbcoe (int *p) </code> <br /> Like -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are in non-blocking mode <em>and</em> close-on-exec. </p> @@ -123,32 +123,32 @@ Returns 0 if it succeeds, or -1 (and sets errno) if it fails. <code> void fd_close (int fd) </code> <br /> Closes <em>fd</em>. This is a <a href="safewrappers.html">safe wrapper</a> around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/close.html">close()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/close.html">close()</a>. </p> <p> <code> int fd_chmod (int fd, unsigned int mode) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchmod.html">fchmod()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/fchmod.html">fchmod()</a>. </p> <p> <code> int fd_chown (int fd, uid_t uid, gid_t gid) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchown.html">fchown()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/fchown.html">fchown()</a>. This function requires root privileges. </p> <p> <code> int fd_sync (int fd) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fsync.html">fsync()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/fsync.html">fsync()</a>. </p> <p> <code> int fd_chdir (int fd) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchdir.html">fchdir()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/fchdir.html">fchdir()</a>. </p> <p> @@ -196,7 +196,7 @@ Returns 1 if it succeeds and 0 if it fails. Shuts down socket <em>fd</em>, for reading if <em>w</em> is zero, and for writing otherwise. Does not return an error code; does not modify errno. This is just a call to -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/shutdown.html">shutdown()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/shutdown.html">shutdown()</a> with errno saved, used essentially to isolate application code from <tt>sys/socket.h</tt> which is a portability nightmare. </p> @@ -227,14 +227,14 @@ Returns -1 (and sets errno) if an error occurs. <p> <code> int open2 (char const *file, unsigned int flags) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/open.html">open()</a> when it takes 2 arguments. </p> <p> <code> int open3 (char const *file, unsigned int flags, unsigned int mode) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/open.html">open()</a> when it takes 3 arguments. </p> @@ -267,7 +267,7 @@ Returns a valid fd number if it succeeds, or -1 (and sets errno) if it fails. Opens <em>file</em> in read-only, blocking mode. Returns a valid fd number if it succeeds, or -1 (and sets errno) if it fails. <em>This call does not block.</em> The -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/open.html">open()</a> system call is actually performed with the O_NONBLOCK option, and blocking mode is set afterwards; this behaviour allows for more transparent interactions with FIFOs. @@ -413,7 +413,7 @@ or -1 (and sets errno) if it fails. <p> <code> pid_t waitpid_nointr (pid_t pid, int *wstat, int flags) </code> <br /> Safe wrapper around -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/waitpid.html">waitpid()</a>. +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/waitpid.html">waitpid()</a>. </p> <p> diff --git a/doc/libstddjb/env.html b/doc/libstddjb/env.html index aff9257..9fe2885 100644 --- a/doc/libstddjb/env.html +++ b/doc/libstddjb/env.html @@ -55,7 +55,7 @@ environment variables, or to remove them from the environment. <p> <code>char const *env_get (char const *s)</code><br> Deprecated alias of -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/getenv.html">getenv()</a>. +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/getenv.html">getenv()</a>. </p> <p> diff --git a/doc/libstddjb/index.html b/doc/libstddjb/index.html index 2e25056..b67620d 100644 --- a/doc/libstddjb/index.html +++ b/doc/libstddjb/index.html @@ -45,7 +45,7 @@ including them directly. </li> <h2> Programming </h2> <ul> - <li> <a href="alarm.html">skalibs/alarm.h</a>: sub-second precision <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> </li> + <li> <a href="alarm.html">skalibs/alarm.h</a>: sub-second precision <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html">alarm()</a> </li> <li> <a href="alloc.html">skalibs/alloc.h</a>: basic heap memory allocation primitives </li> <li> <a href="allreadwrite.html">skalibs/allreadwrite.h</a>: <a href="safewrappers.html">safe wrappers</a> around I/O functions, extra I/O functions </li> @@ -70,7 +70,7 @@ wrappers</a> around I/O functions, extra I/O functions </li> <li> <a href="getpeereid.html">skalibs/getpeereid.h</a>: the <tt>getpeereid()</tt> system call </li> <li> <a href="iopause.html">skalibs/iopause.h</a>: the skalibs event loop selection function </li> <li> <a href="lolstdio.html">skalibs/lolstdio.h</a>: -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-like +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html">printf</a>-like functions writing into <a href="buffer.html">buffers</a> or <a href="bufalloc.html">bufallocs</a> </li> <li> <a href="mininetstring.html">skalibs/mininetstring.h</a>: a protocol to transmit variable-length messages (limited to 64kB) </li> <li> <a href="netstring.html">skalibs/netstring.h</a>: a protocol to transmit variable-length messages (limited to 2^32 bytes) </li> @@ -80,7 +80,7 @@ how to safely handle signals in event loops) </li> <li> <a href="sgetopt.html">skalibs/sgetopt.h</a>: <tt>getopt()</tt>-style command-line options management </li> <li> <a href="sig.html">skalibs/sig.h</a>: safe signal management </li> <li> <a href="siovec.html">skalibs/siovec.h</a>: scatter/gather IO primitives working with an -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html">iovec</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_uio.h.html">iovec</a> structure </li> <li> <a href="skamisc.html">skalibs/skamisc.h</a>: general string quoting and parsing; miscellaneous, unclassifiable functions </li> <li> <a href="socket.html">skalibs/socket.h</a>: UNIX, INET and INET6 domain sockets </li> diff --git a/doc/libstddjb/iopause.html b/doc/libstddjb/iopause.html index 3fbe5b8..1c240cf 100644 --- a/doc/libstddjb/iopause.html +++ b/doc/libstddjb/iopause.html @@ -30,9 +30,9 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>iopause</tt> is the skalibs API for event loop selection. It's a wrapper around the system's <tt>ppoll()</tt> or -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/poll.html">poll()</a> (if available) or -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/select.html">select()</a> (if neither <tt>ppoll()</tt> nor <tt>poll()</tt> is available) function. It works around some system-dependent quirks; also it works with <em>absolute dates</em> instead of timeouts. This is a good thing: @@ -49,7 +49,7 @@ skalibs implementation is subtly different. <p> An <tt>iopause_fd</tt> structure is similar to a -<a href="https://www.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html">struct pollfd</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/basedefs/poll.h.html">struct pollfd</a> structure, and must be filled the same way. Usually, the user declares an array of <tt>iopause_fd</tt> and fills it, one element per descriptor to select on. If <em>x</em> is an <tt>iopause_fd</tt>: @@ -183,9 +183,9 @@ instead if they configure skalibs with the <tt>--enable-iopause-select</tt> opti </p> <p> -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/poll.html">poll()</a> has a more comfortable API than -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/select.html">select()</a>, but its maximum precision is 1 millisecond, which might not be enough for some applications; using <tt>select()</tt> instead incurs some CPU overhead for the API conversion, but has a 1 microsecond precision. diff --git a/doc/libstddjb/lolstdio.html b/doc/libstddjb/lolstdio.html index 57ce81d..6a4bd8c 100644 --- a/doc/libstddjb/lolstdio.html +++ b/doc/libstddjb/lolstdio.html @@ -29,7 +29,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>lolstdio</tt> is a set of convenience functions providing -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-style +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html">printf</a>-style formatting but interacting with <a href="buffer.html">buffers</a> or <a href="bufalloc.html">bufallocs</a> instead of stdio FILEs. </p> @@ -52,7 +52,7 @@ writing than fixed-size buffers or FILEs are. <p> The current lolstdio implementation relies on the libc's -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vsnprintf.html">vsnprintf</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsnprintf.html">vsnprintf</a> function. </p> @@ -60,31 +60,31 @@ function. <p> <code> int vbprintf (buffer *b, char const *format, va_list args) </code> <br /> -Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfprintf.html">vfprintf</a> except that the result is written to the buffer <em>b</em>. </p> <p> <code> int bprintf (buffer *b, char const *format, ...) </code> <br /> -Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/fprintf.html">fprintf</a> except that the result is written to the buffer <em>b</em>. </p> <p> <code> int lolprintf (char const *format, ...) </code> <br /> -Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html">printf</a> except that the result is written to the buffer <tt>buffer_1</tt>. </p> <p> <code> int vbaprintf (bufalloc *ba, char const *format, va_list args) </code> <br /> -Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfprintf.html">vfprintf</a> except that the result is written to the bufalloc <em>ba</em>. </p> <p> <code> int baprintf (bufalloc *ba, char const *format, ...) </code> <br /> -Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/fprintf.html">fprintf</a> except that the result is written to the bufalloc <em>ba</em>. </p> diff --git a/doc/libstddjb/safewrappers.html b/doc/libstddjb/safewrappers.html index 2cacb4a..7097bd8 100644 --- a/doc/libstddjb/safewrappers.html +++ b/doc/libstddjb/safewrappers.html @@ -33,7 +33,7 @@ function. <p> Quite a lot of system calls are defined by -<a href="https://www.opengroup.org/onlinepubs/9699919799/nfindex.html">The +<a href="https://www.opengroup.org/onlinepubs/9799919799/nfindex.html">The Open Group Base Specifications</a> as interruptible: when the process is in the middle of such a system call and receives a signal that it does not ignore, the system call immediately returns -1 EINTR (after the signal @@ -47,7 +47,7 @@ simply restarted, not interrupted. EINTR can only happen when a signal handler has been installed, and a signal is actually caught by the signal handler during an interruptible system call. And to avoid EINTR, users can use the SA_RESTART flag when installing the signal handler with -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html">sigaction()</a>. +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigaction.html">sigaction()</a>. </p> <p> @@ -57,8 +57,8 @@ when writing an asynchronous event loop. <p> An asynchronous event loop is organized around a -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> or -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/select.html">select()</a> or +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/poll.html">poll()</a> system call that is the only blocking operation in the whole loop. That call takes a timeout as an argument. If a signal handler is installed with SA_RESTART and a signal arrives in the middle of the select/poll call - which happens often diff --git a/doc/libstddjb/selfpipe.html b/doc/libstddjb/selfpipe.html index 54c0f36..ebed941 100644 --- a/doc/libstddjb/selfpipe.html +++ b/doc/libstddjb/selfpipe.html @@ -219,12 +219,12 @@ be trapped anymore. <li> The selfpipe library uses a global pipe; so, it's theoretically not safe for multithreading. However, as long as you dedicate one thread to signal handling and block signals in all the other threads -(see <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html">pthread_sigmask()</a>) +(see <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_sigmask.html">pthread_sigmask()</a>) then you should be able to use the selfpipe in the thread that handles signals without trouble. Since reading the selfpipe involves waiting for a file descriptor to become readable, it is recommended to do this in a thread that will already have a regular input/output loop (via -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/poll.html">poll()</a> or <a href="iopause.html">iopause()</a>) so you can just add the selfpipe to the list of fds you're reading on. </li> <li> In rare cases, the self-pipe can theoretically be filled, if some diff --git a/doc/libstddjb/tai.html b/doc/libstddjb/tai.html index 080a9dd..65c90d8 100644 --- a/doc/libstddjb/tai.html +++ b/doc/libstddjb/tai.html @@ -64,7 +64,7 @@ on UTC, TAI and Unix time</a>. </li> <p> The meat and potatoes of all this is that programmers cannot simply rely on standard Unix APIs such as -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/gettimeofday.html">gettimeofday()</a> (which, by the way, is marked as obsolescent, but it's not going to disappear tomorrow) to measure time intervals or even to give precise absolute time, and in any case those APIs will become obsolete in 2038. @@ -96,10 +96,10 @@ precision. A <tt>tain</tt> structure holds an absolute date with a maximum of one-nanosecond precision, as permitted by the underlying system call. If <a href="../flags.html#usert">flag-usert</a> is clear, the system clock will be read via -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/gettimeofday.html">gettimeofday()</a> system call, which has a one-microsecond precision; if it is set, the system clock will be read via the -<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> +<a href="https://www.opengroup.org/onlinepubs/9799919799/functions/clock_gettime.html">clock_gettime()</a> system call, which has a one-nanosecond precision. In either case, a current <tt>tain</tt> will be unable to be more precise than the underlying implementation. @@ -180,7 +180,7 @@ start of a program. <p> The following two operations can only succeed if your system provides the -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_gettime.html">clock_gettime()</a> primitive with at least one of the CLOCK_MONOTONIC or CLOCK_BOOTTIME clocks. Otherwise, they will fail with errno set to ENOSYS. </p> @@ -333,7 +333,7 @@ depending on whether skalibs was compiled with the --enable-tai-clock configure option). This is useful to get valid TAI/TAI64N timestamps out of information exported by the system, for instance the time_t -returned by <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html">time()</a>, +returned by <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/time.html">time()</a>, or in the <tt>st_atim</tt>, <tt>st_mtim</tt> or <tt>st_ctim</tt> fields of a <tt>struct stat</tt>. </p> diff --git a/doc/libunixonacid/unix-transactional.html b/doc/libunixonacid/unix-transactional.html index bab45a0..9a36173 100644 --- a/doc/libunixonacid/unix-transactional.html +++ b/doc/libunixonacid/unix-transactional.html @@ -62,21 +62,21 @@ the original working directory using <tt>fd_chdir</tt>. <p> <code> int open2_at (int fd, char const *file, int flags) </code><br /> Safe wrapper around -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html">openat()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/open.html">openat()</a> when it takes 2 arguments. </p> <p> <code> int open3_at (int fd, char const *file, int flags) </code><br /> Safe wrapper around -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html">openat()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/open.html">openat()</a> when it takes 3 arguments. </p> <p> <code> int access_at (int fd, char const *file, int amode, unsigned int flag) </code><br /> Calls -<a href="https://pubs.opengroup.org/onlinepubs/9699919799.orig/functions/faccessat.html">faccessat()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799.orig/functions/faccessat.html">faccessat()</a> with <em>flags</em> set either to zero, or <tt>AT_EACCESS</tt>, if <em>flag</em> is nonzero. This function ensures a fall back on platforms without <tt>*at</tt> system calls. </p> diff --git a/doc/upgrade.html b/doc/upgrade.html index cb8aa00..e6763d2 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -132,7 +132,7 @@ allowing reading of unlimited-size variables. </li> <a href="https://man7.org/linux/man-pages/man2/close.2.html">close()</a> behaviour (closing the fd on EINTR) over the HP-UX one (not closing it). Destructors like -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html">close()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/close.html">close()</a> being allowed to fail has always been a mistake in the specification and a programming nightmare, making it impossible to behave correctly on all systems, but apparently standardization efforts are on the way and the Linux @@ -189,7 +189,7 @@ uses it, so it won't unconditionally clobber sockets in the filesystem anymore. <li> Revamping of the locking functions, see <a href="libstddjb/djbunix.html>djbunix.h</a>. </li> <li> Use of standard O_NONBLOCK and O_CLOEXEC (defined in -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html"></a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fcntl.h.html"></a> instead of adhoc <tt>DJBUNIX_FLAG_NB</tt> and <tt>DJBUNIX_FLAG_COE</tt>. </li> <li>Better header separation; <tt>webipc.h</tt> removed (stuff moved to <tt>socket.h</tt>). </li> @@ -251,7 +251,7 @@ Currently, that means one: <tt>--with-sysdep-devurandom=yes</tt> or <li> New functions: <ul> <li> <tt>skalibs_regcomp()</tt>, which accepts empty regexes even -when <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/regcomp.html">regcomp()</a> +when <a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/regcomp.html">regcomp()</a> does not (e.g. the BSDs). </li> </ul> </li> </ul> @@ -346,7 +346,7 @@ families of functions, have been removed. </li> <ul> <li> <tt>openwritenclose()</tt> and <tt>openwritevnclose()</tt> now use -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html">mkstemp()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkstemp.html">mkstemp()</a> instead of relying on an unpredictable name (which required a random generator to be fully initialized). </li> </ul> @@ -524,7 +524,7 @@ types. Main benefit: correct 64-bit support on 64-bit archs with 32-bit int. </l <ul> <li> The child_spawn* family of functions now resets all signals to their default values when spawning a program on systems with -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a>. +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn.html">posix_spawn()</a>. This should not change anything - it's just paranoia. </li> <li> Minor bugfixes. </li> </ul> |
