summaryrefslogtreecommitdiffstats
path: root/templates/man7/aio.7.pot
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/man7/aio.7.pot1243
1 files changed, 1243 insertions, 0 deletions
diff --git a/templates/man7/aio.7.pot b/templates/man7/aio.7.pot
new file mode 100644
index 00000000..bb653ae9
--- /dev/null
+++ b/templates/man7/aio.7.pot
@@ -0,0 +1,1243 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 16:52+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "AIO"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "aio - POSIX asynchronous I/O overview"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The POSIX asynchronous I/O (AIO) interface allows applications to initiate "
+"one or more I/O operations that are performed asynchronously (i.e., in the "
+"background). The application can elect to be notified of completion of the "
+"I/O operation in a variety of ways: by delivery of a signal, by "
+"instantiation of a thread, or no notification at all."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The POSIX AIO interface consists of the following functions:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_read>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Enqueue a read request. This is the asynchronous analog of B<read>(2)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_write>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Enqueue a write request. This is the asynchronous analog of B<write>(2)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_fsync>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Enqueue a sync request for the I/O operations on a file descriptor. This is "
+"the asynchronous analog of B<fsync>(2) and B<fdatasync>(2)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_error>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Obtain the error status of an enqueued I/O request."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_return>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Obtain the return status of a completed I/O request."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_suspend>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suspend the caller until one or more of a specified set of I/O requests "
+"completes."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_cancel>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Attempt to cancel outstanding I/O requests on a specified file descriptor."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<lio_listio>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Enqueue multiple I/O requests using a single function call."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<aiocb> (\"asynchronous I/O control block\") structure defines "
+"parameters that control an I/O operation. An argument of this type is "
+"employed with all of the functions listed above. This structure has the "
+"following form:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>aiocb.hE<gt>\n"
+"\\&\n"
+"struct aiocb {\n"
+" /* The order of these fields is implementation-dependent */\n"
+"\\&\n"
+" int aio_fildes; /* File descriptor */\n"
+" off_t aio_offset; /* File offset */\n"
+" volatile void *aio_buf; /* Location of buffer */\n"
+" size_t aio_nbytes; /* Length of transfer */\n"
+" int aio_reqprio; /* Request priority */\n"
+" struct sigevent aio_sigevent; /* Notification method */\n"
+" int aio_lio_opcode; /* Operation to be performed;\n"
+" lio_listio() only */\n"
+"\\&\n"
+" /* Various implementation-internal fields not shown */\n"
+"};\n"
+"\\&\n"
+"/* Operation codes for \\[aq]aio_lio_opcode\\[aq]: */\n"
+"\\&\n"
+"enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The fields of this structure are as follows:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_fildes>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The file descriptor on which the I/O operation is to be performed."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_offset>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "This is the file offset at which the I/O operation is to be performed."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_buf>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "This is the buffer used to transfer data for a read or write operation."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_nbytes>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "This is the size of the buffer pointed to by I<aio_buf>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_reqprio>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This field specifies a value that is subtracted from the calling thread's "
+"real-time priority in order to determine the priority for execution of this "
+"I/O request (see B<pthread_setschedparam>(3)). The specified value must be "
+"between 0 and the value returned by I<sysconf(_SC_AIO_PRIO_DELTA_MAX)>. "
+"This field is ignored for file synchronization operations."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_sigevent>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"This field is a structure that specifies how the caller is to be notified "
+"when the asynchronous I/O operation completes. Possible values for "
+"I<aio_sigevent.sigev_notify> are B<SIGEV_NONE>, B<SIGEV_SIGNAL>, and "
+"B<SIGEV_THREAD>. See B<sigevent>(3type) for further details."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<aio_lio_opcode>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The type of operation to be performed; used only for B<lio_listio>(3)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In addition to the standard functions listed above, the GNU C library "
+"provides the following extension to the POSIX AIO API:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<aio_init>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Set parameters for tuning the behavior of the glibc POSIX AIO implementation."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<aio_reqprio> field of the I<aiocb> structure was less than 0, or was "
+"greater than the limit returned by the call "
+"I<sysconf(_SC_AIO_PRIO_DELTA_MAX)>."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2001. glibc 2.1."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"It is a good idea to zero out the control block buffer before use (see "
+"B<memset>(3)). The control block buffer and the buffer pointed to by "
+"I<aio_buf> must not be changed while the I/O operation is in progress. "
+"These buffers must remain valid until the I/O operation completes."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Simultaneous asynchronous read or write operations using the same I<aiocb> "
+"structure yield undefined results."
+msgstr ""
+
+#. http://lse.sourceforge.net/io/aio.html
+#. http://lse.sourceforge.net/io/aionotes.txt
+#. http://lwn.net/Articles/148755/
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The current Linux POSIX AIO implementation is provided in user space by "
+"glibc. This has a number of limitations, most notably that maintaining "
+"multiple threads to perform I/O operations is expensive and scales poorly. "
+"Work has been in progress for some time on a kernel state-machine-based "
+"implementation of asynchronous I/O (see B<io_submit>(2), B<io_setup>(2), "
+"B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2)), but this "
+"implementation hasn't yet matured to the point where the POSIX AIO "
+"implementation can be completely reimplemented using the kernel system calls."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The program below opens each of the files named in its command-line "
+"arguments and queues a request on the resulting file descriptor using "
+"B<aio_read>(3). The program then loops, periodically monitoring each of the "
+"I/O operations that is still in progress using B<aio_error>(3). Each of the "
+"I/O requests is set up to provide notification by delivery of a signal. "
+"After all I/O requests have completed, the program retrieves their status "
+"using B<aio_return>(3)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<SIGQUIT> signal (generated by typing control-\\e) causes the program "
+"to request cancelation of each of the outstanding requests using "
+"B<aio_cancel>(3)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Here is an example of what we might see when running this program. In this "
+"example, the program queues two requests to standard input, and these are "
+"satisfied by two lines of input containing \"abc\" and \"x\"."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<./a.out /dev/stdin /dev/stdin>\n"
+"opened /dev/stdin on descriptor 3\n"
+"opened /dev/stdin on descriptor 4\n"
+"aio_error():\n"
+" for request 0 (descriptor 3): In progress\n"
+" for request 1 (descriptor 4): In progress\n"
+"B<abc>\n"
+"I/O completion signal received\n"
+"aio_error():\n"
+" for request 0 (descriptor 3): I/O succeeded\n"
+" for request 1 (descriptor 4): In progress\n"
+"aio_error():\n"
+" for request 1 (descriptor 4): In progress\n"
+"B<x>\n"
+"I/O completion signal received\n"
+"aio_error():\n"
+" for request 1 (descriptor 4): I/O succeeded\n"
+"All I/O requests completed\n"
+"aio_return():\n"
+" for request 0 (descriptor 3): 4\n"
+" for request 1 (descriptor 4): 2\n"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>aio.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+"\\&\n"
+"#define BUF_SIZE 20 /* Size of buffers for read operations */\n"
+"\\&\n"
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+"\\&\n"
+"struct ioRequest { /* Application-defined structure for tracking\n"
+" I/O requests */\n"
+" int reqNum;\n"
+" int status;\n"
+" struct aiocb *aiocbp;\n"
+"};\n"
+"\\&\n"
+"static volatile sig_atomic_t gotSIGQUIT = 0;\n"
+" /* On delivery of SIGQUIT, we attempt to\n"
+" cancel all outstanding I/O requests */\n"
+"\\&\n"
+"static void /* Handler for SIGQUIT */\n"
+"quitHandler(int sig)\n"
+"{\n"
+" gotSIGQUIT = 1;\n"
+"}\n"
+"\\&\n"
+"#define IO_SIGNAL SIGUSR1 /* Signal used to notify I/O completion */\n"
+"\\&\n"
+"static void /* Handler for I/O completion signal */\n"
+"aioSigHandler(int sig, siginfo_t *si, void *ucontext)\n"
+"{\n"
+" if (si-E<gt>si_code == SI_ASYNCIO) {\n"
+" write(STDOUT_FILENO, \"I/O completion signal received\\en\", 31);\n"
+"\\&\n"
+" /* The corresponding ioRequest structure would be available as\n"
+" struct ioRequest *ioReq = si-E<gt>si_value.sival_ptr;\n"
+" and the file descriptor would then be available via\n"
+" ioReq-E<gt>aiocbp-E<gt>aio_fildes */\n"
+" }\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct sigaction sa;\n"
+" int s;\n"
+" int numReqs; /* Total number of queued I/O requests */\n"
+" int openReqs; /* Number of I/O requests still in progress */\n"
+"\\&\n"
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt> E<lt>pathnameE<gt>...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" numReqs = argc - 1;\n"
+"\\&\n"
+" /* Allocate our arrays. */\n"
+"\\&\n"
+" struct ioRequest *ioList = calloc(numReqs, sizeof(*ioList));\n"
+" if (ioList == NULL)\n"
+" errExit(\"calloc\");\n"
+"\\&\n"
+" struct aiocb *aiocbList = calloc(numReqs, sizeof(*aiocbList));\n"
+" if (aiocbList == NULL)\n"
+" errExit(\"calloc\");\n"
+"\\&\n"
+" /* Establish handlers for SIGQUIT and the I/O completion signal. */\n"
+"\\&\n"
+" sa.sa_flags = SA_RESTART;\n"
+" sigemptyset(&sa.sa_mask);\n"
+"\\&\n"
+" sa.sa_handler = quitHandler;\n"
+" if (sigaction(SIGQUIT, &sa, NULL) == -1)\n"
+" errExit(\"sigaction\");\n"
+"\\&\n"
+" sa.sa_flags = SA_RESTART | SA_SIGINFO;\n"
+" sa.sa_sigaction = aioSigHandler;\n"
+" if (sigaction(IO_SIGNAL, &sa, NULL) == -1)\n"
+" errExit(\"sigaction\");\n"
+"\\&\n"
+" /* Open each file specified on the command line, and queue\n"
+" a read request on the resulting file descriptor. */\n"
+"\\&\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" ioList[j].reqNum = j;\n"
+" ioList[j].status = EINPROGRESS;\n"
+" ioList[j].aiocbp = &aiocbList[j];\n"
+"\\&\n"
+" ioList[j].aiocbp-E<gt>aio_fildes = open(argv[j + 1], O_RDONLY);\n"
+" if (ioList[j].aiocbp-E<gt>aio_fildes == -1)\n"
+" errExit(\"open\");\n"
+" printf(\"opened %s on descriptor %d\\en\", argv[j + 1],\n"
+" ioList[j].aiocbp-E<gt>aio_fildes);\n"
+"\\&\n"
+" ioList[j].aiocbp-E<gt>aio_buf = malloc(BUF_SIZE);\n"
+" if (ioList[j].aiocbp-E<gt>aio_buf == NULL)\n"
+" errExit(\"malloc\");\n"
+"\\&\n"
+" ioList[j].aiocbp-E<gt>aio_nbytes = BUF_SIZE;\n"
+" ioList[j].aiocbp-E<gt>aio_reqprio = 0;\n"
+" ioList[j].aiocbp-E<gt>aio_offset = 0;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_notify = SIGEV_SIGNAL;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_signo = IO_SIGNAL;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_value.sival_ptr =\n"
+" &ioList[j];\n"
+"\\&\n"
+" s = aio_read(ioList[j].aiocbp);\n"
+" if (s == -1)\n"
+" errExit(\"aio_read\");\n"
+" }\n"
+"\\&\n"
+" openReqs = numReqs;\n"
+"\\&\n"
+" /* Loop, monitoring status of I/O requests. */\n"
+"\\&\n"
+" while (openReqs E<gt> 0) {\n"
+" sleep(3); /* Delay between each monitoring step */\n"
+"\\&\n"
+" if (gotSIGQUIT) {\n"
+"\\&\n"
+" /* On receipt of SIGQUIT, attempt to cancel each of the\n"
+" outstanding I/O requests, and display status returned\n"
+" from the cancelation requests. */\n"
+"\\&\n"
+" printf(\"got SIGQUIT; canceling I/O requests: \\en\");\n"
+"\\&\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" if (ioList[j].status == EINPROGRESS) {\n"
+" printf(\" Request %zu on descriptor %d:\", j,\n"
+" ioList[j].aiocbp-E<gt>aio_fildes);\n"
+" s = aio_cancel(ioList[j].aiocbp-E<gt>aio_fildes,\n"
+" ioList[j].aiocbp);\n"
+" if (s == AIO_CANCELED)\n"
+" printf(\"I/O canceled\\en\");\n"
+" else if (s == AIO_NOTCANCELED)\n"
+" printf(\"I/O not canceled\\en\");\n"
+" else if (s == AIO_ALLDONE)\n"
+" printf(\"I/O all done\\en\");\n"
+" else\n"
+" perror(\"aio_cancel\");\n"
+" }\n"
+" }\n"
+"\\&\n"
+" gotSIGQUIT = 0;\n"
+" }\n"
+"\\&\n"
+" /* Check the status of each I/O request that is still\n"
+" in progress. */\n"
+"\\&\n"
+" printf(\"aio_error():\\en\");\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" if (ioList[j].status == EINPROGRESS) {\n"
+" printf(\" for request %zu (descriptor %d): \",\n"
+" j, ioList[j].aiocbp-E<gt>aio_fildes);\n"
+" ioList[j].status = aio_error(ioList[j].aiocbp);\n"
+"\\&\n"
+" switch (ioList[j].status) {\n"
+" case 0:\n"
+" printf(\"I/O succeeded\\en\");\n"
+" break;\n"
+" case EINPROGRESS:\n"
+" printf(\"In progress\\en\");\n"
+" break;\n"
+" case ECANCELED:\n"
+" printf(\"Canceled\\en\");\n"
+" break;\n"
+" default:\n"
+" perror(\"aio_error\");\n"
+" break;\n"
+" }\n"
+"\\&\n"
+" if (ioList[j].status != EINPROGRESS)\n"
+" openReqs--;\n"
+" }\n"
+" }\n"
+" }\n"
+"\\&\n"
+" printf(\"All I/O requests completed\\en\");\n"
+"\\&\n"
+" /* Check status return of all I/O requests. */\n"
+"\\&\n"
+" printf(\"aio_return():\\en\");\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" ssize_t s;\n"
+"\\&\n"
+" s = aio_return(ioList[j].aiocbp);\n"
+" printf(\" for request %zu (descriptor %d): %zd\\en\",\n"
+" j, ioList[j].aiocbp-E<gt>aio_fildes, s);\n"
+" }\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), "
+"B<io_submit>(2), B<aio_cancel>(3), B<aio_error>(3), B<aio_init>(3), "
+"B<aio_read>(3), B<aio_return>(3), B<aio_write>(3), B<lio_listio>(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"\"Asynchronous I/O Support in Linux 2.5\", Bhattacharya, Pratt, Pulavarty, "
+"and Morgan, Proceedings of the Linux Symposium, 2003, E<.UR https://www."
+"kernel.org/doc/ols/2003/ols2003-pages-351-366.pdf> E<.UE>"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#include E<lt>aiocb.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct aiocb {\n"
+" /* The order of these fields is implementation-dependent */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" int aio_fildes; /* File descriptor */\n"
+" off_t aio_offset; /* File offset */\n"
+" volatile void *aio_buf; /* Location of buffer */\n"
+" size_t aio_nbytes; /* Length of transfer */\n"
+" int aio_reqprio; /* Request priority */\n"
+" struct sigevent aio_sigevent; /* Notification method */\n"
+" int aio_lio_opcode; /* Operation to be performed;\n"
+" lio_listio() only */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Various implementation-internal fields not shown */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* Operation codes for \\[aq]aio_lio_opcode\\[aq]: */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This field is a structure that specifies how the caller is to be notified "
+"when the asynchronous I/O operation completes. Possible values for "
+"I<aio_sigevent.sigev_notify> are B<SIGEV_NONE>, B<SIGEV_SIGNAL>, and "
+"B<SIGEV_THREAD>. See B<sigevent>(7) for further details."
+msgstr ""
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid "The POSIX AIO interfaces are provided by glibc since glibc 2.1."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid "POSIX.1-2001, POSIX.1-2008."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>aio.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#define BUF_SIZE 20 /* Size of buffers for read operations */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct ioRequest { /* Application-defined structure for tracking\n"
+" I/O requests */\n"
+" int reqNum;\n"
+" int status;\n"
+" struct aiocb *aiocbp;\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static volatile sig_atomic_t gotSIGQUIT = 0;\n"
+" /* On delivery of SIGQUIT, we attempt to\n"
+" cancel all outstanding I/O requests */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void /* Handler for SIGQUIT */\n"
+"quitHandler(int sig)\n"
+"{\n"
+" gotSIGQUIT = 1;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#define IO_SIGNAL SIGUSR1 /* Signal used to notify I/O completion */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void /* Handler for I/O completion signal */\n"
+"aioSigHandler(int sig, siginfo_t *si, void *ucontext)\n"
+"{\n"
+" if (si-E<gt>si_code == SI_ASYNCIO) {\n"
+" write(STDOUT_FILENO, \"I/O completion signal received\\en\", 31);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* The corresponding ioRequest structure would be available as\n"
+" struct ioRequest *ioReq = si-E<gt>si_value.sival_ptr;\n"
+" and the file descriptor would then be available via\n"
+" ioReq-E<gt>aiocbp-E<gt>aio_fildes */\n"
+" }\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct sigaction sa;\n"
+" int s;\n"
+" int numReqs; /* Total number of queued I/O requests */\n"
+" int openReqs; /* Number of I/O requests still in progress */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt> E<lt>pathnameE<gt>...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " numReqs = argc - 1;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Allocate our arrays. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" struct ioRequest *ioList = calloc(numReqs, sizeof(*ioList));\n"
+" if (ioList == NULL)\n"
+" errExit(\"calloc\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" struct aiocb *aiocbList = calloc(numReqs, sizeof(*aiocbList));\n"
+" if (aiocbList == NULL)\n"
+" errExit(\"calloc\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Establish handlers for SIGQUIT and the I/O completion signal. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" sa.sa_flags = SA_RESTART;\n"
+" sigemptyset(&sa.sa_mask);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" sa.sa_handler = quitHandler;\n"
+" if (sigaction(SIGQUIT, &sa, NULL) == -1)\n"
+" errExit(\"sigaction\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" sa.sa_flags = SA_RESTART | SA_SIGINFO;\n"
+" sa.sa_sigaction = aioSigHandler;\n"
+" if (sigaction(IO_SIGNAL, &sa, NULL) == -1)\n"
+" errExit(\"sigaction\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Open each file specified on the command line, and queue\n"
+" a read request on the resulting file descriptor. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" ioList[j].reqNum = j;\n"
+" ioList[j].status = EINPROGRESS;\n"
+" ioList[j].aiocbp = &aiocbList[j];\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" ioList[j].aiocbp-E<gt>aio_fildes = open(argv[j + 1], O_RDONLY);\n"
+" if (ioList[j].aiocbp-E<gt>aio_fildes == -1)\n"
+" errExit(\"open\");\n"
+" printf(\"opened %s on descriptor %d\\en\", argv[j + 1],\n"
+" ioList[j].aiocbp-E<gt>aio_fildes);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" ioList[j].aiocbp-E<gt>aio_buf = malloc(BUF_SIZE);\n"
+" if (ioList[j].aiocbp-E<gt>aio_buf == NULL)\n"
+" errExit(\"malloc\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" ioList[j].aiocbp-E<gt>aio_nbytes = BUF_SIZE;\n"
+" ioList[j].aiocbp-E<gt>aio_reqprio = 0;\n"
+" ioList[j].aiocbp-E<gt>aio_offset = 0;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_notify = SIGEV_SIGNAL;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_signo = IO_SIGNAL;\n"
+" ioList[j].aiocbp-E<gt>aio_sigevent.sigev_value.sival_ptr =\n"
+" &ioList[j];\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" s = aio_read(ioList[j].aiocbp);\n"
+" if (s == -1)\n"
+" errExit(\"aio_read\");\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " openReqs = numReqs;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Loop, monitoring status of I/O requests. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" while (openReqs E<gt> 0) {\n"
+" sleep(3); /* Delay between each monitoring step */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " if (gotSIGQUIT) {\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* On receipt of SIGQUIT, attempt to cancel each of the\n"
+" outstanding I/O requests, and display status returned\n"
+" from the cancelation requests. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"got SIGQUIT; canceling I/O requests: \\en\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" if (ioList[j].status == EINPROGRESS) {\n"
+" printf(\" Request %zu on descriptor %d:\", j,\n"
+" ioList[j].aiocbp-E<gt>aio_fildes);\n"
+" s = aio_cancel(ioList[j].aiocbp-E<gt>aio_fildes,\n"
+" ioList[j].aiocbp);\n"
+" if (s == AIO_CANCELED)\n"
+" printf(\"I/O canceled\\en\");\n"
+" else if (s == AIO_NOTCANCELED)\n"
+" printf(\"I/O not canceled\\en\");\n"
+" else if (s == AIO_ALLDONE)\n"
+" printf(\"I/O all done\\en\");\n"
+" else\n"
+" perror(\"aio_cancel\");\n"
+" }\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" gotSIGQUIT = 0;\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Check the status of each I/O request that is still\n"
+" in progress. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"aio_error():\\en\");\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" if (ioList[j].status == EINPROGRESS) {\n"
+" printf(\" for request %zu (descriptor %d): \",\n"
+" j, ioList[j].aiocbp-E<gt>aio_fildes);\n"
+" ioList[j].status = aio_error(ioList[j].aiocbp);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" switch (ioList[j].status) {\n"
+" case 0:\n"
+" printf(\"I/O succeeded\\en\");\n"
+" break;\n"
+" case EINPROGRESS:\n"
+" printf(\"In progress\\en\");\n"
+" break;\n"
+" case ECANCELED:\n"
+" printf(\"Canceled\\en\");\n"
+" break;\n"
+" default:\n"
+" perror(\"aio_error\");\n"
+" break;\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (ioList[j].status != EINPROGRESS)\n"
+" openReqs--;\n"
+" }\n"
+" }\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"All I/O requests completed\\en\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Check status return of all I/O requests. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"aio_return():\\en\");\n"
+" for (size_t j = 0; j E<lt> numReqs; j++) {\n"
+" ssize_t s;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" s = aio_return(ioList[j].aiocbp);\n"
+" printf(\" for request %zu (descriptor %d): %zd\\en\",\n"
+" j, ioList[j].aiocbp-E<gt>aio_fildes, s);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""