summaryrefslogtreecommitdiffstats
path: root/templates/man2/semget.2.pot
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/man2/semget.2.pot832
1 files changed, 832 insertions, 0 deletions
diff --git a/templates/man2/semget.2.pot b/templates/man2/semget.2.pot
new file mode 100644
index 00000000..964ca631
--- /dev/null
+++ b/templates/man2/semget.2.pot
@@ -0,0 +1,832 @@
+# 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 17:07+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 "semget"
+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 "semget - get a System V semaphore set identifier"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+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<#include E<lt>sys/sem.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<int semget(key_t >I<key>B<,> B<int >I<nsems>B<,> B<int >I<semflg>B<);>"
+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 B<semget>() system call returns the System\\ V semaphore set identifier "
+"associated with the argument I<key>. It may be used either to obtain the "
+"identifier of a previously created semaphore set (when I<semflg> is zero and "
+"I<key> does not have the value B<IPC_PRIVATE>), or to create a new set."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A new set of I<nsems> semaphores is created if I<key> has the value "
+"B<IPC_PRIVATE> or if no existing semaphore set is associated with I<key> and "
+"B<IPC_CREAT> is specified in I<semflg>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<semflg> specifies both B<IPC_CREAT> and B<IPC_EXCL> and a semaphore set "
+"already exists for I<key>, then B<semget>() fails with I<errno> set to "
+"B<EEXIST>. (This is analogous to the effect of the combination B<O_CREAT | "
+"O_EXCL> for B<open>(2).)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Upon creation, the least significant 9 bits of the argument I<semflg> define "
+"the permissions (for owner, group, and others) for the semaphore set. "
+"These bits have the same format, and the same meaning, as the I<mode> "
+"argument of B<open>(2) (though the execute permissions are not meaningful "
+"for semaphores, and write permissions mean permission to alter semaphore "
+"values)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When creating a new semaphore set, B<semget>() initializes the set's "
+"associated data structure, I<semid_ds> (see B<semctl>(2)), as follows:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<sem_perm.cuid> and I<sem_perm.uid> are set to the effective user ID of the "
+"calling process."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<sem_perm.cgid> and I<sem_perm.gid> are set to the effective group ID of "
+"the calling process."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The least significant 9 bits of I<sem_perm.mode> are set to the least "
+"significant 9 bits of I<semflg>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<sem_nsems> is set to the value of I<nsems>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<sem_otime> is set to 0."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<sem_ctime> is set to the current time."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The argument I<nsems> can be 0 (a don't care) when a semaphore set is not "
+"being created. Otherwise, I<nsems> must be greater than 0 and less than or "
+"equal to the maximum number of semaphores per semaphore set (B<SEMMSL>)."
+msgstr ""
+
+#. and a check is made to see if it is marked for destruction.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "If the semaphore set already exists, the permissions are verified."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<semget>() returns the semaphore set identifier (a nonnegative "
+"integer). On failure, -1 is returned, and I<errno> is set to indicate the "
+"error."
+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<EACCES>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A semaphore set exists for I<key>, but the calling process does not have "
+"permission to access the set, and does not have the B<CAP_IPC_OWNER> "
+"capability in the user namespace that governs its IPC namespace."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EEXIST>"
+msgstr ""
+
+#. .TP
+#. .B EIDRM
+#. The semaphore set is marked to be deleted.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<IPC_CREAT> and B<IPC_EXCL> were specified in I<semflg>, but a semaphore "
+"set already exists for I<key>."
+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 ""
+"I<nsems> is less than 0 or greater than the limit on the number of "
+"semaphores per semaphore set (B<SEMMSL>)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A semaphore set corresponding to I<key> already exists, but I<nsems> is "
+"larger than the number of semaphores in that set."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOENT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"No semaphore set exists for I<key> and I<semflg> did not specify "
+"B<IPC_CREAT>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A semaphore set has to be created but the system does not have enough memory "
+"for the new data structure."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOSPC>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A semaphore set has to be created but the system limit for the maximum "
+"number of semaphore sets (B<SEMMNI>), or the system wide maximum number of "
+"semaphores (B<SEMMNS>), would be exceeded."
+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 ""
+
+#. SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN,
+#. ERANGE, EFAULT.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "SVr4, POSIX.1-2001."
+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 ""
+"B<IPC_PRIVATE> isn't a flag field but a I<key_t> type. If this special "
+"value is used for I<key>, the system call ignores all but the least "
+"significant 9 bits of I<semflg> and creates a new semaphore set (on success)."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Semaphore initialization"
+msgstr ""
+
+#. In truth, every one of the many implementations that I've tested sets
+#. the values to zero, but I suppose there is/was some obscure
+#. implementation out there that does not.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The values of the semaphores in a newly created set are indeterminate. "
+"(POSIX.1-2001 and POSIX.1-2008 are explicit on this point, although "
+"POSIX.1-2008 notes that a future version of the standard may require an "
+"implementation to initialize the semaphores to 0.) Although Linux, like "
+"many other implementations, initializes the semaphore values to 0, a "
+"portable application cannot rely on this: it should explicitly initialize "
+"the semaphores to the desired values."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Initialization can be done using B<semctl>(2) B<SETVAL> or B<SETALL> "
+"operation. Where multiple peers do not know who will be the first to "
+"initialize the set, checking for a nonzero I<sem_otime> in the associated "
+"data structure retrieved by a B<semctl>(2) B<IPC_STAT> operation can be "
+"used to avoid races."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Semaphore limits"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following limits on semaphore set resources affect the B<semget>() call:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SEMMNI>"
+msgstr ""
+
+#. commit e843e7d2c88b7db107a86bd2c7145dc715c058f4
+#. This /proc file is not available in Linux 2.2 and earlier -- MTK
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"System-wide limit on the number of semaphore sets. Before Linux 3.19, the "
+"default value for this limit was 128. Since Linux 3.19, the default value "
+"is 32,000. On Linux, this limit can be read and modified via the fourth "
+"field of I</proc/sys/kernel/sem>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SEMMSL>"
+msgstr ""
+
+#. commit e843e7d2c88b7db107a86bd2c7145dc715c058f4
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Maximum number of semaphores per semaphore ID. Before Linux 3.19, the "
+"default value for this limit was 250. Since Linux 3.19, the default value "
+"is 32,000. On Linux, this limit can be read and modified via the first "
+"field of I</proc/sys/kernel/sem>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SEMMNS>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"System-wide limit on the number of semaphores: policy dependent (on Linux, "
+"this limit can be read and modified via the second field of I</proc/sys/"
+"kernel/sem>). Note that the number of semaphores system-wide is also "
+"limited by the product of B<SEMMSL> and B<SEMMNI>."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
+"more clearly show its function."
+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 shown below uses B<semget>() to create a new semaphore set or "
+"retrieve the ID of an existing set. It generates the I<key> for "
+"B<semget>() using B<ftok>(3). The first two command-line arguments are "
+"used as the I<pathname> and I<proj_id> arguments for B<ftok>(3). The third "
+"command-line argument is an integer that specifies the I<nsems> argument for "
+"B<semget>(). Command-line options can be used to specify the B<IPC_CREAT> "
+"(I<-c>) and B<IPC_EXCL> (I<-x>) flags for the call to B<semget>(). The "
+"usage of this program is demonstrated below."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"We first create two files that will be used to generate keys using "
+"B<ftok>(3), create two semaphore sets using those files, and then list the "
+"sets using B<ipcs>(1):"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<touch mykey mykey2>\n"
+"$ B<./t_semget -c mykey p 1>\n"
+"ID = 9\n"
+"$ B<./t_semget -c mykey2 p 2>\n"
+"ID = 10\n"
+"$ B<ipcs -s>\n"
+"\\&\n"
+"------ Semaphore Arrays --------\n"
+"key semid owner perms nsems\n"
+"0x7004136d 9 mtk 600 1\n"
+"0x70041368 10 mtk 600 2\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Next, we demonstrate that when B<semctl>(2) is given the same I<key> (as "
+"generated by the same arguments to B<ftok>(3)), it returns the ID of the "
+"already existing semaphore set:"
+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<./t_semget -c mykey p 1>\n"
+"ID = 9\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Finally, we demonstrate the kind of collision that can occur when "
+"B<ftok>(3) is given different I<pathname> arguments that have the same "
+"inode number:"
+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<ln mykey link>\n"
+"$ B<ls -i1 link mykey>\n"
+"2233197 link\n"
+"2233197 mykey\n"
+"$ B<./t_semget link p 1> # Generates same key as \\[aq]mykey\\[aq]\n"
+"ID = 9\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 ""
+"/* t_semget.c\n"
+"\\&\n"
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"static void\n"
+"usage(const char *pname)\n"
+"{\n"
+" fprintf(stderr, \"Usage: %s [-cx] pathname proj-id num-sems\\en\",\n"
+" pname);\n"
+" fprintf(stderr, \" -c Use IPC_CREAT flag\\en\");\n"
+" fprintf(stderr, \" -x Use IPC_EXCL flag\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, nsems, flags, opt;\n"
+" key_t key;\n"
+"\\&\n"
+" flags = 0;\n"
+" while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]c\\[aq]: flags |= IPC_CREAT; break;\n"
+" case \\[aq]x\\[aq]: flags |= IPC_EXCL; break;\n"
+" default: usage(argv[0]);\n"
+" }\n"
+" }\n"
+"\\&\n"
+" if (argc != optind + 3)\n"
+" usage(argv[0]);\n"
+"\\&\n"
+" key = ftok(argv[optind], argv[optind + 1][0]);\n"
+" if (key == -1) {\n"
+" perror(\"ftok\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" nsems = atoi(argv[optind + 2]);\n"
+"\\&\n"
+" semid = semget(key, nsems, flags | 0600);\n"
+" if (semid == -1) {\n"
+" perror(\"semget\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" printf(\"ID = %d\\en\", semid);\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. SRC END
+#. 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<semctl>(2), B<semop>(2), B<ftok>(3), B<capabilities>(7), "
+"B<sem_overview>(7), B<sysvipc>(7)"
+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 ""
+"$ B<touch mykey mykey2>\n"
+"$ B<./t_semget -c mykey p 1>\n"
+"ID = 9\n"
+"$ B<./t_semget -c mykey2 p 2>\n"
+"ID = 10\n"
+"$ B<ipcs -s>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"------ Semaphore Arrays --------\n"
+"key semid owner perms nsems\n"
+"0x7004136d 9 mtk 600 1\n"
+"0x70041368 10 mtk 600 2\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* t_semget.c\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void\n"
+"usage(const char *pname)\n"
+"{\n"
+" fprintf(stderr, \"Usage: %s [-cx] pathname proj-id num-sems\\en\",\n"
+" pname);\n"
+" fprintf(stderr, \" -c Use IPC_CREAT flag\\en\");\n"
+" fprintf(stderr, \" -x Use IPC_EXCL flag\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, nsems, flags, opt;\n"
+" key_t key;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" flags = 0;\n"
+" while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]c\\[aq]: flags |= IPC_CREAT; break;\n"
+" case \\[aq]x\\[aq]: flags |= IPC_EXCL; break;\n"
+" default: usage(argv[0]);\n"
+" }\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc != optind + 3)\n"
+" usage(argv[0]);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" key = ftok(argv[optind], argv[optind + 1][0]);\n"
+" if (key == -1) {\n"
+" perror(\"ftok\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " nsems = atoi(argv[optind + 2]);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" semid = semget(key, nsems, flags | 0600);\n"
+" if (semid == -1) {\n"
+" perror(\"semget\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"ID = %d\\en\", semid);\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 ""