msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-03-22 01:07+0900\n"
+"POT-Creation-Date: 2015-02-04 23:33+0900\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"
msgstr ""
#. type: TH
-#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man2/dup.2:36 build/C/man7/environ.7:34 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:8 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:10 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man2/swapon.2:37 build/C/man2/syscall.2:40 build/C/man2/syscalls.2:31 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man2/truncate.2:43 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28
+#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man2/dup.2:37 build/C/man7/environ.7:34 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:65 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:8 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:11 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man2/swapon.2:42 build/C/man2/syscall.2:42 build/C/man2/syscalls.2:31 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man2/truncate.2:43 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28 build/C/man2/execveat.2:26
#, no-wrap
msgid "Linux"
msgstr ""
#. type: TH
-#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man3/confstr.3:31 build/C/man3/crypt.3:36 build/C/man3/daemon.3:36 build/C/man3/des_crypt.3:14 build/C/man2/dup.2:36 build/C/man3/encrypt.3:30 build/C/man7/environ.7:34 build/C/man3/euidaccess.3:25 build/C/man3/exec.3:41 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/fsync.2:38 build/C/man3/get_nprocs_conf.3:26 build/C/man2/get_thread_area.2:8 build/C/man3/getcwd.3:32 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man3/lockf.3:28 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:10 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man5/shells.5:28 build/C/man3/sleep.3:26 build/C/man3/swab.3:31 build/C/man2/swapon.2:37 build/C/man2/syscall.2:40 build/C/man2/syscalls.2:31 build/C/man3/sysconf.3:27 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man3/tcgetpgrp.3:25 build/C/man2/truncate.2:43 build/C/man3/ualarm.3:24 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man3/usleep.3:33 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28
+#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man3/confstr.3:32 build/C/man3/crypt.3:36 build/C/man3/daemon.3:36 build/C/man3/des_crypt.3:14 build/C/man2/dup.2:37 build/C/man3/encrypt.3:30 build/C/man7/environ.7:34 build/C/man3/euidaccess.3:25 build/C/man3/exec.3:41 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:65 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/fsync.2:38 build/C/man3/get_nprocs_conf.3:26 build/C/man2/get_thread_area.2:8 build/C/man3/getcwd.3:32 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man3/lockf.3:28 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:11 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man5/shells.5:28 build/C/man3/sleep.3:26 build/C/man3/swab.3:31 build/C/man2/swapon.2:42 build/C/man2/syscall.2:42 build/C/man2/syscalls.2:31 build/C/man3/sysconf.3:27 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man3/tcgetpgrp.3:25 build/C/man2/truncate.2:43 build/C/man3/ualarm.3:24 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man3/usleep.3:33 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28 build/C/man2/execveat.2:26
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:39 build/C/man2/access.2:44 build/C/man2/alarm.2:31 build/C/man2/brk.2:30 build/C/man2/chdir.2:34 build/C/man2/chmod.2:32 build/C/man2/chown.2:39 build/C/man2/chroot.2:34 build/C/man2/close.2:36 build/C/man3/confstr.3:32 build/C/man3/crypt.3:37 build/C/man3/daemon.3:37 build/C/man3/des_crypt.3:15 build/C/man2/dup.2:37 build/C/man3/encrypt.3:31 build/C/man7/environ.7:35 build/C/man3/euidaccess.3:26 build/C/man3/exec.3:42 build/C/man2/execve.2:38 build/C/man2/exit_group.2:26 build/C/man2/fcntl.2:62 build/C/man3/fexecve.3:26 build/C/man2/flock.2:36 build/C/man2/fork.2:40 build/C/man3/fpathconf.3:42 build/C/man2/fsync.2:39 build/C/man3/get_nprocs_conf.3:27 build/C/man2/get_thread_area.2:9 build/C/man3/getcwd.3:33 build/C/man2/getdomainname.2:30 build/C/man3/getdtablesize.3:28 build/C/man3/gethostid.3:30 build/C/man2/gethostname.2:33 build/C/man3/getlogin.3:29 build/C/man3/getopt.3:42 build/C/man2/getpagesize.2:26 build/C/man2/gettid.2:27 build/C/man3/getumask.3:29 build/C/man3/getusershell.3:31 build/C/man2/idle.2:33 build/C/man2/ioctl.2:42 build/C/man2/ioctl_list.2:31 build/C/man2/ioperm.2:35 build/C/man3/lockf.3:29 build/C/man2/mincore.2:35 build/C/man2/mkdir.2:11 build/C/man2/nice.2:32 build/C/man2/pread.2:26 build/C/man2/set_thread_area.2:9 build/C/man2/setup.2:35 build/C/man5/shells.5:29 build/C/man3/sleep.3:27 build/C/man3/swab.3:32 build/C/man2/swapon.2:38 build/C/man2/syscall.2:41 build/C/man2/syscalls.2:32 build/C/man3/sysconf.3:28 build/C/man2/sysctl.2:31 build/C/man2/sysinfo.2:15 build/C/man3/tcgetpgrp.3:26 build/C/man2/truncate.2:44 build/C/man3/ualarm.3:25 build/C/man2/umask.2:35 build/C/man2/uname.2:28 build/C/man2/uselib.2:32 build/C/man3/usleep.3:34 build/C/man2/vfork.2:29 build/C/man2/vhangup.2:29
+#: build/C/man2/_syscall.2:39 build/C/man2/access.2:44 build/C/man2/alarm.2:31 build/C/man2/brk.2:30 build/C/man2/chdir.2:34 build/C/man2/chmod.2:33 build/C/man2/chown.2:39 build/C/man2/chroot.2:34 build/C/man2/close.2:36 build/C/man3/confstr.3:33 build/C/man3/crypt.3:37 build/C/man3/daemon.3:37 build/C/man3/des_crypt.3:15 build/C/man2/dup.2:38 build/C/man3/encrypt.3:31 build/C/man7/environ.7:35 build/C/man3/euidaccess.3:26 build/C/man3/exec.3:42 build/C/man2/execve.2:38 build/C/man2/exit_group.2:26 build/C/man2/fcntl.2:66 build/C/man3/fexecve.3:26 build/C/man2/flock.2:36 build/C/man2/fork.2:40 build/C/man3/fpathconf.3:42 build/C/man2/fsync.2:39 build/C/man3/get_nprocs_conf.3:27 build/C/man2/get_thread_area.2:9 build/C/man3/getcwd.3:33 build/C/man2/getdomainname.2:30 build/C/man3/getdtablesize.3:28 build/C/man3/gethostid.3:30 build/C/man2/gethostname.2:33 build/C/man3/getlogin.3:29 build/C/man3/getopt.3:42 build/C/man2/getpagesize.2:26 build/C/man2/gettid.2:27 build/C/man3/getumask.3:29 build/C/man3/getusershell.3:31 build/C/man2/idle.2:33 build/C/man2/ioctl.2:42 build/C/man2/ioctl_list.2:31 build/C/man2/ioperm.2:35 build/C/man3/lockf.3:29 build/C/man2/mincore.2:35 build/C/man2/mkdir.2:12 build/C/man2/nice.2:32 build/C/man2/pread.2:26 build/C/man2/set_thread_area.2:9 build/C/man2/setup.2:35 build/C/man5/shells.5:29 build/C/man3/sleep.3:27 build/C/man3/swab.3:32 build/C/man2/swapon.2:43 build/C/man2/syscall.2:43 build/C/man2/syscalls.2:32 build/C/man3/sysconf.3:28 build/C/man2/sysctl.2:31 build/C/man2/sysinfo.2:15 build/C/man3/tcgetpgrp.3:26 build/C/man2/truncate.2:44 build/C/man3/ualarm.3:25 build/C/man2/umask.2:35 build/C/man2/uname.2:28 build/C/man2/uselib.2:32 build/C/man3/usleep.3:34 build/C/man2/vfork.2:29 build/C/man2/vhangup.2:29 build/C/man2/execveat.2:27
#, no-wrap
msgid "NAME"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:41 build/C/man2/access.2:46 build/C/man2/alarm.2:33 build/C/man2/brk.2:32 build/C/man2/chdir.2:36 build/C/man2/chmod.2:34 build/C/man2/chown.2:41 build/C/man2/chroot.2:36 build/C/man2/close.2:38 build/C/man3/confstr.3:34 build/C/man3/crypt.3:39 build/C/man3/daemon.3:39 build/C/man3/des_crypt.3:18 build/C/man2/dup.2:39 build/C/man3/encrypt.3:33 build/C/man7/environ.7:37 build/C/man3/euidaccess.3:28 build/C/man3/exec.3:44 build/C/man2/execve.2:40 build/C/man2/exit_group.2:28 build/C/man2/fcntl.2:64 build/C/man3/fexecve.3:28 build/C/man2/flock.2:38 build/C/man2/fork.2:42 build/C/man3/fpathconf.3:44 build/C/man2/fsync.2:41 build/C/man3/get_nprocs_conf.3:29 build/C/man2/get_thread_area.2:11 build/C/man3/getcwd.3:35 build/C/man2/getdomainname.2:32 build/C/man3/getdtablesize.3:30 build/C/man3/gethostid.3:32 build/C/man2/gethostname.2:35 build/C/man3/getlogin.3:31 build/C/man3/getopt.3:45 build/C/man2/getpagesize.2:28 build/C/man2/gettid.2:29 build/C/man3/getumask.3:31 build/C/man3/getusershell.3:33 build/C/man2/idle.2:35 build/C/man2/ioctl.2:44 build/C/man2/ioperm.2:37 build/C/man3/lockf.3:31 build/C/man2/mincore.2:37 build/C/man2/mkdir.2:13 build/C/man2/nice.2:34 build/C/man2/pread.2:28 build/C/man2/set_thread_area.2:11 build/C/man2/setup.2:37 build/C/man3/sleep.3:29 build/C/man3/swab.3:34 build/C/man2/swapon.2:40 build/C/man2/syscall.2:43 build/C/man2/syscalls.2:34 build/C/man3/sysconf.3:30 build/C/man2/sysctl.2:33 build/C/man2/sysinfo.2:17 build/C/man3/tcgetpgrp.3:28 build/C/man2/truncate.2:46 build/C/man3/ualarm.3:27 build/C/man2/umask.2:37 build/C/man2/uname.2:30 build/C/man2/uselib.2:34 build/C/man3/usleep.3:36 build/C/man2/vfork.2:31 build/C/man2/vhangup.2:31
+#: build/C/man2/_syscall.2:41 build/C/man2/access.2:46 build/C/man2/alarm.2:33 build/C/man2/brk.2:32 build/C/man2/chdir.2:36 build/C/man2/chmod.2:35 build/C/man2/chown.2:41 build/C/man2/chroot.2:36 build/C/man2/close.2:38 build/C/man3/confstr.3:35 build/C/man3/crypt.3:39 build/C/man3/daemon.3:39 build/C/man3/des_crypt.3:18 build/C/man2/dup.2:40 build/C/man3/encrypt.3:33 build/C/man7/environ.7:37 build/C/man3/euidaccess.3:28 build/C/man3/exec.3:44 build/C/man2/execve.2:40 build/C/man2/exit_group.2:28 build/C/man2/fcntl.2:68 build/C/man3/fexecve.3:28 build/C/man2/flock.2:38 build/C/man2/fork.2:42 build/C/man3/fpathconf.3:44 build/C/man2/fsync.2:41 build/C/man3/get_nprocs_conf.3:29 build/C/man2/get_thread_area.2:11 build/C/man3/getcwd.3:35 build/C/man2/getdomainname.2:32 build/C/man3/getdtablesize.3:30 build/C/man3/gethostid.3:32 build/C/man2/gethostname.2:35 build/C/man3/getlogin.3:31 build/C/man3/getopt.3:45 build/C/man2/getpagesize.2:28 build/C/man2/gettid.2:29 build/C/man3/getumask.3:31 build/C/man3/getusershell.3:33 build/C/man2/idle.2:35 build/C/man2/ioctl.2:44 build/C/man2/ioperm.2:37 build/C/man3/lockf.3:31 build/C/man2/mincore.2:37 build/C/man2/mkdir.2:14 build/C/man2/nice.2:34 build/C/man2/pread.2:28 build/C/man2/set_thread_area.2:11 build/C/man2/setup.2:37 build/C/man3/sleep.3:29 build/C/man3/swab.3:34 build/C/man2/swapon.2:45 build/C/man2/syscall.2:45 build/C/man2/syscalls.2:34 build/C/man3/sysconf.3:30 build/C/man2/sysctl.2:33 build/C/man2/sysinfo.2:17 build/C/man3/tcgetpgrp.3:28 build/C/man2/truncate.2:46 build/C/man3/ualarm.3:27 build/C/man2/umask.2:37 build/C/man2/uname.2:30 build/C/man2/uselib.2:34 build/C/man3/usleep.3:36 build/C/man2/vfork.2:31 build/C/man2/vhangup.2:31 build/C/man2/execveat.2:29
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:47 build/C/man2/access.2:52 build/C/man2/alarm.2:39 build/C/man2/brk.2:64 build/C/man2/chdir.2:59 build/C/man2/chmod.2:58 build/C/man2/chown.2:67 build/C/man2/chroot.2:63 build/C/man2/close.2:44 build/C/man3/confstr.3:48 build/C/man3/crypt.3:56 build/C/man3/daemon.3:51 build/C/man3/des_crypt.3:34 build/C/man2/dup.2:52 build/C/man3/encrypt.3:56 build/C/man7/environ.7:42 build/C/man3/euidaccess.3:36 build/C/man3/exec.3:72 build/C/man2/execve.2:46 build/C/man2/exit_group.2:34 build/C/man2/fcntl.2:71 build/C/man3/fexecve.3:53 build/C/man2/flock.2:42 build/C/man2/fork.2:46 build/C/man3/fpathconf.3:52 build/C/man2/fsync.2:61 build/C/man3/get_nprocs_conf.3:35 build/C/man2/get_thread_area.2:20 build/C/man3/getcwd.3:75 build/C/man2/getdomainname.2:51 build/C/man3/getdtablesize.3:57 build/C/man3/gethostid.3:56 build/C/man2/gethostname.2:63 build/C/man3/getlogin.3:52 build/C/man3/getopt.3:79 build/C/man2/getpagesize.2:55 build/C/man2/gettid.2:38 build/C/man3/getumask.3:39 build/C/man3/getusershell.3:57 build/C/man2/idle.2:39 build/C/man2/ioctl.2:48 build/C/man2/ioctl_list.2:33 build/C/man2/ioperm.2:45 build/C/man3/lockf.3:48 build/C/man2/mincore.2:51 build/C/man2/mkdir.2:21 build/C/man2/nice.2:46 build/C/man2/pread.2:53 build/C/man2/set_thread_area.2:20 build/C/man2/setup.2:41 build/C/man5/shells.5:31 build/C/man3/sleep.3:35 build/C/man3/swab.3:41 build/C/man2/swapon.2:50 build/C/man2/syscall.2:51 build/C/man2/syscalls.2:36 build/C/man3/sysconf.3:36 build/C/man2/sysctl.2:44 build/C/man2/sysinfo.2:21 build/C/man3/tcgetpgrp.3:34 build/C/man2/truncate.2:79 build/C/man3/ualarm.3:58 build/C/man2/umask.2:43 build/C/man2/uname.2:34 build/C/man2/uselib.2:38 build/C/man3/usleep.3:67 build/C/man2/vfork.2:62 build/C/man2/vhangup.2:45
+#: build/C/man2/_syscall.2:47 build/C/man2/access.2:78 build/C/man2/alarm.2:39 build/C/man2/brk.2:64 build/C/man2/chdir.2:59 build/C/man2/chmod.2:81 build/C/man2/chown.2:88 build/C/man2/chroot.2:63 build/C/man2/close.2:44 build/C/man3/confstr.3:49 build/C/man3/crypt.3:56 build/C/man3/daemon.3:51 build/C/man3/des_crypt.3:34 build/C/man2/dup.2:53 build/C/man3/encrypt.3:56 build/C/man7/environ.7:42 build/C/man3/euidaccess.3:36 build/C/man3/exec.3:72 build/C/man2/execve.2:46 build/C/man2/exit_group.2:34 build/C/man2/fcntl.2:75 build/C/man3/fexecve.3:53 build/C/man2/flock.2:42 build/C/man2/fork.2:46 build/C/man3/fpathconf.3:52 build/C/man2/fsync.2:61 build/C/man3/get_nprocs_conf.3:35 build/C/man2/get_thread_area.2:20 build/C/man3/getcwd.3:75 build/C/man2/getdomainname.2:51 build/C/man3/getdtablesize.3:57 build/C/man3/gethostid.3:56 build/C/man2/gethostname.2:63 build/C/man3/getlogin.3:52 build/C/man3/getopt.3:79 build/C/man2/getpagesize.2:55 build/C/man2/gettid.2:38 build/C/man3/getumask.3:39 build/C/man3/getusershell.3:57 build/C/man2/idle.2:39 build/C/man2/ioctl.2:50 build/C/man2/ioctl_list.2:33 build/C/man2/ioperm.2:42 build/C/man3/lockf.3:48 build/C/man2/mincore.2:51 build/C/man2/mkdir.2:47 build/C/man2/nice.2:46 build/C/man2/pread.2:53 build/C/man2/set_thread_area.2:20 build/C/man2/setup.2:41 build/C/man5/shells.5:31 build/C/man3/sleep.3:35 build/C/man3/swab.3:41 build/C/man2/swapon.2:53 build/C/man2/syscall.2:53 build/C/man2/syscalls.2:36 build/C/man3/sysconf.3:36 build/C/man2/sysctl.2:44 build/C/man2/sysinfo.2:21 build/C/man3/tcgetpgrp.3:34 build/C/man2/truncate.2:79 build/C/man3/ualarm.3:58 build/C/man2/umask.2:43 build/C/man2/uname.2:34 build/C/man2/uselib.2:38 build/C/man3/usleep.3:67 build/C/man2/vfork.2:62 build/C/man2/vhangup.2:45 build/C/man2/execveat.2:37
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:62
+#: build/C/man2/_syscall.2:63
msgid "I<X> is 0\\(en6, which are the number of arguments taken by the system call"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:64
+#: build/C/man2/_syscall.2:66
msgid "I<type> is the return type of the system call"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:66
+#: build/C/man2/_syscall.2:69
msgid "I<name> is the name of the system call"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:68
+#: build/C/man2/_syscall.2:72
msgid "I<typeN> is the Nth argument's type"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:70
+#: build/C/man2/_syscall.2:75
msgid "I<argN> is the name of the Nth argument"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:75
+#: build/C/man2/_syscall.2:83
msgid ""
"These macros create a function called I<name> with the arguments you "
"specify. Once you include the _syscall() in your source file, you call the "
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:75 build/C/man3/getlogin.3:130 build/C/man3/getusershell.3:81 build/C/man5/shells.5:43
+#: build/C/man2/_syscall.2:83 build/C/man3/getlogin.3:132 build/C/man3/getusershell.3:89 build/C/man5/shells.5:43
#, no-wrap
msgid "FILES"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:77
+#: build/C/man2/_syscall.2:85
msgid "I</usr/include/linux/unistd.h>"
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:77 build/C/man2/access.2:148 build/C/man2/alarm.2:61 build/C/man2/brk.2:114 build/C/man2/chdir.2:125 build/C/man2/chmod.2:219 build/C/man2/chown.2:181 build/C/man2/chroot.2:134 build/C/man2/close.2:84 build/C/man3/confstr.3:127 build/C/man3/crypt.3:163 build/C/man3/daemon.3:90 build/C/man3/des_crypt.3:134 build/C/man2/dup.2:170 build/C/man3/encrypt.3:124 build/C/man3/euidaccess.3:73 build/C/man3/exec.3:199 build/C/man2/execve.2:450 build/C/man2/exit_group.2:43 build/C/man2/fcntl.2:1146 build/C/man3/fexecve.3:94 build/C/man2/flock.2:138 build/C/man2/fork.2:206 build/C/man3/fpathconf.3:169 build/C/man2/fsync.2:125 build/C/man3/get_nprocs_conf.3:48 build/C/man2/get_thread_area.2:46 build/C/man3/getcwd.3:208 build/C/man2/getdomainname.2:110 build/C/man3/getdtablesize.3:69 build/C/man3/gethostid.3:92 build/C/man2/gethostname.2:124 build/C/man3/getlogin.3:138 build/C/man3/getopt.3:318 build/C/man2/getpagesize.2:64 build/C/man2/gettid.2:58 build/C/man3/getumask.3:58 build/C/man3/getusershell.3:85 build/C/man2/idle.2:61 build/C/man2/ioctl.2:117 build/C/man2/ioperm.2:104 build/C/man3/lockf.3:154 build/C/man2/mincore.2:134 build/C/man2/mkdir.2:118 build/C/man2/nice.2:75 build/C/man2/pread.2:115 build/C/man2/set_thread_area.2:63 build/C/man2/setup.2:62 build/C/man3/sleep.3:44 build/C/man3/swab.3:58 build/C/man2/swapon.2:151 build/C/man3/sysconf.3:324 build/C/man2/sysctl.2:100 build/C/man2/sysinfo.2:83 build/C/man3/tcgetpgrp.3:106 build/C/man2/truncate.2:195 build/C/man3/ualarm.3:92 build/C/man2/umask.2:93 build/C/man2/uname.2:73 build/C/man2/uselib.2:76 build/C/man3/usleep.3:86 build/C/man2/vfork.2:159 build/C/man2/vhangup.2:63
+#: build/C/man2/_syscall.2:85 build/C/man2/access.2:262 build/C/man2/alarm.2:59 build/C/man2/brk.2:113 build/C/man2/chdir.2:125 build/C/man2/chmod.2:330 build/C/man2/chown.2:313 build/C/man2/chroot.2:134 build/C/man2/close.2:84 build/C/man3/confstr.3:128 build/C/man3/crypt.3:183 build/C/man3/daemon.3:96 build/C/man3/des_crypt.3:142 build/C/man2/dup.2:208 build/C/man3/encrypt.3:137 build/C/man3/euidaccess.3:80 build/C/man3/exec.3:199 build/C/man2/execve.2:464 build/C/man2/exit_group.2:43 build/C/man2/fcntl.2:1640 build/C/man3/fexecve.3:94 build/C/man2/flock.2:139 build/C/man2/fork.2:226 build/C/man3/fpathconf.3:169 build/C/man2/fsync.2:125 build/C/man3/get_nprocs_conf.3:48 build/C/man2/get_thread_area.2:46 build/C/man3/getcwd.3:208 build/C/man2/getdomainname.2:110 build/C/man3/getdtablesize.3:74 build/C/man3/gethostid.3:92 build/C/man2/gethostname.2:124 build/C/man3/getlogin.3:154 build/C/man3/getopt.3:318 build/C/man2/getpagesize.2:64 build/C/man2/gettid.2:58 build/C/man3/getumask.3:58 build/C/man3/getusershell.3:101 build/C/man2/idle.2:61 build/C/man2/ioctl.2:119 build/C/man2/ioperm.2:101 build/C/man3/lockf.3:159 build/C/man2/mincore.2:134 build/C/man2/mkdir.2:204 build/C/man2/nice.2:75 build/C/man2/pread.2:115 build/C/man2/set_thread_area.2:63 build/C/man2/setup.2:62 build/C/man3/sleep.3:44 build/C/man3/swab.3:77 build/C/man2/swapon.2:162 build/C/man3/sysconf.3:327 build/C/man2/sysctl.2:100 build/C/man2/sysinfo.2:87 build/C/man3/tcgetpgrp.3:116 build/C/man2/truncate.2:200 build/C/man3/ualarm.3:97 build/C/man2/umask.2:95 build/C/man2/uname.2:73 build/C/man2/uselib.2:76 build/C/man3/usleep.3:96 build/C/man2/vfork.2:159 build/C/man2/vhangup.2:63 build/C/man2/execveat.2:165
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:79
+#: build/C/man2/_syscall.2:87
msgid "The use of these macros is Linux-specific, and deprecated."
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:79 build/C/man2/access.2:150 build/C/man2/alarm.2:63 build/C/man2/brk.2:122 build/C/man2/chdir.2:127 build/C/man2/chown.2:192 build/C/man2/chroot.2:139 build/C/man2/close.2:87 build/C/man3/crypt.3:168 build/C/man3/daemon.3:96 build/C/man2/dup.2:180 build/C/man3/encrypt.3:135 build/C/man3/euidaccess.3:79 build/C/man3/exec.3:205 build/C/man2/execve.2:458 build/C/man2/exit_group.2:45 build/C/man2/fcntl.2:1196 build/C/man3/fexecve.3:98 build/C/man2/flock.2:147 build/C/man2/fork.2:208 build/C/man3/fpathconf.3:171 build/C/man2/fsync.2:140 build/C/man3/get_nprocs_conf.3:50 build/C/man2/get_thread_area.2:50 build/C/man3/getcwd.3:230 build/C/man2/getdomainname.2:113 build/C/man3/getdtablesize.3:77 build/C/man3/gethostid.3:102 build/C/man2/gethostname.2:130 build/C/man3/getopt.3:350 build/C/man2/getpagesize.2:71 build/C/man2/gettid.2:62 build/C/man3/getumask.3:60 build/C/man2/ioctl.2:132 build/C/man2/ioperm.2:108 build/C/man2/mkdir.2:121 build/C/man2/nice.2:82 build/C/man2/pread.2:117 build/C/man2/set_thread_area.2:67 build/C/man2/setup.2:65 build/C/man2/swapon.2:157 build/C/man2/syscall.2:78 build/C/man2/syscalls.2:640 build/C/man2/sysctl.2:114 build/C/man3/tcgetpgrp.3:108 build/C/man2/truncate.2:208 build/C/man3/ualarm.3:100 build/C/man2/umask.2:95 build/C/man2/uname.2:82 build/C/man2/uselib.2:80 build/C/man3/usleep.3:104 build/C/man2/vfork.2:174
+#: build/C/man2/_syscall.2:87 build/C/man2/access.2:268 build/C/man2/alarm.2:61 build/C/man2/brk.2:121 build/C/man2/chdir.2:127 build/C/man2/chmod.2:337 build/C/man2/chown.2:330 build/C/man2/chroot.2:139 build/C/man2/close.2:87 build/C/man3/crypt.3:188 build/C/man3/daemon.3:102 build/C/man2/dup.2:218 build/C/man3/encrypt.3:148 build/C/man3/euidaccess.3:86 build/C/man3/exec.3:205 build/C/man2/execve.2:472 build/C/man2/exit_group.2:45 build/C/man2/fcntl.2:1705 build/C/man3/fexecve.3:99 build/C/man2/flock.2:148 build/C/man2/fork.2:228 build/C/man3/fpathconf.3:171 build/C/man2/fsync.2:140 build/C/man3/get_nprocs_conf.3:50 build/C/man2/get_thread_area.2:50 build/C/man3/getcwd.3:230 build/C/man2/getdomainname.2:113 build/C/man3/getdtablesize.3:82 build/C/man3/gethostid.3:102 build/C/man2/gethostname.2:130 build/C/man3/getopt.3:350 build/C/man2/getpagesize.2:71 build/C/man2/gettid.2:62 build/C/man3/getumask.3:60 build/C/man2/ioctl.2:134 build/C/man2/ioperm.2:105 build/C/man2/mkdir.2:211 build/C/man2/nice.2:82 build/C/man2/pread.2:117 build/C/man2/set_thread_area.2:67 build/C/man2/setup.2:65 build/C/man2/swapon.2:168 build/C/man2/syscall.2:80 build/C/man2/syscalls.2:667 build/C/man2/sysctl.2:114 build/C/man3/tcgetpgrp.3:118 build/C/man2/truncate.2:213 build/C/man3/ualarm.3:105 build/C/man2/umask.2:97 build/C/man2/uname.2:82 build/C/man2/uselib.2:80 build/C/man3/usleep.3:114 build/C/man2/vfork.2:174 build/C/man2/execveat.2:169
#, no-wrap
msgid "NOTES"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:89
+#: build/C/man2/_syscall.2:97
msgid ""
"Starting around kernel 2.6.18, the _syscall macros were removed from header "
"files supplied to user space. Use B<syscall>(2) instead. (Some "
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:93
+#: build/C/man2/_syscall.2:103
msgid ""
"The _syscall() macros I<do not> produce a prototype. You may have to create "
"one, especially for C++ users."
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:105
+#: build/C/man2/_syscall.2:124
msgid ""
"System calls are not required to return only positive or negative error "
"codes. You need to read the source to be sure how it will return errors. "
"Usually, it is the negative of a standard error code, for example, "
-"-B<EPERM>. The _syscall() macros will return the result I<r> of the system "
+"-I<EPERM>. The _syscall() macros will return the result I<r> of the system "
"call when I<r> is nonnegative, but will return -1 and set the variable "
"I<errno> to -I<r> when I<r> is negative. For the error codes, see "
"B<errno>(3)."
#. The preferred way to invoke system calls that glibc does not know
#. about yet is via
#. .BR syscall (2).
-#. However, this mechanism can only be used if using a libc
+#. However, this mechanism can be used only if using a libc
#. (such as glibc) that supports
#. .BR syscall (2),
#. and if the
#. header file contains the required SYS_foo definition.
#. Otherwise, the use of a _syscall macro is required.
#. type: Plain text
-#: build/C/man2/_syscall.2:119
+#: build/C/man2/_syscall.2:140
msgid ""
"When defining a system call, the argument types I<must> be passed by-value "
"or by-pointer (for aggregates like structs)."
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:119 build/C/man2/chown.2:288 build/C/man3/confstr.3:129 build/C/man3/encrypt.3:137 build/C/man2/execve.2:542 build/C/man2/fork.2:239 build/C/man3/get_nprocs_conf.3:67 build/C/man3/getopt.3:376 build/C/man5/shells.5:45 build/C/man2/syscall.2:82 build/C/man2/sysctl.2:143
+#: build/C/man2/_syscall.2:140 build/C/man2/chown.2:442 build/C/man3/confstr.3:130 build/C/man3/encrypt.3:150 build/C/man2/execve.2:656 build/C/man2/fork.2:259 build/C/man3/get_nprocs_conf.3:67 build/C/man3/getopt.3:376 build/C/man5/shells.5:45 build/C/man2/syscall.2:224 build/C/man2/sysctl.2:143
#, no-wrap
msgid "EXAMPLE"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:126
+#: build/C/man2/_syscall.2:147
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:128
+#: build/C/man2/_syscall.2:149
#, no-wrap
msgid "_syscall1(int, sysinfo, struct sysinfo *, info);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:131
+#: build/C/man2/_syscall.2:152
#, no-wrap
msgid ""
"/* Note: if you copy directly from the nroff source, remember to\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:137
+#: build/C/man2/_syscall.2:158
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:152
+#: build/C/man2/_syscall.2:173
#, no-wrap
msgid ""
" error = sysinfo(&s_info);\n"
msgstr ""
#. type: SS
-#: build/C/man2/_syscall.2:153
+#: build/C/man2/_syscall.2:174
#, no-wrap
msgid "Sample output"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:162
+#: build/C/man2/_syscall.2:183
#, no-wrap
msgid ""
"code error = 0\n"
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:163 build/C/man2/access.2:242 build/C/man2/alarm.2:81 build/C/man2/brk.2:164 build/C/man2/chdir.2:136 build/C/man2/chmod.2:221 build/C/man2/chown.2:336 build/C/man2/chroot.2:151 build/C/man2/close.2:125 build/C/man3/confstr.3:146 build/C/man3/crypt.3:229 build/C/man3/daemon.3:104 build/C/man3/des_crypt.3:137 build/C/man2/dup.2:207 build/C/man3/encrypt.3:161 build/C/man7/environ.7:227 build/C/man3/euidaccess.3:94 build/C/man3/exec.3:241 build/C/man2/execve.2:637 build/C/man2/exit_group.2:49 build/C/man2/fcntl.2:1297 build/C/man3/fexecve.3:106 build/C/man2/flock.2:201 build/C/man2/fork.2:244 build/C/man3/fpathconf.3:180 build/C/man2/fsync.2:162 build/C/man2/get_thread_area.2:55 build/C/man3/getcwd.3:249 build/C/man2/getdomainname.2:127 build/C/man3/getdtablesize.3:90 build/C/man3/gethostid.3:124 build/C/man2/gethostname.2:176 build/C/man3/getlogin.3:193 build/C/man3/getopt.3:514 build/C/man2/getpagesize.2:108 build/C/man2/gettid.2:71 build/C/man3/getumask.3:63 build/C/man3/getusershell.3:87 build/C/man2/ioctl.2:140 build/C/man2/ioctl_list.2:953 build/C/man2/ioperm.2:121 build/C/man3/lockf.3:156 build/C/man2/mincore.2:166 build/C/man2/mkdir.2:133 build/C/man2/nice.2:105 build/C/man2/pread.2:145 build/C/man2/set_thread_area.2:72 build/C/man5/shells.5:56 build/C/man3/sleep.3:61 build/C/man3/swab.3:60 build/C/man2/swapon.2:191 build/C/man2/syscall.2:98 build/C/man2/syscalls.2:817 build/C/man3/sysconf.3:335 build/C/man2/sysctl.2:181 build/C/man2/sysinfo.2:94 build/C/man3/tcgetpgrp.3:117 build/C/man2/truncate.2:251 build/C/man3/ualarm.3:135 build/C/man2/umask.2:116 build/C/man2/uname.2:157 build/C/man2/uselib.2:102 build/C/man3/usleep.3:137 build/C/man2/vfork.2:273 build/C/man2/vhangup.2:66
+#: build/C/man2/_syscall.2:184 build/C/man2/access.2:390 build/C/man2/alarm.2:86 build/C/man2/brk.2:163 build/C/man2/chdir.2:136 build/C/man2/chmod.2:361 build/C/man2/chown.2:490 build/C/man2/chroot.2:151 build/C/man2/close.2:131 build/C/man3/confstr.3:147 build/C/man3/crypt.3:249 build/C/man3/daemon.3:110 build/C/man3/des_crypt.3:145 build/C/man2/dup.2:274 build/C/man3/encrypt.3:174 build/C/man7/environ.7:247 build/C/man3/euidaccess.3:101 build/C/man3/exec.3:241 build/C/man2/execve.2:751 build/C/man2/exit_group.2:49 build/C/man2/fcntl.2:1916 build/C/man3/fexecve.3:165 build/C/man2/flock.2:234 build/C/man2/fork.2:264 build/C/man3/fpathconf.3:180 build/C/man2/fsync.2:162 build/C/man2/get_thread_area.2:55 build/C/man3/getcwd.3:249 build/C/man2/getdomainname.2:127 build/C/man3/getdtablesize.3:95 build/C/man3/gethostid.3:124 build/C/man2/gethostname.2:176 build/C/man3/getlogin.3:209 build/C/man3/getopt.3:516 build/C/man2/getpagesize.2:108 build/C/man2/gettid.2:71 build/C/man3/getumask.3:63 build/C/man3/getusershell.3:103 build/C/man2/ioctl.2:142 build/C/man2/ioctl_list.2:963 build/C/man2/ioperm.2:117 build/C/man3/lockf.3:161 build/C/man2/mincore.2:166 build/C/man2/mkdir.2:236 build/C/man2/nice.2:105 build/C/man2/pread.2:158 build/C/man2/set_thread_area.2:72 build/C/man5/shells.5:56 build/C/man3/sleep.3:61 build/C/man3/swab.3:79 build/C/man2/swapon.2:202 build/C/man2/syscall.2:241 build/C/man2/syscalls.2:844 build/C/man3/sysconf.3:338 build/C/man2/sysctl.2:181 build/C/man2/sysinfo.2:90 build/C/man3/tcgetpgrp.3:127 build/C/man2/truncate.2:261 build/C/man3/ualarm.3:147 build/C/man2/umask.2:118 build/C/man2/uname.2:167 build/C/man2/uselib.2:102 build/C/man3/usleep.3:147 build/C/man2/vfork.2:273 build/C/man2/vhangup.2:66 build/C/man2/execveat.2:229
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:167
+#: build/C/man2/_syscall.2:188
msgid "B<intro>(2), B<syscall>(2), B<errno>(3)"
msgstr ""
#. type: SH
-#: build/C/man2/_syscall.2:167 build/C/man2/access.2:253 build/C/man2/alarm.2:90 build/C/man2/brk.2:169 build/C/man2/chdir.2:140 build/C/man2/chmod.2:228 build/C/man2/chown.2:342 build/C/man2/chroot.2:154 build/C/man2/close.2:132 build/C/man3/confstr.3:150 build/C/man3/crypt.3:235 build/C/man3/daemon.3:107 build/C/man3/des_crypt.3:141 build/C/man2/dup.2:211 build/C/man3/encrypt.3:166 build/C/man7/environ.7:241 build/C/man3/euidaccess.3:105 build/C/man3/exec.3:248 build/C/man2/execve.2:648 build/C/man2/exit_group.2:51 build/C/man2/fcntl.2:1318 build/C/man3/fexecve.3:108 build/C/man2/flock.2:215 build/C/man2/fork.2:255 build/C/man3/fpathconf.3:185 build/C/man2/fsync.2:171 build/C/man3/get_nprocs_conf.3:88 build/C/man2/get_thread_area.2:58 build/C/man3/getcwd.3:256 build/C/man2/getdomainname.2:131 build/C/man3/getdtablesize.3:95 build/C/man3/gethostid.3:127 build/C/man2/gethostname.2:180 build/C/man3/getlogin.3:197 build/C/man3/getopt.3:516 build/C/man2/getpagesize.2:111 build/C/man2/gettid.2:90 build/C/man3/getumask.3:65 build/C/man3/getusershell.3:89 build/C/man2/idle.2:64 build/C/man2/ioctl.2:148 build/C/man2/ioctl_list.2:955 build/C/man2/ioperm.2:125 build/C/man3/lockf.3:171 build/C/man2/mincore.2:169 build/C/man2/mkdir.2:145 build/C/man2/nice.2:112 build/C/man2/pread.2:150 build/C/man2/set_thread_area.2:74 build/C/man2/setup.2:72 build/C/man5/shells.5:59 build/C/man3/sleep.3:66 build/C/man3/swab.3:62 build/C/man2/swapon.2:195 build/C/man2/syscall.2:102 build/C/man2/syscalls.2:821 build/C/man3/sysconf.3:343 build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:96 build/C/man3/tcgetpgrp.3:121 build/C/man2/truncate.2:255 build/C/man3/ualarm.3:143 build/C/man2/umask.2:122 build/C/man2/uname.2:161 build/C/man2/uselib.2:112 build/C/man3/usleep.3:146 build/C/man2/vfork.2:279 build/C/man2/vhangup.2:69
+#: build/C/man2/_syscall.2:188 build/C/man2/access.2:401 build/C/man2/alarm.2:95 build/C/man2/brk.2:168 build/C/man2/chdir.2:140 build/C/man2/chmod.2:368 build/C/man2/chown.2:495 build/C/man2/chroot.2:154 build/C/man2/close.2:138 build/C/man3/confstr.3:155 build/C/man3/crypt.3:255 build/C/man3/daemon.3:113 build/C/man3/des_crypt.3:149 build/C/man2/dup.2:278 build/C/man3/encrypt.3:179 build/C/man7/environ.7:264 build/C/man3/euidaccess.3:112 build/C/man3/exec.3:249 build/C/man2/execve.2:763 build/C/man2/exit_group.2:51 build/C/man2/fcntl.2:1937 build/C/man3/fexecve.3:168 build/C/man2/flock.2:248 build/C/man2/fork.2:275 build/C/man3/fpathconf.3:186 build/C/man2/fsync.2:170 build/C/man3/get_nprocs_conf.3:88 build/C/man2/get_thread_area.2:58 build/C/man3/getcwd.3:256 build/C/man2/getdomainname.2:131 build/C/man3/getdtablesize.3:100 build/C/man3/gethostid.3:127 build/C/man2/gethostname.2:180 build/C/man3/getlogin.3:213 build/C/man3/getopt.3:519 build/C/man2/getpagesize.2:111 build/C/man2/gettid.2:90 build/C/man3/getumask.3:65 build/C/man3/getusershell.3:105 build/C/man2/idle.2:64 build/C/man2/ioctl.2:150 build/C/man2/ioctl_list.2:965 build/C/man2/ioperm.2:121 build/C/man3/lockf.3:176 build/C/man2/mincore.2:169 build/C/man2/mkdir.2:247 build/C/man2/nice.2:113 build/C/man2/pread.2:163 build/C/man2/set_thread_area.2:74 build/C/man2/setup.2:72 build/C/man5/shells.5:59 build/C/man3/sleep.3:66 build/C/man3/swab.3:81 build/C/man2/swapon.2:206 build/C/man2/syscall.2:247 build/C/man2/syscalls.2:851 build/C/man3/sysconf.3:347 build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:92 build/C/man3/tcgetpgrp.3:131 build/C/man2/truncate.2:265 build/C/man3/ualarm.3:155 build/C/man2/umask.2:124 build/C/man2/uname.2:172 build/C/man2/uselib.2:112 build/C/man3/usleep.3:156 build/C/man2/vfork.2:279 build/C/man2/vhangup.2:69 build/C/man2/execveat.2:233
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man2/_syscall.2:174 build/C/man2/access.2:260 build/C/man2/alarm.2:97 build/C/man2/brk.2:176 build/C/man2/chdir.2:147 build/C/man2/chmod.2:235 build/C/man2/chown.2:349 build/C/man2/chroot.2:161 build/C/man2/close.2:139 build/C/man3/confstr.3:157 build/C/man3/crypt.3:242 build/C/man3/daemon.3:114 build/C/man3/des_crypt.3:148 build/C/man2/dup.2:218 build/C/man3/encrypt.3:173 build/C/man7/environ.7:248 build/C/man3/euidaccess.3:112 build/C/man3/exec.3:255 build/C/man2/execve.2:655 build/C/man2/exit_group.2:58 build/C/man2/fcntl.2:1325 build/C/man3/fexecve.3:115 build/C/man2/flock.2:222 build/C/man2/fork.2:262 build/C/man3/fpathconf.3:192 build/C/man2/fsync.2:178 build/C/man3/get_nprocs_conf.3:95 build/C/man2/get_thread_area.2:65 build/C/man3/getcwd.3:263 build/C/man2/getdomainname.2:138 build/C/man3/getdtablesize.3:102 build/C/man3/gethostid.3:134 build/C/man2/gethostname.2:187 build/C/man3/getlogin.3:204 build/C/man3/getopt.3:523 build/C/man2/getpagesize.2:118 build/C/man2/gettid.2:97 build/C/man3/getumask.3:72 build/C/man3/getusershell.3:96 build/C/man2/idle.2:71 build/C/man2/ioctl.2:155 build/C/man2/ioctl_list.2:962 build/C/man2/ioperm.2:132 build/C/man3/lockf.3:178 build/C/man2/mincore.2:176 build/C/man2/mkdir.2:152 build/C/man2/nice.2:119 build/C/man2/pread.2:157 build/C/man2/set_thread_area.2:81 build/C/man2/setup.2:79 build/C/man5/shells.5:66 build/C/man3/sleep.3:73 build/C/man3/swab.3:69 build/C/man2/swapon.2:202 build/C/man2/syscall.2:109 build/C/man2/syscalls.2:828 build/C/man3/sysconf.3:350 build/C/man2/sysctl.2:190 build/C/man2/sysinfo.2:103 build/C/man3/tcgetpgrp.3:128 build/C/man2/truncate.2:262 build/C/man3/ualarm.3:150 build/C/man2/umask.2:129 build/C/man2/uname.2:168 build/C/man2/uselib.2:119 build/C/man3/usleep.3:153 build/C/man2/vfork.2:286 build/C/man2/vhangup.2:76
+#: build/C/man2/_syscall.2:196 build/C/man2/access.2:409 build/C/man2/alarm.2:103 build/C/man2/brk.2:176 build/C/man2/chdir.2:148 build/C/man2/chmod.2:376 build/C/man2/chown.2:503 build/C/man2/chroot.2:162 build/C/man2/close.2:146 build/C/man3/confstr.3:163 build/C/man3/crypt.3:263 build/C/man3/daemon.3:121 build/C/man3/des_crypt.3:157 build/C/man2/dup.2:286 build/C/man3/encrypt.3:187 build/C/man7/environ.7:272 build/C/man3/euidaccess.3:120 build/C/man3/exec.3:257 build/C/man2/execve.2:771 build/C/man2/exit_group.2:59 build/C/man2/fcntl.2:1945 build/C/man3/fexecve.3:176 build/C/man2/flock.2:256 build/C/man2/fork.2:283 build/C/man3/fpathconf.3:194 build/C/man2/fsync.2:178 build/C/man3/get_nprocs_conf.3:96 build/C/man2/get_thread_area.2:66 build/C/man3/getcwd.3:264 build/C/man2/getdomainname.2:139 build/C/man3/getdtablesize.3:108 build/C/man3/gethostid.3:135 build/C/man2/gethostname.2:188 build/C/man3/getlogin.3:221 build/C/man3/getopt.3:527 build/C/man2/getpagesize.2:119 build/C/man2/gettid.2:98 build/C/man3/getumask.3:73 build/C/man3/getusershell.3:113 build/C/man2/idle.2:72 build/C/man2/ioctl.2:158 build/C/man2/ioctl_list.2:973 build/C/man2/ioperm.2:129 build/C/man3/lockf.3:184 build/C/man2/mincore.2:177 build/C/man2/mkdir.2:255 build/C/man2/nice.2:121 build/C/man2/pread.2:171 build/C/man2/set_thread_area.2:82 build/C/man2/setup.2:80 build/C/man5/shells.5:67 build/C/man3/sleep.3:74 build/C/man3/swab.3:89 build/C/man2/swapon.2:214 build/C/man2/syscall.2:255 build/C/man2/syscalls.2:859 build/C/man3/sysconf.3:355 build/C/man2/sysctl.2:191 build/C/man2/sysinfo.2:100 build/C/man3/tcgetpgrp.3:139 build/C/man2/truncate.2:273 build/C/man3/ualarm.3:163 build/C/man2/umask.2:132 build/C/man2/uname.2:180 build/C/man2/uselib.2:120 build/C/man3/usleep.3:164 build/C/man2/vfork.2:287 build/C/man2/vhangup.2:77 build/C/man2/execveat.2:241
msgid ""
-"This page is part of release 3.50 of the Linux I<man-pages> project. A "
-"description of the project, and information about reporting bugs, can be "
-"found at http://www.kernel.org/doc/man-pages/."
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at "
+"\\%http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man2/access.2:43
+#: build/C/man2/access.2:43 build/C/man2/brk.2:29 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man3/des_crypt.3:14 build/C/man7/environ.7:34 build/C/man2/fsync.2:38 build/C/man3/getcwd.3:32 build/C/man3/getdtablesize.3:27 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:25 build/C/man2/ioperm.2:34 build/C/man2/mkdir.2:11 build/C/man2/sysinfo.2:14
#, no-wrap
-msgid "2013-02-28"
+msgid "2014-08-19"
msgstr ""
#. type: Plain text
#: build/C/man2/access.2:46
-msgid "access - check real user's permissions for a file"
+msgid "access, faccessat - check user's permissions for a file"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:49 build/C/man2/alarm.2:36 build/C/man2/close.2:41 build/C/man3/confstr.3:37 build/C/man3/crypt.3:44 build/C/man2/dup.2:42 build/C/man3/fexecve.3:31 build/C/man3/fpathconf.3:47 build/C/man3/getcwd.3:38 build/C/man3/getopt.3:48 build/C/man3/getusershell.3:36 build/C/man3/sleep.3:32 build/C/man3/sysconf.3:33 build/C/man2/sysctl.2:36 build/C/man3/ualarm.3:30 build/C/man3/usleep.3:39
+#: build/C/man2/access.2:49 build/C/man2/alarm.2:36 build/C/man2/chown.2:44 build/C/man2/close.2:41 build/C/man3/confstr.3:38 build/C/man3/crypt.3:44 build/C/man2/dup.2:43 build/C/man3/fexecve.3:31 build/C/man3/fpathconf.3:47 build/C/man3/getcwd.3:38 build/C/man3/getopt.3:48 build/C/man3/getusershell.3:36 build/C/man3/sleep.3:32 build/C/man3/sysconf.3:33 build/C/man2/sysctl.2:36 build/C/man3/ualarm.3:30 build/C/man3/usleep.3:39
#, no-wrap
msgid "B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:59
+#: build/C/man2/access.2:54 build/C/man2/chown.2:53
+#, no-wrap
+msgid ""
+"B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
+"B<#include E<lt>unistd.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:57
+#, no-wrap
+msgid ""
+"B<int faccessat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<mode>B<, "
+"int >I<flags>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:62 build/C/man2/brk.2:42 build/C/man2/chdir.2:46 build/C/man2/chmod.2:53 build/C/man2/chown.2:62 build/C/man2/chroot.2:44 build/C/man3/confstr.3:45 build/C/man3/daemon.3:47 build/C/man3/exec.3:68 build/C/man3/fexecve.3:38 build/C/man2/fsync.2:51 build/C/man3/getcwd.3:49 build/C/man2/getdomainname.2:42 build/C/man3/getdtablesize.3:38 build/C/man3/gethostid.3:42 build/C/man2/gethostname.2:45 build/C/man3/getlogin.3:45 build/C/man3/getopt.3:69 build/C/man2/getpagesize.2:36 build/C/man3/getusershell.3:47 build/C/man3/lockf.3:39 build/C/man2/mincore.2:47 build/C/man2/mkdir.2:31 build/C/man2/nice.2:42 build/C/man2/pread.2:40 build/C/man2/truncate.2:58 build/C/man3/ualarm.3:37 build/C/man3/usleep.3:46 build/C/man2/vfork.2:41 build/C/man2/vhangup.2:39
+msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:65
+msgid "B<faccessat>():"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/access.2:68 build/C/man2/chmod.2:71 build/C/man2/chown.2:79 build/C/man3/fexecve.3:44 build/C/man2/mkdir.2:37
+#, no-wrap
+msgid "Since glibc 2.10:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:71 build/C/man2/chmod.2:74 build/C/man2/chown.2:82 build/C/man3/fexecve.3:47 build/C/man2/mkdir.2:40
+msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/access.2:71 build/C/man2/chmod.2:74 build/C/man2/chown.2:82 build/C/man3/fexecve.3:47 build/C/man2/mkdir.2:40
+#, no-wrap
+msgid "Before glibc 2.10:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:74 build/C/man2/chmod.2:77 build/C/man2/chown.2:85 build/C/man2/mkdir.2:43
+msgid "_ATFILE_SOURCE"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:85
msgid ""
"B<access>() checks whether the calling process can access the file "
"I<pathname>. If I<pathname> is a symbolic link, it is dereferenced."
#. F_OK is defined as 0 on every system that I know of.
#. type: Plain text
-#: build/C/man2/access.2:73
+#: build/C/man2/access.2:99
msgid ""
"The I<mode> specifies the accessibility check(s) to be performed, and is "
"either the value B<F_OK>, or a mask consisting of the bitwise OR of one or "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:82
+#: build/C/man2/access.2:108
msgid ""
"The check is done using the calling process's I<real> UID and GID, rather "
"than the effective IDs as is done when actually attempting an operation "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:88
+#: build/C/man2/access.2:114
msgid ""
"If the calling process is privileged (i.e., its real UID is zero), then an "
"B<X_OK> check is successful for a regular file if execute permission is "
"enabled for any of the file owner, group, or other."
msgstr ""
+#. type: SS
+#: build/C/man2/access.2:114
+#, no-wrap
+msgid "faccessat()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:120
+msgid ""
+"The B<faccessat>() system call operates in exactly the same way as "
+"B<access>(), except for the differences described here."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:130
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<access>() for a relative pathname)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:142
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<access>())."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:148 build/C/man2/chmod.2:216 build/C/man2/chown.2:179 build/C/man2/mkdir.2:110 build/C/man2/execveat.2:76
+msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:151
+msgid ""
+"I<flags> is constructed by ORing together zero or more of the following "
+"values:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/access.2:151
+#, no-wrap
+msgid "B<AT_EACCESS>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:158
+msgid ""
+"Perform access checks using the effective user and group IDs. By default, "
+"B<faccessat>() uses the real IDs (like B<access>())."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/access.2:158 build/C/man2/chmod.2:219 build/C/man2/chown.2:208 build/C/man2/execveat.2:100
+#, no-wrap
+msgid "B<AT_SYMLINK_NOFOLLOW>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:164
+msgid ""
+"If I<pathname> is a symbolic link, do not dereference it: instead return "
+"information about the link itself."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:169
+msgid "See B<openat>(2) for an explanation of the need for B<faccessat>()."
+msgstr ""
+
#. type: SH
-#: build/C/man2/access.2:88 build/C/man2/alarm.2:56 build/C/man2/brk.2:93 build/C/man2/chdir.2:70 build/C/man2/chmod.2:153 build/C/man2/chown.2:119 build/C/man2/chroot.2:90 build/C/man2/close.2:64 build/C/man3/confstr.3:94 build/C/man3/crypt.3:120 build/C/man3/daemon.3:72 build/C/man3/des_crypt.3:106 build/C/man2/dup.2:120 build/C/man3/encrypt.3:113 build/C/man3/euidaccess.3:58 build/C/man3/exec.3:183 build/C/man2/execve.2:355 build/C/man2/exit_group.2:39 build/C/man2/fcntl.2:1051 build/C/man3/fexecve.3:67 build/C/man2/flock.2:111 build/C/man2/fork.2:173 build/C/man3/fpathconf.3:160 build/C/man2/fsync.2:108 build/C/man3/get_nprocs_conf.3:46 build/C/man2/get_thread_area.2:29 build/C/man3/getcwd.3:156 build/C/man2/getdomainname.2:75 build/C/man3/getdtablesize.3:61 build/C/man3/gethostid.3:71 build/C/man2/gethostname.2:89 build/C/man3/getlogin.3:95 build/C/man3/getopt.3:274 build/C/man2/gettid.2:50 build/C/man3/getusershell.3:77 build/C/man2/idle.2:52 build/C/man2/ioctl.2:83 build/C/man2/ioctl_list.2:106 build/C/man2/ioperm.2:82 build/C/man3/lockf.3:116 build/C/man2/mincore.2:94 build/C/man2/mkdir.2:48 build/C/man2/nice.2:56 build/C/man2/pread.2:79 build/C/man2/set_thread_area.2:44 build/C/man2/setup.2:53 build/C/man3/sleep.3:40 build/C/man3/swab.3:54 build/C/man2/swapon.2:108 build/C/man2/syscall.2:72 build/C/man3/sysconf.3:311 build/C/man2/sysctl.2:74 build/C/man2/sysinfo.2:74 build/C/man3/tcgetpgrp.3:61 build/C/man2/truncate.2:110 build/C/man3/ualarm.3:81 build/C/man2/umask.2:90 build/C/man2/uname.2:63 build/C/man2/uselib.2:48 build/C/man3/usleep.3:75 build/C/man2/vhangup.2:50
+#: build/C/man2/access.2:169 build/C/man2/alarm.2:54 build/C/man2/brk.2:93 build/C/man2/chdir.2:70 build/C/man2/chmod.2:231 build/C/man2/chown.2:224 build/C/man2/chroot.2:90 build/C/man2/close.2:64 build/C/man3/confstr.3:95 build/C/man3/crypt.3:120 build/C/man3/daemon.3:73 build/C/man3/des_crypt.3:106 build/C/man2/dup.2:148 build/C/man3/encrypt.3:113 build/C/man3/euidaccess.3:58 build/C/man3/exec.3:183 build/C/man2/execve.2:355 build/C/man2/exit_group.2:39 build/C/man2/fcntl.2:1444 build/C/man3/fexecve.3:67 build/C/man2/flock.2:112 build/C/man2/fork.2:178 build/C/man3/fpathconf.3:160 build/C/man2/fsync.2:108 build/C/man3/get_nprocs_conf.3:46 build/C/man2/get_thread_area.2:29 build/C/man3/getcwd.3:156 build/C/man2/getdomainname.2:75 build/C/man3/getdtablesize.3:61 build/C/man3/gethostid.3:71 build/C/man2/gethostname.2:89 build/C/man3/getlogin.3:95 build/C/man3/getopt.3:274 build/C/man2/gettid.2:50 build/C/man3/getusershell.3:85 build/C/man2/idle.2:52 build/C/man2/ioctl.2:85 build/C/man2/ioctl_list.2:107 build/C/man2/ioperm.2:79 build/C/man3/lockf.3:116 build/C/man2/mincore.2:94 build/C/man2/mkdir.2:115 build/C/man2/nice.2:56 build/C/man2/pread.2:79 build/C/man2/set_thread_area.2:44 build/C/man2/setup.2:53 build/C/man3/sleep.3:40 build/C/man3/swab.3:68 build/C/man2/swapon.2:111 build/C/man2/syscall.2:74 build/C/man3/sysconf.3:314 build/C/man2/sysctl.2:74 build/C/man2/sysinfo.2:74 build/C/man3/tcgetpgrp.3:64 build/C/man2/truncate.2:110 build/C/man3/ualarm.3:81 build/C/man2/umask.2:92 build/C/man2/uname.2:63 build/C/man2/uselib.2:48 build/C/man3/usleep.3:75 build/C/man2/vhangup.2:50 build/C/man2/execveat.2:108
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:96 build/C/man3/euidaccess.3:66
+#: build/C/man2/access.2:185
msgid ""
-"On success (all requested permissions granted), zero is returned. On error "
-"(at least one bit in I<mode> asked for a permission that is denied, or some "
-"other error occurred), -1 is returned, and I<errno> is set appropriately."
+"On success (all requested permissions granted, or I<mode> is B<F_OK> and the "
+"file exists), zero is returned. On error (at least one bit in I<mode> asked "
+"for a permission that is denied, or I<mode> is B<F_OK> and the file does not "
+"exist, or some other error occurred), -1 is returned, and I<errno> is set "
+"appropriately."
msgstr ""
#. type: SH
-#: build/C/man2/access.2:96 build/C/man2/chdir.2:75 build/C/man2/chmod.2:158 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/close.2:70 build/C/man3/confstr.3:121 build/C/man3/crypt.3:123 build/C/man2/dup.2:126 build/C/man3/encrypt.3:115 build/C/man3/euidaccess.3:66 build/C/man3/exec.3:190 build/C/man2/execve.2:361 build/C/man2/fcntl.2:1084 build/C/man3/fexecve.3:74 build/C/man2/flock.2:116 build/C/man2/fork.2:180 build/C/man2/fsync.2:113 build/C/man2/get_thread_area.2:35 build/C/man3/getcwd.3:172 build/C/man2/getdomainname.2:80 build/C/man3/getdtablesize.3:63 build/C/man3/gethostid.3:81 build/C/man2/gethostname.2:94 build/C/man3/getlogin.3:101 build/C/man2/gettid.2:52 build/C/man2/idle.2:55 build/C/man2/ioctl.2:92 build/C/man2/ioperm.2:87 build/C/man3/lockf.3:121 build/C/man2/mincore.2:101 build/C/man2/mkdir.2:53 build/C/man2/nice.2:61 build/C/man2/pread.2:89 build/C/man2/set_thread_area.2:49 build/C/man2/setup.2:56 build/C/man2/swapon.2:113 build/C/man2/sysctl.2:81 build/C/man2/sysinfo.2:79 build/C/man3/tcgetpgrp.3:83 build/C/man2/truncate.2:115 build/C/man3/ualarm.3:84 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man3/usleep.3:77 build/C/man2/vhangup.2:55
+#: build/C/man2/access.2:185 build/C/man2/chdir.2:75 build/C/man2/chmod.2:236 build/C/man2/chown.2:229 build/C/man2/chroot.2:95 build/C/man2/close.2:70 build/C/man3/confstr.3:122 build/C/man3/crypt.3:123 build/C/man2/dup.2:154 build/C/man3/encrypt.3:115 build/C/man3/euidaccess.3:66 build/C/man3/exec.3:190 build/C/man2/execve.2:361 build/C/man2/fcntl.2:1482 build/C/man3/fexecve.3:74 build/C/man2/flock.2:117 build/C/man2/fork.2:185 build/C/man2/fsync.2:113 build/C/man2/get_thread_area.2:35 build/C/man3/getcwd.3:172 build/C/man2/getdomainname.2:80 build/C/man3/getdtablesize.3:63 build/C/man3/gethostid.3:81 build/C/man2/gethostname.2:94 build/C/man3/getlogin.3:103 build/C/man2/gettid.2:52 build/C/man2/idle.2:55 build/C/man2/ioctl.2:94 build/C/man2/ioperm.2:84 build/C/man3/lockf.3:121 build/C/man2/mincore.2:101 build/C/man2/mkdir.2:122 build/C/man2/nice.2:61 build/C/man2/pread.2:89 build/C/man2/set_thread_area.2:49 build/C/man2/setup.2:56 build/C/man2/swapon.2:116 build/C/man2/sysctl.2:81 build/C/man2/sysinfo.2:79 build/C/man3/tcgetpgrp.3:86 build/C/man2/truncate.2:115 build/C/man3/ualarm.3:84 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man3/usleep.3:82 build/C/man2/vhangup.2:55 build/C/man2/execveat.2:115
#, no-wrap
msgid "ERRORS"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:99
-msgid "B<access>() shall fail if:"
+#: build/C/man2/access.2:190
+msgid "B<access>() and B<faccessat>() shall fail if:"
msgstr ""
#. type: TP
-#: build/C/man2/access.2:99 build/C/man2/chdir.2:81 build/C/man2/chdir.2:117 build/C/man2/chmod.2:163 build/C/man2/chown.2:129 build/C/man2/chroot.2:98 build/C/man2/execve.2:369 build/C/man2/execve.2:376 build/C/man2/execve.2:379 build/C/man2/execve.2:382 build/C/man3/getcwd.3:173 build/C/man3/gethostid.3:84 build/C/man2/mkdir.2:54 build/C/man2/truncate.2:118 build/C/man2/uselib.2:59
+#: build/C/man2/access.2:190 build/C/man2/chdir.2:81 build/C/man2/chdir.2:117 build/C/man2/chmod.2:243 build/C/man2/chown.2:236 build/C/man2/chroot.2:98 build/C/man2/execve.2:369 build/C/man2/execve.2:376 build/C/man2/execve.2:379 build/C/man2/execve.2:382 build/C/man3/getcwd.3:173 build/C/man3/gethostid.3:84 build/C/man2/mkdir.2:123 build/C/man2/truncate.2:118 build/C/man2/uselib.2:59
#, no-wrap
msgid "B<EACCES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:106
+#: build/C/man2/access.2:197
msgid ""
"The requested access would be denied to the file, or search permission is "
"denied for one of the directories in the path prefix of I<pathname>. (See "
msgstr ""
#. type: TP
-#: build/C/man2/access.2:106 build/C/man2/chdir.2:94 build/C/man2/chmod.2:175 build/C/man2/chown.2:138 build/C/man2/chroot.2:112 build/C/man2/execve.2:403 build/C/man2/mkdir.2:76 build/C/man2/truncate.2:151
+#: build/C/man2/access.2:197 build/C/man2/chdir.2:94 build/C/man2/chmod.2:255 build/C/man2/chown.2:245 build/C/man2/chroot.2:112 build/C/man2/execve.2:417 build/C/man2/mkdir.2:145 build/C/man2/truncate.2:152 build/C/man2/execveat.2:130
#, no-wrap
msgid "B<ELOOP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:110 build/C/man2/mkdir.2:80
+#: build/C/man2/access.2:201 build/C/man2/chmod.2:259 build/C/man2/chown.2:249 build/C/man2/mkdir.2:149
msgid "Too many symbolic links were encountered in resolving I<pathname>."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:110 build/C/man2/chdir.2:98 build/C/man2/chmod.2:179 build/C/man2/chown.2:142 build/C/man2/chroot.2:116 build/C/man2/execve.2:411 build/C/man2/gethostname.2:109 build/C/man2/mkdir.2:84 build/C/man2/truncate.2:154
+#: build/C/man2/access.2:201 build/C/man2/chdir.2:98 build/C/man2/chmod.2:259 build/C/man2/chown.2:249 build/C/man2/chroot.2:116 build/C/man2/execve.2:425 build/C/man2/gethostname.2:109 build/C/man2/mkdir.2:153 build/C/man2/truncate.2:155
#, no-wrap
msgid "B<ENAMETOOLONG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:114
+#: build/C/man2/access.2:205 build/C/man2/chmod.2:263 build/C/man2/chown.2:253
msgid "I<pathname> is too long."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:114 build/C/man2/chdir.2:102 build/C/man2/chmod.2:183 build/C/man2/chown.2:146 build/C/man2/chown.2:172 build/C/man2/chroot.2:120 build/C/man2/execve.2:418 build/C/man3/getcwd.3:198 build/C/man3/getlogin.3:120 build/C/man2/mkdir.2:87 build/C/man2/swapon.2:136 build/C/man2/truncate.2:158
+#: build/C/man2/access.2:205 build/C/man2/chdir.2:102 build/C/man2/chmod.2:263 build/C/man2/chown.2:253 build/C/man2/chown.2:279 build/C/man2/chroot.2:120 build/C/man2/execve.2:432 build/C/man3/getcwd.3:198 build/C/man3/getlogin.3:122 build/C/man2/mkdir.2:156 build/C/man2/swapon.2:147 build/C/man2/truncate.2:159 build/C/man2/execveat.2:140
#, no-wrap
msgid "B<ENOENT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:119
+#: build/C/man2/access.2:210
msgid "A component of I<pathname> does not exist or is a dangling symbolic link."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:119 build/C/man2/chdir.2:108 build/C/man2/chmod.2:189 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:432 build/C/man2/mkdir.2:104 build/C/man2/sysctl.2:88 build/C/man2/truncate.2:161
+#: build/C/man2/access.2:210 build/C/man2/access.2:252 build/C/man2/chdir.2:108 build/C/man2/chmod.2:269 build/C/man2/chmod.2:314 build/C/man2/chown.2:259 build/C/man2/chown.2:303 build/C/man2/chroot.2:126 build/C/man2/execve.2:446 build/C/man2/fcntl.2:1617 build/C/man2/mkdir.2:173 build/C/man2/mkdir.2:194 build/C/man2/sysctl.2:88 build/C/man2/truncate.2:162 build/C/man2/execveat.2:154
#, no-wrap
msgid "B<ENOTDIR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:124 build/C/man2/mkdir.2:109
+#: build/C/man2/access.2:215 build/C/man2/mkdir.2:178
msgid "A component used as a directory in I<pathname> is not, in fact, a directory."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:124 build/C/man2/chmod.2:198 build/C/man2/chmod.2:216 build/C/man2/chown.2:159 build/C/man2/chown.2:178 build/C/man2/mkdir.2:114 build/C/man2/truncate.2:170
+#: build/C/man2/access.2:215 build/C/man2/chmod.2:278 build/C/man2/chmod.2:296 build/C/man2/chown.2:266 build/C/man2/chown.2:285 build/C/man2/mkdir.2:183 build/C/man2/truncate.2:175
#, no-wrap
msgid "B<EROFS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:127
-msgid "Write permission was requested for a file on a read-only file system."
+#: build/C/man2/access.2:218
+msgid "Write permission was requested for a file on a read-only filesystem."
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:130
-msgid "B<access>() may fail if:"
+#: build/C/man2/access.2:223
+msgid "B<access>() and B<faccessat>() may fail if:"
msgstr ""
#. type: TP
-#: build/C/man2/access.2:130 build/C/man2/chdir.2:87 build/C/man2/chmod.2:168 build/C/man2/chown.2:134 build/C/man2/chroot.2:105 build/C/man2/execve.2:386 build/C/man2/fcntl.2:1106 build/C/man2/get_thread_area.2:36 build/C/man3/getcwd.3:176 build/C/man2/getdomainname.2:83 build/C/man2/gethostname.2:95 build/C/man2/ioctl.2:97 build/C/man2/mincore.2:104 build/C/man2/mkdir.2:73 build/C/man2/set_thread_area.2:53 build/C/man2/sysctl.2:82 build/C/man2/sysinfo.2:80 build/C/man2/truncate.2:124 build/C/man2/uname.2:69
+#: build/C/man2/access.2:223 build/C/man2/chdir.2:87 build/C/man2/chmod.2:248 build/C/man2/chown.2:241 build/C/man2/chroot.2:105 build/C/man2/execve.2:396 build/C/man2/fcntl.2:1527 build/C/man2/get_thread_area.2:36 build/C/man3/getcwd.3:176 build/C/man2/getdomainname.2:83 build/C/man2/gethostname.2:95 build/C/man2/ioctl.2:99 build/C/man2/mincore.2:104 build/C/man2/mkdir.2:142 build/C/man2/set_thread_area.2:53 build/C/man2/sysctl.2:82 build/C/man2/sysinfo.2:80 build/C/man2/truncate.2:124 build/C/man2/uname.2:69
#, no-wrap
msgid "B<EFAULT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:134 build/C/man2/mkdir.2:76
+#: build/C/man2/access.2:227 build/C/man2/chmod.2:252 build/C/man2/chown.2:245 build/C/man2/mkdir.2:145
msgid "I<pathname> points outside your accessible address space."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:134 build/C/man3/confstr.3:122 build/C/man2/dup.2:151 build/C/man2/execve.2:390 build/C/man2/fcntl.2:1122 build/C/man3/fexecve.3:78 build/C/man2/flock.2:126 build/C/man2/get_thread_area.2:39 build/C/man3/getcwd.3:180 build/C/man2/getdomainname.2:87 build/C/man2/getdomainname.2:99 build/C/man2/gethostname.2:99 build/C/man2/ioctl.2:101 build/C/man2/ioperm.2:88 build/C/man3/lockf.3:147 build/C/man2/mincore.2:108 build/C/man2/set_thread_area.2:50 build/C/man2/swapon.2:121 build/C/man3/tcgetpgrp.3:88 build/C/man2/truncate.2:140 build/C/man2/truncate.2:191 build/C/man3/ualarm.3:88 build/C/man3/usleep.3:82
+#: build/C/man2/access.2:227 build/C/man2/access.2:248 build/C/man2/chmod.2:310 build/C/man2/chown.2:299 build/C/man3/confstr.3:123 build/C/man3/crypt.3:124 build/C/man2/dup.2:184 build/C/man2/dup.2:189 build/C/man2/execve.2:404 build/C/man2/fcntl.2:1553 build/C/man2/fcntl.2:1558 build/C/man2/fcntl.2:1566 build/C/man2/fcntl.2:1576 build/C/man2/fcntl.2:1588 build/C/man2/fcntl.2:1596 build/C/man3/fexecve.3:78 build/C/man2/flock.2:127 build/C/man2/get_thread_area.2:39 build/C/man3/getcwd.3:180 build/C/man2/getdomainname.2:87 build/C/man2/getdomainname.2:99 build/C/man2/gethostname.2:99 build/C/man2/ioctl.2:103 build/C/man2/ioperm.2:85 build/C/man3/lockf.3:147 build/C/man2/mincore.2:108 build/C/man2/set_thread_area.2:50 build/C/man2/swapon.2:124 build/C/man2/swapon.2:129 build/C/man2/swapon.2:139 build/C/man3/tcgetpgrp.3:91 build/C/man2/truncate.2:141 build/C/man2/truncate.2:196 build/C/man3/ualarm.3:88 build/C/man3/usleep.3:87 build/C/man2/execveat.2:126
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:138
+#: build/C/man2/access.2:231
msgid "I<mode> was incorrectly specified."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:138 build/C/man2/chdir.2:91 build/C/man2/chmod.2:172 build/C/man2/chmod.2:210 build/C/man2/chown.2:169 build/C/man2/chroot.2:109 build/C/man2/close.2:81 build/C/man2/execve.2:394 build/C/man2/fsync.2:118 build/C/man2/ioperm.2:94 build/C/man2/truncate.2:145
+#: build/C/man2/access.2:231 build/C/man2/chdir.2:91 build/C/man2/chmod.2:252 build/C/man2/chmod.2:290 build/C/man2/chown.2:276 build/C/man2/chroot.2:109 build/C/man2/close.2:81 build/C/man2/execve.2:408 build/C/man2/fsync.2:118 build/C/man2/ioperm.2:91 build/C/man2/truncate.2:146
#, no-wrap
msgid "B<EIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:141 build/C/man2/chdir.2:94 build/C/man2/chmod.2:175 build/C/man2/chroot.2:112 build/C/man2/close.2:84 build/C/man2/execve.2:397
+#: build/C/man2/access.2:234 build/C/man2/chdir.2:94 build/C/man2/chmod.2:255 build/C/man2/chroot.2:112 build/C/man2/close.2:84 build/C/man2/execve.2:411
msgid "An I/O error occurred."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:141 build/C/man2/chdir.2:105 build/C/man2/chmod.2:186 build/C/man2/chown.2:149 build/C/man2/chroot.2:123 build/C/man2/execve.2:429 build/C/man2/fork.2:196 build/C/man3/getlogin.3:123 build/C/man2/ioperm.2:97 build/C/man2/mincore.2:112 build/C/man2/mincore.2:124 build/C/man2/mkdir.2:92 build/C/man2/swapon.2:141
+#: build/C/man2/access.2:234 build/C/man2/chdir.2:105 build/C/man2/chmod.2:266 build/C/man2/chown.2:256 build/C/man2/chroot.2:123 build/C/man2/execve.2:443 build/C/man2/fork.2:216 build/C/man3/getlogin.3:125 build/C/man2/ioperm.2:94 build/C/man2/mincore.2:112 build/C/man2/mincore.2:124 build/C/man2/mkdir.2:161 build/C/man2/swapon.2:152
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:144 build/C/man2/chdir.2:108 build/C/man2/chmod.2:189 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:432 build/C/man2/mkdir.2:95
+#: build/C/man2/access.2:237 build/C/man2/chdir.2:108 build/C/man2/chmod.2:269 build/C/man2/chown.2:259 build/C/man2/chroot.2:126 build/C/man2/execve.2:446 build/C/man2/mkdir.2:164
msgid "Insufficient kernel memory was available."
msgstr ""
#. type: TP
-#: build/C/man2/access.2:144 build/C/man2/execve.2:447 build/C/man2/truncate.2:173
+#: build/C/man2/access.2:237 build/C/man2/execve.2:461 build/C/man2/truncate.2:178
#, no-wrap
msgid "B<ETXTBSY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:148
+#: build/C/man2/access.2:241
msgid "Write access was requested to an executable which is being executed."
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:150 build/C/man2/close.2:87 build/C/man2/fork.2:208 build/C/man3/swab.3:60 build/C/man2/umask.2:95
-msgid "SVr4, 4.3BSD, POSIX.1-2001."
+#: build/C/man2/access.2:244
+msgid "The following additional errors can occur for B<faccessat>():"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/access.2:244 build/C/man2/chdir.2:121 build/C/man2/chmod.2:285 build/C/man2/chmod.2:306 build/C/man2/chown.2:273 build/C/man2/chown.2:295 build/C/man2/close.2:71 build/C/man2/dup.2:155 build/C/man2/dup.2:159 build/C/man2/fcntl.2:1490 build/C/man2/fcntl.2:1494 build/C/man2/flock.2:118 build/C/man2/fsync.2:114 build/C/man2/ioctl.2:95 build/C/man3/lockf.3:130 build/C/man2/mkdir.2:190 build/C/man3/tcgetpgrp.3:87 build/C/man2/truncate.2:188 build/C/man2/execveat.2:122
+#, no-wrap
+msgid "B<EBADF>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:248 build/C/man2/chmod.2:310 build/C/man2/chown.2:299 build/C/man2/mkdir.2:194 build/C/man2/execveat.2:126
+msgid "I<dirfd> is not a valid file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:252 build/C/man2/chmod.2:314 build/C/man2/chown.2:303 build/C/man2/execveat.2:130
+msgid "Invalid flag specified in I<flags>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:258 build/C/man2/chmod.2:320 build/C/man2/chown.2:309 build/C/man2/mkdir.2:200 build/C/man2/execveat.2:160
+msgid ""
+"I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
+"file other than a directory."
+msgstr ""
+
+#. type: SH
+#: build/C/man2/access.2:258 build/C/man2/chmod.2:326 build/C/man2/chown.2:309 build/C/man3/des_crypt.3:131 build/C/man2/dup.2:203 build/C/man3/euidaccess.3:69 build/C/man3/exec.3:195 build/C/man2/exit_group.2:41 build/C/man3/fexecve.3:91 build/C/man2/get_thread_area.2:42 build/C/man2/gettid.2:54 build/C/man2/idle.2:59 build/C/man2/mincore.2:132 build/C/man2/mkdir.2:200 build/C/man2/pread.2:104 build/C/man2/set_thread_area.2:59 build/C/man2/setup.2:60 build/C/man2/sysinfo.2:83 build/C/man2/execveat.2:160
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:262
+msgid ""
+"B<faccessat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:265
+msgid "B<access>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:165
+#: build/C/man2/access.2:268
+msgid "B<faccessat>(): POSIX.1-2008."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:281
msgid ""
-"B<Warning>: Using B<access>() to check if a user is authorized to, for "
+"B<Warning>: Using these calls to check if a user is authorized to, for "
"example, open a file before actually doing so using B<open>(2) creates a "
"security hole, because the user might exploit the short time interval "
"between checking and opening the file to manipulate it. B<For this reason, "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:172
+#: build/C/man2/access.2:288
msgid ""
"B<access>() always dereferences symbolic links. If you need to check the "
"permissions on a symbolic link, use B<faccessat>(2) with the flag "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:179
+#: build/C/man2/access.2:294
msgid ""
-"B<access>() returns an error if any of the access types in I<mode> is "
-"denied, even if some of the other access types in I<mode> are permitted."
+"These calls return an error if any of the access types in I<mode> is denied, "
+"even if some of the other access types in I<mode> are permitted."
msgstr ""
#. HPU-UX 11 and Tru64 5.1 do this.
#. type: Plain text
-#: build/C/man2/access.2:186
+#: build/C/man2/access.2:301
msgid ""
"If the calling process has appropriate privileges (i.e., is superuser), "
"POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:194
+#: build/C/man2/access.2:309
msgid ""
-"A file is only accessible if the permissions on each of the directories in "
+"A file is accessible only if the permissions on each of the directories in "
"the path prefix of I<pathname> grant search (i.e., execute) access. If any "
"directory is inaccessible, then the B<access>() call will fail, regardless "
"of the permissions on the file itself."
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:202
+#: build/C/man2/access.2:317
msgid ""
"Only access bits are checked, not the file type or contents. Therefore, if "
"a directory is found to be writable, it probably means that files can be "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:208
+#: build/C/man2/access.2:326
msgid ""
-"B<access>() may not work correctly on NFS file systems with UID mapping "
+"These calls may not work correctly on NFSv2 filesystems with UID mapping "
"enabled, because UID mapping is done on the server and hidden from the "
-"client, which checks permissions. Similar problems can occur to FUSE "
-"mounts."
+"client, which checks permissions. (NFS versions 3 and higher perform the "
+"check on the server.) Similar problems can occur to FUSE mounts."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/access.2:326 build/C/man2/brk.2:140 build/C/man2/chmod.2:338 build/C/man2/gethostname.2:140 build/C/man2/uname.2:138
+#, no-wrap
+msgid "C library/kernel ABI differences"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:339
+msgid ""
+"The raw B<faccessat>() system call takes only the first three arguments. "
+"The B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are actually implemented "
+"within the glibc wrapper function for B<faccessat>(). If either of these "
+"flags is specified, then the wrapper function employs B<fstatat>(2) to "
+"determine access permissions."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/access.2:339 build/C/man2/chmod.2:348 build/C/man2/chown.2:380 build/C/man3/crypt.3:189 build/C/man2/mkdir.2:223
+#, no-wrap
+msgid "Glibc notes"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/access.2:357
+msgid ""
+"On older kernels where B<faccessat>() is unavailable (and when the "
+"B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are not specified), the glibc "
+"wrapper function falls back to the use of B<access>(). When I<pathname> is "
+"a relative pathname, glibc constructs a pathname based on the symbolic link "
+"in I</proc/self/fd> that corresponds to the I<dirfd> argument."
msgstr ""
#. type: SH
-#: build/C/man2/access.2:208 build/C/man7/environ.7:189 build/C/man2/fcntl.2:1239 build/C/man3/gethostid.3:122 build/C/man3/getlogin.3:161 build/C/man3/getopt.3:369 build/C/man2/mincore.2:144 build/C/man2/pread.2:133 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:326 build/C/man2/sysctl.2:135 build/C/man2/truncate.2:243 build/C/man2/vfork.2:252
+#: build/C/man2/access.2:357 build/C/man7/environ.7:209 build/C/man2/fcntl.2:1818 build/C/man3/fexecve.3:146 build/C/man3/gethostid.3:122 build/C/man3/getlogin.3:177 build/C/man3/getopt.3:369 build/C/man2/mincore.2:144 build/C/man2/pread.2:146 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:329 build/C/man2/sysctl.2:135 build/C/man2/truncate.2:253 build/C/man2/vfork.2:252 build/C/man2/execveat.2:210
#, no-wrap
msgid "BUGS"
msgstr ""
#. This behavior appears to have been an implementation accident.
#. type: Plain text
-#: build/C/man2/access.2:231
+#: build/C/man2/access.2:380
msgid ""
"In kernel 2.4 (and earlier) there is some strangeness in the handling of "
"B<X_OK> tests for superuser. If all categories of execute permission are "
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:242
+#: build/C/man2/access.2:390
msgid ""
-"In kernels before 2.6.20, B<access>() ignored the effect of the "
-"B<MS_NOEXEC> flag if it was used to B<mount>(2) the underlying file "
-"system. Since kernel 2.6.20, B<access>() honors this flag."
+"In kernels before 2.6.20, these calls ignored the effect of the B<MS_NOEXEC> "
+"flag if it was used to B<mount>(2) the underlying filesystem. Since kernel "
+"2.6.20, the B<MS_NOEXEC> is honored"
msgstr ""
#. type: Plain text
-#: build/C/man2/access.2:253
+#: build/C/man2/access.2:401
msgid ""
-"B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), B<setgid>(2), "
-"B<setuid>(2), B<stat>(2), B<euidaccess>(3), B<credentials>(7), "
-"B<path_resolution>(7)"
+"B<chmod>(2), B<chown>(2), B<open>(2), B<setgid>(2), B<setuid>(2), "
+"B<stat>(2), B<euidaccess>(3), B<credentials>(7), B<path_resolution>(7), "
+"B<symlink>(7)"
msgstr ""
#. type: TH
#. type: TH
#: build/C/man2/alarm.2:30
#, no-wrap
-msgid "2008-06-12"
+msgid "2014-02-23"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:52
-msgid "If I<seconds> is zero, no new B<alarm>() is scheduled."
+#: build/C/man2/alarm.2:50
+msgid "If I<seconds> is zero, any pending alarm is canceled."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:56
+#: build/C/man2/alarm.2:54
msgid "In any event any previously set B<alarm>() is canceled."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:61
+#: build/C/man2/alarm.2:59
msgid ""
"B<alarm>() returns the number of seconds remaining until any previously "
"scheduled alarm was due to be delivered, or zero if there was no previously "
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:63
+#: build/C/man2/alarm.2:61
msgid "SVr4, POSIX.1-2001, 4.3BSD."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:69
+#: build/C/man2/alarm.2:67
msgid ""
"B<alarm>() and B<setitimer>(2) share the same timer; calls to one will "
"interfere with use of the other."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:78
+#: build/C/man2/alarm.2:74
+msgid ""
+"Alarms created by B<alarm>() are preserved across B<execve>(2) and are not "
+"inherited by children created via B<fork>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/alarm.2:83
msgid ""
"B<sleep>(3) may be implemented using B<SIGALRM>; mixing calls to B<alarm>() "
"and B<sleep>(3) is a bad idea."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:81
+#: build/C/man2/alarm.2:86
msgid ""
"Scheduling delays can, as ever, cause the execution of the process to be "
"delayed by an arbitrary amount of time."
msgstr ""
#. type: Plain text
-#: build/C/man2/alarm.2:90
+#: build/C/man2/alarm.2:95
msgid ""
"B<gettimeofday>(2), B<pause>(2), B<select>(2), B<setitimer>(2), "
"B<sigaction>(2), B<signal>(2), B<sleep>(3), B<time>(7)"
msgid "BRK"
msgstr ""
-#. type: TH
-#: build/C/man2/brk.2:29 build/C/man2/chroot.2:33 build/C/man3/getcwd.3:32 build/C/man3/gethostid.3:29 build/C/man3/ualarm.3:24
-#, no-wrap
-msgid "2010-09-20"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/brk.2:32
msgid "brk, sbrk - change data segment size"
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:34 build/C/man2/chdir.2:38 build/C/man2/chown.2:43 build/C/man2/chroot.2:38 build/C/man3/daemon.3:41 build/C/man3/encrypt.3:37 build/C/man3/exec.3:46 build/C/man2/execve.2:42 build/C/man2/fork.2:44 build/C/man2/fsync.2:43 build/C/man2/getdomainname.2:34 build/C/man3/getdtablesize.3:32 build/C/man3/gethostid.3:34 build/C/man2/gethostname.2:37 build/C/man3/getlogin.3:33 build/C/man2/getpagesize.2:30 build/C/man2/idle.2:37 build/C/man3/lockf.3:33 build/C/man2/mincore.2:39 build/C/man2/nice.2:36 build/C/man2/pread.2:30 build/C/man2/setup.2:39 build/C/man2/swapon.2:42 build/C/man3/tcgetpgrp.3:30 build/C/man2/truncate.2:48 build/C/man2/uselib.2:36 build/C/man2/vfork.2:35 build/C/man2/vhangup.2:33
+#: build/C/man2/brk.2:34 build/C/man2/chdir.2:38 build/C/man2/chroot.2:38 build/C/man3/daemon.3:41 build/C/man3/encrypt.3:37 build/C/man3/exec.3:46 build/C/man2/execve.2:42 build/C/man2/fork.2:44 build/C/man2/fsync.2:43 build/C/man2/getdomainname.2:34 build/C/man3/getdtablesize.3:32 build/C/man3/gethostid.3:34 build/C/man2/gethostname.2:37 build/C/man3/getlogin.3:33 build/C/man2/getpagesize.2:30 build/C/man2/idle.2:37 build/C/man3/lockf.3:33 build/C/man2/mincore.2:39 build/C/man2/nice.2:36 build/C/man2/pread.2:30 build/C/man2/setup.2:39 build/C/man2/swapon.2:47 build/C/man3/tcgetpgrp.3:30 build/C/man2/truncate.2:48 build/C/man2/uselib.2:36 build/C/man2/vfork.2:35 build/C/man2/vhangup.2:33 build/C/man2/execveat.2:31
msgid "B<#include E<lt>unistd.hE<gt>>"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:42 build/C/man2/chdir.2:46 build/C/man2/chmod.2:44 build/C/man2/chown.2:53 build/C/man2/chroot.2:44 build/C/man3/confstr.3:44 build/C/man3/daemon.3:47 build/C/man3/exec.3:68 build/C/man3/fexecve.3:38 build/C/man2/fsync.2:51 build/C/man3/getcwd.3:49 build/C/man2/getdomainname.2:42 build/C/man3/getdtablesize.3:38 build/C/man3/gethostid.3:42 build/C/man2/gethostname.2:45 build/C/man3/getlogin.3:45 build/C/man3/getopt.3:69 build/C/man2/getpagesize.2:36 build/C/man3/getusershell.3:47 build/C/man3/lockf.3:39 build/C/man2/mincore.2:47 build/C/man2/nice.2:42 build/C/man2/pread.2:40 build/C/man2/truncate.2:58 build/C/man3/ualarm.3:37 build/C/man3/usleep.3:46 build/C/man2/vfork.2:41 build/C/man2/vhangup.2:39
-msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
-msgstr ""
-
-#. type: Plain text
#: build/C/man2/brk.2:46
msgid "B<brk>(), B<sbrk>():"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:102
+#: build/C/man2/brk.2:101
msgid ""
"On success, B<brk>() returns zero. On error, -1 is returned, and I<errno> "
-"is set to B<ENOMEM>. (But see I<Linux Notes> below.)"
+"is set to B<ENOMEM>."
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:114
+#: build/C/man2/brk.2:113
msgid ""
"On success, B<sbrk>() returns the previous program break. (If the break "
"was increased, then this value is a pointer to the start of the newly "
#. are not defined in the C Standard and are deliberately excluded from the
#. POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
#. type: Plain text
-#: build/C/man2/brk.2:122
+#: build/C/man2/brk.2:121
msgid "4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:131
+#: build/C/man2/brk.2:130
msgid ""
"Avoid using B<brk>() and B<sbrk>(): the B<malloc>(3) memory allocation "
"package is the portable and comfortable way of allocating memory."
#. \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
#. Tru64 5.1, glibc2.2).
#. type: Plain text
-#: build/C/man2/brk.2:141
+#: build/C/man2/brk.2:140
msgid ""
"Various systems use various types for the argument of B<sbrk>(). Common are "
"I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>."
msgstr ""
-#. type: SS
-#: build/C/man2/brk.2:141 build/C/man2/vfork.2:213
-#, no-wrap
-msgid "Linux notes"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/brk.2:157
+#: build/C/man2/brk.2:156
msgid ""
"The return value described above for B<brk>() is the behavior provided by "
"the glibc wrapper function for the Linux B<brk>() system call. (On most "
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:164
+#: build/C/man2/brk.2:163
msgid ""
"On Linux, B<sbrk>() is implemented as a library function that uses the "
"B<brk>() system call, and does some internal bookkeeping so that it can "
msgstr ""
#. type: Plain text
-#: build/C/man2/brk.2:169
+#: build/C/man2/brk.2:168
msgid "B<execve>(2), B<getrlimit>(2), B<end>(3), B<malloc>(3)"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:54 build/C/man2/chmod.2:53 build/C/man2/chown.2:62 build/C/man3/gethostid.3:50 build/C/man2/truncate.2:66 build/C/man2/truncate.2:74
+#: build/C/man2/chdir.2:54 build/C/man2/chmod.2:62 build/C/man2/chown.2:71 build/C/man3/gethostid.3:50 build/C/man2/truncate.2:66 build/C/man2/truncate.2:74
msgid ""
"_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:56 build/C/man2/chmod.2:55 build/C/man2/chown.2:64 build/C/man2/pread.2:50 build/C/man2/truncate.2:68
+#: build/C/man2/chdir.2:56 build/C/man2/chmod.2:64 build/C/man2/chown.2:73 build/C/man2/pread.2:50 build/C/man2/truncate.2:68
msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:75 build/C/man2/chmod.2:158 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/flock.2:116 build/C/man2/getdomainname.2:80 build/C/man2/gethostname.2:94 build/C/man2/ioperm.2:87 build/C/man3/lockf.3:121 build/C/man2/swapon.2:113 build/C/man2/sysinfo.2:79 build/C/man2/truncate.2:115 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man2/vhangup.2:55
+#: build/C/man2/chdir.2:75 build/C/man2/chmod.2:236 build/C/man2/chown.2:229 build/C/man2/chroot.2:95 build/C/man2/flock.2:117 build/C/man2/getdomainname.2:80 build/C/man2/gethostname.2:94 build/C/man2/ioperm.2:84 build/C/man3/lockf.3:121 build/C/man2/swapon.2:116 build/C/man2/sysinfo.2:79 build/C/man2/truncate.2:115 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man2/vhangup.2:55
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
#. type: Plain text
#: build/C/man2/chdir.2:81
msgid ""
-"Depending on the file system, other errors can be returned. The more "
-"general errors for B<chdir>() are listed below:"
+"Depending on the filesystem, other errors can be returned. The more general "
+"errors for B<chdir>() are listed below:"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:91 build/C/man2/chmod.2:172 build/C/man2/chown.2:138 build/C/man2/chroot.2:109
+#: build/C/man2/chdir.2:91 build/C/man2/chroot.2:109
msgid "I<path> points outside your accessible address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:98 build/C/man2/chmod.2:179 build/C/man2/chown.2:142 build/C/man2/chroot.2:116
+#: build/C/man2/chdir.2:98 build/C/man2/chroot.2:116
msgid "Too many symbolic links were encountered in resolving I<path>."
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:102 build/C/man2/chmod.2:183 build/C/man2/chown.2:146 build/C/man2/chroot.2:120
+#: build/C/man2/chdir.2:102 build/C/man2/chroot.2:120
msgid "I<path> is too long."
msgstr ""
#. type: Plain text
-#: build/C/man2/chdir.2:105 build/C/man2/chmod.2:186 build/C/man2/chown.2:149 build/C/man2/chroot.2:123
+#: build/C/man2/chdir.2:105 build/C/man2/chmod.2:266 build/C/man2/chown.2:256 build/C/man2/chroot.2:123
msgid "The file does not exist."
msgstr ""
msgid "Search permission was denied on the directory open on I<fd>."
msgstr ""
-#. type: TP
-#: build/C/man2/chdir.2:121 build/C/man2/chmod.2:205 build/C/man2/chown.2:166 build/C/man2/close.2:71 build/C/man2/dup.2:127 build/C/man2/fcntl.2:1092 build/C/man2/flock.2:117 build/C/man2/fsync.2:114 build/C/man2/ioctl.2:93 build/C/man3/lockf.3:130 build/C/man3/tcgetpgrp.3:84 build/C/man2/truncate.2:183
-#, no-wrap
-msgid "B<EBADF>"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:88
+#: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:91
msgid "I<fd> is not a valid file descriptor."
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/chmod.2:31
+#: build/C/man2/chmod.2:32
#, no-wrap
msgid "CHMOD"
msgstr ""
-#. type: TH
-#: build/C/man2/chmod.2:31 build/C/man2/gethostname.2:32
+#. type: Plain text
+#: build/C/man2/chmod.2:35
+msgid "chmod, fchmod, fchmodat - change permissions of a file"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:38
#, no-wrap
-msgid "2010-09-26"
+msgid "B<#include E<lt>sys/stat.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:34
-msgid "chmod, fchmod - change permissions of a file"
+#: build/C/man2/chmod.2:40
+#, no-wrap
+msgid "B<int chmod(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:36 build/C/man3/getumask.3:37 build/C/man2/umask.2:41
-msgid "B<#include E<lt>sys/stat.hE<gt>>"
+#: build/C/man2/chmod.2:42
+#, no-wrap
+msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:38
-msgid "B<int chmod(const char *>I<path>B<, mode_t >I<mode>B<);>"
+#: build/C/man2/chmod.2:45
+#, no-wrap
+msgid ""
+"B<#include E<lt>fcntl.hE<gt>> /* Definition of AT_* constants */\n"
+"B<#include E<lt>sys/stat.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:40
-msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>"
+#: build/C/man2/chmod.2:48
+#, no-wrap
+msgid ""
+"B<int fchmodat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
+">I<mode>B<, int >I<flags>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:49
+#: build/C/man2/chmod.2:58
msgid "B<fchmod>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:61
+#: build/C/man2/chmod.2:68
+msgid "B<fchmodat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:88
msgid ""
-"These system calls change the permissions of a file. They differ only in "
-"how the file is specified:"
+"The B<chmod>() and B<fchmod>() system calls change the permissions of a "
+"file. They differ only in how the file is specified:"
msgstr ""
#. type: IP
-#: build/C/man2/chmod.2:61 build/C/man2/chmod.2:66 build/C/man2/chown.2:70 build/C/man2/chown.2:75 build/C/man2/chown.2:79 build/C/man2/chown.2:233 build/C/man2/chown.2:238 build/C/man2/chown.2:244 build/C/man2/dup.2:62 build/C/man2/dup.2:68 build/C/man2/dup.2:101 build/C/man2/dup.2:110 build/C/man2/execve.2:124 build/C/man2/execve.2:128 build/C/man2/execve.2:131 build/C/man2/execve.2:134 build/C/man2/execve.2:137 build/C/man2/execve.2:140 build/C/man2/execve.2:143 build/C/man2/execve.2:146 build/C/man2/execve.2:149 build/C/man2/execve.2:152 build/C/man2/execve.2:156 build/C/man2/execve.2:160 build/C/man2/execve.2:169 build/C/man2/execve.2:176 build/C/man2/execve.2:181 build/C/man2/execve.2:188 build/C/man2/execve.2:195 build/C/man2/execve.2:202 build/C/man2/execve.2:209 build/C/man2/execve.2:213 build/C/man2/execve.2:216 build/C/man2/execve.2:224 build/C/man2/execve.2:228 build/C/man2/execve.2:233 build/C/man2/fork.2:52 build/C/man2/fork.2:56 build/C/man2/fork.2:58 build/C/man2/fork.2:62 build/C/man2/fork.2:68 build/C/man2/fork.2:71 build/C/man2/fork.2:74 build/C/man2/fork.2:77 build/C/man2/fork.2:82 build/C/man2/fork.2:94 build/C/man2/fork.2:101 build/C/man2/fork.2:107 build/C/man2/fork.2:114 build/C/man2/fork.2:120 build/C/man2/fork.2:125 build/C/man2/fork.2:133 build/C/man2/fork.2:142 build/C/man2/fork.2:156 build/C/man2/fork.2:165 build/C/man2/syscalls.2:87 build/C/man2/syscalls.2:90 build/C/man2/syscalls.2:96 build/C/man2/syscalls.2:112 build/C/man2/syscalls.2:118 build/C/man2/syscalls.2:124 build/C/man2/syscalls.2:130 build/C/man2/syscalls.2:137 build/C/man2/syscalls.2:676 build/C/man2/syscalls.2:697 build/C/man2/syscalls.2:708 build/C/man2/syscalls.2:715 build/C/man2/syscalls.2:726 build/C/man2/syscalls.2:738 build/C/man2/syscalls.2:759 build/C/man2/syscalls.2:767 build/C/man2/vfork.2:193 build/C/man2/vfork.2:197
+#: build/C/man2/chmod.2:88 build/C/man2/chmod.2:93 build/C/man2/chown.2:96 build/C/man2/chown.2:101 build/C/man2/chown.2:105 build/C/man2/chown.2:353 build/C/man2/chown.2:358 build/C/man2/chown.2:364 build/C/man2/dup.2:106 build/C/man2/dup.2:112 build/C/man2/dup.2:129 build/C/man2/dup.2:138 build/C/man2/execve.2:122 build/C/man2/execve.2:126 build/C/man2/execve.2:129 build/C/man2/execve.2:132 build/C/man2/execve.2:135 build/C/man2/execve.2:138 build/C/man2/execve.2:141 build/C/man2/execve.2:144 build/C/man2/execve.2:147 build/C/man2/execve.2:150 build/C/man2/execve.2:154 build/C/man2/execve.2:158 build/C/man2/execve.2:167 build/C/man2/execve.2:174 build/C/man2/execve.2:179 build/C/man2/execve.2:186 build/C/man2/execve.2:193 build/C/man2/execve.2:200 build/C/man2/execve.2:207 build/C/man2/execve.2:211 build/C/man2/execve.2:214 build/C/man2/execve.2:222 build/C/man2/execve.2:226 build/C/man2/execve.2:231 build/C/man2/fcntl.2:452 build/C/man2/fcntl.2:468 build/C/man2/fork.2:52 build/C/man2/fork.2:56 build/C/man2/fork.2:58 build/C/man2/fork.2:62 build/C/man2/fork.2:68 build/C/man2/fork.2:71 build/C/man2/fork.2:74 build/C/man2/fork.2:82 build/C/man2/fork.2:87 build/C/man2/fork.2:99 build/C/man2/fork.2:106 build/C/man2/fork.2:112 build/C/man2/fork.2:119 build/C/man2/fork.2:125 build/C/man2/fork.2:130 build/C/man2/fork.2:138 build/C/man2/fork.2:147 build/C/man2/fork.2:161 build/C/man2/fork.2:170 build/C/man2/syscalls.2:87 build/C/man2/syscalls.2:90 build/C/man2/syscalls.2:96 build/C/man2/syscalls.2:112 build/C/man2/syscalls.2:118 build/C/man2/syscalls.2:124 build/C/man2/syscalls.2:130 build/C/man2/syscalls.2:137 build/C/man2/syscalls.2:703 build/C/man2/syscalls.2:724 build/C/man2/syscalls.2:735 build/C/man2/syscalls.2:742 build/C/man2/syscalls.2:753 build/C/man2/syscalls.2:765 build/C/man2/syscalls.2:786 build/C/man2/syscalls.2:794 build/C/man2/vfork.2:193 build/C/man2/vfork.2:197
#, no-wrap
msgid "*"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:66
+#: build/C/man2/chmod.2:93
msgid ""
"B<chmod>() changes the permissions of the file specified whose pathname is "
-"given in I<path>, which is dereferenced if it is a symbolic link."
+"given in I<pathname>, which is dereferenced if it is a symbolic link."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:70
+#: build/C/man2/chmod.2:97
msgid ""
"B<fchmod>() changes the permissions of the file referred to by the open "
"file descriptor I<fd>."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:75
+#: build/C/man2/chmod.2:102
msgid ""
"The new file permissions are specified in I<mode>, which is a bit mask "
"created by ORing together zero or more of the following:"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:75
+#: build/C/man2/chmod.2:102
#, no-wrap
msgid "B<S_ISUID> (04000)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:79
+#: build/C/man2/chmod.2:106
msgid "set-user-ID (set process effective user ID on B<execve>(2))"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:79
+#: build/C/man2/chmod.2:106
#, no-wrap
msgid "B<S_ISGID> (02000)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:89
+#: build/C/man2/chmod.2:116
msgid ""
"set-group-ID (set process effective group ID on B<execve>(2); mandatory "
"locking, as described in B<fcntl>(2); take a new file's group from parent "
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:89
+#: build/C/man2/chmod.2:116
#, no-wrap
msgid "B<S_ISVTX> (01000)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:93
+#: build/C/man2/chmod.2:120
msgid "sticky bit (restricted deletion flag, as described in B<unlink>(2))"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:93
+#: build/C/man2/chmod.2:120
#, no-wrap
msgid "B<S_IRUSR> (00400)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:96
+#: build/C/man2/chmod.2:123
msgid "read by owner"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:96
+#: build/C/man2/chmod.2:123
#, no-wrap
msgid "B<S_IWUSR> (00200)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:99
+#: build/C/man2/chmod.2:126
msgid "write by owner"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:99
+#: build/C/man2/chmod.2:126
#, no-wrap
msgid "B<S_IXUSR> (00100)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:103
+#: build/C/man2/chmod.2:130
msgid ""
"execute/search by owner (\"search\" applies for directories, and means that "
"entries within the directory can be accessed)"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:103
+#: build/C/man2/chmod.2:130
#, no-wrap
msgid "B<S_IRGRP> (00040)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:106
+#: build/C/man2/chmod.2:133
msgid "read by group"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:106
+#: build/C/man2/chmod.2:133
#, no-wrap
msgid "B<S_IWGRP> (00020)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:109
+#: build/C/man2/chmod.2:136
msgid "write by group"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:109
+#: build/C/man2/chmod.2:136
#, no-wrap
msgid "B<S_IXGRP> (00010)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:112
+#: build/C/man2/chmod.2:139
msgid "execute/search by group"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:112
+#: build/C/man2/chmod.2:139
#, no-wrap
msgid "B<S_IROTH> (00004)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:115
+#: build/C/man2/chmod.2:142
msgid "read by others"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:115
+#: build/C/man2/chmod.2:142
#, no-wrap
msgid "B<S_IWOTH> (00002)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:118
+#: build/C/man2/chmod.2:145
msgid "write by others"
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:118
+#: build/C/man2/chmod.2:145
#, no-wrap
msgid "B<S_IXOTH> (00001)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:121
+#: build/C/man2/chmod.2:148
msgid "execute/search by others"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:126
+#: build/C/man2/chmod.2:153
msgid ""
"The effective UID of the calling process must match the owner of the file, "
"or the process must be privileged (Linux: it must have the B<CAP_FOWNER> "
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:135
+#: build/C/man2/chmod.2:162
msgid ""
"If the calling process is not privileged (Linux: does not have the "
"B<CAP_FSETID> capability), and the group of the file does not match the "
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:147
+#: build/C/man2/chmod.2:174
msgid ""
-"As a security measure, depending on the file system, the set-user-ID and "
+"As a security measure, depending on the filesystem, the set-user-ID and "
"set-group-ID execution bits may be turned off if a file is written. (On "
"Linux this occurs if the writing process does not have the B<CAP_FSETID> "
-"capability.) On some file systems, only the superuser can set the sticky "
+"capability.) On some filesystems, only the superuser can set the sticky "
"bit, which may have a special meaning. For the sticky bit, and for "
"set-user-ID and set-group-ID bits on directories, see B<stat>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:153
+#: build/C/man2/chmod.2:182
msgid ""
-"On NFS file systems, restricting the permissions will immediately influence "
+"On NFS filesystems, restricting the permissions will immediately influence "
"already open files, because the access control is done on the server, but "
"open files are maintained by the client. Widening the permissions may be "
"delayed for other clients if attribute caching is enabled on them."
msgstr ""
+#. type: SS
+#: build/C/man2/chmod.2:182
+#, no-wrap
+msgid "fchmodat()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:188
+msgid ""
+"The B<fchmodat>() system call operates in exactly the same way as "
+"B<chmod>(), except for the differences described here."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:198
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<chmod>() for a relative pathname)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:210
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<chmod>())."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:219
+msgid "I<flags> can either be 0, or include the following flag:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:226
+msgid ""
+"If I<pathname> is a symbolic link, do not dereference it: instead operate on "
+"the link itself. This flag is not currently implemented."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:231
+msgid "See B<openat>(2) for an explanation of the need for B<fchmodat>()."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/chmod.2:163
+#: build/C/man2/chmod.2:239 build/C/man2/chown.2:232
msgid ""
-"Depending on the file system, other errors can be returned. The more "
-"general errors for B<chmod>() are listed below:"
+"Depending on the filesystem, errors other than those listed below can be "
+"returned."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chmod.2:243
+msgid "The more general errors for B<chmod>() are listed below:"
msgstr ""
#. Also search permission is required on the final component,
#. maybe just to guarantee that it is a directory?
#. type: Plain text
-#: build/C/man2/chmod.2:168 build/C/man2/chown.2:134 build/C/man2/chroot.2:105
+#: build/C/man2/chmod.2:248 build/C/man2/chown.2:241 build/C/man2/chroot.2:105
msgid ""
"Search permission is denied on a component of the path prefix. (See also "
"B<path_resolution>(7).)"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:192 build/C/man2/chown.2:155 build/C/man2/truncate.2:164
+#: build/C/man2/chmod.2:272 build/C/man2/chown.2:262 build/C/man2/truncate.2:165
msgid "A component of the path prefix is not a directory."
msgstr ""
#. type: TP
-#: build/C/man2/chmod.2:192 build/C/man2/chmod.2:213 build/C/man2/chown.2:155 build/C/man2/chown.2:175 build/C/man2/chroot.2:131 build/C/man2/execve.2:437 build/C/man2/execve.2:443 build/C/man2/fcntl.2:1141 build/C/man2/getdomainname.2:91 build/C/man3/gethostid.3:88 build/C/man2/gethostname.2:117 build/C/man2/idle.2:56 build/C/man2/ioperm.2:101 build/C/man2/mkdir.2:109 build/C/man2/nice.2:62 build/C/man2/setup.2:57 build/C/man2/swapon.2:144 build/C/man3/tcgetpgrp.3:101 build/C/man2/truncate.2:164 build/C/man2/vhangup.2:56
+#: build/C/man2/chmod.2:272 build/C/man2/chmod.2:293 build/C/man2/chown.2:262 build/C/man2/chown.2:282 build/C/man2/chroot.2:131 build/C/man3/crypt.3:169 build/C/man2/execve.2:451 build/C/man2/execve.2:457 build/C/man2/fcntl.2:1625 build/C/man2/fcntl.2:1630 build/C/man2/getdomainname.2:91 build/C/man3/gethostid.3:88 build/C/man2/gethostname.2:117 build/C/man2/idle.2:56 build/C/man2/ioperm.2:98 build/C/man2/mkdir.2:178 build/C/man2/nice.2:62 build/C/man2/setup.2:57 build/C/man2/swapon.2:155 build/C/man3/tcgetpgrp.3:104 build/C/man2/truncate.2:165 build/C/man2/truncate.2:171 build/C/man2/vhangup.2:56
#, no-wrap
msgid "B<EPERM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:198
+#: build/C/man2/chmod.2:278
msgid ""
"The effective UID does not match the owner of the file, and the process is "
"not privileged (Linux: it does not have the B<CAP_FOWNER> capability)."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:201 build/C/man2/chown.2:162 build/C/man2/truncate.2:173
-msgid "The named file resides on a read-only file system."
+#: build/C/man2/chmod.2:281 build/C/man2/chown.2:269 build/C/man2/truncate.2:178
+msgid "The named file resides on a read-only filesystem."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:205
+#: build/C/man2/chmod.2:285
msgid "The general errors for B<fchmod>() are listed below:"
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:210
+#: build/C/man2/chmod.2:290
msgid "The file descriptor I<fd> is not valid."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:213 build/C/man2/chmod.2:216 build/C/man2/chmod.2:219 build/C/man2/chown.2:175 build/C/man2/chown.2:178 build/C/man2/chown.2:181
+#: build/C/man2/chmod.2:293 build/C/man2/chmod.2:296 build/C/man2/chmod.2:299 build/C/man2/chown.2:282 build/C/man2/chown.2:285 build/C/man2/chown.2:288
msgid "See above."
msgstr ""
#. type: Plain text
-#: build/C/man2/chmod.2:221 build/C/man2/chown.2:183
-msgid "4.4BSD, SVr4, POSIX.1-2001."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/chmod.2:228
+#: build/C/man2/chmod.2:306
msgid ""
-"B<chown>(2), B<execve>(2), B<fchmodat>(2), B<open>(2), B<stat>(2), "
-"B<path_resolution>(7)"
-msgstr ""
-
-#. type: TH
-#: build/C/man2/chown.2:38
-#, no-wrap
-msgid "CHOWN"
+"The same errors that occur for B<chmod>() can also occur for "
+"B<fchmodat>(). The following additional errors can occur for B<fchmodat>():"
msgstr ""
-#. type: TH
-#: build/C/man2/chown.2:38
+#. type: TP
+#: build/C/man2/chmod.2:320
#, no-wrap
-msgid "2010-11-22"
+msgid "B<ENOTSUP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:41
-msgid "chown, fchown, lchown - change ownership of a file"
+#: build/C/man2/chmod.2:326
+msgid "I<flags> specified B<AT_SYMLINK_NOFOLLOW>, which is not supported."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:45
-msgid "B<int chown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
+#: build/C/man2/chmod.2:330
+msgid ""
+"B<fchmodat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:47
-msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
+#: build/C/man2/chmod.2:334
+msgid "B<chmod>(), B<fchmod>(): 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:49
-msgid "B<int lchown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
+#: build/C/man2/chmod.2:337
+msgid "B<fchmodat>(): POSIX.1-2008."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:57
-msgid "B<fchown>(), B<lchown>():"
+#: build/C/man2/chmod.2:348
+msgid ""
+"The GNU C library B<fchmodat>() wrapper function implements the "
+"POSIX-specified interface described in this page. This interface differs "
+"from the underlying Linux system call, which does I<not> have a I<flags> "
+"argument."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:70
+#: build/C/man2/chmod.2:361
msgid ""
-"These system calls change the owner and group of a file. They differ only "
-"in how the file is specified:"
+"On older kernels where B<fchmodat>() is unavailable, the glibc wrapper "
+"function falls back to the use of B<chmod>(). When I<pathname> is a "
+"relative pathname, glibc constructs a pathname based on the symbolic link in "
+"I</proc/self/fd> that corresponds to the I<dirfd> argument."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:75
+#: build/C/man2/chmod.2:368
msgid ""
-"B<chown>() changes the ownership of the file specified by I<path>, which is "
-"dereferenced if it is a symbolic link."
+"B<chown>(2), B<execve>(2), B<open>(2), B<stat>(2), B<path_resolution>(7), "
+"B<symlink>(7)"
+msgstr ""
+
+#. type: TH
+#: build/C/man2/chown.2:38
+#, no-wrap
+msgid "CHOWN"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:41
+msgid "chown, fchown, lchown, fchownat - change ownership of a file"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:46
+#, no-wrap
+msgid ""
+"B<int chown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
+">I<group>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:48
+#, no-wrap
+msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:50
+#, no-wrap
+msgid ""
+"B<int lchown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
+">I<group>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:56
+#, no-wrap
+msgid ""
+"B<int fchownat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
+"B< uid_t >I<owner>B<, gid_t >I<group>B<, int >I<flags>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:66
+msgid "B<fchown>(), B<lchown>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:76
+msgid "B<fchownat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:96
+msgid ""
+"These system calls change the owner and group of a file. The B<chown>(), "
+"B<fchown>(), and B<lchown>() system calls differ only in how the file is "
+"specified:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:101
+msgid ""
+"B<chown>() changes the ownership of the file specified by I<pathname>, "
+"which is dereferenced if it is a symbolic link."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:79
+#: build/C/man2/chown.2:105
msgid ""
"B<fchown>() changes the ownership of the file referred to by the open file "
"descriptor I<fd>."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:84
+#: build/C/man2/chown.2:110
msgid "B<lchown>() is like B<chown>(), but does not dereference symbolic links."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:93
+#: build/C/man2/chown.2:119
msgid ""
"Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may "
"change the owner of a file. The owner of a file may change the group of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:99
+#: build/C/man2/chown.2:125
msgid "If the I<owner> or I<group> is specified as -1, then that ID is not changed."
msgstr ""
#. In 2.2, up to 2.2.12, these bits were not cleared for superuser.
#. Since 2.2.13, superuser is once more like everyone else.
#. type: Plain text
-#: build/C/man2/chown.2:119
+#: build/C/man2/chown.2:145
msgid ""
"When the owner or group of an executable file are changed by an unprivileged "
"user the B<S_ISUID> and B<S_ISGID> mode bits are cleared. POSIX does not "
"B<chown>()."
msgstr ""
+#. type: SS
+#: build/C/man2/chown.2:145
+#, no-wrap
+msgid "fchownat()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:151
+msgid ""
+"The B<fchownat>() system call operates in exactly the same way as "
+"B<chown>(), except for the differences described here."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:161
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<chown>() for a relative pathname)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:173
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<chown>())."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:184
+msgid ""
+"The I<flags> argument is a bit mask created by ORing together 0 or more of "
+"the following values;"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/chown.2:184
+#, no-wrap
+msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
+msgstr ""
+
+#. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
+#. Before glibc 2.16, defining _ATFILE_SOURCE sufficed
+#. type: Plain text
+#: build/C/man2/chown.2:207
+msgid ""
+"If I<pathname> is an empty string, operate on the file referred to by "
+"I<dirfd> (which may have been obtained using the B<open>(2) B<O_PATH> "
+"flag). In this case, I<dirfd> can refer to any type of file, not just a "
+"directory. If I<dirfd> is B<AT_FDCWD>, the call operates on the current "
+"working directory. This flag is Linux-specific; define B<_GNU_SOURCE> to "
+"obtain its definition."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/chown.2:129
+#: build/C/man2/chown.2:219
msgid ""
-"Depending on the file system, other errors can be returned. The more "
-"general errors for B<chown>() are listed below."
+"If I<pathname> is a symbolic link, do not dereference it: instead operate on "
+"the link itself, like B<lchown>(). (By default, B<fchownat>() dereferences "
+"symbolic links, like B<chown>().)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:224
+msgid "See B<openat>(2) for an explanation of the need for B<fchownat>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:236
+msgid "The more general errors for B<chown>() are listed below."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:159
+#: build/C/man2/chown.2:266
msgid ""
"The calling process did not have the required permissions (see above) to "
"change owner and/or group."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:166
+#: build/C/man2/chown.2:273
msgid "The general errors for B<fchown>() are listed below:"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:169
+#: build/C/man2/chown.2:276
msgid "The descriptor is not valid."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:172
+#: build/C/man2/chown.2:279
msgid "A low-level I/O error occurred while modifying the inode."
msgstr ""
+#. type: Plain text
+#: build/C/man2/chown.2:295
+msgid ""
+"The same errors that occur for B<chown>() can also occur for "
+"B<fchownat>(). The following additional errors can occur for B<fchownat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:313
+msgid ""
+"B<fchownat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:318
+msgid ""
+"B<chown>(), B<fchown>(), B<lchown>(): 4.4BSD, SVr4, POSIX.1-2001, "
+"POSIX.1-2008."
+msgstr ""
+
#. chown():
#. SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no
#. ENOMEM. POSIX.1 does not document ENOMEM or ELOOP error conditions.
#. SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK
#. error conditions.
#. type: Plain text
-#: build/C/man2/chown.2:192
+#: build/C/man2/chown.2:327
msgid ""
-"The 4.4BSD version can only be used by the superuser (that is, ordinary "
+"The 4.4BSD version can be used only by the superuser (that is, ordinary "
"users cannot give away files)."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:211
-msgid ""
-"The original Linux B<chown>(), B<fchown>(), and B<lchown>() system calls "
-"supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added "
-"B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs. The "
-"glibc B<chown>(), B<fchown>(), and B<lchown>() wrapper functions "
-"transparently deal with the variations across kernel versions."
+#: build/C/man2/chown.2:330
+msgid "B<fchownat>(): POSIX.1-2008."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/chown.2:331
+#, no-wrap
+msgid "Ownership of new files"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:233
+#: build/C/man2/chown.2:353
msgid ""
"When a new file is created (by, for example, B<open>(2) or B<mkdir>(2)), "
-"its owner is made the same as the file system user ID of the creating "
+"its owner is made the same as the filesystem user ID of the creating "
"process. The group of the file depends on a range of factors, including the "
-"type of file system, the options used to mount the file system, and whether "
-"or not the set-group-ID permission bit is enabled on the parent directory. "
-"If the file system supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
+"type of filesystem, the options used to mount the filesystem, and whether or "
+"not the set-group-ID permission bit is enabled on the parent directory. If "
+"the filesystem supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
"bsdgroups>) and I<-o\\ nogrpid> (or, synonymously I<-o\\ sysvgroups>) "
"B<mount>(8) options, then the rules are as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:238
+#: build/C/man2/chown.2:358
msgid ""
-"If the file system is mounted with I<-o\\ grpid>, then the group of a new "
+"If the filesystem is mounted with I<-o\\ grpid>, then the group of a new "
"file is made the same as that of the parent directory."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:244
+#: build/C/man2/chown.2:364
msgid ""
-"If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
+"If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
"is disabled on the parent directory, then the group of a new file is made "
-"the same as the process's file system GID."
+"the same as the process's filesystem GID."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:250
+#: build/C/man2/chown.2:370
msgid ""
-"If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
+"If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
"is enabled on the parent directory, then the group of a new file is made the "
"same as that of the parent directory."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:260
+#: build/C/man2/chown.2:380
msgid ""
"As at Linux 2.6.25, the I<-o\\ grpid> and I<-o\\ nogrpid> mount options are "
-"supported by ext2, ext3, ext4, and XFS. File systems that don't support "
+"supported by ext2, ext3, ext4, and XFS. Filesystems that don't support "
"these mount options follow the I<-o\\ nogrpid> rules."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:273
+#: build/C/man2/chown.2:395
+msgid ""
+"On older kernels where B<fchownat>() is unavailable, the glibc wrapper "
+"function falls back to the use of B<chown>() and B<lchown>(). When "
+"I<pathname> is a relative pathname, glibc constructs a pathname based on the "
+"symbolic link in I</proc/self/fd> that corresponds to the I<dirfd> argument."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/chown.2:395
+#, no-wrap
+msgid "NFS"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:408
+msgid ""
+"The B<chown>() semantics are deliberately violated on NFS filesystems which "
+"have UID mapping enabled. Additionally, the semantics of all system calls "
+"which access the file contents are violated, because B<chown>() may cause "
+"immediate access revocation on already open files. Client side caching may "
+"lead to a delay between the time where ownership have been changed to allow "
+"access for a user and the time where the file can actually be accessed by "
+"the user on other clients."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/chown.2:408
+#, no-wrap
+msgid "Historical details"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/chown.2:427
msgid ""
-"The B<chown>() semantics are deliberately violated on NFS file systems "
-"which have UID mapping enabled. Additionally, the semantics of all system "
-"calls which access the file contents are violated, because B<chown>() may "
-"cause immediate access revocation on already open files. Client side "
-"caching may lead to a delay between the time where ownership have been "
-"changed to allow access for a user and the time where the file can actually "
-"be accessed by the user on other clients."
+"The original Linux B<chown>(), B<fchown>(), and B<lchown>() system calls "
+"supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added "
+"B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs. The "
+"glibc B<chown>(), B<fchown>(), and B<lchown>() wrapper functions "
+"transparently deal with the variations across kernel versions."
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:288
+#: build/C/man2/chown.2:442
msgid ""
"In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>() "
"did not follow symbolic links. Since Linux 2.1.81, B<chown>() does follow "
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:297
+#: build/C/man2/chown.2:451
msgid ""
"The following program changes the ownership of the file named in its second "
"command-line argument to the value specified in its first command-line "
"perform a lookup in the system password file)."
msgstr ""
+#. type: SS
+#: build/C/man2/chown.2:451
+#, no-wrap
+msgid "Program source"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/chown.2:303
+#: build/C/man2/chown.2:457
#, no-wrap
msgid ""
"#include E<lt>pwd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:310
+#: build/C/man2/chown.2:464
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:315
+#: build/C/man2/chown.2:469
#, no-wrap
msgid ""
" if (argc != 3 || argv[1][0] == \\(aq\\e0\\(aq) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:317
+#: build/C/man2/chown.2:471
#, no-wrap
msgid " uid = strtol(argv[1], &endptr, 10); /* Allow a numeric string */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:324
+#: build/C/man2/chown.2:478
#, no-wrap
msgid ""
" if (*endptr != \\(aq\\e0\\(aq) { /* Was not pure numeric string "
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:327
+#: build/C/man2/chown.2:481
#, no-wrap
msgid ""
" uid = pwd-E<gt>pw_uid;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:332
+#: build/C/man2/chown.2:486
#, no-wrap
msgid ""
" if (chown(argv[2], uid, -1) == -1) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:335 build/C/man2/execve.2:563 build/C/man3/getopt.3:428 build/C/man3/getopt.3:513
+#: build/C/man2/chown.2:489 build/C/man2/execve.2:677 build/C/man3/getopt.3:430 build/C/man3/getopt.3:515
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/chown.2:342
-msgid ""
-"B<chmod>(2), B<fchownat>(2), B<flock>(2), B<path_resolution>(7), "
-"B<symlink>(7)"
+#: build/C/man2/chown.2:495
+msgid "B<chmod>(2), B<flock>(2), B<path_resolution>(7), B<symlink>(7)"
msgstr ""
#. type: TH
msgid "CHROOT"
msgstr ""
+#. type: TH
+#: build/C/man2/chroot.2:33 build/C/man3/gethostid.3:29
+#, no-wrap
+msgid "2010-09-20"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/chroot.2:36
msgid "chroot - change root directory"
#. type: Plain text
#: build/C/man2/chroot.2:98
msgid ""
-"Depending on the file system, other errors can be returned. The more "
-"general errors are listed below:"
+"Depending on the filesystem, other errors can be returned. The more general "
+"errors are listed below:"
msgstr ""
#. type: Plain text
#. type: TH
#: build/C/man2/close.2:35
#, no-wrap
-msgid "2007-12-28"
+msgid "2013-12-30"
msgstr ""
#. type: Plain text
"If I<fd> is the last file descriptor referring to the underlying open file "
"description (see B<open>(2)), the resources associated with the open file "
"description are freed; if the descriptor was the last reference to a file "
-"which has been removed using B<unlink>(2) the file is deleted."
+"which has been removed using B<unlink>(2), the file is deleted."
msgstr ""
#. type: Plain text
msgstr ""
#. type: TP
-#: build/C/man2/close.2:75 build/C/man2/dup.2:143 build/C/man2/fcntl.2:1110 build/C/man2/flock.2:121 build/C/man2/truncate.2:133 build/C/man3/ualarm.3:85 build/C/man3/usleep.3:78
+#: build/C/man2/close.2:75 build/C/man2/dup.2:176 build/C/man2/fcntl.2:1531 build/C/man2/fcntl.2:1540 build/C/man2/flock.2:122 build/C/man2/truncate.2:134 build/C/man3/ualarm.3:85 build/C/man3/usleep.3:83
#, no-wrap
msgid "B<EINTR>"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/close.2:101
+#: build/C/man2/close.2:87 build/C/man2/fork.2:228 build/C/man3/swab.3:79 build/C/man2/umask.2:97
+msgid "SVr4, 4.3BSD, POSIX.1-2001."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/close.2:107
msgid ""
"Not checking the return value of B<close>() is a common but nevertheless "
"serious programming error. It is quite possible that errors on a previous "
"B<write>(2) operation are first reported at the final B<close>(). Not "
"checking the return value when closing the file may lead to silent loss of "
-"data. This can especially be observed with NFS and with disk quota."
+"data. This can especially be observed with NFS and with disk quota. Note "
+"that the return value should be used only for diagnostics. In particular "
+"B<close>() should not be retried after an B<EINTR> since this may cause a "
+"reused descriptor from another thread to be closed."
msgstr ""
#. type: Plain text
-#: build/C/man2/close.2:110
+#: build/C/man2/close.2:116
msgid ""
"A successful close does not guarantee that the data has been successfully "
-"saved to disk, as the kernel defers writes. It is not common for a file "
-"system to flush the buffers when the stream is closed. If you need to be "
-"sure that the data is physically stored use B<fsync>(2). (It will depend on "
-"the disk hardware at this point.)"
+"saved to disk, as the kernel defers writes. It is not common for a "
+"filesystem to flush the buffers when the stream is closed. If you need to "
+"be sure that the data is physically stored, use B<fsync>(2). (It will "
+"depend on the disk hardware at this point.)"
msgstr ""
#. Date: Tue, 4 Sep 2007 13:57:35 +0200
#. One such race involves signals and ERESTARTSYS. If a file descriptor
#. in use by a system call is closed and then reused by e.g. an
#. independent open() in some unrelated thread, before the original system
-#. call has restared after ERESTARTSYS, the original system call will
+#. call has restarted after ERESTARTSYS, the original system call will
#. later restart with the reused file descriptor. This is most likely a
#. serious programming error.
#. type: Plain text
-#: build/C/man2/close.2:125
+#: build/C/man2/close.2:131
msgid ""
"It is probably unwise to close file descriptors while they may be in use by "
"system calls in other threads in the same process. Since a file descriptor "
msgstr ""
#. type: Plain text
-#: build/C/man2/close.2:132
+#: build/C/man2/close.2:138
msgid ""
"B<fcntl>(2), B<fsync>(2), B<open>(2), B<shutdown>(2), B<unlink>(2), "
"B<fclose>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/confstr.3:31
+#: build/C/man3/confstr.3:32
#, no-wrap
msgid "CONFSTR"
msgstr ""
#. type: TH
-#: build/C/man3/confstr.3:31
+#: build/C/man3/confstr.3:32
#, no-wrap
-msgid "2012-05-10"
+msgid "2014-03-20"
msgstr ""
#. type: TH
-#: build/C/man3/confstr.3:31 build/C/man3/daemon.3:36 build/C/man3/exec.3:41 build/C/man3/fpathconf.3:41 build/C/man3/get_nprocs_conf.3:26 build/C/man3/getcwd.3:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man3/lockf.3:28 build/C/man3/sleep.3:26 build/C/man3/sysconf.3:27 build/C/man3/tcgetpgrp.3:25
+#: build/C/man3/confstr.3:32 build/C/man3/daemon.3:36 build/C/man3/exec.3:41 build/C/man3/fpathconf.3:41 build/C/man3/get_nprocs_conf.3:26 build/C/man3/getcwd.3:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man3/lockf.3:28 build/C/man3/sleep.3:26 build/C/man3/sysconf.3:27 build/C/man3/tcgetpgrp.3:25
#, no-wrap
msgid "GNU"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:34
+#: build/C/man3/confstr.3:35
msgid "confstr - get configuration dependent string variables"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:39
+#: build/C/man3/confstr.3:40
#, no-wrap
msgid "B<size_t confstr(int >I<name>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:48
+#: build/C/man3/confstr.3:49
msgid "B<confstr>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:51
+#: build/C/man3/confstr.3:52
msgid "B<confstr>() gets the value of configuration-dependent string variables."
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:56
+#: build/C/man3/confstr.3:57
msgid ""
"The I<name> argument is the system variable to be queried. The following "
"variables are supported:"
msgstr ""
#. type: TP
-#: build/C/man3/confstr.3:56
+#: build/C/man3/confstr.3:57
#, no-wrap
msgid "B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:60
+#: build/C/man3/confstr.3:61
msgid ""
"A string which identifies the GNU C library version on this system (e.g, "
"\"glibc 2.3.4\")."
msgstr ""
#. type: TP
-#: build/C/man3/confstr.3:60
+#: build/C/man3/confstr.3:61
#, no-wrap
msgid "B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:64
+#: build/C/man3/confstr.3:65
msgid ""
"A string which identifies the POSIX implementation supplied by this C "
"library (e.g, \"NPTL 2.3.4\" or \"linuxthreads-0.10\")."
msgstr ""
#. type: TP
-#: build/C/man3/confstr.3:64
+#: build/C/man3/confstr.3:65
#, no-wrap
msgid "B<_CS_PATH>"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:70
+#: build/C/man3/confstr.3:71
msgid ""
"A value for the B<PATH> variable which indicates where all the POSIX.2 "
"standard utilities can be found."
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:86
+#: build/C/man3/confstr.3:87
msgid ""
"If I<buf> is not NULL and I<len> is not zero, B<confstr>() copies the value "
"of the string to I<buf> truncated to I<len - 1> bytes if necessary, with a "
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:94
+#: build/C/man3/confstr.3:95
msgid ""
"If I<len> is zero and I<buf> is NULL, B<confstr>() just returns the value "
"as defined below."
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:106
+#: build/C/man3/confstr.3:107
msgid ""
"If I<name> is a valid configuration variable, B<confstr>() returns the "
"number of bytes (including the terminating null byte) that would be "
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:121
+#: build/C/man3/confstr.3:122
msgid ""
"If I<name> is a valid configuration variable, but that variable does not "
"have a value, then B<confstr>() returns 0. If I<name> does not correspond "
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:127
-msgid "If the value of I<name> is invalid."
+#: build/C/man3/confstr.3:128
+msgid "The value of I<name> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:129 build/C/man3/fpathconf.3:171 build/C/man2/pread.2:117 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:326 build/C/man3/tcgetpgrp.3:108
+#: build/C/man3/confstr.3:130 build/C/man3/fpathconf.3:171 build/C/man2/pread.2:117 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:329 build/C/man3/tcgetpgrp.3:118
msgid "POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:132
+#: build/C/man3/confstr.3:133
msgid ""
"The following code fragment determines the path where to find the POSIX.2 "
"system utilities:"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:138
+#: build/C/man3/confstr.3:139
#, no-wrap
msgid ""
"char *pathbuf;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:144
+#: build/C/man3/confstr.3:145
#, no-wrap
msgid ""
"n = confstr(_CS_PATH, NULL, (size_t) 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/confstr.3:150
-msgid "B<sh>(1), B<exec>(3), B<system>(3)"
+#: build/C/man3/confstr.3:155
+msgid ""
+"B<getconf>(1), B<sh>(1), B<exec>(3), B<fpathconf>(3) B<sysconf>(3) "
+"B<pathconf>(3) B<system>(3)"
msgstr ""
#. type: TH
#. type: TH
#: build/C/man3/crypt.3:36
#, no-wrap
-msgid "2011-09-15"
+msgid "2014-02-26"
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man3/crypt.3:71
msgid ""
-"I<salt> is a two-character string chosen from the set "
-"[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>]. This string is used to perturb the "
-"algorithm in one of 4096 different ways."
+"I<salt> is a two-character string chosen from the set [B<a-zA-Z0-9./>]. "
+"This string is used to perturb the algorithm in one of 4096 different ways."
msgstr ""
#. type: Plain text
"is returned."
msgstr ""
+#. type: Plain text
+#: build/C/man3/crypt.3:128
+msgid "I<salt> has the wrong format."
+msgstr ""
+
#. type: TP
-#: build/C/man3/crypt.3:124 build/C/man3/encrypt.3:120 build/C/man3/fexecve.3:86 build/C/man2/fork.2:200
+#: build/C/man3/crypt.3:130 build/C/man3/encrypt.3:120 build/C/man3/fexecve.3:86 build/C/man2/fork.2:220
#, no-wrap
msgid "B<ENOSYS>"
msgstr ""
#. Making encrypted data computed using crypt() publicly available has
#. to be considered insecure for the given reasons.
#. type: Plain text
-#: build/C/man3/crypt.3:163
+#: build/C/man3/crypt.3:169
msgid ""
"The B<crypt>() function was not implemented, probably because of "
"U.S.A. export restrictions."
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:168
-msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001. B<crypt_r>() is a GNU extension."
+#: build/C/man3/crypt.3:174
+msgid ""
+"I</proc/sys/crypto/fips_enabled> has a nonzero value, and an attempt was "
+"made to use a weak encryption type, such as DES."
+msgstr ""
+
+#. type: SH
+#: build/C/man3/crypt.3:174 build/C/man3/daemon.3:91 build/C/man3/des_crypt.3:134 build/C/man3/encrypt.3:124 build/C/man3/euidaccess.3:73 build/C/man3/getdtablesize.3:69 build/C/man3/getlogin.3:140 build/C/man3/getusershell.3:93 build/C/man3/lockf.3:154 build/C/man3/swab.3:72 build/C/man3/tcgetpgrp.3:109 build/C/man3/ualarm.3:92 build/C/man3/usleep.3:91
+#, no-wrap
+msgid "ATTRIBUTES"
msgstr ""
#. type: SS
-#: build/C/man3/crypt.3:169 build/C/man2/gethostname.2:140
+#: build/C/man3/crypt.3:175 build/C/man3/daemon.3:92 build/C/man3/des_crypt.3:135 build/C/man3/encrypt.3:125 build/C/man3/euidaccess.3:74 build/C/man3/getdtablesize.3:70 build/C/man3/getlogin.3:141 build/C/man3/getusershell.3:94 build/C/man3/lockf.3:155 build/C/man3/swab.3:73 build/C/man3/tcgetpgrp.3:110 build/C/man3/ualarm.3:93 build/C/man3/usleep.3:92
#, no-wrap
-msgid "Glibc notes"
+msgid "Multithreading (see pthreads(7))"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/crypt.3:179
+msgid "The B<crypt>() function is not thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/crypt.3:183
+msgid "The B<crypt_r>() function is thread-safe."
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:172
+#: build/C/man3/crypt.3:188
+msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001. B<crypt_r>() is a GNU extension."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/crypt.3:192
msgid ""
"The glibc2 version of this function supports additional encryption "
"algorithms."
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:177
+#: build/C/man3/crypt.3:197
msgid ""
"If I<salt> is a character string starting with the characters \"$I<id>$\" "
"followed by a string terminated by \"$\":"
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:180
+#: build/C/man3/crypt.3:200
msgid "$I<id>$I<salt>$I<encrypted>"
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:189
+#: build/C/man3/crypt.3:209
msgid ""
"then instead of using the DES machine, I<id> identifies the encryption "
"method used and this then determines how the rest of the password string is "
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:192
+#: build/C/man3/crypt.3:212
#, no-wrap
msgid "ID | Method\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:193
+#: build/C/man3/crypt.3:213 build/C/man2/syscall.2:160 build/C/man2/syscall.2:198
#, no-wrap
msgid "_\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:194
+#: build/C/man3/crypt.3:214
#, no-wrap
msgid "1 | MD5\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:195
+#: build/C/man3/crypt.3:215
#, no-wrap
msgid "2a | Blowfish (not in mainline glibc; added in some\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:196
+#: build/C/man3/crypt.3:216
#, no-wrap
msgid " | Linux distributions)\n"
msgstr ""
#. glibc doesn't appear to natively support Sun MD5; I don't know
#. if any distros add the support.
#. type: tbl table
-#: build/C/man3/crypt.3:203
+#: build/C/man3/crypt.3:223
#, no-wrap
msgid "5 | SHA-256 (since glibc 2.7)\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:204
+#: build/C/man3/crypt.3:224
#, no-wrap
msgid "6 | SHA-512 (since glibc 2.7)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:211
+#: build/C/man3/crypt.3:231
msgid ""
"So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and "
"$6$I<salt>$I<encrypted> is an SHA-512 encoded one."
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:216
+#: build/C/man3/crypt.3:236
msgid ""
"\"I<salt>\" stands for the up to 16 characters following \"$I<id>$\" in the "
"salt. The encrypted part of the password string is the actual computed "
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:218
+#: build/C/man3/crypt.3:238
#, no-wrap
msgid "MD5 | 22 characters\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:219
+#: build/C/man3/crypt.3:239
#, no-wrap
msgid "SHA-256 | 43 characters\n"
msgstr ""
#. type: tbl table
-#: build/C/man3/crypt.3:220
+#: build/C/man3/crypt.3:240
#, no-wrap
msgid "SHA-512 | 86 characters\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:229
+#: build/C/man3/crypt.3:249
msgid ""
"The characters in \"I<salt>\" and \"I<encrypted>\" are drawn from the set "
-"[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>]. In the MD5 and SHA implementations "
-"the entire I<key> is significant (instead of only the first 8 bytes in DES)."
+"[B<a-zA-Z0-9./>]. In the MD5 and SHA implementations the entire I<key> is "
+"significant (instead of only the first 8 bytes in DES)."
msgstr ""
#. type: Plain text
-#: build/C/man3/crypt.3:235
+#: build/C/man3/crypt.3:255
msgid "B<login>(1), B<passwd>(1), B<encrypt>(3), B<getpass>(3), B<passwd>(5)"
msgstr ""
#. type: TH
#: build/C/man3/daemon.3:36
#, no-wrap
-msgid "2009-12-05"
+msgid "2013-10-28"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/daemon.3:72
+#: build/C/man3/daemon.3:73
msgid ""
"If I<noclose> is zero, B<daemon>() redirects standard input, standard "
"output and standard error to I</dev/null>; otherwise, no changes are made to "
#. not .IR in order not to underline _
#. type: Plain text
-#: build/C/man3/daemon.3:90
+#: build/C/man3/daemon.3:91
msgid ""
"(This function forks, and if the B<fork>(2) succeeds, the parent calls "
"B<_exit>(2), so that further errors are seen by the child only.) On success "
#. type: Plain text
#: build/C/man3/daemon.3:96
+msgid "The B<daemon>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/daemon.3:102
msgid ""
"Not in POSIX.1-2001. A similar function appears on the BSDs. The "
"B<daemon>() function first appeared in 4.4BSD."
msgstr ""
#. type: Plain text
-#: build/C/man3/daemon.3:104
+#: build/C/man3/daemon.3:110
msgid ""
"The glibc implementation can also return -1 when I</dev/null> exists but is "
"not a character device with the expected major and minor numbers. In this "
-"case I<errno> need not be set."
+"case, I<errno> need not be set."
msgstr ""
#. type: Plain text
-#: build/C/man3/daemon.3:107
+#: build/C/man3/daemon.3:113
msgid "B<fork>(2), B<setsid>(2)"
msgstr ""
msgid "DES_CRYPT"
msgstr ""
-#. type: TH
-#: build/C/man3/des_crypt.3:14
-#, no-wrap
-msgid "2007-05-18"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/des_crypt.3:18
msgid ""
"only for the first two statuses."
msgstr ""
-#. type: SH
-#: build/C/man3/des_crypt.3:131 build/C/man2/dup.2:165 build/C/man3/euidaccess.3:69 build/C/man3/exec.3:195 build/C/man2/exit_group.2:41 build/C/man3/fexecve.3:91 build/C/man2/get_thread_area.2:42 build/C/man2/gettid.2:54 build/C/man2/idle.2:59 build/C/man2/mincore.2:132 build/C/man2/pread.2:104 build/C/man2/set_thread_area.2:59 build/C/man2/setup.2:60
-#, no-wrap
-msgid "VERSIONS"
+#. type: Plain text
+#: build/C/man3/des_crypt.3:134
+msgid "These functions are present in glibc 2.1 and later."
msgstr ""
#. type: Plain text
-#: build/C/man3/des_crypt.3:134
+#: build/C/man3/des_crypt.3:142
msgid ""
-"These routines are present in libc 4.6.27 and later, and in glibc 2.1 and "
-"later."
+"The B<ecb_crypt>(), B<cbc_crypt>(), and B<des_setparity>() functions are "
+"thread-safe."
msgstr ""
#. type: Plain text
-#: build/C/man3/des_crypt.3:137
+#: build/C/man3/des_crypt.3:145
msgid "4.3BSD. Not in POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man3/des_crypt.3:141
+#: build/C/man3/des_crypt.3:149
msgid "B<des>(1), B<crypt>(3), B<xcrypt>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/dup.2:36
+#: build/C/man2/dup.2:37
#, no-wrap
msgid "DUP"
msgstr ""
#. type: TH
-#: build/C/man2/dup.2:36
+#: build/C/man2/dup.2:37 build/C/man3/exec.3:41 build/C/man2/execve.2:37 build/C/man2/fcntl.2:65 build/C/man3/fexecve.3:25 build/C/man2/syscall.2:42 build/C/man2/syscalls.2:31 build/C/man2/truncate.2:43 build/C/man2/execveat.2:26
#, no-wrap
-msgid "2012-02-14"
+msgid "2015-01-22"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:39
+#: build/C/man2/dup.2:40
msgid "dup, dup2, dup3 - duplicate a file descriptor"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:45
+#: build/C/man2/dup.2:46
#, no-wrap
msgid ""
"B<int dup(int >I<oldfd>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:49
+#: build/C/man2/dup.2:50
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:51
+#: build/C/man2/dup.2:52
#, no-wrap
msgid "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:55
-msgid "These system calls create a copy of the file descriptor I<oldfd>."
+#: build/C/man2/dup.2:59
+msgid ""
+"The B<dup>() system call creates a copy of the file descriptor I<oldfd>, "
+"using the lowest-numbered unused descriptor for the new descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:58
-msgid "B<dup>() uses the lowest-numbered unused descriptor for the new descriptor."
+#: build/C/man2/dup.2:68
+msgid ""
+"After a successful return, the old and new file descriptors may be used "
+"interchangeably. They refer to the same open file description (see "
+"B<open>(2)) and thus share file offset and file status flags; for example, "
+"if the file offset is modified by using B<lseek>(2) on one of the "
+"descriptors, the offset is also changed for the other."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:62
+#: build/C/man2/dup.2:77
msgid ""
-"B<dup2>() makes I<newfd> be the copy of I<oldfd>, closing I<newfd> first if "
-"necessary, but note the following:"
+"The two descriptors do not share file descriptor flags (the close-on-exec "
+"flag). The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2)) for the "
+"duplicate descriptor is off."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/dup.2:77
+#, no-wrap
+msgid "dup2()"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:68
+#: build/C/man2/dup.2:88
msgid ""
-"If I<oldfd> is not a valid file descriptor, then the call fails, and "
-"I<newfd> is not closed."
+"The B<dup2>() system call performs the same task as B<dup>(), but instead "
+"of using the lowest-numbered unused file descriptor, it uses the descriptor "
+"number specified in I<newfd>. If the descriptor I<newfd> was previously "
+"open, it is silently closed before being reused."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:79
+#: build/C/man2/dup.2:104
msgid ""
-"If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
-"I<oldfd>, then B<dup2>() does nothing, and returns I<newfd>."
+"The steps of closing and reusing the file descriptor I<newfd> are performed "
+"I<atomically>. This is important, because trying to implement equivalent "
+"functionality using B<close>(2) and B<dup>() would be subject to race "
+"conditions, whereby I<newfd> might be reused between the two steps. Such "
+"reuse could happen because the main program is interrupted by a signal "
+"handler that allocates a file descriptor, or because a parallel thread "
+"allocates a file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:88
+#: build/C/man2/dup.2:106
+msgid "Note the following points:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:112
msgid ""
-"After a successful return from one of these system calls, the old and new "
-"file descriptors may be used interchangeably. They refer to the same open "
-"file description (see B<open>(2)) and thus share file offset and file "
-"status flags; for example, if the file offset is modified by using "
-"B<lseek>(2) on one of the descriptors, the offset is also changed for the "
-"other."
+"If I<oldfd> is not a valid file descriptor, then the call fails, and "
+"I<newfd> is not closed."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:96
+#: build/C/man2/dup.2:124
msgid ""
-"The two descriptors do not share file descriptor flags (the close-on-exec "
-"flag). The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2)) for the "
-"duplicate descriptor is off."
+"If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
+"I<oldfd>, then B<dup2>() does nothing, and returns I<newfd>."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/dup.2:124
+#, no-wrap
+msgid "dup3()"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:101
+#: build/C/man2/dup.2:129
msgid "B<dup3>() is the same as B<dup2>(), except that:"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:110
+#: build/C/man2/dup.2:138
msgid ""
"The caller can force the close-on-exec flag to be set for the new file "
"descriptor by specifying B<O_CLOEXEC> in I<flags>. See the description of "
#. FIXME . To confirm with Al Viro that this was intended, and its rationale
#. type: Plain text
-#: build/C/man2/dup.2:120
+#: build/C/man2/dup.2:148
msgid "If I<oldfd> equals I<newfd>, then B<dup3>() fails with the error B<EINVAL>."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:126
+#: build/C/man2/dup.2:154
msgid ""
"On success, these system calls return the new descriptor. On error, -1 is "
"returned, and I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:133
+#: build/C/man2/dup.2:159
+msgid "I<oldfd> isn't an open file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:166
msgid ""
-"I<oldfd> isn't an open file descriptor, or I<newfd> is out of the allowed "
-"range for file descriptors."
+"I<newfd> is out of the allowed range for file descriptors (see the "
+"discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))."
msgstr ""
#. type: TP
-#: build/C/man2/dup.2:133 build/C/man2/swapon.2:114
+#: build/C/man2/dup.2:166 build/C/man2/fcntl.2:1503 build/C/man2/fcntl.2:1512 build/C/man2/swapon.2:117
#, no-wrap
msgid "B<EBUSY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:143
+#: build/C/man2/dup.2:176
msgid ""
"(Linux only) This may be returned by B<dup2>() or B<dup3>() during a race "
"condition with B<open>(2) and B<dup>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:151
+#: build/C/man2/dup.2:184
msgid ""
"The B<dup2>() or B<dup3>() call was interrupted by a signal; see "
"B<signal>(7)."
msgstr ""
+#. type: Plain text
+#: build/C/man2/dup.2:189
+msgid "(B<dup3>()) I<flags> contain an invalid value."
+msgstr ""
+
#. FIXME . To confirm with Al Viro that this was intended, and its rationale
#. type: Plain text
-#: build/C/man2/dup.2:161
-msgid ""
-"(B<dup3>()) I<flags> contain an invalid value. Or, I<oldfd> was equal to "
-"I<newfd>."
+#: build/C/man2/dup.2:196
+msgid "(B<dup3>()) I<oldfd> was equal to I<newfd>."
msgstr ""
#. type: TP
-#: build/C/man2/dup.2:161 build/C/man2/execve.2:408 build/C/man2/fcntl.2:1132 build/C/man3/getlogin.3:103
+#: build/C/man2/dup.2:196 build/C/man2/execve.2:422 build/C/man2/fcntl.2:1607 build/C/man3/getlogin.3:105
#, no-wrap
msgid "B<EMFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:165
+#: build/C/man2/dup.2:203
msgid ""
"The process already has the maximum number of file descriptors open and "
-"tried to open a new one."
+"tried to open a new one (see the discussion of B<RLIMIT_NOFILE> in "
+"B<getrlimit>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:170
+#: build/C/man2/dup.2:208
msgid ""
"B<dup3>() was added to Linux in version 2.6.27; glibc support is available "
"starting with version 2.9."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:174
+#: build/C/man2/dup.2:212
msgid "B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""
#. EINTR and ENOLINK error conditions. POSIX.1 adds EINTR.
#. The EBUSY return is Linux-specific.
#. type: Plain text
-#: build/C/man2/dup.2:180
+#: build/C/man2/dup.2:218
msgid "B<dup3>() is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:194
+#: build/C/man2/dup.2:232
msgid ""
"The error returned by B<dup2>() is different from that returned by "
"B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range. On some "
-"systems B<dup2>() also sometimes returns B<EINVAL> like B<F_DUPFD>."
+"systems, B<dup2>() also sometimes returns B<EINVAL> like B<F_DUPFD>."
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:207
+#: build/C/man2/dup.2:248
msgid ""
"If I<newfd> was open, any errors that would have been reported at "
-"B<close>(2) time are lost. A careful programmer will not use B<dup2>() or "
-"B<dup3>() without closing I<newfd> first."
+"B<close>(2) time are lost. If this is of concern, then\\(emunless the "
+"program is single-threaded and does not allocate file descriptors in signal "
+"handlers\\(emthe correct approach is I<not> to close I<newfd> before calling "
+"B<dup2>(), because of the race condition described above. Instead, code "
+"something like the following could be used:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:253
+#, no-wrap
+msgid ""
+" /* Obtain a duplicate of 'newfd' that can subsequently\n"
+" be used to check for close() errors; an EBADF error\n"
+" means that 'newfd' was not open. */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:258
+#, no-wrap
+msgid ""
+" tmpfd = dup(newfd);\n"
+" if (tmpfd == -1 && errno != EBADF) {\n"
+" /* Handle unexpected dup() error */\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:260
+#, no-wrap
+msgid " /* Atomically duplicate 'oldfd' on 'newfd' */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:264
+#, no-wrap
+msgid ""
+" if (dup2(oldfd, newfd) == -1) {\n"
+" /* Handle dup2() error */\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:267
+#, no-wrap
+msgid ""
+" /* Now check for close() errors on the file originally\n"
+" referred to by 'newfd' */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/dup.2:273
+#, no-wrap
+msgid ""
+" if (tmpfd != -1) {\n"
+" if (close(tmpfd) == -1) {\n"
+" /* Handle errors from close */\n"
+" }\n"
+" }\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/dup.2:211
+#: build/C/man2/dup.2:278
msgid "B<close>(2), B<fcntl>(2), B<open>(2)"
msgstr ""
#. type: TH
#: build/C/man3/encrypt.3:30
#, no-wrap
-msgid "2003-04-04"
+msgid "2013-07-22"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/encrypt.3:135
-msgid ""
-"The functions B<encrypt>() and B<setkey>() conform to SVr4, SUSv2, and "
-"POSIX.1-2001. The functions B<encrypt_r>() and B<setkey_r>() are GNU "
-"extensions."
+#: build/C/man3/encrypt.3:131
+msgid "The B<encrypt>() and B<setkey>() functions are not thread-safe."
msgstr ""
#. type: Plain text
#: build/C/man3/encrypt.3:137
-msgid "In glibc 2.2 these functions use the DES algorithm."
+msgid "The B<encrypt_r>() and B<setkey_r>() functions are thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/encrypt.3:148
+msgid ""
+"The functions B<encrypt>() and B<setkey>() conform to SVr4, SUSv2, and "
+"POSIX.1-2001. The functions B<encrypt_r>() and B<setkey_r>() are GNU "
+"extensions."
msgstr ""
#. type: Plain text
-#: build/C/man3/encrypt.3:144
+#: build/C/man3/encrypt.3:150
+msgid "In glibc 2.2, these functions use the DES algorithm."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/encrypt.3:157
msgid ""
"You need to link with libcrypt to compile this example with glibc. To do "
-"useful work the I<key[]> and I<txt[]> arrays must be filled with a useful "
+"useful work, the I<key[]> and I<txt[]> arrays must be filled with a useful "
"bit pattern."
msgstr ""
#. type: Plain text
-#: build/C/man3/encrypt.3:149
+#: build/C/man3/encrypt.3:162
#, no-wrap
msgid ""
"#define _XOPEN_SOURCE\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/encrypt.3:155
+#: build/C/man3/encrypt.3:168
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/encrypt.3:160
+#: build/C/man3/encrypt.3:173
#, no-wrap
msgid ""
" setkey(key);\n"
#. .BR fcrypt (3)
#. type: Plain text
-#: build/C/man3/encrypt.3:166
+#: build/C/man3/encrypt.3:179
msgid "B<cbc_crypt>(3), B<crypt>(3), B<ecb_crypt>(3),"
msgstr ""
msgid "ENVIRON"
msgstr ""
-#. type: TH
-#: build/C/man7/environ.7:34
-#, no-wrap
-msgid "2009-07-25"
-msgstr ""
-
#. type: Plain text
#: build/C/man7/environ.7:37
msgid "environ - user environment"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:57
+#: build/C/man7/environ.7:56
msgid ""
"The variable I<environ> points to an array of pointers to strings called the "
"\"environment\". The last pointer in this array has the value NULL. (This "
"variable must be declared in the user program, but is declared in the header "
-"file I<E<lt>unistd.hE<gt>> in case the header files came from libc4 or "
-"libc5, and in case they came from glibc and B<_GNU_SOURCE> was defined.) "
-"This array of strings is made available to the process by the B<exec>(3) "
-"call that started the process."
+"file I<E<lt>unistd.hE<gt>> if the B<_GNU_SOURCE> feature test macro is "
+"defined.) This array of strings is made available to the process by the "
+"B<exec>(3) call that started the process."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:62
+#: build/C/man7/environ.7:61
msgid ""
"By convention the strings in I<environ> have the form "
"\"I<name>B<=>I<value>\". Common examples are:"
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:62
+#: build/C/man7/environ.7:61
#, no-wrap
msgid "B<USER>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:65
+#: build/C/man7/environ.7:64
msgid "The name of the logged-in user (used by some BSD-derived programs)."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:65
+#: build/C/man7/environ.7:64
#, no-wrap
msgid "B<LOGNAME>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:68
+#: build/C/man7/environ.7:67
msgid "The name of the logged-in user (used by some System-V derived programs)."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:68
+#: build/C/man7/environ.7:67
#, no-wrap
msgid "B<HOME>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:74
+#: build/C/man7/environ.7:73
msgid ""
"A user's login directory, set by B<login>(1) from the password file "
"B<passwd>(5)."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:74
+#: build/C/man7/environ.7:73
#, no-wrap
msgid "B<LANG>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:81
+#: build/C/man7/environ.7:91
msgid ""
"The name of a locale to use for locale categories when not overridden by "
-"B<LC_ALL> or more specific environment variables like B<LC_COLLATE>, "
-"B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, B<LC_TIME>, cf. "
-"B<locale>(5)."
+"B<LC_ALL> or more specific environment variables such as B<LC_COLLATE>, "
+"B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, and B<LC_TIME> "
+"(see B<locale>(7) for further details of the B<LC_*> environment "
+"variables)."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:81
+#: build/C/man7/environ.7:91
#, no-wrap
msgid "B<PATH>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:92
+#: build/C/man7/environ.7:106
msgid ""
"The sequence of directory prefixes that B<sh>(1) and many other programs "
"apply in searching for a file known by an incomplete pathname. The prefixes "
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:92
+#: build/C/man7/environ.7:106
#, no-wrap
msgid "B<PWD>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:96
+#: build/C/man7/environ.7:110
msgid "The current working directory. Set by some shells."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:96
+#: build/C/man7/environ.7:110
#, no-wrap
msgid "B<SHELL>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:99
+#: build/C/man7/environ.7:113
msgid "The pathname of the user's login shell."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:99
+#: build/C/man7/environ.7:113
#, no-wrap
msgid "B<TERM>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:102
+#: build/C/man7/environ.7:116
msgid "The terminal type for which output is to be prepared."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:102
+#: build/C/man7/environ.7:116
#, no-wrap
msgid "B<PAGER>"
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:105
+#: build/C/man7/environ.7:119
msgid "The user's preferred utility to display text files."
msgstr ""
#. type: TP
-#: build/C/man7/environ.7:105
+#: build/C/man7/environ.7:119
#, no-wrap
msgid "B<EDITOR>/B<VISUAL>"
msgstr ""
#. The user's preferred utility to browse URLs. Sequence of colon-separated
#. browser commands. See http://www.catb.org/~esr/BROWSER/ .
#. type: Plain text
-#: build/C/man7/environ.7:112
+#: build/C/man7/environ.7:126
msgid "The user's preferred utility to edit text files."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:127
+#: build/C/man7/environ.7:144
msgid ""
"Further names may be placed in the environment by the I<export> command and "
"\"name=value\" in B<sh>(1), or by the I<setenv> command if you use "
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:131
+#: build/C/man7/environ.7:148
msgid ""
"Note that the behavior of many programs and library routines is influenced "
"by the presence or value of certain environment variables. A random "
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:137
+#: build/C/man7/environ.7:157
msgid ""
"The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, "
-"B<LC_MESSAGES>, etc. influence locale handling, cf. B<locale>(5)."
+"B<LC_MESSAGES>, and so on influence locale handling; see B<catopen>(3), "
+"B<gettext>(3), and B<locale>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:144
+#: build/C/man7/environ.7:164
msgid ""
"B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3) and "
-"other routines, the temporary directory used by B<sort>(1) and other "
-"programs, etc."
+"other routines, and the temporary directory used by B<sort>(1) and other "
+"programs."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:148
+#: build/C/man7/environ.7:168
msgid ""
"B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the "
"behavior of the dynamic loader/linker."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:152
+#: build/C/man7/environ.7:172
msgid ""
"B<POSIXLY_CORRECT> makes certain programs and library routines follow the "
"prescriptions of POSIX."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:158
+#: build/C/man7/environ.7:178
msgid "The behavior of B<malloc>(3) is influenced by B<MALLOC_*> variables."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:164
+#: build/C/man7/environ.7:184
msgid ""
"The variable B<HOSTALIASES> gives the name of a file containing aliases to "
"be used with B<gethostbyname>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:175
+#: build/C/man7/environ.7:195
msgid ""
"B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3) and "
"through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), "
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:179
+#: build/C/man7/environ.7:199
msgid ""
"B<TERMCAP> gives information on how to address a given terminal (or gives "
"the name of a file containing such information)."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:182
+#: build/C/man7/environ.7:202
msgid ""
"B<COLUMNS> and B<LINES> tell applications about the window size, possibly "
"overriding the actual size."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:187
+#: build/C/man7/environ.7:207
msgid ""
"B<PRINTER> or B<LPDEST> may specify the desired printer to use. See "
"B<lpr>(1)."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:189
+#: build/C/man7/environ.7:209
msgid "Etc."
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:194
+#: build/C/man7/environ.7:214
msgid ""
"Clearly there is a security risk here. Many a system command has been "
"tricked into mischief by a user who specified unusual values for B<IFS> or "
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:227
+#: build/C/man7/environ.7:247
msgid ""
"There is also the risk of name space pollution. Programs like I<make> and "
"I<autoconf> allow overriding of default utility names from the environment "
msgstr ""
#. type: Plain text
-#: build/C/man7/environ.7:241
+#: build/C/man7/environ.7:264
msgid ""
-"B<bash>(1), B<csh>(1), B<login>(1), B<sh>(1), B<tcsh>(1), B<execve>(2), "
-"B<clearenv>(3), B<exec>(3), B<getenv>(3), B<putenv>(3), B<setenv>(3), "
-"B<unsetenv>(3), B<locale>(5)"
+"B<env>(1), B<bash>(1), B<csh>(1), B<login>(1), B<printenv>(1), B<sh>(1), "
+"B<tcsh>(1), B<execve>(2), B<clearenv>(3), B<exec>(3), B<getenv>(3), "
+"B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<locale>(7), B<ld.so>(8)"
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man3/euidaccess.3:25 build/C/man3/getopt.3:41
+#: build/C/man3/euidaccess.3:25
#, no-wrap
-msgid "2010-11-01"
+msgid "2013-09-25"
msgstr ""
#. type: Plain text
#: build/C/man3/euidaccess.3:47
msgid ""
"Like B<access>(2), B<euidaccess>() checks permissions and existence of the "
-"file identified by its argument I<pathname>. However, whereas B<access>(2), "
+"file identified by its argument I<pathname>. However, whereas B<access>(2) "
"performs checks using the real user and group identifiers of the process, "
"B<euidaccess>() uses the effective identifiers."
msgstr ""
#. type: Plain text
#: build/C/man3/euidaccess.3:53
msgid ""
-"I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK> and "
-"B<F_OK>, with the same meanings as for B<access>(2)."
+"I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK>, "
+"and B<F_OK>, with the same meanings as for B<access>(2)."
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
+#: build/C/man3/euidaccess.3:66
+msgid ""
+"On success (all requested permissions granted), zero is returned. On error "
+"(at least one bit in I<mode> asked for a permission that is denied, or some "
+"other error occurred), -1 is returned, and I<errno> is set appropriately."
+msgstr ""
+
+#. type: Plain text
#: build/C/man3/euidaccess.3:69
msgid "As for B<access>(2)."
msgstr ""
msgid "The B<eaccess>() function was added to glibc in version 2.4."
msgstr ""
+#. type: Plain text
+#: build/C/man3/euidaccess.3:80
+msgid "The B<euidaccess>() and B<eaccess>() functions are thread-safe."
+msgstr ""
+
#. e.g., FreeBSD 6.1.
#. type: Plain text
-#: build/C/man3/euidaccess.3:79
+#: build/C/man3/euidaccess.3:86
msgid ""
"These functions are nonstandard. Some other systems have an B<eaccess>() "
"function."
msgstr ""
#. type: Plain text
-#: build/C/man3/euidaccess.3:86
+#: build/C/man3/euidaccess.3:93
msgid ""
"I<Warning>: Using this function to check a process's permissions on a file "
"before performing some operation based on that information leads to race "
msgstr ""
#. type: Plain text
-#: build/C/man3/euidaccess.3:94
+#: build/C/man3/euidaccess.3:101
msgid ""
"This function always dereferences symbolic links. If you need to check the "
"permissions on a symbolic link, use B<faccessat>(2) with the flags "
msgstr ""
#. type: Plain text
-#: build/C/man3/euidaccess.3:105
+#: build/C/man3/euidaccess.3:112
msgid ""
"B<access>(2), B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), "
"B<setgid>(2), B<setuid>(2), B<stat>(2), B<credentials>(7), "
msgid "EXEC"
msgstr ""
-#. type: TH
-#: build/C/man3/exec.3:41
-#, no-wrap
-msgid "2010-09-25"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/exec.3:44
msgid "execl, execlp, execle, execv, execvp, execvpe - execute a file"
#. type: Plain text
#: build/C/man3/exec.3:107
msgid ""
-"The I<const char *arg> and subsequent ellipses in the B<execl>(), "
+"The I<const char\\ *arg> and subsequent ellipses in the B<execl>(), "
"B<execlp>(), and B<execle>() functions can be thought of as I<arg0>, "
"I<arg1>, \\&..., I<argn>. Together they describe a list of one or more "
"pointers to null-terminated strings that represent the argument list "
"available to the executed program. The first argument, by convention, "
"should point to the filename associated with the file being executed. The "
-"list of arguments I<must> be terminated by a NULL pointer, and, since these "
-"are variadic functions, this pointer must be cast I<(char *) NULL>."
+"list of arguments I<must> be terminated by a null pointer, and, since these "
+"are variadic functions, this pointer must be cast I<(char\\ *) NULL>."
msgstr ""
#. type: Plain text
"pointers to null-terminated strings that represent the argument list "
"available to the new program. The first argument, by convention, should "
"point to the filename associated with the file being executed. The array of "
-"pointers I<must> be terminated by a NULL pointer."
+"pointers I<must> be terminated by a null pointer."
msgstr ""
#. type: Plain text
"The B<execle>() and B<execvpe>() functions allow the caller to specify the "
"environment of the executed program via the argument I<envp>. The I<envp> "
"argument is an array of pointers to null-terminated strings and I<must> be "
-"terminated by a NULL pointer. The other functions take the environment for "
+"terminated by a null pointer. The other functions take the environment for "
"the new process image from the external variable I<environ> in the calling "
"process."
msgstr ""
#. type: Plain text
#: build/C/man3/exec.3:190
msgid ""
-"The B<exec>() functions only return if an error has occurred. The return "
+"The B<exec>() functions return only if an error has occurred. The return "
"value is -1, and I<errno> is set to indicate the error."
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man3/exec.3:248
+#: build/C/man3/exec.3:249
msgid ""
-"B<sh>(1), B<execve>(2), B<fork>(2), B<ptrace>(2), B<fexecve>(3), "
-"B<environ>(7)"
+"B<sh>(1), B<execve>(2), B<execveat>(2), B<fork>(2), B<ptrace>(2), "
+"B<fexecve>(3), B<environ>(7)"
msgstr ""
#. type: TH
msgid "EXECVE"
msgstr ""
-#. type: TH
-#: build/C/man2/execve.2:37
-#, no-wrap
-msgid "2012-10-27"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/execve.2:40
msgid "execve - execute program"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:55 build/C/man2/execve.2:267
+#: build/C/man2/execve.2:55 build/C/man2/execve.2:265
#, no-wrap
msgid "B<#!> I<interpreter >[optional-arg]\n"
msgstr ""
"convention, the first of these strings should contain the filename "
"associated with the file being executed. I<envp> is an array of strings, "
"conventionally of the form B<key=value>, which are passed as environment to "
-"the new program. Both I<argv> and I<envp> must be terminated by a NULL "
+"the new program. Both I<argv> and I<envp> must be terminated by a null "
"pointer. The argument vector and environment can be accessed by the called "
"program's main function, when it is defined as:"
msgstr ""
#: build/C/man2/execve.2:98
msgid ""
"If the set-user-ID bit is set on the program file pointed to by I<filename>, "
-"and the underlying file system is not mounted I<nosuid> (the B<MS_NOSUID> "
+"and the underlying filesystem is not mounted I<nosuid> (the B<MS_NOSUID> "
"flag for B<mount>(2)), and the calling process is not being ptraced, then "
"the effective user ID of the calling process is changed to that of the owner "
"of the program file. Similarly, when the set-group-ID bit of the program "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:120
+#: build/C/man2/execve.2:118
msgid ""
"If the executable is a dynamically linked ELF executable, the interpreter "
"named in the PT_INTERP segment is used to load the needed shared libraries. "
"This interpreter is typically I</lib/ld-linux.so.2> for binaries linked with "
-"glibc 2. (For binaries linked with the old Linux libc5, the interpreter was "
-"typically I</lib/ld-linux.so.1>.)"
+"glibc."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:124
+#: build/C/man2/execve.2:122
msgid ""
"All process attributes are preserved during an B<execve>(), except the "
"following:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:128
+#: build/C/man2/execve.2:126
msgid ""
"The dispositions of any signals that are being caught are reset to the "
"default (B<signal>(7))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:131
+#: build/C/man2/execve.2:129
msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:134
+#: build/C/man2/execve.2:132
msgid "Memory mappings are not preserved (B<mmap>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:137
-msgid "Attached System V shared memory segments are detached (B<shmat>(2))."
+#: build/C/man2/execve.2:135
+msgid "Attached System\\ V shared memory segments are detached (B<shmat>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:140
+#: build/C/man2/execve.2:138
msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:143
+#: build/C/man2/execve.2:141
msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:146
+#: build/C/man2/execve.2:144
msgid "Any open POSIX named semaphores are closed (B<sem_overview>(7))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:149
+#: build/C/man2/execve.2:147
msgid "POSIX timers are not preserved (B<timer_create>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:152
+#: build/C/man2/execve.2:150
msgid "Any open directory streams are closed (B<opendir>(3))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:156
+#: build/C/man2/execve.2:154
msgid "Memory locks are not preserved (B<mlock>(2), B<mlockall>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:160
+#: build/C/man2/execve.2:158
msgid "Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:163
+#: build/C/man2/execve.2:161
msgid "The floating-point environment is reset to the default (see B<fenv>(3))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:169
+#: build/C/man2/execve.2:167
msgid ""
"The process attributes in the preceding list are all specified in "
"POSIX.1-2001. The following Linux-specific process attributes are also not "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:176
+#: build/C/man2/execve.2:174
msgid ""
"The B<prctl>(2) B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or "
"set-group ID program is being executed, in which case it is cleared."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:181
+#: build/C/man2/execve.2:179
msgid "The B<prctl>(2) B<PR_SET_KEEPCAPS> flag is cleared."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:188
+#: build/C/man2/execve.2:186
msgid ""
"(Since Linux 2.4.36 / 2.6.23) If a set-user-ID or set-group-ID program is "
"being executed, then the parent death signal set by B<prctl>(2) "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:195
+#: build/C/man2/execve.2:193
msgid ""
"The process name, as set by B<prctl>(2) B<PR_SET_NAME> (and displayed by "
"I<ps\\ -o comm>), is reset to the name of the new executable file."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:202
+#: build/C/man2/execve.2:200
msgid ""
"The B<SECBIT_KEEP_CAPS> I<securebits> flag is cleared. See "
"B<capabilities>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:207
+#: build/C/man2/execve.2:205
msgid "The termination signal is reset to B<SIGCHLD> (see B<clone>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:209 build/C/man2/fork.2:133
+#: build/C/man2/execve.2:207 build/C/man2/fork.2:138
msgid "Note the following further points:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:213
+#: build/C/man2/execve.2:211
msgid ""
"All threads other than the calling thread are destroyed during an "
"B<execve>(). Mutexes, condition variables, and other pthreads objects are "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:216
+#: build/C/man2/execve.2:214
msgid ""
"The equivalent of I<setlocale(LC_ALL, \"C\")> is executed at program "
"start-up."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:224
+#: build/C/man2/execve.2:222
msgid ""
"POSIX.1-2001 specifies that the dispositions of any signals that are ignored "
"or set to the default are left unchanged. POSIX.1-2001 specifies one "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:228
+#: build/C/man2/execve.2:226
msgid ""
"Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), "
"B<aio_write>(3))."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:233
+#: build/C/man2/execve.2:231
msgid "For the handling of capabilities during B<execve>(), see B<capabilities>(7)."
msgstr ""
#. always open after an execve(), and it looks like
#. Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
#. type: Plain text
-#: build/C/man2/execve.2:260
+#: build/C/man2/execve.2:258
msgid ""
"By default, file descriptors remain open across an B<execve>(). File "
"descriptors that are marked close-on-exec are closed; see the description of "
msgstr ""
#. type: SS
-#: build/C/man2/execve.2:260
+#: build/C/man2/execve.2:258 build/C/man2/execve.2:528
#, no-wrap
msgid "Interpreter scripts"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:263
+#: build/C/man2/execve.2:261
msgid ""
"An interpreter script is a text file that has execute permission enabled and "
"whose first line is of the form:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:281
+#: build/C/man2/execve.2:279
msgid ""
"The I<interpreter> must be a valid pathname for an executable which is not "
"itself a script. If the I<filename> argument of B<execve>() specifies an "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:285
+#: build/C/man2/execve.2:283
#, no-wrap
msgid "I<interpreter> [optional-arg] I<filename> arg...\n"
msgstr ""
#: build/C/man2/execve.2:294
msgid ""
"where I<arg...> is the series of words pointed to by the I<argv> argument of "
-"B<execve>()."
+"B<execve>(), starting at I<argv>[1]."
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man2/execve.2:386
-msgid "The file system is mounted I<noexec>."
+msgid "The filesystem is mounted I<noexec>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/execve.2:386
+#, no-wrap
+msgid "B<EAGAIN> (since Linux 3.1)"
+msgstr ""
+
+#. commit 72fa59970f8698023045ab0713d66f3f4f96945c
+#. type: Plain text
+#: build/C/man2/execve.2:396
+msgid ""
+"Having changed its real UID using one of the B<set*uid>() calls, the caller "
+"was\\(emand is now still\\(emabove its B<RLIMIT_NPROC> resource limit (see "
+"B<setrlimit>(2)). For a more detailed explanation of this error, see NOTES."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:390
-msgid "I<filename> points outside your accessible address space."
+#: build/C/man2/execve.2:404
+msgid ""
+"I<filename> or one of the pointers in the vectors I<argv> or I<envp> points "
+"outside your accessible address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:394
+#: build/C/man2/execve.2:408
msgid ""
"An ELF executable had more than one PT_INTERP segment (i.e., tried to name "
"more than one interpreter)."
msgstr ""
#. type: TP
-#: build/C/man2/execve.2:397 build/C/man2/truncate.2:148
+#: build/C/man2/execve.2:411 build/C/man2/truncate.2:149
#, no-wrap
msgid "B<EISDIR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:400
+#: build/C/man2/execve.2:414
msgid "An ELF interpreter was a directory."
msgstr ""
#. type: TP
-#: build/C/man2/execve.2:400
+#: build/C/man2/execve.2:414
#, no-wrap
msgid "B<ELIBBAD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:403
+#: build/C/man2/execve.2:417
msgid "An ELF interpreter was not in a recognized format."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:408
+#: build/C/man2/execve.2:422
msgid ""
"Too many symbolic links were encountered in resolving I<filename> or the "
"name of a script or ELF interpreter."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:411
+#: build/C/man2/execve.2:425
msgid "The process has the maximum number of files open."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:415
+#: build/C/man2/execve.2:429
msgid "I<filename> is too long."
msgstr ""
#. type: TP
-#: build/C/man2/execve.2:415 build/C/man3/getlogin.3:106 build/C/man2/swapon.2:133 build/C/man2/uselib.2:67
+#: build/C/man2/execve.2:429 build/C/man3/getlogin.3:108 build/C/man2/swapon.2:144 build/C/man2/uselib.2:67
#, no-wrap
msgid "B<ENFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:418 build/C/man2/swapon.2:136 build/C/man2/uselib.2:70
+#: build/C/man2/execve.2:432 build/C/man2/swapon.2:147 build/C/man2/uselib.2:70
msgid "The system limit on the total number of open files has been reached."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:424
+#: build/C/man2/execve.2:438
msgid ""
"The file I<filename> or a script or ELF interpreter does not exist, or a "
"shared library needed for file or interpreter cannot be found."
msgstr ""
#. type: TP
-#: build/C/man2/execve.2:424 build/C/man2/uselib.2:70
+#: build/C/man2/execve.2:438 build/C/man2/uselib.2:70
#, no-wrap
msgid "B<ENOEXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:429
+#: build/C/man2/execve.2:443
msgid ""
"An executable is not in a recognized format, is for the wrong architecture, "
"or has some other format error that means it cannot be executed."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:437
+#: build/C/man2/execve.2:451
msgid ""
"A component of the path prefix of I<filename> or a script or ELF interpreter "
"is not a directory."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:443
+#: build/C/man2/execve.2:457
msgid ""
-"The file system is mounted I<nosuid>, the user is not the superuser, and the "
+"The filesystem is mounted I<nosuid>, the user is not the superuser, and the "
"file has the set-user-ID or set-group-ID bit set."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:447
+#: build/C/man2/execve.2:461
msgid ""
"The process is being traced, the user is not the superuser and the file has "
"the set-user-ID or set-group-ID bit set."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:450
+#: build/C/man2/execve.2:464
msgid "Executable was open for writing by one or more processes."
msgstr ""
#. document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL,
#. EISDIR or ELIBBAD error conditions.
#. type: Plain text
-#: build/C/man2/execve.2:458
+#: build/C/man2/execve.2:472
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2001 does not document the #! behavior "
"but is otherwise compatible."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:461
+#: build/C/man2/execve.2:475
msgid "Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d."
msgstr ""
+#. e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
+#. HP-UX 11 is like Linux -- mtk, Apr 2007
+#. Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
+#. Bug rejected (because fix would constitute an ABI change).
#. type: Plain text
-#: build/C/man2/execve.2:463
-msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/execve.2:474
+#: build/C/man2/execve.2:502
msgid ""
-"The result of mounting a file system I<nosuid> varies across Linux kernel "
+"The result of mounting a filesystem I<nosuid> varies across Linux kernel "
"versions: some will refuse execution of set-user-ID and set-group-ID "
"executables when this would give the user powers she did not have already "
"(and return B<EPERM>), some will just ignore the set-user-ID and "
-"set-group-ID bits and B<exec>() successfully."
+"set-group-ID bits and B<exec>() successfully. On Linux, I<argv> and "
+"I<envp> can be specified as NULL. In both cases, this has the same effect "
+"as specifying the argument as a pointer to a list containing a single null "
+"pointer. B<Do not take advantage of this misfeature!> It is nonstandard and "
+"nonportable: on most other UNIX systems doing this will result in an error "
+"(B<EFAULT>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execve.2:513
+msgid ""
+"POSIX.1-2001 says that values returned by B<sysconf>(3) should be invariant "
+"over the lifetime of a process. However, since Linux 2.6.23, if the "
+"B<RLIMIT_STACK> resource limit changes, then the value reported by "
+"B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
+"for holding command-line arguments and environment variables has changed."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execve.2:528
+msgid ""
+"In most cases where B<execve>() fails, control returns to the original "
+"executable image, and the caller of B<execve>() can then handle the error. "
+"However, in (rare) cases (typically caused by resource exhaustion), failure "
+"may occur past the point of no return: the original executable image has "
+"been torn down, but the new image could not be completely built. In such "
+"cases, the kernel kills the process with a B<SIGKILL> signal."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:477
+#: build/C/man2/execve.2:531
msgid ""
-"A maximum line length of 127 characters is allowed for the first line in a "
-"#! executable shell script."
+"A maximum line length of 127 characters is allowed for the first line in an "
+"interpreter scripts."
msgstr ""
#. e.g., Solaris 8
#. e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
#. type: Plain text
-#: build/C/man2/execve.2:496
+#: build/C/man2/execve.2:550
msgid ""
"The semantics of the I<optional-arg> argument of an interpreter script vary "
"across implementations. On Linux, the entire string following the "
"arguments."
msgstr ""
-#. e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
-#. HP-UX 11 is like Linux -- mtk, Apr 2007
-#. Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
-#. Bug rejected (because fix would constitute an ABI change).
-#. type: Plain text
-#: build/C/man2/execve.2:511
-msgid ""
-"On Linux, I<argv> can be specified as NULL, which has the same effect as "
-"specifying this argument as a pointer to a list containing a single NULL "
-"pointer. B<Do not take advantage of this misfeature!> It is nonstandard and "
-"nonportable: on most other UNIX systems doing this will result in an error "
-"(B<EFAULT>)."
-msgstr ""
-
#
#. .SH BUGS
#. Some Linux versions have failed to check permissions on ELF
#. that could be exploited for denial of service by a suitably crafted
#. ELF binary. There are no known problems with 2.0.34 or 2.2.15.
#. type: Plain text
-#: build/C/man2/execve.2:531
+#: build/C/man2/execve.2:561
+msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/execve.2:561
+#, no-wrap
+msgid "execve() and EAGAIN"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execve.2:567
msgid ""
-"POSIX.1-2001 says that values returned by B<sysconf>(3) should be invariant "
-"over the lifetime of a process. However, since Linux 2.6.23, if the "
-"B<RLIMIT_STACK> resource limit changes, then the value reported by "
-"B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
-"for holding command-line arguments and environment variables has changed."
+"A more detailed explanation of the B<EAGAIN> error that can occur (since "
+"Linux 3.1) when calling B<execve>() is as follows."
+msgstr ""
+
+#. commit 909cc4ae86f3380152a18e2a3c44523893ee11c4
+#. type: Plain text
+#: build/C/man2/execve.2:589
+msgid ""
+"The B<EAGAIN> error can occur when a I<preceding> call to B<setuid>(2), "
+"B<setreuid>(2), or B<setresuid>(2) caused the real user ID of the process "
+"to change, and that change caused the process to exceed its B<RLIMIT_NPROC> "
+"resource limit (i.e., the number of processes belonging to the new real UID "
+"exceeds the resource limit). From Linux 2.6.0 to 3.0, this caused the "
+"B<set*uid>() call to fail. (Prior to 2.6, the resource limit was not "
+"imposed on processes that changed their user IDs.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execve.2:620
+msgid ""
+"Since Linux 3.1, the scenario just described no longer causes the "
+"B<set*uid>() call to fail, because it too often led to security holes where "
+"buggy applications didn't check the return status and assumed that\\(emif "
+"the caller had root privileges\\(emthe call would always succeed. Instead, "
+"the B<set*uid>() calls now successfully change the real UID, but the kernel "
+"sets an internal flag, named B<PF_NPROC_EXCEEDED>, to note that the "
+"B<RLIMIT_NPROC> resource limit has been exceeded. If the "
+"B<PF_NPROC_EXCEEDED> flag is set and the resource limit is still exceeded at "
+"the time of a subsequent B<execve>() call, that call fails with the error "
+"B<EAGAIN>. This kernel logic ensures that the B<RLIMIT_NPROC> resource "
+"limit is still enforced for the common privileged daemon "
+"workflow\\(emnamely, B<fork>(2) + B<set*uid>() + B<execve>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execve.2:636
+msgid ""
+"If the resource limit was not still exceeded at the time of the B<execve>() "
+"call (because other processes belonging to this real UID terminated between "
+"the B<set*uid>() call and the B<execve>() call), then the B<execve>() "
+"call succeeds and the kernel clears the B<PF_NPROC_EXCEEDED> process flag. "
+"The flag is also cleared if a subsequent call to B<fork>(2) by this process "
+"succeeds."
msgstr ""
#. type: SS
-#: build/C/man2/execve.2:531
+#: build/C/man2/execve.2:636
#, no-wrap
msgid "Historical"
msgstr ""
+#
+#. .SH BUGS
+#. Some Linux versions have failed to check permissions on ELF
+#. interpreters. This is a security hole, because it allows users to
+#. open any file, such as a rewinding tape device, for reading. Some
+#. Linux versions have also had other security holes in
+#. .BR execve ()
+#. that could be exploited for denial of service by a suitably crafted
+#. ELF binary. There are no known problems with 2.0.34 or 2.2.15.
#. type: Plain text
-#: build/C/man2/execve.2:542
+#: build/C/man2/execve.2:656
msgid ""
-"With UNIX V6 the argument list of an B<exec>() call was ended by 0, while "
-"the argument list of I<main> was ended by -1. Thus, this argument list was "
-"not directly usable in a further B<exec>() call. Since UNIX V7 both are "
-"NULL."
+"With UNIX\\ V6, the argument list of an B<exec>() call was ended by 0, "
+"while the argument list of I<main> was ended by -1. Thus, this argument "
+"list was not directly usable in a further B<exec>() call. Since UNIX\\ V7, "
+"both are NULL."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:545
+#: build/C/man2/execve.2:659
msgid ""
"The following program is designed to be execed by the second program below. "
-"It just echoes its command-line one per line."
+"It just echoes its command-line arguments, one per line."
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:549
+#: build/C/man2/execve.2:663
#, no-wrap
msgid "/* myecho.c */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:552
+#: build/C/man2/execve.2:666
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:557
+#: build/C/man2/execve.2:671
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:560
+#: build/C/man2/execve.2:674
#, no-wrap
msgid ""
" for (j = 0; j E<lt> argc; j++)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:568
+#: build/C/man2/execve.2:682
msgid ""
"This program can be used to exec the program named in its command-line "
"argument:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:572
+#: build/C/man2/execve.2:686
#, no-wrap
msgid "/* execve.c */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:576
+#: build/C/man2/execve.2:690
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:582
+#: build/C/man2/execve.2:696
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:587
+#: build/C/man2/execve.2:701
#, no-wrap
msgid ""
" if (argc != 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", "
+"argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:589
+#: build/C/man2/execve.2:703
#, no-wrap
msgid " newargv[0] = argv[1];\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:594
+#: build/C/man2/execve.2:708
#, no-wrap
msgid ""
" execve(argv[1], newargv, newenviron);\n"
-" perror(\"execve\"); /* execve() only returns on error */\n"
+" perror(\"execve\"); /* execve() returns only on error */\n"
" exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:598
+#: build/C/man2/execve.2:712
msgid "We can use the second program to exec the first as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:607
+#: build/C/man2/execve.2:721
#, no-wrap
msgid ""
"$B< cc myecho.c -o myecho>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:615
+#: build/C/man2/execve.2:729
msgid ""
"We can also use these programs to demonstrate the use of a script "
"interpreter. To do this we create a script whose \"interpreter\" is our "
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:622
+#: build/C/man2/execve.2:736
#, no-wrap
msgid ""
-"$B< cat E<gt> script.sh>\n"
-"B<#! ./myecho script-arg>\n"
+"$B< cat E<gt> script>\n"
+"B<#!./myecho script-arg>\n"
"B<^D>\n"
-"$B< chmod +x script.sh>\n"
+"$B< chmod +x script>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:626
+#: build/C/man2/execve.2:740
msgid "We can then use our program to exec the script:"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:635
+#: build/C/man2/execve.2:749
#, no-wrap
msgid ""
-"$B< ./execve ./script.sh>\n"
+"$B< ./execve ./script>\n"
"argv[0]: ./myecho\n"
"argv[1]: script-arg\n"
-"argv[2]: ./script.sh\n"
+"argv[2]: ./script\n"
"argv[3]: hello\n"
"argv[4]: world\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/execve.2:648
+#: build/C/man2/execve.2:763
msgid ""
-"B<chmod>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), B<fexecve>(3), "
-"B<getopt>(3), B<credentials>(7), B<environ>(7), B<path_resolution>(7), "
-"B<ld.so>(8)"
+"B<chmod>(2), B<execveat>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), "
+"B<fexecve>(3), B<getopt>(3), B<credentials>(7), B<environ>(7), "
+"B<path_resolution>(7), B<ld.so>(8)"
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man2/fcntl.2:61
+#: build/C/man2/fcntl.2:65
#, no-wrap
msgid "FCNTL"
msgstr ""
-#. type: TH
-#: build/C/man2/fcntl.2:61
-#, no-wrap
-msgid "2012-04-15"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/fcntl.2:64
+#: build/C/man2/fcntl.2:68
msgid "fcntl - manipulate file descriptor"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:68
+#: build/C/man2/fcntl.2:72
#, no-wrap
msgid ""
"B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:70
+#: build/C/man2/fcntl.2:74
#, no-wrap
msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:77
+#: build/C/man2/fcntl.2:81
msgid ""
"B<fcntl>() performs one of the operations described below on the open file "
"descriptor I<fd>. The operation is determined by I<cmd>."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:91
+#: build/C/man2/fcntl.2:95
msgid ""
"B<fcntl>() can take an optional third argument. Whether or not this "
"argument is required is determined by I<cmd>. The required argument type is "
"I<void> is specified if the argument is not required."
msgstr ""
+#. type: Plain text
+#: build/C/man2/fcntl.2:106
+msgid ""
+"Certain of the operations below are supported only since a particular Linux "
+"kernel version. The preferred method of checking whether the host kernel "
+"supports a particular operation is to invoke B<fcntl>() with the desired "
+"I<cmd> value and then test whether the call failed with B<EINVAL>, "
+"indicating that the kernel does not recognize this value."
+msgstr ""
+
#. type: SS
-#: build/C/man2/fcntl.2:91
+#: build/C/man2/fcntl.2:106
#, no-wrap
msgid "Duplicating a file descriptor"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:92
+#: build/C/man2/fcntl.2:107
#, no-wrap
msgid "B<F_DUPFD> (I<int>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:102
+#: build/C/man2/fcntl.2:117
msgid ""
"Find the lowest numbered available file descriptor greater than or equal to "
"I<arg> and make it be a copy of I<fd>. This is different from B<dup2>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:104
+#: build/C/man2/fcntl.2:119
msgid "On success, the new descriptor is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:108
+#: build/C/man2/fcntl.2:123
msgid "See B<dup>(2) for further details."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:108
+#: build/C/man2/fcntl.2:123
#, no-wrap
msgid "B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:125
+#: build/C/man2/fcntl.2:140
msgid ""
"As for B<F_DUPFD>, but additionally set the close-on-exec flag for the "
"duplicate descriptor. Specifying this flag permits a program to avoid an "
msgstr ""
#. type: SS
-#: build/C/man2/fcntl.2:125
+#: build/C/man2/fcntl.2:140
#, no-wrap
msgid "File descriptor flags"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:136
+#: build/C/man2/fcntl.2:151
msgid ""
"The following commands manipulate the flags associated with a file "
"descriptor. Currently, only one such flag is defined: B<FD_CLOEXEC>, the "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:136
+#: build/C/man2/fcntl.2:151
#, no-wrap
msgid "B<F_GETFD> (I<void>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:141
+#: build/C/man2/fcntl.2:156
msgid "Read the file descriptor flags; I<arg> is ignored."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:141
+#: build/C/man2/fcntl.2:156
#, no-wrap
msgid "B<F_SETFD> (I<int>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:145
+#: build/C/man2/fcntl.2:160
msgid "Set the file descriptor flags to the value specified by I<arg>."
msgstr ""
+#. type: Plain text
+#: build/C/man2/fcntl.2:175
+msgid ""
+"In multithreaded programs, using B<fcntl>() B<F_SETFD> to set the "
+"close-on-exec flag at the same time as another thread performs a B<fork>(2) "
+"plus B<execve>(2) is vulnerable to a race condition that may "
+"unintentionally leak the file descriptor to the program executed in the "
+"child process. See the discussion of the B<O_CLOEXEC> flag in B<open>(2) "
+"for details and a remedy to the problem."
+msgstr ""
+
#. type: SS
-#: build/C/man2/fcntl.2:145
+#: build/C/man2/fcntl.2:175
#, no-wrap
msgid "File status flags"
msgstr ""
#. or
#. .BR creat (2),
#. type: Plain text
-#: build/C/man2/fcntl.2:160
+#: build/C/man2/fcntl.2:190
msgid ""
"Each open file description has certain associated status flags, initialized "
"by B<open>(2) and possibly modified by B<fcntl>(). Duplicated file "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:163
+#: build/C/man2/fcntl.2:193
msgid "The file status flags and their semantics are described in B<open>(2)."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:163
+#: build/C/man2/fcntl.2:193
#, no-wrap
msgid "B<F_GETFL> (I<void>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:168
+#: build/C/man2/fcntl.2:198
msgid "Get the file access mode and the file status flags; I<arg> is ignored."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:168
+#: build/C/man2/fcntl.2:198
#, no-wrap
msgid "B<F_SETFL> (I<int>)"
msgstr ""
-#. FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
-#. via fcntl(2), but currently Linux does not permit this
-#. See http://bugzilla.kernel.org/show_bug.cgi?id=5994
#. type: Plain text
-#: build/C/man2/fcntl.2:191
+#: build/C/man2/fcntl.2:223
msgid ""
"Set the file status flags to the value specified by I<arg>. File access "
"mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>) and file creation flags (i.e., "
"B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>) in I<arg> are ignored. On "
"Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, "
-"B<O_NOATIME>, and B<O_NONBLOCK> flags."
+"B<O_NOATIME>, and B<O_NONBLOCK> flags. It is not possible to change the "
+"B<O_DSYNC> and B<O_SYNC> flags; see BUGS, below."
msgstr ""
#. type: SS
-#: build/C/man2/fcntl.2:191
+#: build/C/man2/fcntl.2:223
#, no-wrap
-msgid "Advisory locking"
+msgid "Advisory record locking"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:199
+#: build/C/man2/fcntl.2:228
msgid ""
-"B<F_GETLK>, B<F_SETLK> and B<F_SETLKW> are used to acquire, release, and "
-"test for the existence of record locks (also known as file-segment or "
-"file-region locks). The third argument, I<lock>, is a pointer to a "
-"structure that has at least the following fields (in unspecified order)."
+"Linux implements traditional (\"process-associated\") UNIX record locks, as "
+"standardized by POSIX. For a Linux-specific alternative with better "
+"semantics, see the discussion of open file description locks below."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:214
+#: build/C/man2/fcntl.2:239
+msgid ""
+"B<F_SETLK>, B<F_SETLKW>, and B<F_GETLK> are used to acquire, release, and "
+"test for the existence of record locks (also known as byte-range, "
+"file-segment, or file-region locks). The third argument, I<lock>, is a "
+"pointer to a structure that has at least the following fields (in "
+"unspecified order)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:254
#, no-wrap
msgid ""
"struct flock {\n"
" off_t l_start; /* Starting offset for lock */\n"
" off_t l_len; /* Number of bytes to lock */\n"
" pid_t l_pid; /* PID of process blocking our lock\n"
-" (F_GETLK only) */\n"
+" (set by F_GETLK and F_OFD_GETLK) */\n"
" ...\n"
"};\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:222
+#: build/C/man2/fcntl.2:262
msgid ""
"The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify "
"the range of bytes we wish to lock. Bytes past the end of the file may be "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:242
+#: build/C/man2/fcntl.2:282
msgid ""
"I<l_start> is the starting offset for the lock, and is interpreted relative "
"to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:257
+#: build/C/man2/fcntl.2:297
msgid ""
"I<l_len> specifies the number of bytes to be locked. If I<l_len> is "
"positive, then the range to be locked covers bytes I<l_start> up to and "
-"including I<l_start>+I<l_len>-I<1>. Specifying 0 for I<l_len> has the "
-"special meaning: lock all bytes starting at the location specified by "
-"I<l_whence> and I<l_start> through to the end of file, no matter how large "
-"the file grows."
+"including I<l_start>+I<l_len>-1. Specifying 0 for I<l_len> has the special "
+"meaning: lock all bytes starting at the location specified by I<l_whence> "
+"and I<l_start> through to the end of file, no matter how large the file "
+"grows."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:270
+#: build/C/man2/fcntl.2:310
msgid ""
"POSIX.1-2001 allows (but does not require) an implementation to support a "
"negative I<l_len> value; if I<l_len> is negative, the interval described by "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:289
+#: build/C/man2/fcntl.2:329
msgid ""
"The I<l_type> field can be used to place a read (B<F_RDLCK>) or a write "
"(B<F_WRLCK>) lock on a file. Any number of processes may hold a read lock "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:289
+#: build/C/man2/fcntl.2:329
#, no-wrap
msgid "B<F_SETLK> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:312
+#: build/C/man2/fcntl.2:354
msgid ""
"Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>) or release a "
"lock (when I<l_type> is B<F_UNLCK>) on the bytes specified by the "
"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>. If a conflicting "
"lock is held by another process, this call returns -1 and sets I<errno> to "
-"B<EACCES> or B<EAGAIN>."
+"B<EACCES> or B<EAGAIN>. (The error returned in this case differs across "
+"implementations, so POSIX requires a portable application to check for both "
+"errors.)"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:312
+#: build/C/man2/fcntl.2:354
#, no-wrap
msgid "B<F_SETLKW> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:326
+#: build/C/man2/fcntl.2:368
msgid ""
"As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait "
"for that lock to be released. If a signal is caught while waiting, then the "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:326
+#: build/C/man2/fcntl.2:368
#, no-wrap
msgid "B<F_GETLK> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:350
+#: build/C/man2/fcntl.2:382
msgid ""
"On input to this call, I<lock> describes a lock we would like to place on "
"the file. If the lock could be placed, B<fcntl>() does not actually place "
"it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
-"other fields of the structure unchanged. If one or more incompatible locks "
-"would prevent this lock being placed, then B<fcntl>() returns details about "
-"one of these locks in the I<l_type>, I<l_whence>, I<l_start>, and I<l_len> "
-"fields of I<lock> and sets I<l_pid> to be the PID of the process holding "
-"that lock."
+"other fields of the structure unchanged."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:399
+msgid ""
+"If one or more incompatible locks would prevent this lock being placed, then "
+"B<fcntl>() returns details about one of those locks in the I<l_type>, "
+"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>. If the conflicting "
+"lock is a traditional (process-associated) record lock, then the I<l_pid> "
+"field is set to the PID of the process holding that lock. If the "
+"conflicting lock is an open file description lock, then I<l_pid> is set to "
+"-1. Note that the returned information may already be out of date by the "
+"time the caller inspects it."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:358
+#: build/C/man2/fcntl.2:407
msgid ""
"In order to place a read lock, I<fd> must be open for reading. In order to "
"place a write lock, I<fd> must be open for writing. To place both types of "
"lock, open a file read-write."
msgstr ""
-#. (Additional file descriptors referring to the same file
-#. may have been obtained by calls to
-#. .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
#. type: Plain text
-#: build/C/man2/fcntl.2:375
+#: build/C/man2/fcntl.2:430
+msgid ""
+"When placing locks with B<F_SETLKW>, the kernel detects I<deadlocks>, "
+"whereby two or more processes have their lock requests mutually blocked by "
+"locks held by the other processes. For example, suppose process A holds a "
+"write lock on byte 100 of a file, and process B holds a write lock on byte "
+"200. If each process then attempts to lock the byte already locked by the "
+"other process using B<F_SETLKW>, then, without deadlock detection, both "
+"processes would remain blocked indefinitely. When the kernel detects such "
+"deadlocks, it causes one of the blocking lock requests to immediately fail "
+"with the error B<EDEADLK>; an application that encounters such an error "
+"should release some of its locks to allow other applications to proceed "
+"before attempting regain the locks that it requires. Circular deadlocks "
+"involving more than two processes are also detected. Note, however, that "
+"there are limitations to the kernel's deadlock-detection algorithm; see "
+"BUGS."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:434
msgid ""
"As well as being removed by an explicit B<F_UNLCK>, record locks are "
-"automatically released when the process terminates or if it closes I<any> "
-"file descriptor referring to a file on which locks are held. This is bad: "
-"it means that a process can lose the locks on a file like I</etc/passwd> or "
-"I</etc/mtab> when for some reason a library function decides to open, read "
-"and close it."
+"automatically released when the process terminates."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:380
+#: build/C/man2/fcntl.2:439
msgid ""
"Record locks are not inherited by a child created via B<fork>(2), but are "
"preserved across an B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:389
+#: build/C/man2/fcntl.2:448
msgid ""
"Because of the buffering performed by the B<stdio>(3) library, the use of "
"record locking with routines in that package should be avoided; use "
"B<read>(2) and B<write>(2) instead."
msgstr ""
+#. type: Plain text
+#: build/C/man2/fcntl.2:452
+msgid ""
+"The record locks described above are associated with the process (unlike the "
+"open file description locks described below). This has some unfortunate "
+"consequences:"
+msgstr ""
+
+#. (Additional file descriptors referring to the same file
+#. may have been obtained by calls to
+#. .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
+#. type: Plain text
+#: build/C/man2/fcntl.2:468
+msgid ""
+"If a process closes I<any> file descriptor referring to a file, then all of "
+"the process's locks on that file are released, regardless of the file "
+"descriptor(s) on which the locks were obtained. This is bad: it means that "
+"a process can lose its locks on a file such as I</etc/passwd> or "
+"I</etc/mtab> when for some reason a library function decides to open, read, "
+"and close the same file."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:473
+msgid ""
+"The threads in a process share locks. In other words, a multithreaded "
+"program can't use record locking to ensure that threads don't simultaneously "
+"access the same region of a file."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:475
+msgid "Open file description locks solve both of these problems."
+msgstr ""
+
#. type: SS
-#: build/C/man2/fcntl.2:389
+#: build/C/man2/fcntl.2:475
#, no-wrap
-msgid "Mandatory locking"
+msgid "Open file description locks (non-POSIX)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:393
+#: build/C/man2/fcntl.2:482
msgid ""
-"(Non-POSIX.) The above record locks may be either advisory or mandatory, "
-"and are advisory by default."
+"Open file description locks are advisory byte-range locks whose operation is "
+"in most respects identical to the traditional record locks described above. "
+"This lock type is Linux-specific, and available since Linux 3.15. For an "
+"explanation of open file descriptions, see B<open>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:396
+#: build/C/man2/fcntl.2:500
msgid ""
-"Advisory locks are not enforced and are useful only between cooperating "
-"processes."
+"The principal difference between the two lock types is that whereas "
+"traditional record locks are associated with a process, open file "
+"description locks are associated with the open file description on which "
+"they are acquired, much like locks acquired with B<flock>(2). Consequently "
+"(and unlike traditional advisory record locks), open file description locks "
+"are inherited across B<fork>(2) (and B<clone>(2) with B<CLONE_FILES>), and "
+"are only automatically released on the last close of the open file "
+"description, instead of being released on any close of the file."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:415
+#: build/C/man2/fcntl.2:503
msgid ""
-"Mandatory locks are enforced for all processes. If a process tries to "
-"perform an incompatible access (e.g., B<read>(2) or B<write>(2)) on a file "
-"region that has an incompatible mandatory lock, then the result depends upon "
-"whether the B<O_NONBLOCK> flag is enabled for its open file description. If "
-"the B<O_NONBLOCK> flag is not enabled, then system call is blocked until the "
-"lock is removed or converted to a mode that is compatible with the access. "
-"If the B<O_NONBLOCK> flag is enabled, then the system call fails with the "
-"error B<EAGAIN>."
+"Open file description locks always conflict with traditional record locks, "
+"even when they are acquired by the same process on the same file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:432
+#: build/C/man2/fcntl.2:516
msgid ""
-"To make use of mandatory locks, mandatory locking must be enabled both on "
-"the file system that contains the file to be locked, and on the file "
-"itself. Mandatory locking is enabled on a file system using the \"-o mand\" "
-"option to B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2). "
-"Mandatory locking is enabled on a file by disabling group execute permission "
-"on the file and enabling the set-group-ID permission bit (see B<chmod>(1) "
-"and B<chmod>(2))."
+"Open file description locks placed via the same open file description (i.e., "
+"via the same file descriptor, or via a duplicate of the file descriptor "
+"created by B<fork>(2), B<dup>(2), B<fcntl>(2) B<F_DUPFD>, and so on) are "
+"always compatible: if a new lock is placed on an already locked region, then "
+"the existing lock is converted to the new lock type. (Such conversions may "
+"result in splitting, shrinking, or coalescing with an existing lock as "
+"discussed above.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:435
+#: build/C/man2/fcntl.2:524
msgid ""
-"The Linux implementation of mandatory locking is unreliable. See BUGS "
-"below."
+"On the other hand, open file description locks may conflict with each other "
+"when they are acquired via different open file descriptions. Thus, the "
+"threads in a multithreaded program can use open file description locks to "
+"synchronize access to a file region by having each thread perform its own "
+"B<open>(2) on the file and applying locks via the resulting file "
+"descriptor."
msgstr ""
-#. type: SS
-#: build/C/man2/fcntl.2:435
+#. type: Plain text
+#: build/C/man2/fcntl.2:535
+msgid ""
+"As with traditional advisory locks, the third argument to B<fcntl>(), "
+"I<lock>, is a pointer to an I<flock> structure. By contrast with "
+"traditional record locks, the I<l_pid> field of that structure must be set "
+"to zero when using the commands described below."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:538
+msgid ""
+"The commands for working with open file description locks are analogous to "
+"those used with traditional locks:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:538
#, no-wrap
-msgid "Managing signals"
+msgid "B<F_OFD_SETLK> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:444
+#: build/C/man2/fcntl.2:559
msgid ""
-"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
-"B<F_SETSIG> are used to manage I/O availability signals:"
+"Acquire an open file description lock (when I<l_type> is B<F_RDLCK> or "
+"B<F_WRLCK>) or release an open file description lock (when I<l_type> is "
+"B<F_UNLCK>) on the bytes specified by the I<l_whence>, I<l_start>, and "
+"I<l_len> fields of I<lock>. If a conflicting lock is held by another "
+"process, this call returns -1 and sets I<errno> to B<EAGAIN>."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:444
+#: build/C/man2/fcntl.2:559
#, no-wrap
-msgid "B<F_GETOWN> (I<void>)"
+msgid "B<F_OFD_SETLKW> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:457
+#: build/C/man2/fcntl.2:573
msgid ""
-"Return (as the function result) the process ID or process group currently "
-"receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
-"I<fd>. Process IDs are returned as positive values; process group IDs are "
-"returned as negative values (but see BUGS below). I<arg> is ignored."
+"As for B<F_OFD_SETLK>, but if a conflicting lock is held on the file, then "
+"wait for that lock to be released. If a signal is caught while waiting, "
+"then the call is interrupted and (after the signal handler has returned) "
+"returns immediately (with return value -1 and I<errno> set to B<EINTR>; see "
+"B<signal>(7))."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:457
+#: build/C/man2/fcntl.2:573
#, no-wrap
-msgid "B<F_SETOWN> (I<int>)"
+msgid "B<F_OFD_GETLK> (I<struct flock *>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:474
+#: build/C/man2/fcntl.2:592
msgid ""
-"Set the process ID or process group ID that will receive B<SIGIO> and "
-"B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
-"I<arg>. A process ID is specified as a positive value; a process group ID "
-"is specified as a negative value. Most commonly, the calling process "
-"specifies itself as the owner (that is, I<arg> is specified as "
-"B<getpid>(2))."
+"On input to this call, I<lock> describes an open file description lock we "
+"would like to place on the file. If the lock could be placed, B<fcntl>() "
+"does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of "
+"I<lock> and leaves the other fields of the structure unchanged. If one or "
+"more incompatible locks would prevent this lock being placed, then details "
+"about one of these locks are returned via I<lock>, as described above for "
+"B<F_GETLK>."
msgstr ""
-#. From glibc.info:
+#. commit 57b65325fe34ec4c917bc4e555144b4a94d9e1f7
#. type: Plain text
-#: build/C/man2/fcntl.2:491
+#: build/C/man2/fcntl.2:599
msgid ""
-"If you set the B<O_ASYNC> status flag on a file descriptor by using the "
-"B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
-"or output becomes possible on that file descriptor. B<F_SETSIG> can be used "
-"to obtain delivery of a signal other than B<SIGIO>. If this permission "
-"check fails, then the signal is silently discarded."
+"In the current implementation, no deadlock detection is performed for open "
+"file description locks. (This contrasts with process-associated record "
+"locks, for which the kernel does perform deadlock detection.)"
+msgstr ""
+
+#. type: SS
+#: build/C/man2/fcntl.2:599 build/C/man2/fcntl.2:1894
+#, no-wrap
+msgid "Mandatory locking"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:499
+#: build/C/man2/fcntl.2:603
msgid ""
-"Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
-"subject to the same permissions checks as are described for B<kill>(2), "
-"where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
-"below)."
+"I<Warning>: the Linux implementation of mandatory locking is unreliable. "
+"See BUGS below."
msgstr ""
-#. The following appears to be rubbish. It doesn't seem to
-#. be true according to the kernel source, and I can write
-#. a program that gets a terminal-generated SIGIO even though
-#. it is not the foreground process group of the terminal.
-#. -- MTK, 8 Apr 05
-#
-#. If the file descriptor
-#. .I fd
-#. refers to a terminal device, then SIGIO
-#. signals are sent to the foreground process group of the terminal.
#. type: Plain text
-#: build/C/man2/fcntl.2:523
+#: build/C/man2/fcntl.2:608
msgid ""
-"If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
-"the recipient of B<SIGURG> signals that are delivered when out-of-band data "
-"arrives on that socket. (B<SIGURG> is sent in any situation where "
-"B<select>(2) would report the socket as having an \"exceptional "
-"condition\".)"
+"By default, both traditional (process-associated) and open file description "
+"record locks are advisory. Advisory locks are not enforced and are useful "
+"only between cooperating processes."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:526
-msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
+#: build/C/man2/fcntl.2:628
+msgid ""
+"Both lock types can also be mandatory. Mandatory locks are enforced for all "
+"processes. If a process tries to perform an incompatible access (e.g., "
+"B<read>(2) or B<write>(2)) on a file region that has an incompatible "
+"mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag "
+"is enabled for its open file description. If the B<O_NONBLOCK> flag is not "
+"enabled, then the system call is blocked until the lock is removed or "
+"converted to a mode that is compatible with the access. If the "
+"B<O_NONBLOCK> flag is enabled, then the system call fails with the error "
+"B<EAGAIN>."
msgstr ""
-#. The relevant place in the (2.6) kernel source is the
+#. type: Plain text
+#: build/C/man2/fcntl.2:645
+msgid ""
+"To make use of mandatory locks, mandatory locking must be enabled both on "
+"the filesystem that contains the file to be locked, and on the file itself. "
+"Mandatory locking is enabled on a filesystem using the \"-o mand\" option to "
+"B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2). Mandatory locking "
+"is enabled on a file by disabling group execute permission on the file and "
+"enabling the set-group-ID permission bit (see B<chmod>(1) and B<chmod>(2))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:649
+msgid ""
+"Mandatory locking is not specified by POSIX. Some other systems also "
+"support mandatory locking, although the details of how to enable it vary "
+"across systems."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/fcntl.2:649
+#, no-wrap
+msgid "Managing signals"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:658
+msgid ""
+"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
+"B<F_SETSIG> are used to manage I/O availability signals:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:658
+#, no-wrap
+msgid "B<F_GETOWN> (I<void>)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:671
+msgid ""
+"Return (as the function result) the process ID or process group currently "
+"receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
+"I<fd>. Process IDs are returned as positive values; process group IDs are "
+"returned as negative values (but see BUGS below). I<arg> is ignored."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:671
+#, no-wrap
+msgid "B<F_SETOWN> (I<int>)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:688
+msgid ""
+"Set the process ID or process group ID that will receive B<SIGIO> and "
+"B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
+"I<arg>. A process ID is specified as a positive value; a process group ID "
+"is specified as a negative value. Most commonly, the calling process "
+"specifies itself as the owner (that is, I<arg> is specified as "
+"B<getpid>(2))."
+msgstr ""
+
+#. From glibc.info:
+#. type: Plain text
+#: build/C/man2/fcntl.2:705
+msgid ""
+"If you set the B<O_ASYNC> status flag on a file descriptor by using the "
+"B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
+"or output becomes possible on that file descriptor. B<F_SETSIG> can be used "
+"to obtain delivery of a signal other than B<SIGIO>. If this permission "
+"check fails, then the signal is silently discarded."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:713
+msgid ""
+"Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
+"subject to the same permissions checks as are described for B<kill>(2), "
+"where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
+"below)."
+msgstr ""
+
+#. The following appears to be rubbish. It doesn't seem to
+#. be true according to the kernel source, and I can write
+#. a program that gets a terminal-generated SIGIO even though
+#. it is not the foreground process group of the terminal.
+#. -- MTK, 8 Apr 05
+#
+#. If the file descriptor
+#. .I fd
+#. refers to a terminal device, then SIGIO
+#. signals are sent to the foreground process group of the terminal.
+#. type: Plain text
+#: build/C/man2/fcntl.2:737
+msgid ""
+"If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
+"the recipient of B<SIGURG> signals that are delivered when out-of-band data "
+"arrives on that socket. (B<SIGURG> is sent in any situation where "
+"B<select>(2) would report the socket as having an \"exceptional "
+"condition\".)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:740
+msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
+msgstr ""
+
+#. The relevant place in the (2.6) kernel source is the
#. 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
#. send_sigurg()/send_sigurg_to_task() bypasses
#. kill_fasync()/send_sigio()/send_sigio_to_task()
#. to directly call send_group_sig_info()
#. -- MTK, Apr 2005 (kernel 2.6.11)
#. type: Plain text
-#: build/C/man2/fcntl.2:566
+#: build/C/man2/fcntl.2:780
msgid ""
"If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
"running with a threading library that supports thread groups (e.g., NPTL), "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:577
+#: build/C/man2/fcntl.2:791
msgid ""
"The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
"restored. From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:577
+#: build/C/man2/fcntl.2:791
#, no-wrap
msgid "B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:586
+#: build/C/man2/fcntl.2:800
msgid ""
"Return the current file descriptor owner settings as defined by a previous "
"B<F_SETOWN_EX> operation. The information is returned in the structure "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:593
+#: build/C/man2/fcntl.2:807
#, no-wrap
msgid ""
"struct f_owner_ex {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:610
+#: build/C/man2/fcntl.2:824
msgid ""
"The I<type> field will have one of the values B<F_OWNER_TID>, "
"B<F_OWNER_PID>, or B<F_OWNER_PGRP>. The I<pid> field is a positive integer "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:610
+#: build/C/man2/fcntl.2:824
#, no-wrap
msgid "B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:626
+#: build/C/man2/fcntl.2:840
msgid ""
"This operation performs a similar task to B<F_SETOWN>. It allows the caller "
"to direct I/O availability signals to a specific thread, process, or process "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:627
+#: build/C/man2/fcntl.2:841
#, no-wrap
msgid "B<F_OWNER_TID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:636
+#: build/C/man2/fcntl.2:850
msgid ""
"Send the signal to the thread whose thread ID (the value returned by a call "
"to B<clone>(2) or B<gettid>(2)) is specified in I<pid>."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:636
+#: build/C/man2/fcntl.2:850
#, no-wrap
msgid "B<F_OWNER_PID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:641
+#: build/C/man2/fcntl.2:855
msgid "Send the signal to the process whose ID is specified in I<pid>."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:641
+#: build/C/man2/fcntl.2:855
#, no-wrap
msgid "B<F_OWNER_PGRP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:649
+#: build/C/man2/fcntl.2:863
msgid ""
"Send the signal to the process group whose ID is specified in I<pid>. (Note "
"that, unlike with B<F_SETOWN>, a process group ID is specified as a positive "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:650
+#: build/C/man2/fcntl.2:864
#, no-wrap
msgid "B<F_GETSIG> (I<void>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:665
+#: build/C/man2/fcntl.2:879
msgid ""
"Return (as the function result) the signal sent when input or output "
"becomes possible. A value of zero means B<SIGIO> is sent. Any other value "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:665
+#: build/C/man2/fcntl.2:879
#, no-wrap
msgid "B<F_SETSIG> (I<int>)"
msgstr ""
#. .B F_SETOWN
#. for more details.
#. type: Plain text
-#: build/C/man2/fcntl.2:688
+#: build/C/man2/fcntl.2:902
msgid ""
"Set the signal sent when input or output becomes possible to the value given "
"in I<arg>. A value of zero means to send the default B<SIGIO> signal. Any "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:716
+#: build/C/man2/fcntl.2:930
msgid ""
"By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the "
"signal handler (see B<sigaction>(2)), extra information about I/O events is "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:725
+#: build/C/man2/fcntl.2:939
msgid ""
"By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O "
"events may be queued using the same signal numbers. (Queuing is dependent "
#. See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
#. type: Plain text
-#: build/C/man2/fcntl.2:738
+#: build/C/man2/fcntl.2:952
msgid ""
"Note that Linux imposes a limit on the number of real-time signals that may "
"be queued to a process (see B<getrlimit>(2) and B<signal>(7)) and if this "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:745
+#: build/C/man2/fcntl.2:959
msgid ""
"Using these mechanisms, a program can implement fully asynchronous I/O "
"without using B<select>(2) or B<poll>(2) most of the time."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:761
+#: build/C/man2/fcntl.2:983
msgid ""
-"The use of B<O_ASYNC>, B<F_GETOWN>, B<F_SETOWN> is specific to BSD and "
-"Linux. B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and B<F_SETSIG> are "
-"Linux-specific. POSIX has asynchronous I/O and the I<aio_sigevent> "
-"structure to achieve similar things; these are also available in Linux as "
-"part of the GNU C Library (Glibc)."
+"The use of B<O_ASYNC> is specific to BSD and Linux. The only use of "
+"B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with the "
+"use of the B<SIGURG> signal on sockets. (POSIX does not specify the "
+"B<SIGIO> signal.) B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and "
+"B<F_SETSIG> are Linux-specific. POSIX has asynchronous I/O and the "
+"I<aio_sigevent> structure to achieve similar things; these are also "
+"available in Linux as part of the GNU C Library (Glibc)."
msgstr ""
#. type: SS
-#: build/C/man2/fcntl.2:761
+#: build/C/man2/fcntl.2:983
#, no-wrap
msgid "Leases"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:776
+#: build/C/man2/fcntl.2:998
msgid ""
"B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) "
"to establish a new lease, and retrieve the current lease, on the open file "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:776
+#: build/C/man2/fcntl.2:998
#, no-wrap
msgid "B<F_SETLEASE> (I<int>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:781
+#: build/C/man2/fcntl.2:1003
msgid ""
"Set or remove a file lease according to which of the following values is "
"specified in the integer I<arg>:"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:782
+#: build/C/man2/fcntl.2:1004
#, no-wrap
msgid "B<F_RDLCK>"
msgstr ""
#. The following became true in kernel 2.6.10:
#. See the man-pages-2.09 Changelog for further info.
#. type: Plain text
-#: build/C/man2/fcntl.2:791
+#: build/C/man2/fcntl.2:1013
msgid ""
"Take out a read lease. This will cause the calling process to be notified "
-"when the file is opened for writing or is truncated. A read lease can only "
-"be placed on a file descriptor that is opened read-only."
+"when the file is opened for writing or is truncated. A read lease can be "
+"placed only on a file descriptor that is opened read-only."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:791
+#: build/C/man2/fcntl.2:1013
#, no-wrap
msgid "B<F_WRLCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:798
+#: build/C/man2/fcntl.2:1020
msgid ""
"Take out a write lease. This will cause the caller to be notified when the "
"file is opened for reading or writing or is truncated. A write lease may be "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:798
+#: build/C/man2/fcntl.2:1020
#, no-wrap
msgid "B<F_UNLCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:801
+#: build/C/man2/fcntl.2:1023
msgid "Remove our lease from the file."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:815
+#: build/C/man2/fcntl.2:1037
msgid ""
"Leases are associated with an open file description (see B<open>(2)). This "
"means that duplicate file descriptors (created by, for example, B<fork>(2) "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:822
+#: build/C/man2/fcntl.2:1044
msgid ""
-"Leases may only be taken out on regular files. An unprivileged process may "
-"only take out a lease on a file whose UID (owner) matches the file system "
-"UID of the process. A process with the B<CAP_LEASE> capability may take out "
+"Leases may be taken out only on regular files. An unprivileged process may "
+"take out a lease only on a file whose UID (owner) matches the filesystem UID "
+"of the process. A process with the B<CAP_LEASE> capability may take out "
"leases on arbitrary files."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:822
+#: build/C/man2/fcntl.2:1044
#, no-wrap
msgid "B<F_GETLEASE> (I<void>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:831
+#: build/C/man2/fcntl.2:1053
msgid ""
"Indicates what type of lease is associated with the file descriptor I<fd> by "
"returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:862
+#: build/C/man2/fcntl.2:1084
msgid ""
"When a process (the \"lease breaker\") performs an B<open>(2) or "
"B<truncate>(2) that conflicts with a lease established via B<F_SETLEASE>, "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:867
+#: build/C/man2/fcntl.2:1089
msgid ""
"If the lease holder fails to downgrade or remove the lease within the number "
-"of seconds specified in I</proc/sys/fs/lease-break-time> then the kernel "
+"of seconds specified in I</proc/sys/fs/lease-break-time>, then the kernel "
"forcibly removes or downgrades the lease holder's lease."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:877
+#: build/C/man2/fcntl.2:1099
msgid ""
"Once a lease break has been initiated, B<F_GETLEASE> returns the target "
"lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:881
+#: build/C/man2/fcntl.2:1103
msgid ""
"Once the lease has been voluntarily or forcibly removed or downgraded, and "
"assuming the lease breaker has not unblocked its system call, the kernel "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:902
+#: build/C/man2/fcntl.2:1124
msgid ""
"If the lease breaker's blocked B<open>(2) or B<truncate>(2) is interrupted "
"by a signal handler, then the system call fails with the error B<EINTR>, but "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:923
+#: build/C/man2/fcntl.2:1145
msgid ""
"The default signal used to notify the lease holder is B<SIGIO>, but this can "
"be changed using the B<F_SETSIG> command to B<fcntl>(). If a B<F_SETSIG> "
msgstr ""
#. type: SS
-#: build/C/man2/fcntl.2:923
+#: build/C/man2/fcntl.2:1145
#, no-wrap
msgid "File and directory change notification (dnotify)"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:924
+#: build/C/man2/fcntl.2:1146
#, no-wrap
msgid "B<F_NOTIFY> (I<int>)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:934
+#: build/C/man2/fcntl.2:1156
msgid ""
"(Linux 2.4 onward) Provide notification when the directory referred to by "
"I<fd> or any of the files that it contains is changed. The events to be "
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:937
+#: build/C/man2/fcntl.2:1159
#, no-wrap
msgid "B<DN_ACCESS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:940
-msgid "A file was accessed (read, pread, readv)"
+#: build/C/man2/fcntl.2:1166
+msgid "A file was accessed (B<read>(2), B<pread>(2), B<readv>(2), and similar)"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:940
+#: build/C/man2/fcntl.2:1166
#, no-wrap
msgid "B<DN_MODIFY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:943
-msgid "A file was modified (write, pwrite, writev, truncate, ftruncate)."
+#: build/C/man2/fcntl.2:1175
+msgid ""
+"A file was modified (B<write>(2), B<pwrite>(2), B<writev>(2), "
+"B<truncate>(2), B<ftruncate>(2), and similar)."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:943
+#: build/C/man2/fcntl.2:1175
#, no-wrap
msgid "B<DN_CREATE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:946
-msgid "A file was created (open, creat, mknod, mkdir, link, symlink, rename)."
+#: build/C/man2/fcntl.2:1186
+msgid ""
+"A file was created (B<open>(2), B<creat>(2), B<mknod>(2), B<mkdir>(2), "
+"B<link>(2), B<symlink>(2), B<rename>(2) into this directory)."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:946
+#: build/C/man2/fcntl.2:1186
#, no-wrap
msgid "B<DN_DELETE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:949
-msgid "A file was unlinked (unlink, rename to another directory, rmdir)."
+#: build/C/man2/fcntl.2:1193
+msgid ""
+"A file was unlinked (B<unlink>(2), B<rename>(2) to another directory, "
+"B<rmdir>(2))."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:949
+#: build/C/man2/fcntl.2:1193
#, no-wrap
msgid "B<DN_RENAME>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:952
-msgid "A file was renamed within this directory (rename)."
+#: build/C/man2/fcntl.2:1197
+msgid "A file was renamed within this directory (B<rename>(2))."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:952
+#: build/C/man2/fcntl.2:1197
#, no-wrap
msgid "B<DN_ATTRIB>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:955
-msgid "The attributes of a file were changed (chown, chmod, utime[s])."
+#: build/C/man2/fcntl.2:1205
+msgid ""
+"The attributes of a file were changed (B<chown>(2), B<chmod>(2), "
+"B<utime>(2), B<utimensat>(2), and similar)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:963
+#: build/C/man2/fcntl.2:1213
msgid ""
"(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro "
"must be defined before including I<any> header files.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:971
+#: build/C/man2/fcntl.2:1221
msgid ""
"Directory notifications are normally \"one-shot\", and the application must "
"reregister to receive further notifications. Alternatively, if "
#. The following does seem a poor API-design choice...
#. type: Plain text
-#: build/C/man2/fcntl.2:983
+#: build/C/man2/fcntl.2:1233
msgid ""
"A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> "
"being added to the set already monitored. To disable notification of all "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1001
+#: build/C/man2/fcntl.2:1256
msgid ""
"Notification occurs via delivery of a signal. The default signal is "
"B<SIGIO>, but this can be changed using the B<F_SETSIG> command to "
-"B<fcntl>(). In the latter case, the signal handler receives a I<siginfo_t> "
-"structure as its second argument (if the handler was established using "
-"B<SA_SIGINFO>) and the I<si_fd> field of this structure contains the file "
-"descriptor which generated the notification (useful when establishing "
-"notification on multiple directories)."
+"B<fcntl>(). (Note that B<SIGIO> is one of the nonqueuing standard signals; "
+"switching to the use of a real-time signal means that multiple notifications "
+"can be queued to the process.) In the latter case, the signal handler "
+"receives a I<siginfo_t> structure as its second argument (if the handler was "
+"established using B<SA_SIGINFO>) and the I<si_fd> field of this structure "
+"contains the file descriptor which generated the notification (useful when "
+"establishing notification on multiple directories)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1006
+#: build/C/man2/fcntl.2:1261
msgid ""
"Especially when using B<DN_MULTISHOT>, a real time signal should be used for "
"notification, so that multiple notifications can be queued."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1015
+#: build/C/man2/fcntl.2:1270
msgid ""
"B<NOTE:> New applications should use the I<inotify> interface (available "
"since kernel 2.6.13), which provides a much superior interface for obtaining "
-"notifications of file system events. See B<inotify>(7)."
+"notifications of filesystem events. See B<inotify>(7)."
msgstr ""
#. type: SS
-#: build/C/man2/fcntl.2:1015
+#: build/C/man2/fcntl.2:1270
#, no-wrap
msgid "Changing the capacity of a pipe"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1016
+#: build/C/man2/fcntl.2:1271
#, no-wrap
msgid "B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1047
+#: build/C/man2/fcntl.2:1300
msgid ""
"Change the capacity of the pipe referred to by I<fd> to be at least I<arg> "
"bytes. An unprivileged process can adjust the pipe capacity to any value "
"in I</proc/sys/fs/pipe-max-size> yield the error B<EPERM>; a privileged "
"process (B<CAP_SYS_RESOURCE>) can override the limit. When allocating the "
"buffer for the pipe, the kernel may use a capacity larger than I<arg>, if "
-"that is convenient for the implementation. The B<F_GETPIPE_SZ> operation "
-"returns the actual size used. Attempting to set the pipe capacity smaller "
-"than the amount of buffer space currently used to store data produces the "
-"error B<EBUSY>."
+"that is convenient for the implementation. The actual capacity that is set "
+"is returned as the function result. Attempting to set the pipe capacity "
+"smaller than the amount of buffer space currently used to store data "
+"produces the error B<EBUSY>."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1047
+#: build/C/man2/fcntl.2:1300
#, no-wrap
msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1051
+#: build/C/man2/fcntl.2:1305
msgid ""
"Return (as the function result) the capacity of the pipe referred to by "
"I<fd>."
msgstr ""
+#. type: SS
+#: build/C/man2/fcntl.2:1305
+#, no-wrap
+msgid "File Sealing"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/fcntl.2:1053
+#: build/C/man2/fcntl.2:1317
+msgid ""
+"File seals limit the set of allowed operations on a given file. For each "
+"seal that is set on a file, a specific set of operations will fail with "
+"B<EPERM> on this file from now on. The file is said to be sealed. The "
+"default set of seals depends on the type of the underlying file and "
+"filesystem. For an overview of file sealing, a discussion of its purpose, "
+"and some code examples, see B<memfd_create>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1325
+msgid ""
+"Currently, only the I<tmpfs> filesystem supports sealing. On other "
+"filesystems, all B<fcntl>(2) operations that operate on seals will return "
+"B<EINVAL>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1330
+msgid ""
+"Seals are a property of an inode. Thus, all open file descriptors referring "
+"to the same inode share the same set of seals. Furthermore, seals can never "
+"be removed, only added."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1330
+#, no-wrap
+msgid "B<F_ADD_SEALS> (I<int>; since Linux 3.17)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1348
+msgid ""
+"Add the seals given in the bit-mask argument I<arg> to the set of seals of "
+"the inode referred to by the file descriptor I<fd>. Seals cannot be removed "
+"again. Once this call succeeds, the seals are enforced by the kernel "
+"immediately. If the current set of seals includes B<F_SEAL_SEAL> (see "
+"below), then this call will be rejected with B<EPERM>. Adding a seal that "
+"is already set is a no-op, in case B<F_SEAL_SEAL> is not set already. In "
+"order to place a seal, the file descriptor I<fd> must be writable."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1348
+#, no-wrap
+msgid "B<F_GET_SEALS> (I<void>; since Linux 3.17)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1358
+msgid ""
+"Return (as the function result) the current set of seals of the inode "
+"referred to by I<fd>. If no seals are set, 0 is returned. If the file does "
+"not support sealing, -1 is returned and I<errno> is set to B<EINVAL>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1360
+msgid "The following seals are available:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1360
+#, no-wrap
+msgid "B<F_SEAL_SEAL>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1372
+msgid ""
+"If this seal is set, any further call to B<fcntl>(2) with B<F_ADD_SEALS> "
+"will fail with B<EPERM>. Therefore, this seal prevents any modifications to "
+"the set of seals itself. If the initial set of seals of a file includes "
+"B<F_SEAL_SEAL>, then this effectively causes the set of seals to be constant "
+"and locked."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1372
+#, no-wrap
+msgid "B<F_SEAL_SHRINK>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1387
+msgid ""
+"If this seal is set, the file in question cannot be reduced in size. This "
+"affects B<open>(2) with the B<O_TRUNC> flag as well as B<truncate>(2) and "
+"B<ftruncate>(2). Those calls will fail with B<EPERM> if you try to shrink "
+"the file in question. Increasing the file size is still possible."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1387
+#, no-wrap
+msgid "B<F_SEAL_GROW>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1401
+msgid ""
+"If this seal is set, the size of the file in question cannot be increased. "
+"This affects B<write>(2) beyond the end of the file, B<truncate>(2), "
+"B<ftruncate>(2), and B<fallocate>(2). These calls will fail with B<EPERM> "
+"if you use them to increase the file size. If you keep the size or shrink "
+"it, those calls still work as expected."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1401
+#, no-wrap
+msgid "B<F_SEAL_WRITE>"
+msgstr ""
+
+#. One or more other seals are typically used with F_SEAL_WRITE
+#. because, given a file with the F_SEAL_WRITE seal set, then,
+#. while it would no longer be possinle to (say) write zeros into
+#. the last 100 bytes of a file, it would still be possible
+#. to (say) shrink the file by 100 bytes using ftruncate(), and
+#. then increase the file size by 100 bytes, which would have
+#. the effect of replacing the last hundred bytes by zeros.
+#. type: Plain text
+#: build/C/man2/fcntl.2:1429
+msgid ""
+"If this seal is set, you cannot modify the contents of the file. Note that "
+"shrinking or growing the size of the file is still possible and allowed. "
+"Thus, this seal is normally used in combination with one of the other "
+"seals. This seal affects B<write>(2) and B<fallocate>(2) (only in "
+"combination with the B<FALLOC_FL_PUNCH_HOLE> flag). Those calls will fail "
+"with B<EPERM> if this seal is set. Furthermore, trying to create new "
+"shared, writable memory-mappings via B<mmap>(2) will also fail with "
+"B<EPERM>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1444
+msgid ""
+"Setting B<F_SEAL_WRITE> via B<fcntl>(2) with B<F_ADD_SEALS> will fail with "
+"B<EBUSY> if any writable, shared mapping exists. Such mappings must be "
+"unmapped before you can add this seal. Furthermore, if there are any "
+"asynchronous I/O operations (B<io_submit>(2)) pending on the file, all "
+"outstanding writes will be discarded."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1446
msgid "For a successful call, the return value depends on the operation:"
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1053
+#: build/C/man2/fcntl.2:1446
#, no-wrap
msgid "B<F_DUPFD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1056
+#: build/C/man2/fcntl.2:1449
msgid "The new descriptor."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1056
+#: build/C/man2/fcntl.2:1449
#, no-wrap
msgid "B<F_GETFD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1059
+#: build/C/man2/fcntl.2:1452
msgid "Value of file descriptor flags."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1059
+#: build/C/man2/fcntl.2:1452
#, no-wrap
msgid "B<F_GETFL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1062
+#: build/C/man2/fcntl.2:1455
msgid "Value of file status flags."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1062
+#: build/C/man2/fcntl.2:1455
#, no-wrap
msgid "B<F_GETLEASE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1065
+#: build/C/man2/fcntl.2:1458
msgid "Type of lease held on file descriptor."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1065
+#: build/C/man2/fcntl.2:1458
#, no-wrap
msgid "B<F_GETOWN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1068
+#: build/C/man2/fcntl.2:1461
msgid "Value of descriptor owner."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1068
+#: build/C/man2/fcntl.2:1461
#, no-wrap
msgid "B<F_GETSIG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1074
+#: build/C/man2/fcntl.2:1467
msgid ""
"Value of signal sent when read or write becomes possible, or zero for "
"traditional B<SIGIO> behavior."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1074
+#: build/C/man2/fcntl.2:1467
#, no-wrap
-msgid "B<F_GETPIPE_SZ>"
+msgid "B<F_GETPIPE_SZ>, B<F_SETPIPE_SZ>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1077
+#: build/C/man2/fcntl.2:1470
msgid "The pipe capacity."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1077
+#: build/C/man2/fcntl.2:1470
+#, no-wrap
+msgid "B<F_GET_SEALS>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1475
+msgid ""
+"A bit mask identifying the seals that have been set for the inode referred "
+"to by I<fd>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/fcntl.2:1475
#, no-wrap
msgid "All other commands"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1080
+#: build/C/man2/fcntl.2:1478
msgid "Zero."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1084
+#: build/C/man2/fcntl.2:1482
msgid "On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1085 build/C/man3/lockf.3:122
+#: build/C/man2/fcntl.2:1483 build/C/man3/lockf.3:122
#, no-wrap
msgid "B<EACCES> or B<EAGAIN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1088
+#: build/C/man2/fcntl.2:1486
msgid "Operation is prohibited by locks held by other processes."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1088 build/C/man2/fork.2:181 build/C/man2/fork.2:186
+#: build/C/man2/fcntl.2:1486 build/C/man2/fork.2:186 build/C/man2/fork.2:191 build/C/man2/fork.2:209
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1092
+#: build/C/man2/fcntl.2:1490
msgid ""
"The operation is prohibited because the file has been memory-mapped by "
"another process."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1101
+#: build/C/man2/fcntl.2:1494
+msgid "I<fd> is not an open file descriptor"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1503
+msgid ""
+"I<cmd> is B<F_SETLK> or B<F_SETLKW> and the file descriptor open mode "
+"doesn't match with the type of lock requested."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1512
+msgid ""
+"I<cmd> is B<F_SETPIPE_SZ> and the new pipe capacity specified in I<arg> is "
+"smaller than the amount of buffer space currently used to store data in the "
+"pipe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1522
msgid ""
-"I<fd> is not an open file descriptor, or the command was B<F_SETLK> or "
-"B<F_SETLKW> and the file descriptor open mode doesn't match with the type of "
-"lock requested."
+"I<cmd> is B<F_ADD_SEALS>, I<arg> includes B<F_SEAL_WRITE>, and there exists "
+"a writable, shared mapping on the file referred to by I<fd>."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1101 build/C/man3/lockf.3:142
+#: build/C/man2/fcntl.2:1522 build/C/man3/lockf.3:142
#, no-wrap
msgid "B<EDEADLK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1106
+#: build/C/man2/fcntl.2:1527
msgid ""
"It was detected that the specified B<F_SETLKW> command would cause a "
"deadlock."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1110
+#: build/C/man2/fcntl.2:1531
msgid "I<lock> is outside your accessible address space."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1122
+#: build/C/man2/fcntl.2:1540
+msgid ""
+"I<cmd> is B<F_SETLKW> or B<F_OFD_SETLKW> and the operation was interrupted "
+"by a signal; see B<signal>(7)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1553
+msgid ""
+"I<cmd> is B<F_GETLK>, B<F_SETLK>, B<F_OFD_GETLK>, or B<F_OFD_SETLK>, and the "
+"operation was interrupted by a signal before the lock was checked or "
+"acquired. Most likely when locking a remote file (e.g., locking over NFS), "
+"but can sometimes happen locally."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1558
+msgid "The value specified in I<cmd> is not recognized by this kernel."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1566
+msgid "I<cmd> is B<F_ADD_SEALS> and I<arg> includes an unrecognized sealing bit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1576
msgid ""
-"For B<F_SETLKW>, the command was interrupted by a signal; see B<signal>(7). "
-"For B<F_GETLK> and B<F_SETLK>, the command was interrupted by a signal "
-"before the lock was checked or acquired. Most likely when locking a remote "
-"file (e.g., locking over NFS), but can sometimes happen locally."
+"I<cmd> is B<F_ADD_SEALS> or B<F_GET_SEALS> and the filesystem containing the "
+"inode referred to by I<fd> does not support sealing."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1132
+#: build/C/man2/fcntl.2:1588
msgid ""
-"For B<F_DUPFD>, I<arg> is negative or is greater than the maximum allowable "
-"value. For B<F_SETSIG>, I<arg> is not an allowable signal number."
+"I<cmd> is B<F_DUPFD> and I<arg> is negative or is greater than the maximum "
+"allowable value (see the discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1137
+#: build/C/man2/fcntl.2:1596
+msgid "I<cmd> is B<F_SETSIG> and I<arg> is not an allowable signal number."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1607
+msgid ""
+"I<cmd> is B<F_OFD_SETLK>, B<F_OFD_SETLKW>, or B<F_OFD_GETLK>, and I<l_pid> "
+"was not specified as zero."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1613
msgid ""
-"For B<F_DUPFD>, the process already has the maximum number of file "
+"I<cmd> is B<F_DUPFD> and the process already has the maximum number of file "
"descriptors open."
msgstr ""
#. type: TP
-#: build/C/man2/fcntl.2:1137 build/C/man2/flock.2:130 build/C/man3/lockf.3:151
+#: build/C/man2/fcntl.2:1613 build/C/man2/flock.2:131 build/C/man3/lockf.3:151
#, no-wrap
msgid "B<ENOLCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1141
+#: build/C/man2/fcntl.2:1617
msgid ""
"Too many segment locks open, lock table is full, or a remote locking "
"protocol failed (e.g., locking over NFS)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1146
+#: build/C/man2/fcntl.2:1625
+msgid ""
+"B<F_NOTIFY> was specified in I<cmd>, but I<fd> does not refer to a "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1630
msgid ""
"Attempted to clear the B<O_APPEND> flag on a file that has the append-only "
"attribute set."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1159
+#: build/C/man2/fcntl.2:1640
+msgid ""
+"I<cmd> was B<F_ADD_SEALS>, but I<fd> was not open for writing or the current "
+"set of seals on the file already includes B<F_SEAL_SEAL>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1653
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001. Only the operations B<F_DUPFD>, B<F_GETFD>, "
-"B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK> and B<F_SETLKW>, "
+"B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> "
"are specified in POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1171
+#: build/C/man2/fcntl.2:1665
msgid ""
"B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001. (To get their "
-"definitions, define B<BSD_SOURCE>, or B<_XOPEN_SOURCE> with the value 500 or "
-"greater, or define B<_POSIX_C_SOURCE> with the value 200809L or greater.)"
+"definitions, define either B<_BSD_SOURCE>, or B<_XOPEN_SOURCE> with the "
+"value 500 or greater, or B<_POSIX_C_SOURCE> with the value 200809L or "
+"greater.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1179
+#: build/C/man2/fcntl.2:1673
msgid ""
"B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008. (To get this definition, "
"define B<_POSIX_C_SOURCE> with the value 200809L or greater, or "
#. .PP
#. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions.
#. type: Plain text
-#: build/C/man2/fcntl.2:1196
+#: build/C/man2/fcntl.2:1690
msgid ""
"B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, "
"B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are "
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1217
+#: build/C/man2/fcntl.2:1699
msgid ""
-"The original Linux B<fcntl>() system call was not designed to handle large "
-"file offsets (in the I<flock> structure). Consequently, an B<fcntl64>() "
-"system call was added in Linux 2.4. The newer system call employs a "
-"different structure for file locking, I<flock64>, and corresponding "
-"commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>. However, these "
-"details can be ignored by applications using glibc, whose B<fcntl>() "
-"wrapper function transparently employs the more recent system call where it "
-"is available."
+"B<F_OFD_SETLK>, B<F_OFD_SETLKW>, and B<F_OFD_GETLK> are Linux-specific (and "
+"one must define B<_GNU_SOURCE> to obtain their definitions), but work is "
+"being done to have them included in the next version of POSIX.1."
+msgstr ""
+
+#. FIXME . Once glibc adds support, add a note about FTM requirements
+#. type: Plain text
+#: build/C/man2/fcntl.2:1705
+msgid "B<F_ADD_SEALS> and B<F_GET_SEALS> are Lnux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1222
+#: build/C/man2/fcntl.2:1711 build/C/man2/fcntl.2:1737
msgid ""
"The errors returned by B<dup2>(2) are different from those returned by "
"B<F_DUPFD>."
msgstr ""
+#. type: SS
+#: build/C/man2/fcntl.2:1711
+#, no-wrap
+msgid "File locking"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/fcntl.2:1228
+#: build/C/man2/fcntl.2:1732 build/C/man2/fcntl.2:1776
+msgid ""
+"The original Linux B<fcntl>() system call was not designed to handle large "
+"file offsets (in the I<flock> structure). Consequently, an B<fcntl64>() "
+"system call was added in Linux 2.4. The newer system call employs a "
+"different structure for file locking, I<flock64>, and corresponding "
+"commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>. However, these "
+"details can be ignored by applications using glibc, whose B<fcntl>() "
+"wrapper function transparently employs the more recent system call where it "
+"is available."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/fcntl.2:1737
+#, no-wrap
+msgid "Record locks"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1743
msgid ""
"Since kernel 2.0, there is no interaction between the types of lock placed "
"by B<flock>(2) and B<fcntl>()."
#. e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
#. documents it in fcntl(5). mtk, May 2007
+#. Also, FreeBSD documents it (Apr 2014).
#. type: Plain text
-#: build/C/man2/fcntl.2:1239
+#: build/C/man2/fcntl.2:1755
msgid ""
"Several systems have more fields in I<struct flock> such as, for example, "
"I<l_sysid>. Clearly, I<l_pid> alone is not going to be very useful if the "
"process holding the lock may live on a different machine."
msgstr ""
+#. type: SS
+#: build/C/man2/fcntl.2:1776
+#, no-wrap
+msgid "Record locking and NFS"
+msgstr ""
+
+#
+#. Neil Brown: With NFSv3 the failure mode is the reverse. If
+#. the server loses contact with a client then any lock stays in place
+#. indefinitely ("why can't I read my mail"... I remember it well).
+#
+#
+#. Jeff Layton:
+#. Note that this is not a firm timeout. The server runs a job
+#. periodically to clean out expired stateful objects, and it's likely
+#. that there is some time (maybe even up to another whole lease period)
+#. between when the timeout expires and the job actually runs. If the
+#. client gets a RENEW in there within that window, its lease will be
+#. renewed and its state preserved.
+#. type: Plain text
+#: build/C/man2/fcntl.2:1804
+msgid ""
+"Before Linux 3.12, if an NFSv4 client loses contact with the server for a "
+"period of time (defined as more than 90 seconds with no communication), it "
+"might lose and regain a lock without ever being aware of the fact. (The "
+"period of time after which contact is assumed lost is known as the NFSv4 "
+"leasetime. On a Linux NFS server, this can be determined by looking at "
+"I</proc/fs/nfsd/nfsv4leasetime>, which expresses the period in seconds. The "
+"default value for this file is 90.) This scenario potentially risks data "
+"corruption, since another process might acquire a lock in the intervening "
+"period and perform file I/O."
+msgstr ""
+
+#. commit ef1820f9be27b6ad158f433ab38002ab8131db4d
+#. commit f6de7a39c181dfb8a2c534661a53c73afb3081cd
+#. type: Plain text
+#: build/C/man2/fcntl.2:1818
+msgid ""
+"Since Linux 3.12, if an NFSv4 client loses contact with the server, any I/O "
+"to the file by a process which \"thinks\" it holds a lock will fail until "
+"that process closes and reopens the file. A kernel parameter, "
+"I<nfs.recover_lost_locks>, can be set to 1 to obtain the pre-3.12 behavior, "
+"whereby the client will attempt to recover lost locks when contact is "
+"reestablished with the server. Because of the attendant risk of data "
+"corruption, this parameter defaults to 0 (disabled)."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/fcntl.2:1819
+#, no-wrap
+msgid "F_SETFL"
+msgstr ""
+
+#. FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
+#. via fcntl(2), but currently Linux does not permit this
+#. See http://bugzilla.kernel.org/show_bug.cgi?id=5994
+#. type: Plain text
+#: build/C/man2/fcntl.2:1831
+msgid ""
+"It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> "
+"and B<O_SYNC> flags. Attempts to change the state of these flags are "
+"silently ignored."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/fcntl.2:1831
+#, no-wrap
+msgid "F_GETOWN"
+msgstr ""
+
#. glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h
#. mtk, Dec 04: some limited testing on alpha and ia64 seems to
#. indicate that ANY negative PGID value will cause F_GETOWN
#. to misinterpret the return as an error. Some other architectures
#. seem to have the same range check as i386.
#. type: Plain text
-#: build/C/man2/fcntl.2:1265
+#: build/C/man2/fcntl.2:1857
msgid ""
"A limitation of the Linux system call conventions on some architectures "
"(notably i386) means that if a (negative) process group ID to be returned "
"B<F_GETOWN_EX>."
msgstr ""
+#. type: SS
+#: build/C/man2/fcntl.2:1857
+#, no-wrap
+msgid "F_SETOWN"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/fcntl.2:1282
+#: build/C/man2/fcntl.2:1875
msgid ""
"In Linux 2.4 and earlier, there is bug that can occur when an unprivileged "
"process uses B<F_SETOWN> to specify the owner of a socket file descriptor as "
"the owner."
msgstr ""
+#. type: SS
+#: build/C/man2/fcntl.2:1875
+#, no-wrap
+msgid "Deadlock detection"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fcntl.2:1894
+msgid ""
+"The deadlock-detection algorithm employed by the kernel when dealing with "
+"B<F_SETLKW> requests can yield both false negatives (failures to detect "
+"deadlocks, leaving a set of deadlocked processes blocked indefinitely) and "
+"false positives (B<EDEADLK> errors when there is no deadlock). For example, "
+"the kernel limits the lock depth of its dependency search to 10 steps, "
+"meaning that circular deadlock chains that exceed that size will not be "
+"detected. In addition, the kernel may falsely indicate a deadlock when two "
+"or more processes created using the B<clone>(2) B<CLONE_FILES> flag place "
+"locks that appear (to the kernel) to conflict."
+msgstr ""
+
#. http://marc.info/?l=linux-kernel&m=119013491707153&w=2
+#
+#. Reconfirmed by Jeff Layton
+#. From: Jeff Layton <jlayton <at> redhat.com>
+#. Subject: Re: Status of fcntl() mandatory locking
+#. Newsgroups: gmane.linux.file-systems
+#. Date: 2014-04-28 10:07:57 GMT
+#. http://thread.gmane.org/gmane.linux.file-systems/84481/focus=84518
#. type: Plain text
-#: build/C/man2/fcntl.2:1297
+#: build/C/man2/fcntl.2:1916
msgid ""
-"The implementation of mandatory locking in all known versions of Linux is "
-"subject to race conditions which render it unreliable: a B<write>(2) call "
-"that overlaps with a lock may modify data after the mandatory lock is "
-"acquired; a B<read>(2) call that overlaps with a lock may detect changes to "
-"data that were made only after a write lock was acquired. Similar races "
-"exist between mandatory locks and B<mmap>(2). It is therefore inadvisable "
-"to rely on mandatory locking."
+"The Linux implementation of mandatory locking is subject to race conditions "
+"which render it unreliable: a B<write>(2) call that overlaps with a lock "
+"may modify data after the mandatory lock is acquired; a B<read>(2) call "
+"that overlaps with a lock may detect changes to data that were made only "
+"after a write lock was acquired. Similar races exist between mandatory "
+"locks and B<mmap>(2). It is therefore inadvisable to rely on mandatory "
+"locking."
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1305
+#: build/C/man2/fcntl.2:1924
msgid ""
"B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), "
"B<capabilities>(7), B<feature_test_macros>(7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fcntl.2:1318
+#: build/C/man2/fcntl.2:1937
msgid ""
"I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux "
"kernel source directory I<Documentation/filesystems/> (on older kernels, "
msgid "FEXECVE"
msgstr ""
-#. type: TH
-#: build/C/man3/fexecve.3:25
-#, no-wrap
-msgid "2010-09-15"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/fexecve.3:28
msgid "fexecve - execute program specified via file descriptor"
msgid "B<fexecve>():"
msgstr ""
-#. type: TP
-#: build/C/man3/fexecve.3:44
-#, no-wrap
-msgid "Since glibc 2.10:"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/fexecve.3:47
-msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
-msgstr ""
-
-#. type: TP
-#: build/C/man3/fexecve.3:47
-#, no-wrap
-msgid "Before glibc 2.10:"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/fexecve.3:50 build/C/man3/getcwd.3:54
msgid "_GNU_SOURCE"
#: build/C/man3/fexecve.3:74
msgid ""
"A successful call to B<fexecve>() never returns. On error, the function "
-"returns, with a result value of -1, and I<errno> is set appropriately."
+"does return, with a result value of -1, and I<errno> is set appropriately."
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man3/fexecve.3:91
-msgid "The I</proc> file system could not be accessed."
+msgid "The I</proc> filesystem could not be accessed."
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/fexecve.3:98
+#: build/C/man3/fexecve.3:99
msgid ""
"POSIX.1-2008. This function is not specified in POSIX.1-2001, and is not "
-"widely available on other systems."
+"widely available on other systems. It is specified in POSIX.1-2008."
msgstr ""
+#. FIXME .
+#. With the addition of the execveat(2), fexecve() can be implemented
+#. even where /proc is unavailable. Review future glibc releases to
+#. see if the implementation is changed to use execveat(2).
#. type: Plain text
-#: build/C/man3/fexecve.3:106
+#: build/C/man3/fexecve.3:111
msgid ""
-"On Linux, B<fexecve>() is implemented using the B<proc>(5) file system, so "
+"On Linux, B<fexecve>() is implemented using the B<proc>(5) filesystem, so "
"I</proc> needs to be mounted and available at the time of the call."
msgstr ""
#. type: Plain text
-#: build/C/man3/fexecve.3:108
-msgid "B<execve>(2)"
+#: build/C/man3/fexecve.3:128
+msgid ""
+"The idea behind B<fexecve>() is to allow the caller to verify (checksum) "
+"the contents of an executable before executing it. Simply opening the file, "
+"checksumming the contents, and then doing an B<execve>(2) would not "
+"suffice, since, between the two steps, the filename, or a directory prefix "
+"of the pathname, could have been exchanged (by, for example, modifying the "
+"target of a symbolic link). B<fexecve>() does not mitigate the problem "
+"that the I<contents> of a file could be changed between the checksumming and "
+"the call to B<fexecve>(); for that, the solution is to ensure that the "
+"permissions on the file prevent it from being modified by malicious users."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/fexecve.3:146
+msgid ""
+"The natural idiom when using B<fexecve>() is to set the close-on-exec flag "
+"on I<fd>, so that the file descriptor does not leak through to the program "
+"that is executed. This approach is natural for two reasons. First, it "
+"prevents file descriptors being consumed unnecessarily. (The executed "
+"program normally has no need of a file descriptor that refers to the program "
+"itself.) Second, if B<fexecve>() is used recursively, employing the "
+"close-on-exec flag prevents the file descriptor exhaustion that would result "
+"from the fact that each step in the recursion would cause one more file "
+"descriptor to be passed to the new program. (But see BUGS.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/fexecve.3:165
+msgid ""
+"If I<fd> refers to a script (i.e., it is an executable text file that names "
+"a script interpreter with a first line that begins with the characters "
+"I<#!>) and the close-on-exec flag has been set for I<fd>, then B<fexecve>() "
+"fails with the error B<ENOENT>. This error occurs because, by the time the "
+"script interpreter is executed, I<fd> has already been closed because of the "
+"close-on-exec flag. Thus, the close-on-exec flag can't be set on I<fd> if "
+"it refers to a script, leading to the problems described in NOTES."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/fexecve.3:168
+msgid "B<execve>(2), B<execveat>(2)"
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man2/flock.2:35
+#: build/C/man2/flock.2:35 build/C/man2/uname.2:27
#, no-wrap
-msgid "2013-02-11"
+msgid "2014-09-21"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:87
+#: build/C/man2/flock.2:88
msgid ""
-"Locks created by B<flock>() are associated with an open file table entry. "
-"This means that duplicate file descriptors (created by, for example, "
-"B<fork>(2) or B<dup>(2)) refer to the same lock, and this lock may be "
-"modified or released using any of these descriptors. Furthermore, the lock "
-"is released either by an explicit B<LOCK_UN> operation on any of these "
-"duplicate descriptors, or when all such descriptors have been closed."
+"Locks created by B<flock>() are associated with an open file description "
+"(see B<open>(2)). This means that duplicate file descriptors (created by, "
+"for example, B<fork>(2) or B<dup>(2)) refer to the same lock, and this "
+"lock may be modified or released using any of these descriptors. "
+"Furthermore, the lock is released either by an explicit B<LOCK_UN> operation "
+"on any of these duplicate descriptors, or when all such descriptors have "
+"been closed."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:96
+#: build/C/man2/flock.2:97
msgid ""
"If a process uses B<open>(2) (or similar) to obtain more than one "
"descriptor for the same file, these descriptors are treated independently by "
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:103
+#: build/C/man2/flock.2:104
msgid ""
-"A process may only hold one type of lock (shared or exclusive) on a file. "
+"A process may hold only one type of lock (shared or exclusive) on a file. "
"Subsequent B<flock>() calls on an already locked file will convert an "
"existing lock to the new lock mode."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:108
+#: build/C/man2/flock.2:109
msgid "Locks created by B<flock>() are preserved across an B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:111
+#: build/C/man2/flock.2:112
msgid ""
"A shared or exclusive lock can be placed on a file regardless of the mode in "
"which the file was opened."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:121
+#: build/C/man2/flock.2:122
msgid "I<fd> is not an open file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:126
+#: build/C/man2/flock.2:127
msgid ""
"While waiting to acquire a lock, the call was interrupted by delivery of a "
"signal caught by a handler; see B<signal>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:130
+#: build/C/man2/flock.2:131
msgid "I<operation> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:133
+#: build/C/man2/flock.2:134
msgid "The kernel ran out of memory for allocating lock records."
msgstr ""
#. type: TP
-#: build/C/man2/flock.2:133
+#: build/C/man2/flock.2:134
#, no-wrap
msgid "B<EWOULDBLOCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:138
+#: build/C/man2/flock.2:139
msgid "The file is locked and the B<LOCK_NB> flag was selected."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:147
+#: build/C/man2/flock.2:148
msgid ""
"4.4BSD (the B<flock>() call first appeared in 4.2BSD). A version of "
"B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most "
"UNIX systems."
msgstr ""
+#. E.g., according to the flock(2) man page, FreeBSD since at least 5.3
#. type: Plain text
-#: build/C/man2/flock.2:154
+#: build/C/man2/flock.2:171
msgid ""
-"B<flock>() does not lock files over NFS. Use B<fcntl>(2) instead: that "
-"does work over NFS, given a sufficiently recent version of Linux and a "
-"server which supports locking."
+"Since kernel 2.0, B<flock>() is implemented as a system call in its own "
+"right rather than being emulated in the GNU C library as a call to "
+"B<fcntl>(2). With this implementation, there is no interaction between the "
+"types of lock placed by B<flock>() and B<fcntl>(2), and B<flock>() does "
+"not detect deadlock. (Note, however, that on some systems, such as the "
+"modern BSDs, B<flock>() and B<fcntl>(2) locks I<do> interact with one "
+"another.)"
msgstr ""
+#. commit 5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2
#. type: Plain text
-#: build/C/man2/flock.2:169
+#: build/C/man2/flock.2:202
msgid ""
-"Since kernel 2.0, B<flock>() is implemented as a system call in its own "
-"right rather than being emulated in the GNU C library as a call to "
-"B<fcntl>(2). This yields true BSD semantics: there is no interaction "
-"between the types of lock placed by B<flock>() and B<fcntl>(2), and "
-"B<flock>() does not detect deadlock."
+"In Linux kernels up to 2.6.11, B<flock>() does not lock files over NFS "
+"(i.e., the scope of locks was limited to the local system). Instead, one "
+"could use B<fcntl>(2) byte-range locking, which does work over NFS, given a "
+"sufficiently recent version of Linux and a server which supports locking. "
+"Since Linux 2.6.12, NFS clients support B<flock>() locks by emulating them "
+"as byte-range locks on the entire file. This means that B<fcntl>(2) and "
+"B<flock>() locks I<do> interact with one another over NFS. Since Linux "
+"2.6.37, the kernel supports a compatibility mode that allows B<flock>() "
+"locks (and also B<fcntl>(2) byte region locks) to be treated as local; see "
+"the discussion of the I<local_lock> option in B<nfs>(5)."
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:175
+#: build/C/man2/flock.2:208
msgid ""
"B<flock>() places advisory locks only; given suitable permissions on a "
"file, a process is free to ignore the use of B<flock>() and perform I/O on "
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:188
+#: build/C/man2/flock.2:221
msgid ""
"B<flock>() and B<fcntl>(2) locks have different semantics with respect to "
"forked processes and B<dup>(2). On systems that implement B<flock>() using "
#. Kernel 2.5.21 changed things a little: during lock conversion
#. it is now the highest priority process that will get the lock -- mtk
#. type: Plain text
-#: build/C/man2/flock.2:201
+#: build/C/man2/flock.2:234
msgid ""
"Converting a lock (shared to exclusive, or vice versa) is not guaranteed to "
"be atomic: the existing lock is first removed, and then a new lock is "
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:210
+#: build/C/man2/flock.2:243
msgid ""
"B<flock>(1), B<close>(2), B<dup>(2), B<execve>(2), B<fcntl>(2), B<fork>(2), "
"B<open>(2), B<lockf>(3)"
msgstr ""
#. type: Plain text
-#: build/C/man2/flock.2:215
+#: build/C/man2/flock.2:248
msgid ""
-"I<Documentation/filesystem/locks.txt> in the Linux kernel source tree "
+"I<Documentation/filesystems/locks.txt> in the Linux kernel source tree "
"(I<Documentation/locks.txt> in older kernels)"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/fork.2:39 build/C/man2/ioperm.2:34
+#: build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/swapon.2:42
#, no-wrap
-msgid "2013-03-12"
+msgid "2014-05-28"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:77
-msgid "The child does not inherit record locks from its parent (B<fcntl>(2))."
+#: build/C/man2/fork.2:82
+msgid ""
+"The child does not inherit process-associated record locks from its parent "
+"(B<fcntl>(2)). (On the other hand, it does inherit B<fcntl>(2) open file "
+"description locks and B<flock>(2) locks from its parent.)"
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:82
+#: build/C/man2/fork.2:87
msgid ""
"The child does not inherit timers from its parent (B<setitimer>(2), "
"B<alarm>(2), B<timer_create>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:89
+#: build/C/man2/fork.2:94
msgid ""
"The child does not inherit outstanding asynchronous I/O operations from its "
"parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:94
+#: build/C/man2/fork.2:99
msgid ""
"The process attributes in the preceding list are all specified in "
"POSIX.1-2001. The parent and child also differ with respect to the "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:101
+#: build/C/man2/fork.2:106
msgid ""
"The child does not inherit directory change notifications (dnotify) from "
"its parent (see the description of B<F_NOTIFY> in B<fcntl>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:107
+#: build/C/man2/fork.2:112
msgid ""
"The B<prctl>(2) B<PR_SET_PDEATHSIG> setting is reset so that the child does "
"not receive a signal when its parent terminates."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:114
+#: build/C/man2/fork.2:119
msgid ""
"The default timer slack value is set to the parent's current timer slack "
"value. See the description of B<PR_SET_TIMERSLACK> in B<prctl>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:120
+#: build/C/man2/fork.2:125
msgid ""
"Memory mappings that have been marked with the B<madvise>(2) "
"B<MADV_DONTFORK> flag are not inherited across a B<fork>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:125
+#: build/C/man2/fork.2:130
msgid "The termination signal of the child is always B<SIGCHLD> (see B<clone>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:131
+#: build/C/man2/fork.2:136
msgid ""
"The port access permission bits set by B<ioperm>(2) are not inherited by "
"the child; the child must turn on any bits that it requires using "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:142
+#: build/C/man2/fork.2:147
msgid ""
"The child process is created with a single thread\\(emthe one that called "
"B<fork>(). The entire virtual address space of the parent is replicated in "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:156
+#: build/C/man2/fork.2:161
msgid ""
"The child inherits copies of the parent's set of open file descriptors. "
"Each file descriptor in the child refers to the same open file description "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:165
+#: build/C/man2/fork.2:170
msgid ""
"The child inherits copies of the parent's set of open message queue "
"descriptors (see B<mq_overview>(7)). Each descriptor in the child refers to "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:173
+#: build/C/man2/fork.2:178
msgid ""
"The child inherits copies of the parent's set of open directory streams (see "
"B<opendir>(3)). POSIX.1-2001 says that the corresponding directory streams "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:180
+#: build/C/man2/fork.2:185
msgid ""
"On success, the PID of the child process is returned in the parent, and 0 is "
"returned in the child. On failure, -1 is returned in the parent, no child "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:186
+#: build/C/man2/fork.2:191
msgid ""
"B<fork>() cannot allocate sufficient memory to copy the parent's page "
"tables and allocate a task structure for the child."
msgstr ""
+#. NOTE! The following should match the description in pthread_create(3)
#. type: Plain text
-#: build/C/man2/fork.2:196
+#: build/C/man2/fork.2:209
msgid ""
-"It was not possible to create a new process because the caller's "
-"B<RLIMIT_NPROC> resource limit was encountered. To exceed this limit, the "
-"process must have either the B<CAP_SYS_ADMIN> or the B<CAP_SYS_RESOURCE> "
-"capability."
+"A system-imposed limit on the number of threads was encountered. There are "
+"a number of limits that may trigger this error: the B<RLIMIT_NPROC> soft "
+"resource limit (set via B<setrlimit>(2)), which limits the number of "
+"processes and threads for a real user ID, was reached; the kernel's "
+"system-wide limit on the number of processes and threads, "
+"I</proc/sys/kernel/threads-max>, was reached (see B<proc>(5)); or the "
+"maximum number of PIDs, I</proc/sys/kernel/pid_max>, was reached (see "
+"B<proc>(5))."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:200
+#: build/C/man2/fork.2:216
+msgid ""
+"The caller is operating under the B<SCHED_DEADLINE> scheduling policy and "
+"does not have the reset-on-fork flag set. See B<sched>(7)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/fork.2:220
msgid ""
"B<fork>() failed to allocate the necessary kernel structures because memory "
"is tight."
#. e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
#. type: Plain text
-#: build/C/man2/fork.2:206
+#: build/C/man2/fork.2:226
msgid ""
"B<fork>() is not supported on this platform (for example, hardware without "
"a Memory-Management Unit)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:215
+#: build/C/man2/fork.2:235
msgid ""
"Under Linux, B<fork>() is implemented using copy-on-write pages, so the "
"only penalty that it incurs is the time and memory required to duplicate the "
#. nptl/sysdeps/unix/sysv/linux/fork.c
#. and does some magic to ensure that getpid(2) returns the right value.
#. type: Plain text
-#: build/C/man2/fork.2:239
+#: build/C/man2/fork.2:259
msgid ""
"Since version 2.3.3, rather than invoking the kernel's B<fork>() system "
"call, the glibc B<fork>() wrapper that is provided as part of the NPTL "
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:244
+#: build/C/man2/fork.2:264
msgid "See B<pipe>(2) and B<wait>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/fork.2:255
+#: build/C/man2/fork.2:275
msgid ""
"B<clone>(2), B<execve>(2), B<exit>(2), B<setrlimit>(2), B<unshare>(2), "
"B<vfork>(2), B<wait>(2), B<daemon>(3), B<capabilities>(7), B<credentials>(7)"
msgid "FPATHCONF"
msgstr ""
-#. type: TH
-#: build/C/man3/fpathconf.3:41
-#, no-wrap
-msgid "1993-04-04"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/fpathconf.3:44
msgid "fpathconf, pathconf - get configuration values for files"
#. type: Plain text
#: build/C/man3/fpathconf.3:51
#, no-wrap
-msgid "B<long pathconf(char *>I<path>B<, int >I<name>B<);>\n"
+msgid "B<long pathconf(const char *>I<path>B<, int >I<name>B<);>\n"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/fpathconf.3:180 build/C/man3/sysconf.3:335
+#: build/C/man3/fpathconf.3:180 build/C/man3/sysconf.3:338
msgid ""
"Some returned values may be huge; they are not suitable for allocating "
"memory."
msgstr ""
#. type: Plain text
-#: build/C/man3/fpathconf.3:185
-msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<sysconf>(3)"
+#: build/C/man3/fpathconf.3:186
+msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<confstr>(3), B<sysconf>(3)"
msgstr ""
#. type: TH
msgid "FSYNC"
msgstr ""
-#. type: TH
-#: build/C/man2/fsync.2:38
-#, no-wrap
-msgid "2012-02-27"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/fsync.2:41
msgid "fsync, fdatasync - synchronize a file's in-core state with storage device"
msgstr ""
#. type: Plain text
-#: build/C/man2/fsync.2:171
+#: build/C/man2/fsync.2:170
msgid ""
"B<bdflush>(2), B<open>(2), B<sync>(2), B<sync_file_range>(2), B<hdparm>(8), "
-"B<mount>(8), B<sync>(8), B<update>(8)"
+"B<mount>(8), B<sync>(1)"
msgstr ""
#. type: TH
#: build/C/man3/get_nprocs_conf.3:57
msgid ""
"The current implementation of these functions is rather expensive, since "
-"they open and parse files in the I</sys> file system each time they are "
+"they open and parse files in the I</sys> filesystem each time they are "
"called."
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/get_thread_area.2:55 build/C/man2/set_thread_area.2:72
+#: build/C/man2/get_thread_area.2:55
msgid ""
"Glibc does not provide a wrapper for this system call, since it is generally "
-"intended only for use by threading libraries. In the unlikely event that "
+"intended for use only by threading libraries. In the unlikely event that "
"you want to call it directly, use B<syscall>(2)."
msgstr ""
#. type: Plain text
#: build/C/man3/getcwd.3:118
msgid ""
-"As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc) "
-"B<getcwd>() allocates the buffer dynamically using B<malloc>(3) if I<buf> "
-"is NULL. In this case, the allocated buffer has the length I<size> unless "
-"I<size> is zero, when I<buf> is allocated as big as necessary. The caller "
-"should B<free>(3) the returned buffer."
+"As an extension to the POSIX.1-2001 standard, glibc's B<getcwd>() allocates "
+"the buffer dynamically using B<malloc>(3) if I<buf> is NULL. In this case, "
+"the allocated buffer has the length I<size> unless I<size> is zero, when "
+"I<buf> is allocated as big as necessary. The caller should B<free>(3) the "
+"returned buffer."
msgstr ""
#. type: Plain text
"terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and "
"I<errno> is set to B<ENAMETOOLONG>. (Note that on some systems, B<PATH_MAX> "
"may not be a compile-time constant; furthermore, its value may depend on the "
-"file system, see B<pathconf>(3).) For portability and security reasons, use "
+"filesystem, see B<pathconf>(3).) For portability and security reasons, use "
"of B<getwd>() is deprecated."
msgstr ""
#. type: Plain text
#: build/C/man3/getcwd.3:187
-msgid "The I<size> argument is zero and I<buf> is not a NULL pointer."
+msgid "The I<size> argument is zero and I<buf> is not a null pointer."
msgstr ""
#. type: TP
msgstr ""
#. type: TP
-#: build/C/man3/getcwd.3:201 build/C/man3/getlogin.3:112
+#: build/C/man3/getcwd.3:201 build/C/man3/getlogin.3:114
#, no-wrap
msgid "B<ERANGE>"
msgstr ""
msgid ""
"Under Linux, the function B<getcwd>() is a system call (since 2.1.92). On "
"older systems it would query I</proc/self/cwd>. If both system call and "
-"proc file system are missing, a generic implementation is called. Only in "
+"proc filesystem are missing, a generic implementation is called. Only in "
"that case can these calls fail under Linux with B<EACCES>."
msgstr ""
msgid "GETDTABLESIZE"
msgstr ""
-#. type: TH
-#: build/C/man3/getdtablesize.3:27
-#, no-wrap
-msgid "2013-02-05"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/getdtablesize.3:30
msgid "getdtablesize - get descriptor table size"
msgstr ""
#. type: Plain text
-#: build/C/man3/getdtablesize.3:77
+#: build/C/man3/getdtablesize.3:74
+msgid "The B<getdtablesize>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getdtablesize.3:82
msgid ""
"SVr4, 4.4BSD (the B<getdtablesize>() function first appeared in 4.2BSD). "
"It is not specified in POSIX.1-2001; portable applications should employ "
"I<sysconf(_SC_OPEN_MAX)> instead of this call."
msgstr ""
+#. The libc4 and libc5 versions return
+#. .B OPEN_MAX
+#. (set to 256 since Linux 0.98.4).
#. type: Plain text
-#: build/C/man3/getdtablesize.3:90
+#: build/C/man3/getdtablesize.3:95
msgid ""
"B<getdtablesize>() is implemented as a libc library function. The glibc "
"version calls B<getrlimit>(2) and returns the current B<RLIMIT_NOFILE> "
-"limit, or B<OPEN_MAX> when that fails. The libc4 and libc5 versions return "
-"B<OPEN_MAX> (set to 256 since Linux 0.98.4)."
+"limit, or B<OPEN_MAX> when that fails."
msgstr ""
#. type: Plain text
-#: build/C/man3/getdtablesize.3:95
+#: build/C/man3/getdtablesize.3:100
msgid "B<close>(2), B<dup>(2), B<getrlimit>(2), B<open>(2)"
msgstr ""
#. type: TH
#: build/C/man3/getlogin.3:28
#, no-wrap
-msgid "2008-06-29"
+msgid "2013-04-19"
msgstr ""
#. type: Plain text
#: build/C/man3/getlogin.3:61
msgid ""
"B<getlogin>() returns a pointer to a string containing the name of the user "
-"logged in on the controlling terminal of the process, or a NULL pointer if "
+"logged in on the controlling terminal of the process, or a null pointer if "
"this information cannot be determined. The string is statically allocated "
"and might be overwritten on subsequent calls to this function or to "
"B<cuserid>()."
#: build/C/man3/getlogin.3:79
msgid ""
"B<cuserid>() returns a pointer to a string containing a username associated "
-"with the effective user ID of the process. If I<string> is not a NULL "
+"with the effective user ID of the process. If I<string> is not a null "
"pointer, it should be an array that can hold at least B<L_cuserid> "
"characters; the string is returned in this array. Otherwise, a pointer to a "
"string in a static area is returned. This string is statically allocated "
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:101
+#: build/C/man3/getlogin.3:103
msgid ""
"B<getlogin>() returns a pointer to the username when successful, and NULL "
-"on failure. B<getlogin_r>() returns 0 when successful, and nonzero on "
-"failure."
+"on failure, with I<errno> set to indicate the cause of the error. "
+"B<getlogin_r>() returns 0 when successful, and nonzero on failure."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:103
+#: build/C/man3/getlogin.3:105
msgid "POSIX specifies"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:106
+#: build/C/man3/getlogin.3:108
msgid "The calling process already has the maximum allowed number of open files."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:109
+#: build/C/man3/getlogin.3:111
msgid "The system already has the maximum allowed number of open files."
msgstr ""
#. type: TP
-#: build/C/man3/getlogin.3:109
+#: build/C/man3/getlogin.3:111
#, no-wrap
msgid "B<ENXIO>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:112
+#: build/C/man3/getlogin.3:114
msgid "The calling process has no controlling terminal."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:118
+#: build/C/man3/getlogin.3:120
msgid ""
"(getlogin_r) The length of the username, including the terminating null "
-"byte, is larger than I<bufsize>."
+"byte (\\(aq\\e0\\(aq), is larger than I<bufsize>."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:120
+#: build/C/man3/getlogin.3:122
msgid "Linux/glibc also has"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:123
+#: build/C/man3/getlogin.3:125
msgid "There was no corresponding entry in the utmp-file."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:126
+#: build/C/man3/getlogin.3:128
msgid "Insufficient memory to allocate passwd structure."
msgstr ""
#. type: TP
-#: build/C/man3/getlogin.3:126 build/C/man2/ioctl.2:107 build/C/man2/ioctl.2:111 build/C/man3/tcgetpgrp.3:92
+#: build/C/man3/getlogin.3:128 build/C/man2/ioctl.2:109 build/C/man2/ioctl.2:113 build/C/man3/tcgetpgrp.3:95
#, no-wrap
msgid "B<ENOTTY>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:130
+#: build/C/man3/getlogin.3:132
msgid "Standard input didn't refer to a terminal. (See BUGS.)"
msgstr ""
#. type: TP
-#: build/C/man3/getlogin.3:131
+#: build/C/man3/getlogin.3:133
#, no-wrap
msgid "I</etc/passwd>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:134
+#: build/C/man3/getlogin.3:136
msgid "password database file"
msgstr ""
#. type: TP
-#: build/C/man3/getlogin.3:134
+#: build/C/man3/getlogin.3:136
#, no-wrap
msgid "I</var/run/utmp>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:138
+#: build/C/man3/getlogin.3:140
msgid "(traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)"
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:143
-msgid "B<getlogin>() and B<getlogin_r>() specified in POSIX.1-2001."
+#: build/C/man3/getlogin.3:145
+msgid "The B<getlogin>() function is not thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getlogin.3:149
+msgid "The B<getlogin_r>() function is thread-safe."
msgstr ""
#. type: Plain text
#: build/C/man3/getlogin.3:154
msgid ""
+"The B<cuserid>() function is thread-safe with exceptions. It is not "
+"thread-safe if called with a NULL parameter."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getlogin.3:159
+msgid "B<getlogin>() and B<getlogin_r>() specified in POSIX.1-2001."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getlogin.3:170
+msgid ""
"System V has a B<cuserid>() function which uses the real user ID rather "
"than the effective user ID. The B<cuserid>() function was included in the "
"1988 version of POSIX, but removed from the 1990 version. It was present in "
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:161
+#: build/C/man3/getlogin.3:177
msgid ""
"OpenBSD has B<getlogin>() and B<setlogin>(), and a username associated with "
"a session, even if it has no controlling terminal."
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:173
+#: build/C/man3/getlogin.3:189
msgid ""
"Unfortunately, it is often rather easy to fool B<getlogin>(). Sometimes it "
"does not work at all, because some program messed up the utmp file. Often, "
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:183
+#: build/C/man3/getlogin.3:199
msgid ""
"Note that glibc does not follow the POSIX specification and uses I<stdin> "
"instead of I</dev/tty>. A bug. (Other recent systems, like SunOS 5.8 and "
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:193
+#: build/C/man3/getlogin.3:209
msgid ""
"Nobody knows precisely what B<cuserid>() does; avoid it in portable "
"programs. Or avoid it altogether: use I<getpwuid(geteuid())> instead, if "
msgstr ""
#. type: Plain text
-#: build/C/man3/getlogin.3:197
+#: build/C/man3/getlogin.3:213
msgid "B<geteuid>(2), B<getuid>(2), B<utmp>(5)"
msgstr ""
msgid "GETOPT"
msgstr ""
+#. type: TH
+#: build/C/man3/getopt.3:41
+#, no-wrap
+msgid "2015-02-01"
+msgstr ""
+
#. type: Plain text
#: build/C/man3/getopt.3:45
msgid ""
"implementations) implements the correct behavior rather than that specified."
msgstr ""
+#. type: SS
+#: build/C/man3/getopt.3:377
+#, no-wrap
+msgid "getopt()"
+msgstr ""
+
#. type: Plain text
-#: build/C/man3/getopt.3:384
+#: build/C/man3/getopt.3:385
msgid ""
"The following trivial example program uses B<getopt>() to handle two "
"program options: I<-n>, with no associated value; and I<-t val>, which "
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:389
+#: build/C/man3/getopt.3:390
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:395
+#: build/C/man3/getopt.3:396
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:414
+#: build/C/man3/getopt.3:415
#, no-wrap
msgid ""
" nsecs = 0;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:416
+#: build/C/man3/getopt.3:418
#, no-wrap
-msgid " printf(\"flags=%d; tfnd=%d; optind=%d\\en\", flags, tfnd, optind);\n"
+msgid ""
+" printf(\"flags=%d; tfnd=%d; nsecs=%d; optind=%d\\en\",\n"
+" flags, tfnd, nsecs, optind);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:421
+#: build/C/man3/getopt.3:423
#, no-wrap
msgid ""
" if (optind E<gt>= argc) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:423
+#: build/C/man3/getopt.3:425
#, no-wrap
msgid " printf(\"name argument = %s\\en\", argv[optind]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:425
+#: build/C/man3/getopt.3:427
#, no-wrap
msgid " /* Other code omitted */\n"
msgstr ""
+#. type: SS
+#: build/C/man3/getopt.3:431
+#, no-wrap
+msgid "getopt_long()"
+msgstr ""
+
#. type: Plain text
-#: build/C/man3/getopt.3:433
+#: build/C/man3/getopt.3:435
msgid ""
"The following example program illustrates the use of B<getopt_long>() with "
"most of its features."
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:438
+#: build/C/man3/getopt.3:440
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt> /* for printf */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:444
+#: build/C/man3/getopt.3:446
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:457
+#: build/C/man3/getopt.3:459
#, no-wrap
msgid ""
" while (1) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:462
+#: build/C/man3/getopt.3:464
#, no-wrap
msgid ""
" c = getopt_long(argc, argv, \"abc:d:012\",\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:470
+#: build/C/man3/getopt.3:472
#, no-wrap
msgid ""
" switch (c) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:479
+#: build/C/man3/getopt.3:481
#, no-wrap
msgid ""
" case \\(aq0\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:483
+#: build/C/man3/getopt.3:485
#, no-wrap
msgid ""
" case \\(aqa\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:487
+#: build/C/man3/getopt.3:489
#, no-wrap
msgid ""
" case \\(aqb\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:491
+#: build/C/man3/getopt.3:493
#, no-wrap
msgid ""
" case \\(aqc\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:495
+#: build/C/man3/getopt.3:497
#, no-wrap
msgid ""
" case \\(aqd\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:498
+#: build/C/man3/getopt.3:500
#, no-wrap
msgid ""
" case \\(aq?\\(aq:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:503
+#: build/C/man3/getopt.3:505
#, no-wrap
msgid ""
" default:\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:510
+#: build/C/man3/getopt.3:512
#, no-wrap
msgid ""
" if (optind E<lt> argc) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getopt.3:516
-msgid "B<getsubopt>(3)"
+#: build/C/man3/getopt.3:519
+msgid "B<getopt>(1), B<getsubopt>(3)"
msgstr ""
#. type: TH
msgid "GETPAGESIZE"
msgstr ""
-#. type: TH
-#: build/C/man2/getpagesize.2:25
-#, no-wrap
-msgid "2010-11-16"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/getpagesize.2:28
msgid "getpagesize - get memory page size"
"model, in order to have a single binary distribution per architecture. This "
"means that a user program should not find B<PAGE_SIZE> at compile time from "
"a header file, but use an actual system call, at least for those "
-"architectures (like sun4) where this dependency exists. Here libc4, libc5, "
-"glibc 2.0 fail because their B<getpagesize>() returns a statically derived "
-"value, and does not use a system call. Things are OK in glibc 2.1."
+"architectures (like sun4) where this dependency exists. Here glibc 2.0 "
+"fails because its B<getpagesize>() returns a statically derived value, and "
+"does not use a system call. Things are OK in glibc 2.1."
msgstr ""
#. type: Plain text
#. type: TH
#: build/C/man2/gettid.2:26
#, no-wrap
-msgid "2013-02-04"
+msgid "2014-02-11"
msgstr ""
#. type: Plain text
"intended to be portable."
msgstr ""
-#. FIXME See http://sourceware.org/bugzilla/show_bug.cgi?id=6399
+#. FIXME . See http://sourceware.org/bugzilla/show_bug.cgi?id=6399
#. "gettid() should have a wrapper"
#. type: Plain text
#: build/C/man2/gettid.2:67
"B<capget>(2), B<clone>(2), B<fcntl>(2), B<fork>(2), B<get_robust_list>(2), "
"B<getpid>(2), B<ioprio_set>(2), B<perf_event_open>(2), "
"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
-"B<timer_create>(2), B<tgkill>(2)"
+"B<tgkill>(2), B<timer_create>(2)"
msgstr ""
#. type: TH
msgstr ""
#. type: Plain text
+#: build/C/man3/getumask.3:37 build/C/man2/umask.2:41
+msgid "B<#include E<lt>sys/stat.hE<gt>>"
+msgstr ""
+
+#. type: Plain text
#: build/C/man3/getumask.3:39
msgid "B<mode_t getumask(void);>"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man3/getusershell.3:30 build/C/man2/nice.2:31 build/C/man2/vhangup.2:28
+#: build/C/man3/getusershell.3:30 build/C/man2/pread.2:25
#, no-wrap
-msgid "2007-07-26"
+msgid "2013-06-21"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:69
+#: build/C/man3/getusershell.3:75
msgid ""
"The B<getusershell>() function returns the next line from the file "
"I</etc/shells>, opening the file if necessary. The line should contain the "
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:73
+#: build/C/man3/getusershell.3:80
msgid "The B<setusershell>() function rewinds I</etc/shells>."
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:77
+#: build/C/man3/getusershell.3:85
msgid "The B<endusershell>() function closes I</etc/shells>."
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:81
-msgid "The B<getusershell>() function returns a NULL pointer on end-of-file."
+#: build/C/man3/getusershell.3:89
+msgid "The B<getusershell>() function returns NULL on end-of-file."
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:84
+#: build/C/man3/getusershell.3:92
#, no-wrap
msgid "/etc/shells\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:87
+#: build/C/man3/getusershell.3:101
+msgid ""
+"The B<getusershell>(), B<setusershell>() and B<endusershell>() functions "
+"are not thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getusershell.3:103
msgid "4.3BSD."
msgstr ""
#. type: Plain text
-#: build/C/man3/getusershell.3:89
+#: build/C/man3/getusershell.3:105
msgid "B<shells>(5)"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/idle.2:64 build/C/man2/sysinfo.2:86
+#: build/C/man2/idle.2:64 build/C/man2/sysinfo.2:90
msgid ""
"This function is Linux-specific, and should not be used in programs intended "
"to be portable."
msgstr ""
#. type: TH
-#: build/C/man2/ioctl.2:41
+#: build/C/man2/ioctl.2:41 build/C/man3/sysconf.3:27
#, no-wrap
-msgid "2000-09-21"
+msgid "2014-12-31"
msgstr ""
#. type: Plain text
msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
msgstr ""
+#. POSIX says 'request' is int, but glibc has the above
+#. See https://bugzilla.kernel.org/show_bug.cgi?id=42705
#. type: Plain text
-#: build/C/man2/ioctl.2:48
-msgid "B<int ioctl(int >I<d>B<, int >I<request>B<, ...);>"
+#: build/C/man2/ioctl.2:50
+msgid "B<int ioctl(int >I<fd>B<, unsigned long >I<request>B<, ...);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:59
+#: build/C/man2/ioctl.2:61
msgid ""
"The B<ioctl>() function manipulates the underlying device parameters of "
"special files. In particular, many operating characteristics of character "
"special files (e.g., terminals) may be controlled with B<ioctl>() "
-"requests. The argument I<d> must be an open file descriptor."
+"requests. The argument I<fd> must be an open file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:67
+#: build/C/man2/ioctl.2:69
msgid ""
"The second argument is a device-dependent request code. The third argument "
"is an untyped pointer to memory. It's traditionally B<char *>I<argp> (from "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:83
+#: build/C/man2/ioctl.2:85
msgid ""
"An B<ioctl>() I<request> has encoded in it whether the argument is an I<in> "
"parameter or I<out> parameter, and the size of the argument I<argp> in "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:92
+#: build/C/man2/ioctl.2:94
msgid ""
"Usually, on success zero is returned. A few B<ioctl>() requests use the "
"return value as an output parameter and return a nonnegative value on "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:97
-msgid "I<d> is not a valid descriptor."
+#: build/C/man2/ioctl.2:99 build/C/man2/truncate.2:192
+msgid "I<fd> is not a valid descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:101
+#: build/C/man2/ioctl.2:103
msgid "I<argp> references an inaccessible memory area."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:107
-msgid "I<Request> or I<argp> is not valid."
+#: build/C/man2/ioctl.2:109
+msgid "I<request> or I<argp> is not valid."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:111
-msgid "I<d> is not associated with a character special device."
+#: build/C/man2/ioctl.2:113
+msgid "I<fd> is not associated with a character special device."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:117
+#: build/C/man2/ioctl.2:119
msgid ""
"The specified request does not apply to the kind of object that the "
-"descriptor I<d> references."
+"descriptor I<fd> references."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:132
+#: build/C/man2/ioctl.2:134
msgid ""
"No single standard. Arguments, returns, and semantics of B<ioctl>() vary "
"according to the device driver in question (the call is used as a catch-all "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl.2:140
+#: build/C/man2/ioctl.2:142
msgid ""
"In order to use this call, one needs an open file descriptor. Often the "
"B<open>(2) call has unwanted side effects, that can be avoided under Linux "
#. .BR mt (4),
#. type: Plain text
-#: build/C/man2/ioctl.2:148
+#: build/C/man2/ioctl.2:150
msgid "B<execve>(2), B<fcntl>(2), B<ioctl_list>(2), B<open>(2), B<sd>(4), B<tty>(4)"
msgstr ""
#. type: TH
#: build/C/man2/ioctl_list.2:30
#, no-wrap
-msgid "2007-12-29"
+msgid "2013-09-17"
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man2/ioctl_list.2:48
msgid ""
-"An argument type of I<const struct foo *> means the argument is input to the "
-"kernel. I<struct foo *> means the kernel outputs the argument. If the "
-"kernel uses the argument for both input and output, this is marked with "
+"An argument type of I<const struct foo\\ *> means the argument is input to "
+"the kernel. I<struct foo\\ *> means the kernel outputs the argument. If "
+"the kernel uses the argument for both input and output, this is marked with "
"I<//\\ I-O>."
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:97
+#: build/C/man2/ioctl_list.2:98
msgid ""
"The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and "
"are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>. They use "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:102
+#: build/C/man2/ioctl_list.2:103
msgid ""
"Note that the size bits are very unreliable: in lots of cases they are "
"wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:106
+#: build/C/man2/ioctl_list.2:107
msgid ""
"Thus, it seems that the new structure only gave disadvantages: it does not "
"help in checking, but it causes varying values for the various "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:112
+#: build/C/man2/ioctl_list.2:113
msgid ""
"Decent ioctls return 0 on success and -1 on error, while any output value is "
"stored via the argument. However, quite a few ioctls in fact return an "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:114
+#: build/C/man2/ioctl_list.2:115
msgid "// Main table."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:116
+#: build/C/man2/ioctl_list.2:117
msgid "// E<lt>include/asm-i386/socket.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:118
+#: build/C/man2/ioctl_list.2:119
#, no-wrap
msgid "0x00008901\tFIOSETOWN\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:119
+#: build/C/man2/ioctl_list.2:120
#, no-wrap
msgid "0x00008902\tSIOCSPGRP\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:120
+#: build/C/man2/ioctl_list.2:121
#, no-wrap
msgid "0x00008903\tFIOGETOWN\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:121
+#: build/C/man2/ioctl_list.2:122
#, no-wrap
msgid "0x00008904\tSIOCGPGRP\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:122
+#: build/C/man2/ioctl_list.2:123
#, no-wrap
msgid "0x00008905\tSIOCATMAR\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:123
+#: build/C/man2/ioctl_list.2:124
#, no-wrap
msgid "0x00008906\tSIOCGSTAMP\ttimeval *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:127
+#: build/C/man2/ioctl_list.2:128
msgid "// E<lt>include/asm-i386/termios.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:129
+#: build/C/man2/ioctl_list.2:130
#, no-wrap
msgid "0x00005401\tTCGETS\tstruct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:130
+#: build/C/man2/ioctl_list.2:131
#, no-wrap
msgid "0x00005402\tTCSETS\tconst struct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:131
+#: build/C/man2/ioctl_list.2:132
#, no-wrap
msgid "0x00005403\tTCSETSW\tconst struct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:132
+#: build/C/man2/ioctl_list.2:133
#, no-wrap
msgid "0x00005404\tTCSETSF\tconst struct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:133
+#: build/C/man2/ioctl_list.2:134
#, no-wrap
msgid "0x00005405\tTCGETA\tstruct termio *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:134
+#: build/C/man2/ioctl_list.2:135
#, no-wrap
msgid "0x00005406\tTCSETA\tconst struct termio *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:135
+#: build/C/man2/ioctl_list.2:136
#, no-wrap
msgid "0x00005407\tTCSETAW\tconst struct termio *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:136
+#: build/C/man2/ioctl_list.2:137
#, no-wrap
msgid "0x00005408\tTCSETAF\tconst struct termio *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:137
+#: build/C/man2/ioctl_list.2:138
#, no-wrap
msgid "0x00005409\tTCSBRK\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:138
+#: build/C/man2/ioctl_list.2:139
#, no-wrap
msgid "0x0000540A\tTCXONC\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:139
+#: build/C/man2/ioctl_list.2:140
#, no-wrap
msgid "0x0000540B\tTCFLSH\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:140
+#: build/C/man2/ioctl_list.2:141
#, no-wrap
msgid "0x0000540C\tTIOCEXCL\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:141
+#: build/C/man2/ioctl_list.2:142
#, no-wrap
msgid "0x0000540D\tTIOCNXCL\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:142
+#: build/C/man2/ioctl_list.2:143
#, no-wrap
msgid "0x0000540E\tTIOCSCTTY\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:143
+#: build/C/man2/ioctl_list.2:144
#, no-wrap
msgid "0x0000540F\tTIOCGPGRP\tpid_t *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:144
+#: build/C/man2/ioctl_list.2:145
#, no-wrap
msgid "0x00005410\tTIOCSPGRP\tconst pid_t *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:145
+#: build/C/man2/ioctl_list.2:146
#, no-wrap
msgid "0x00005411\tTIOCOUTQ\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:146
+#: build/C/man2/ioctl_list.2:147
#, no-wrap
msgid "0x00005412\tTIOCSTI\tconst char *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:147
+#: build/C/man2/ioctl_list.2:148
#, no-wrap
msgid "0x00005413\tTIOCGWINSZ\tstruct winsize *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:148
+#: build/C/man2/ioctl_list.2:149
#, no-wrap
msgid "0x00005414\tTIOCSWINSZ\tconst struct winsize *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:149
+#: build/C/man2/ioctl_list.2:150
#, no-wrap
msgid "0x00005415\tTIOCMGET\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:150
+#: build/C/man2/ioctl_list.2:151
#, no-wrap
msgid "0x00005416\tTIOCMBIS\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:151
+#: build/C/man2/ioctl_list.2:152
#, no-wrap
msgid "0x00005417\tTIOCMBIC\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:152
+#: build/C/man2/ioctl_list.2:153
#, no-wrap
msgid "0x00005418\tTIOCMSET\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:153
+#: build/C/man2/ioctl_list.2:154
#, no-wrap
msgid "0x00005419\tTIOCGSOFTCAR\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:154
+#: build/C/man2/ioctl_list.2:155
#, no-wrap
msgid "0x0000541A\tTIOCSSOFTCAR\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:155
+#: build/C/man2/ioctl_list.2:156
#, no-wrap
msgid "0x0000541B\tFIONREAD\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:156
+#: build/C/man2/ioctl_list.2:157
#, no-wrap
msgid "0x0000541B\tTIOCINQ\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:157
+#: build/C/man2/ioctl_list.2:158
#, no-wrap
msgid "0x0000541C\tTIOCLINUX\tconst char *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:158
+#: build/C/man2/ioctl_list.2:159
#, no-wrap
msgid "0x0000541D\tTIOCCONS\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:159
+#: build/C/man2/ioctl_list.2:160
#, no-wrap
msgid "0x0000541E\tTIOCGSERIAL\tstruct serial_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:160
+#: build/C/man2/ioctl_list.2:161
#, no-wrap
msgid "0x0000541F\tTIOCSSERIAL\tconst struct serial_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:161
+#: build/C/man2/ioctl_list.2:162
#, no-wrap
msgid "0x00005420\tTIOCPKT\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:162
+#: build/C/man2/ioctl_list.2:163
#, no-wrap
msgid "0x00005421\tFIONBIO\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:163
+#: build/C/man2/ioctl_list.2:164
#, no-wrap
msgid "0x00005422\tTIOCNOTTY\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:164
+#: build/C/man2/ioctl_list.2:165
#, no-wrap
msgid "0x00005423\tTIOCSETD\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:165
+#: build/C/man2/ioctl_list.2:166
#, no-wrap
msgid "0x00005424\tTIOCGETD\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:166
+#: build/C/man2/ioctl_list.2:167
#, no-wrap
msgid "0x00005425\tTCSBRKP\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:167
+#: build/C/man2/ioctl_list.2:168
#, no-wrap
msgid "0x00005426\tTIOCTTYGSTRUCT\tstruct tty_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:168
+#: build/C/man2/ioctl_list.2:169
#, no-wrap
msgid "0x00005450\tFIONCLEX\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:169
+#: build/C/man2/ioctl_list.2:170
#, no-wrap
msgid "0x00005451\tFIOCLEX\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:170
+#: build/C/man2/ioctl_list.2:171
#, no-wrap
msgid "0x00005452\tFIOASYNC\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:171
+#: build/C/man2/ioctl_list.2:172
#, no-wrap
msgid "0x00005453\tTIOCSERCONFIG\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:172
+#: build/C/man2/ioctl_list.2:173
#, no-wrap
msgid "0x00005454\tTIOCSERGWILD\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:173
+#: build/C/man2/ioctl_list.2:174
#, no-wrap
msgid "0x00005455\tTIOCSERSWILD\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:174
+#: build/C/man2/ioctl_list.2:175
#, no-wrap
msgid "0x00005456\tTIOCGLCKTRMIOS\tstruct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:175
+#: build/C/man2/ioctl_list.2:176
#, no-wrap
msgid "0x00005457\tTIOCSLCKTRMIOS\tconst struct termios *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:176
+#: build/C/man2/ioctl_list.2:177
#, no-wrap
msgid "0x00005458\tTIOCSERGSTRUCT\tstruct async_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:177
+#: build/C/man2/ioctl_list.2:178
#, no-wrap
msgid "0x00005459\tTIOCSERGETLSR\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:184
+#: build/C/man2/ioctl_list.2:185
#, no-wrap
msgid "0x0000545A\tTIOCSERGETMULTI\tstruct serial_multiport_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:185
+#: build/C/man2/ioctl_list.2:186
#, no-wrap
msgid "0x0000545B\tTIOCSERSETMULTI\tconst struct serial_multiport_struct *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:189
+#: build/C/man2/ioctl_list.2:190
msgid "// E<lt>include/linux/ax25.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:191
+#: build/C/man2/ioctl_list.2:192
#, no-wrap
msgid "0x000089E0\tSIOCAX25GETUID\tconst struct sockaddr_ax25 *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:192
+#: build/C/man2/ioctl_list.2:193
#, no-wrap
msgid "0x000089E1\tSIOCAX25ADDUID\tconst struct sockaddr_ax25 *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:193
+#: build/C/man2/ioctl_list.2:194
#, no-wrap
msgid "0x000089E2\tSIOCAX25DELUID\tconst struct sockaddr_ax25 *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:194
+#: build/C/man2/ioctl_list.2:195
#, no-wrap
msgid "0x000089E3\tSIOCAX25NOUID\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:195
+#: build/C/man2/ioctl_list.2:196
#, no-wrap
msgid "0x000089E4\tSIOCAX25DIGCTL\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:196
+#: build/C/man2/ioctl_list.2:197
#, no-wrap
msgid "0x000089E5\tSIOCAX25GETPARMS\tstruct ax25_parms_struct *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:200
+#: build/C/man2/ioctl_list.2:201
#, no-wrap
msgid "0x000089E6\tSIOCAX25SETPARMS\tconst struct ax25_parms_struct *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:204
+#: build/C/man2/ioctl_list.2:205
msgid "// E<lt>include/linux/cdk.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:206
+#: build/C/man2/ioctl_list.2:207
#, no-wrap
msgid "0x00007314\tSTL_BINTR\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:207
+#: build/C/man2/ioctl_list.2:208
#, no-wrap
msgid "0x00007315\tSTL_BSTART\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:208
+#: build/C/man2/ioctl_list.2:209
#, no-wrap
msgid "0x00007316\tSTL_BSTOP\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:209
+#: build/C/man2/ioctl_list.2:210
#, no-wrap
msgid "0x00007317\tSTL_BRESET\tvoid\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:213
+#: build/C/man2/ioctl_list.2:214
msgid "// E<lt>include/linux/cdrom.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:215
+#: build/C/man2/ioctl_list.2:216
#, no-wrap
msgid "0x00005301\tCDROMPAUSE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:216
+#: build/C/man2/ioctl_list.2:217
#, no-wrap
msgid "0x00005302\tCDROMRESUME\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:217
+#: build/C/man2/ioctl_list.2:218
#, no-wrap
msgid "0x00005303\tCDROMPLAYMSF\tconst struct cdrom_msf *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:218
+#: build/C/man2/ioctl_list.2:219
#, no-wrap
msgid "0x00005304\tCDROMPLAYTRKIND\tconst struct cdrom_ti *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:219
+#: build/C/man2/ioctl_list.2:220
#, no-wrap
msgid "0x00005305\tCDROMREADTOCHDR\tstruct cdrom_tochdr *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:223
+#: build/C/man2/ioctl_list.2:224
#, no-wrap
msgid "0x00005306\tCDROMREADTOCENTRY\tstruct cdrom_tocentry *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:227
+#: build/C/man2/ioctl_list.2:228
#, no-wrap
msgid "0x00005307\tCDROMSTOP\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:228
+#: build/C/man2/ioctl_list.2:229
#, no-wrap
msgid "0x00005308\tCDROMSTART\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:229
+#: build/C/man2/ioctl_list.2:230
#, no-wrap
msgid "0x00005309\tCDROMEJECT\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:230
+#: build/C/man2/ioctl_list.2:231
#, no-wrap
msgid "0x0000530A\tCDROMVOLCTRL\tconst struct cdrom_volctrl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:231
+#: build/C/man2/ioctl_list.2:232
#, no-wrap
msgid "0x0000530B\tCDROMSUBCHNL\tstruct cdrom_subchnl *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:232
+#: build/C/man2/ioctl_list.2:233
#, no-wrap
msgid "0x0000530C\tCDROMREADMODE2\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:233
+#: build/C/man2/ioctl_list.2:234
#, no-wrap
msgid "0x0000530D\tCDROMREADMODE1\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:234
+#: build/C/man2/ioctl_list.2:235
#, no-wrap
msgid "0x0000530E\tCDROMREADAUDIO\tconst struct cdrom_read_audio *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:235
+#: build/C/man2/ioctl_list.2:236
#, no-wrap
msgid "0x0000530F\tCDROMEJECT_SW\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:239
+#: build/C/man2/ioctl_list.2:240
#, no-wrap
msgid "0x00005310\tCDROMMULTISESSION\tstruct cdrom_multisession *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:243
+#: build/C/man2/ioctl_list.2:244
#, no-wrap
msgid "0x00005311\tCDROM_GET_UPC\tstruct { char [8]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:244
+#: build/C/man2/ioctl_list.2:245
#, no-wrap
msgid "0x00005312\tCDROMRESET\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:245
+#: build/C/man2/ioctl_list.2:246
#, no-wrap
msgid "0x00005313\tCDROMVOLREAD\tstruct cdrom_volctrl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:246
+#: build/C/man2/ioctl_list.2:247
#, no-wrap
msgid "0x00005314\tCDROMREADRAW\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:247
+#: build/C/man2/ioctl_list.2:248
#, no-wrap
msgid "0x00005315\tCDROMREADCOOKED\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:248
+#: build/C/man2/ioctl_list.2:249
#, no-wrap
msgid "0x00005316\tCDROMSEEK\tconst struct cdrom_msf *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:252
+#: build/C/man2/ioctl_list.2:253
msgid "// E<lt>include/linux/cm206.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:254
+#: build/C/man2/ioctl_list.2:255
#, no-wrap
msgid "0x00002000\tCM206CTL_GET_STAT\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:255
+#: build/C/man2/ioctl_list.2:256
#, no-wrap
msgid "0x00002001\tCM206CTL_GET_LAST_STAT\tint\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:259
+#: build/C/man2/ioctl_list.2:260
msgid "// E<lt>include/linux/cyclades.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:261
+#: build/C/man2/ioctl_list.2:262
#, no-wrap
msgid "0x00435901\tCYGETMON\tstruct cyclades_monitor *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:262
+#: build/C/man2/ioctl_list.2:263
#, no-wrap
msgid "0x00435902\tCYGETTHRESH\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:263
+#: build/C/man2/ioctl_list.2:264
#, no-wrap
msgid "0x00435903\tCYSETTHRESH\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:264
+#: build/C/man2/ioctl_list.2:265
#, no-wrap
msgid "0x00435904\tCYGETDEFTHRESH\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:265
+#: build/C/man2/ioctl_list.2:266
#, no-wrap
msgid "0x00435905\tCYSETDEFTHRESH\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:266
+#: build/C/man2/ioctl_list.2:267
#, no-wrap
msgid "0x00435906\tCYGETTIMEOUT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:267
+#: build/C/man2/ioctl_list.2:268
#, no-wrap
msgid "0x00435907\tCYSETTIMEOUT\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:268
+#: build/C/man2/ioctl_list.2:269
#, no-wrap
msgid "0x00435908\tCYGETDEFTIMEOUT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:269
+#: build/C/man2/ioctl_list.2:270
#, no-wrap
msgid "0x00435909\tCYSETDEFTIMEOUT\tint\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:273
+#: build/C/man2/ioctl_list.2:274
msgid "// E<lt>include/linux/ext2_fs.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:275
+#: build/C/man2/ioctl_list.2:276
#, no-wrap
msgid "0x80046601\tEXT2_IOC_GETFLAGS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:276
+#: build/C/man2/ioctl_list.2:277
#, no-wrap
msgid "0x40046602\tEXT2_IOC_SETFLAGS\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:277
+#: build/C/man2/ioctl_list.2:278
#, no-wrap
msgid "0x80047601\tEXT2_IOC_GETVERSION\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:278
+#: build/C/man2/ioctl_list.2:279
#, no-wrap
msgid "0x40047602\tEXT2_IOC_SETVERSION\tconst int *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:282
+#: build/C/man2/ioctl_list.2:283
msgid "// E<lt>include/linux/fd.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:284
+#: build/C/man2/ioctl_list.2:285
#, no-wrap
msgid "0x00000000\tFDCLRPRM\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:285
+#: build/C/man2/ioctl_list.2:286
#, no-wrap
msgid "0x00000001\tFDSETPRM\tconst struct floppy_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:286
+#: build/C/man2/ioctl_list.2:287
#, no-wrap
msgid "0x00000002\tFDDEFPRM\tconst struct floppy_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:287
+#: build/C/man2/ioctl_list.2:288
#, no-wrap
msgid "0x00000003\tFDGETPRM\tstruct floppy_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:288
+#: build/C/man2/ioctl_list.2:289
#, no-wrap
msgid "0x00000004\tFDMSGON\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:289
+#: build/C/man2/ioctl_list.2:290
#, no-wrap
msgid "0x00000005\tFDMSGOFF\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:290
+#: build/C/man2/ioctl_list.2:291
#, no-wrap
msgid "0x00000006\tFDFMTBEG\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:291
+#: build/C/man2/ioctl_list.2:292
#, no-wrap
msgid "0x00000007\tFDFMTTRK\tconst struct format_descr *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:292
+#: build/C/man2/ioctl_list.2:293
#, no-wrap
msgid "0x00000008\tFDFMTEND\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:293
+#: build/C/man2/ioctl_list.2:294
#, no-wrap
msgid "0x0000000A\tFDSETEMSGTRESH\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:294
+#: build/C/man2/ioctl_list.2:295
#, no-wrap
msgid "0x0000000B\tFDFLUSH\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:295
+#: build/C/man2/ioctl_list.2:296
#, no-wrap
msgid "0x0000000C\tFDSETMAXERRS\tconst struct floppy_max_errors *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:296
+#: build/C/man2/ioctl_list.2:297
#, no-wrap
msgid "0x0000000E\tFDGETMAXERRS\tstruct floppy_max_errors *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:297
+#: build/C/man2/ioctl_list.2:298
#, no-wrap
msgid "0x00000010\tFDGETDRVTYP\tstruct { char [16]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:298
+#: build/C/man2/ioctl_list.2:299
#, no-wrap
msgid "0x00000014\tFDSETDRVPRM\tconst struct floppy_drive_params *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:299
+#: build/C/man2/ioctl_list.2:300
#, no-wrap
msgid "0x00000015\tFDGETDRVPRM\tstruct floppy_drive_params *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:300
+#: build/C/man2/ioctl_list.2:301
#, no-wrap
msgid "0x00000016\tFDGETDRVSTAT\tstruct floppy_drive_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:301
+#: build/C/man2/ioctl_list.2:302
#, no-wrap
msgid "0x00000017\tFDPOLLDRVSTAT\tstruct floppy_drive_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:302
+#: build/C/man2/ioctl_list.2:303
#, no-wrap
msgid "0x00000018\tFDRESET\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:303
+#: build/C/man2/ioctl_list.2:304
#, no-wrap
msgid "0x00000019\tFDGETFDCSTAT\tstruct floppy_fdc_state *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:304
+#: build/C/man2/ioctl_list.2:305
#, no-wrap
msgid "0x0000001B\tFDWERRORCLR\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:305
+#: build/C/man2/ioctl_list.2:306
#, no-wrap
msgid "0x0000001C\tFDWERRORGET\tstruct floppy_write_errors *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:309
+#: build/C/man2/ioctl_list.2:310
#, no-wrap
msgid "0x0000001E\tFDRAWCMD\tstruct floppy_raw_cmd *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:310
+#: build/C/man2/ioctl_list.2:311
#, no-wrap
msgid "0x00000028\tFDTWADDLE\tvoid\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:314
+#: build/C/man2/ioctl_list.2:315
msgid "// E<lt>include/linux/fs.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:316
+#: build/C/man2/ioctl_list.2:317
#, no-wrap
msgid "0x0000125D\tBLKROSET\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:317
+#: build/C/man2/ioctl_list.2:318
#, no-wrap
msgid "0x0000125E\tBLKROGET\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:318
+#: build/C/man2/ioctl_list.2:319
#, no-wrap
msgid "0x0000125F\tBLKRRPART\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:319
+#: build/C/man2/ioctl_list.2:320
#, no-wrap
msgid "0x00001260\tBLKGETSIZE\tunsigned long *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:320
+#: build/C/man2/ioctl_list.2:321
#, no-wrap
msgid "0x00001261\tBLKFLSBUF\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:321
+#: build/C/man2/ioctl_list.2:322
#, no-wrap
msgid "0x00001262\tBLKRASET\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:322
+#: build/C/man2/ioctl_list.2:323
#, no-wrap
msgid "0x00001263\tBLKRAGET\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:323
+#: build/C/man2/ioctl_list.2:324
#, no-wrap
msgid "0x00000001\tFIBMAP\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:324
+#: build/C/man2/ioctl_list.2:325
#, no-wrap
msgid "0x00000002\tFIGETBSZ\tint *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:328
+#: build/C/man2/ioctl_list.2:329
msgid "// E<lt>include/linux/hdreg.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:330
+#: build/C/man2/ioctl_list.2:331
#, no-wrap
msgid "0x00000301\tHDIO_GETGEO\tstruct hd_geometry *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:331
+#: build/C/man2/ioctl_list.2:332
#, no-wrap
msgid "0x00000302\tHDIO_GET_UNMASKINTR\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:332
+#: build/C/man2/ioctl_list.2:333
#, no-wrap
msgid "0x00000304\tHDIO_GET_MULTCOUNT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:333
+#: build/C/man2/ioctl_list.2:334
#, no-wrap
msgid "0x00000307\tHDIO_GET_IDENTITY\tstruct hd_driveid *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:334
+#: build/C/man2/ioctl_list.2:335
#, no-wrap
msgid "0x00000308\tHDIO_GET_KEEPSETTINGS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:335
+#: build/C/man2/ioctl_list.2:336
#, no-wrap
msgid "0x00000309\tHDIO_GET_CHIPSET\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:336
+#: build/C/man2/ioctl_list.2:337
#, no-wrap
msgid "0x0000030A\tHDIO_GET_NOWERR\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:337
+#: build/C/man2/ioctl_list.2:338
#, no-wrap
msgid "0x0000030B\tHDIO_GET_DMA\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:338
+#: build/C/man2/ioctl_list.2:339
#, no-wrap
msgid "0x0000031F\tHDIO_DRIVE_CMD\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:339
+#: build/C/man2/ioctl_list.2:340
#, no-wrap
msgid "0x00000321\tHDIO_SET_MULTCOUNT\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:340
+#: build/C/man2/ioctl_list.2:341
#, no-wrap
msgid "0x00000322\tHDIO_SET_UNMASKINTR\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:341
+#: build/C/man2/ioctl_list.2:342
#, no-wrap
msgid "0x00000323\tHDIO_SET_KEEPSETTINGS\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:342
+#: build/C/man2/ioctl_list.2:343
#, no-wrap
msgid "0x00000324\tHDIO_SET_CHIPSET\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:343
+#: build/C/man2/ioctl_list.2:344
#, no-wrap
msgid "0x00000325\tHDIO_SET_NOWERR\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:344
+#: build/C/man2/ioctl_list.2:345
#, no-wrap
msgid "0x00000326\tHDIO_SET_DMA\tint\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:348
+#: build/C/man2/ioctl_list.2:349
msgid "// E<lt>include/linux/if_eql.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:350
+#: build/C/man2/ioctl_list.2:351
#, no-wrap
msgid "0x000089F0\tEQL_ENSLAVE\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:351
+#: build/C/man2/ioctl_list.2:352
#, no-wrap
msgid "0x000089F1\tEQL_EMANCIPATE\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:352
+#: build/C/man2/ioctl_list.2:353
#, no-wrap
msgid "0x000089F2\tEQL_GETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:353
+#: build/C/man2/ioctl_list.2:354
#, no-wrap
msgid "0x000089F3\tEQL_SETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:354
+#: build/C/man2/ioctl_list.2:355
#, no-wrap
msgid "0x000089F4\tEQL_GETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:355
+#: build/C/man2/ioctl_list.2:356
#, no-wrap
msgid "0x000089F5\tEQL_SETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:359
+#: build/C/man2/ioctl_list.2:360
msgid "// E<lt>include/linux/if_plip.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:361
+#: build/C/man2/ioctl_list.2:362
#, no-wrap
msgid "0x000089F0\tSIOCDEVPLIP\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:365
+#: build/C/man2/ioctl_list.2:366
msgid "// E<lt>include/linux/if_ppp.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:367
+#: build/C/man2/ioctl_list.2:368
#, no-wrap
msgid "0x00005490\tPPPIOCGFLAGS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:368
+#: build/C/man2/ioctl_list.2:369
#, no-wrap
msgid "0x00005491\tPPPIOCSFLAGS\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:369
+#: build/C/man2/ioctl_list.2:370
#, no-wrap
msgid "0x00005492\tPPPIOCGASYNCMAP\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:370
+#: build/C/man2/ioctl_list.2:371
#, no-wrap
msgid "0x00005493\tPPPIOCSASYNCMAP\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:371
+#: build/C/man2/ioctl_list.2:372
#, no-wrap
msgid "0x00005494\tPPPIOCGUNIT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:372
+#: build/C/man2/ioctl_list.2:373
#, no-wrap
msgid "0x00005495\tPPPIOCSINPSIG\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:373
+#: build/C/man2/ioctl_list.2:374
#, no-wrap
msgid "0x00005497\tPPPIOCSDEBUG\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:374
+#: build/C/man2/ioctl_list.2:375
#, no-wrap
msgid "0x00005498\tPPPIOCGDEBUG\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:375
+#: build/C/man2/ioctl_list.2:376
#, no-wrap
msgid "0x00005499\tPPPIOCGSTAT\tstruct ppp_stats *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:376
+#: build/C/man2/ioctl_list.2:377
#, no-wrap
msgid "0x0000549A\tPPPIOCGTIME\tstruct ppp_ddinfo *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:377
+#: build/C/man2/ioctl_list.2:378
#, no-wrap
msgid "0x0000549B\tPPPIOCGXASYNCMAP\tstruct { int [8]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:378
+#: build/C/man2/ioctl_list.2:379
#, no-wrap
msgid "0x0000549C\tPPPIOCSXASYNCMAP\tconst struct { int [8]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:379
+#: build/C/man2/ioctl_list.2:380
#, no-wrap
msgid "0x0000549D\tPPPIOCSMRU\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:380
+#: build/C/man2/ioctl_list.2:381
#, no-wrap
msgid "0x0000549E\tPPPIOCRASYNCMAP\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:381
+#: build/C/man2/ioctl_list.2:382
#, no-wrap
msgid "0x0000549F\tPPPIOCSMAXCID\tconst int *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:385
+#: build/C/man2/ioctl_list.2:386
msgid "// E<lt>include/linux/ipx.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:387
+#: build/C/man2/ioctl_list.2:388
#, no-wrap
msgid "0x000089E0\tSIOCAIPXITFCRT\tconst char *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:388
+#: build/C/man2/ioctl_list.2:389
#, no-wrap
msgid "0x000089E1\tSIOCAIPXPRISLT\tconst char *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:389
+#: build/C/man2/ioctl_list.2:390
#, no-wrap
msgid "0x000089E2\tSIOCIPXCFGDATA\tstruct ipx_config_data *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:393
+#: build/C/man2/ioctl_list.2:394
msgid "// E<lt>include/linux/kd.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:395
+#: build/C/man2/ioctl_list.2:396
#, no-wrap
msgid "0x00004B60\tGIO_FONT\tstruct { char [8192]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:396
+#: build/C/man2/ioctl_list.2:397
#, no-wrap
msgid "0x00004B61\tPIO_FONT\tconst struct { char [8192]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:400
+#: build/C/man2/ioctl_list.2:401
#, no-wrap
msgid "0x00004B6B\tGIO_FONTX\tstruct console_font_desc *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:401
+#: build/C/man2/ioctl_list.2:402
#, no-wrap
msgid "0x00004B6C\tPIO_FONTX\tconst struct console_font_desc *\t//MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:405
+#: build/C/man2/ioctl_list.2:406
#, no-wrap
msgid "0x00004B70\tGIO_CMAP\tstruct { char [48]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:406
+#: build/C/man2/ioctl_list.2:407
#, no-wrap
msgid "0x00004B71\tPIO_CMAP\tconst struct { char [48]; }\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:410
+#: build/C/man2/ioctl_list.2:411
#, no-wrap
msgid "0x00004B2F\tKIOCSOUND\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:411
+#: build/C/man2/ioctl_list.2:412
#, no-wrap
msgid "0x00004B30\tKDMKTONE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:412
+#: build/C/man2/ioctl_list.2:413
#, no-wrap
msgid "0x00004B31\tKDGETLED\tchar *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:413
+#: build/C/man2/ioctl_list.2:414
#, no-wrap
msgid "0x00004B32\tKDSETLED\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:414
+#: build/C/man2/ioctl_list.2:415
#, no-wrap
msgid "0x00004B33\tKDGKBTYPE\tchar *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:415
+#: build/C/man2/ioctl_list.2:416
#, no-wrap
msgid "0x00004B34\tKDADDIO\tint\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:416
+#: build/C/man2/ioctl_list.2:417
#, no-wrap
msgid "0x00004B35\tKDDELIO\tint\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:417
+#: build/C/man2/ioctl_list.2:418
#, no-wrap
msgid "0x00004B36\tKDENABIO\tvoid\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:418
+#: build/C/man2/ioctl_list.2:419
#, no-wrap
msgid "0x00004B37\tKDDISABIO\tvoid\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:419
+#: build/C/man2/ioctl_list.2:420
#, no-wrap
msgid "0x00004B3A\tKDSETMODE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:420
+#: build/C/man2/ioctl_list.2:421
#, no-wrap
msgid "0x00004B3B\tKDGETMODE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:421
+#: build/C/man2/ioctl_list.2:422
#, no-wrap
msgid "0x00004B3C\tKDMAPDISP\tvoid\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:422
+#: build/C/man2/ioctl_list.2:423
#, no-wrap
msgid "0x00004B3D\tKDUNMAPDISP\tvoid\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:423
+#: build/C/man2/ioctl_list.2:424
#, no-wrap
msgid "0x00004B40\tGIO_SCRNMAP\tstruct { char [E_TABSZ]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:427
+#: build/C/man2/ioctl_list.2:428
#, no-wrap
msgid "0x00004B41\tPIO_SCRNMAP\tconst struct { char [E_TABSZ]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:428
+#: build/C/man2/ioctl_list.2:429
#, no-wrap
msgid "0x00004B69\tGIO_UNISCRNMAP\tstruct { short [E_TABSZ]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:429
+#: build/C/man2/ioctl_list.2:430
#, no-wrap
msgid "0x00004B6A\tPIO_UNISCRNMAP\tconst struct { short [E_TABSZ]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:433
+#: build/C/man2/ioctl_list.2:434
#, no-wrap
msgid "0x00004B66\tGIO_UNIMAP\tstruct unimapdesc *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:434
+#: build/C/man2/ioctl_list.2:435
#, no-wrap
msgid "0x00004B67\tPIO_UNIMAP\tconst struct unimapdesc *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:435
+#: build/C/man2/ioctl_list.2:436
#, no-wrap
msgid "0x00004B68\tPIO_UNIMAPCLR\tconst struct unimapinit *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:436
+#: build/C/man2/ioctl_list.2:437
#, no-wrap
msgid "0x00004B44\tKDGKBMODE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:437
+#: build/C/man2/ioctl_list.2:438
#, no-wrap
msgid "0x00004B45\tKDSKBMODE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:438
+#: build/C/man2/ioctl_list.2:439
#, no-wrap
msgid "0x00004B62\tKDGKBMETA\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:439
+#: build/C/man2/ioctl_list.2:440
#, no-wrap
msgid "0x00004B63\tKDSKBMETA\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:440
+#: build/C/man2/ioctl_list.2:441
#, no-wrap
msgid "0x00004B64\tKDGKBLED\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:441
+#: build/C/man2/ioctl_list.2:442
#, no-wrap
msgid "0x00004B65\tKDSKBLED\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:442
+#: build/C/man2/ioctl_list.2:443
#, no-wrap
msgid "0x00004B46\tKDGKBENT\tstruct kbentry *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:443
+#: build/C/man2/ioctl_list.2:444
#, no-wrap
msgid "0x00004B47\tKDSKBENT\tconst struct kbentry *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:444
+#: build/C/man2/ioctl_list.2:445
#, no-wrap
msgid "0x00004B48\tKDGKBSENT\tstruct kbsentry *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:445
+#: build/C/man2/ioctl_list.2:446
#, no-wrap
msgid "0x00004B49\tKDSKBSENT\tconst struct kbsentry *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:446
+#: build/C/man2/ioctl_list.2:447
#, no-wrap
msgid "0x00004B4A\tKDGKBDIACR\tstruct kbdiacrs *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:447
+#: build/C/man2/ioctl_list.2:448
#, no-wrap
msgid "0x00004B4B\tKDSKBDIACR\tconst struct kbdiacrs *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:448
+#: build/C/man2/ioctl_list.2:449
#, no-wrap
msgid "0x00004B4C\tKDGETKEYCODE\tstruct kbkeycode *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:449
+#: build/C/man2/ioctl_list.2:450
#, no-wrap
msgid "0x00004B4D\tKDSETKEYCODE\tconst struct kbkeycode *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:450
+#: build/C/man2/ioctl_list.2:451
#, no-wrap
msgid "0x00004B4E\tKDSIGACCEPT\tint\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:454
+#: build/C/man2/ioctl_list.2:455
msgid "// E<lt>include/linux/lp.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:456
+#: build/C/man2/ioctl_list.2:457
#, no-wrap
msgid "0x00000601\tLPCHAR\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:457
+#: build/C/man2/ioctl_list.2:458
#, no-wrap
msgid "0x00000602\tLPTIME\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:458
+#: build/C/man2/ioctl_list.2:459
#, no-wrap
msgid "0x00000604\tLPABORT\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:459
+#: build/C/man2/ioctl_list.2:460
#, no-wrap
msgid "0x00000605\tLPSETIRQ\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:460
+#: build/C/man2/ioctl_list.2:461
#, no-wrap
msgid "0x00000606\tLPGETIRQ\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:461
+#: build/C/man2/ioctl_list.2:462
#, no-wrap
msgid "0x00000608\tLPWAIT\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:462
+#: build/C/man2/ioctl_list.2:463
#, no-wrap
msgid "0x00000609\tLPCAREFUL\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:463
+#: build/C/man2/ioctl_list.2:464
#, no-wrap
msgid "0x0000060A\tLPABORTOPEN\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:464
+#: build/C/man2/ioctl_list.2:465
#, no-wrap
msgid "0x0000060B\tLPGETSTATUS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:465
+#: build/C/man2/ioctl_list.2:466
#, no-wrap
msgid "0x0000060C\tLPRESET\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:466
+#: build/C/man2/ioctl_list.2:467
#, no-wrap
msgid "0x0000060D\tLPGETSTATS\tstruct lp_stats *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:470
+#: build/C/man2/ioctl_list.2:471
msgid "// E<lt>include/linux/mroute.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:472
+#: build/C/man2/ioctl_list.2:473
#, no-wrap
msgid "0x000089E0\tSIOCGETVIFCNT\tstruct sioc_vif_req *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:473
+#: build/C/man2/ioctl_list.2:474
#, no-wrap
msgid "0x000089E1\tSIOCGETSGCNT\tstruct sioc_sg_req *\t// I-O\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:477
+#: build/C/man2/ioctl_list.2:478
+msgid "// E<lt>include/linux/msdos_fs.hE<gt>"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/ioctl_list.2:480
+#, no-wrap
+msgid "0x82307201\tVFAT_IOCTL_READDIR_BOTH\tstruct dirent [2]\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/ioctl_list.2:481
+#, no-wrap
+msgid "0x82307202\tVFAT_IOCTL_READDIR_SHORT\tstruct dirent [2]\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/ioctl_list.2:482
+#, no-wrap
+msgid "0x80047210\tFAT_IOCTL_GET_ATTRIBUTES\t__u32 *\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/ioctl_list.2:483
+#, no-wrap
+msgid "0x40047211\tFAT_IOCTL_SET_ATTRIBUTES\tconst __u32 *\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/ioctl_list.2:487
msgid "// E<lt>include/linux/mtio.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:479
+#: build/C/man2/ioctl_list.2:489
#, no-wrap
msgid "0x40086D01\tMTIOCTOP\tconst struct mtop *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:480
+#: build/C/man2/ioctl_list.2:490
#, no-wrap
msgid "0x801C6D02\tMTIOCGET\tstruct mtget *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:481
+#: build/C/man2/ioctl_list.2:491
#, no-wrap
msgid "0x80046D03\tMTIOCPOS\tstruct mtpos *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:482
+#: build/C/man2/ioctl_list.2:492
#, no-wrap
msgid "0x80206D04\tMTIOCGETCONFIG\tstruct mtconfiginfo *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:483
+#: build/C/man2/ioctl_list.2:493
#, no-wrap
msgid "0x40206D05\tMTIOCSETCONFIG\tconst struct mtconfiginfo *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:487
+#: build/C/man2/ioctl_list.2:497
msgid "// E<lt>include/linux/netrom.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:489
+#: build/C/man2/ioctl_list.2:499
#, no-wrap
msgid "0x000089E0\tSIOCNRGETPARMS\tstruct nr_parms_struct *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:490
+#: build/C/man2/ioctl_list.2:500
#, no-wrap
msgid "0x000089E1\tSIOCNRSETPARMS\tconst struct nr_parms_struct *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:491
+#: build/C/man2/ioctl_list.2:501
#, no-wrap
msgid "0x000089E2\tSIOCNRDECOBS\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:492
+#: build/C/man2/ioctl_list.2:502
#, no-wrap
msgid "0x000089E3\tSIOCNRRTCTL\tconst int *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:496
+#: build/C/man2/ioctl_list.2:506
msgid "// E<lt>include/linux/sbpcd.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:498
+#: build/C/man2/ioctl_list.2:508
#, no-wrap
msgid "0x00009000\tDDIOCSDBG\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:499
+#: build/C/man2/ioctl_list.2:509
#, no-wrap
msgid "0x00005382\tCDROMAUDIOBUFSIZ\tint\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:503
+#: build/C/man2/ioctl_list.2:513
msgid "// E<lt>include/linux/scc.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:505
+#: build/C/man2/ioctl_list.2:515
#, no-wrap
msgid "0x00005470\tTIOCSCCINI\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:506
+#: build/C/man2/ioctl_list.2:516
#, no-wrap
msgid "0x00005471\tTIOCCHANINI\tconst struct scc_modem *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:507
+#: build/C/man2/ioctl_list.2:517
#, no-wrap
msgid "0x00005472\tTIOCGKISS\tstruct ioctl_command *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:508
+#: build/C/man2/ioctl_list.2:518
#, no-wrap
msgid "0x00005473\tTIOCSKISS\tconst struct ioctl_command *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:509
+#: build/C/man2/ioctl_list.2:519
#, no-wrap
msgid "0x00005474\tTIOCSCCSTAT\tstruct scc_stat *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:513
+#: build/C/man2/ioctl_list.2:523
msgid "// E<lt>include/linux/scsi.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:515
+#: build/C/man2/ioctl_list.2:525
#, no-wrap
msgid "0x00005382\tSCSI_IOCTL_GET_IDLUN\tstruct { int [2]; } *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:516
+#: build/C/man2/ioctl_list.2:526
#, no-wrap
msgid "0x00005383\tSCSI_IOCTL_TAGGED_ENABLE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:517
+#: build/C/man2/ioctl_list.2:527
#, no-wrap
msgid "0x00005384\tSCSI_IOCTL_TAGGED_DISABLE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:521
+#: build/C/man2/ioctl_list.2:531
#, no-wrap
msgid "0x00005385\tSCSI_IOCTL_PROBE_HOST\tconst int *\t// MORE\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:525
+#: build/C/man2/ioctl_list.2:535
msgid "// E<lt>include/linux/smb_fs.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:527
+#: build/C/man2/ioctl_list.2:537
#, no-wrap
msgid "0x80027501\tSMB_IOC_GETMOUNTUID\tuid_t *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:531
+#: build/C/man2/ioctl_list.2:541
msgid "// E<lt>include/linux/sockios.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:533
+#: build/C/man2/ioctl_list.2:543
#, no-wrap
msgid "0x0000890B\tSIOCADDRT\tconst struct rtentry *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:534
+#: build/C/man2/ioctl_list.2:544
#, no-wrap
msgid "0x0000890C\tSIOCDELRT\tconst struct rtentry *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:535
+#: build/C/man2/ioctl_list.2:545
#, no-wrap
msgid "0x00008910\tSIOCGIFNAME\tchar []\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:536
+#: build/C/man2/ioctl_list.2:546
#, no-wrap
msgid "0x00008911\tSIOCSIFLINK\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:537
+#: build/C/man2/ioctl_list.2:547
#, no-wrap
msgid "0x00008912\tSIOCGIFCONF\tstruct ifconf *\t// MORE // I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:538
+#: build/C/man2/ioctl_list.2:548
#, no-wrap
msgid "0x00008913\tSIOCGIFFLAGS\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:539
+#: build/C/man2/ioctl_list.2:549
#, no-wrap
msgid "0x00008914\tSIOCSIFFLAGS\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:540
+#: build/C/man2/ioctl_list.2:550
#, no-wrap
msgid "0x00008915\tSIOCGIFADDR\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:541
+#: build/C/man2/ioctl_list.2:551
#, no-wrap
msgid "0x00008916\tSIOCSIFADDR\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:542
+#: build/C/man2/ioctl_list.2:552
#, no-wrap
msgid "0x00008917\tSIOCGIFDSTADDR\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:543
+#: build/C/man2/ioctl_list.2:553
#, no-wrap
msgid "0x00008918\tSIOCSIFDSTADDR\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:544
+#: build/C/man2/ioctl_list.2:554
#, no-wrap
msgid "0x00008919\tSIOCGIFBRDADDR\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:545
+#: build/C/man2/ioctl_list.2:555
#, no-wrap
msgid "0x0000891A\tSIOCSIFBRDADDR\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:546
+#: build/C/man2/ioctl_list.2:556
#, no-wrap
msgid "0x0000891B\tSIOCGIFNETMASK\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:547
+#: build/C/man2/ioctl_list.2:557
#, no-wrap
msgid "0x0000891C\tSIOCSIFNETMASK\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:548
+#: build/C/man2/ioctl_list.2:558
#, no-wrap
msgid "0x0000891D\tSIOCGIFMETRIC\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:549
+#: build/C/man2/ioctl_list.2:559
#, no-wrap
msgid "0x0000891E\tSIOCSIFMETRIC\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:550
+#: build/C/man2/ioctl_list.2:560
#, no-wrap
msgid "0x0000891F\tSIOCGIFMEM\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:551
+#: build/C/man2/ioctl_list.2:561
#, no-wrap
msgid "0x00008920\tSIOCSIFMEM\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:552
+#: build/C/man2/ioctl_list.2:562
#, no-wrap
msgid "0x00008921\tSIOCGIFMTU\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:553
+#: build/C/man2/ioctl_list.2:563
#, no-wrap
msgid "0x00008922\tSIOCSIFMTU\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:557
+#: build/C/man2/ioctl_list.2:567
#, no-wrap
msgid "0x00008923\tOLD_SIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:558
+#: build/C/man2/ioctl_list.2:568
#, no-wrap
msgid "0x00008924\tSIOCSIFHWADDR\tconst struct ifreq *\t// MORE\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:559
+#: build/C/man2/ioctl_list.2:569
#, no-wrap
msgid "0x00008925\tSIOCGIFENCAP\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:560
+#: build/C/man2/ioctl_list.2:570
#, no-wrap
msgid "0x00008926\tSIOCSIFENCAP\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:561
+#: build/C/man2/ioctl_list.2:571
#, no-wrap
msgid "0x00008927\tSIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:562
+#: build/C/man2/ioctl_list.2:572
#, no-wrap
msgid "0x00008929\tSIOCGIFSLAVE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:563
+#: build/C/man2/ioctl_list.2:573
#, no-wrap
msgid "0x00008930\tSIOCSIFSLAVE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:564
+#: build/C/man2/ioctl_list.2:574
#, no-wrap
msgid "0x00008931\tSIOCADDMULTI\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:565
+#: build/C/man2/ioctl_list.2:575
#, no-wrap
msgid "0x00008932\tSIOCDELMULTI\tconst struct ifreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:566
+#: build/C/man2/ioctl_list.2:576
#, no-wrap
msgid "0x00008940\tSIOCADDRTOLD\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:567
+#: build/C/man2/ioctl_list.2:577
#, no-wrap
msgid "0x00008941\tSIOCDELRTOLD\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:568
+#: build/C/man2/ioctl_list.2:578
#, no-wrap
msgid "0x00008950\tSIOCDARP\tconst struct arpreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:569
+#: build/C/man2/ioctl_list.2:579
#, no-wrap
msgid "0x00008951\tSIOCGARP\tstruct arpreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:570
+#: build/C/man2/ioctl_list.2:580
#, no-wrap
msgid "0x00008952\tSIOCSARP\tconst struct arpreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:571
+#: build/C/man2/ioctl_list.2:581
#, no-wrap
msgid "0x00008960\tSIOCDRARP\tconst struct arpreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:572
+#: build/C/man2/ioctl_list.2:582
#, no-wrap
msgid "0x00008961\tSIOCGRARP\tstruct arpreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:573
+#: build/C/man2/ioctl_list.2:583
#, no-wrap
msgid "0x00008962\tSIOCSRARP\tconst struct arpreq *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:574
+#: build/C/man2/ioctl_list.2:584
#, no-wrap
msgid "0x00008970\tSIOCGIFMAP\tstruct ifreq *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:575
+#: build/C/man2/ioctl_list.2:585
#, no-wrap
msgid "0x00008971\tSIOCSIFMAP\tconst struct ifreq *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:579
+#: build/C/man2/ioctl_list.2:589
msgid "// E<lt>include/linux/soundcard.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:581
+#: build/C/man2/ioctl_list.2:591
#, no-wrap
msgid "0x00005100\tSNDCTL_SEQ_RESET\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:582
+#: build/C/man2/ioctl_list.2:592
#, no-wrap
msgid "0x00005101\tSNDCTL_SEQ_SYNC\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:586
+#: build/C/man2/ioctl_list.2:596
#, no-wrap
msgid "0xC08C5102\tSNDCTL_SYNTH_INFO\tstruct synth_info *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:587
+#: build/C/man2/ioctl_list.2:597
#, no-wrap
msgid "0xC0045103\tSNDCTL_SEQ_CTRLRATE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:588
+#: build/C/man2/ioctl_list.2:598
#, no-wrap
msgid "0x80045104\tSNDCTL_SEQ_GETOUTCOUNT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:589
+#: build/C/man2/ioctl_list.2:599
#, no-wrap
msgid "0x80045105\tSNDCTL_SEQ_GETINCOUNT\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:590
+#: build/C/man2/ioctl_list.2:600
#, no-wrap
msgid "0x40045106\tSNDCTL_SEQ_PERCMODE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:594
+#: build/C/man2/ioctl_list.2:604
#, no-wrap
msgid "0x40285107\tSNDCTL_FM_LOAD_INSTR\tconst struct sbi_instrument *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:598
+#: build/C/man2/ioctl_list.2:608
#, no-wrap
msgid "0x40045108\tSNDCTL_SEQ_TESTMIDI\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:599
+#: build/C/man2/ioctl_list.2:609
#, no-wrap
msgid "0x40045109\tSNDCTL_SEQ_RESETSAMPLES\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:600
+#: build/C/man2/ioctl_list.2:610
#, no-wrap
msgid "0x8004510A\tSNDCTL_SEQ_NRSYNTHS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:601
+#: build/C/man2/ioctl_list.2:611
#, no-wrap
msgid "0x8004510B\tSNDCTL_SEQ_NRMIDIS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:602
+#: build/C/man2/ioctl_list.2:612
#, no-wrap
msgid "0xC074510C\tSNDCTL_MIDI_INFO\tstruct midi_info *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:603
+#: build/C/man2/ioctl_list.2:613
#, no-wrap
msgid "0x4004510D\tSNDCTL_SEQ_THRESHOLD\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:604
+#: build/C/man2/ioctl_list.2:614
#, no-wrap
msgid "0xC004510E\tSNDCTL_SYNTH_MEMAVL\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:605
+#: build/C/man2/ioctl_list.2:615
#, no-wrap
msgid "0x4004510F\tSNDCTL_FM_4OP_ENABLE\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:606
+#: build/C/man2/ioctl_list.2:616
#, no-wrap
msgid "0xCFB85110\tSNDCTL_PMGR_ACCESS\tstruct patmgr_info *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:607
+#: build/C/man2/ioctl_list.2:617
#, no-wrap
msgid "0x00005111\tSNDCTL_SEQ_PANIC\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:611
+#: build/C/man2/ioctl_list.2:621
#, no-wrap
msgid "0x40085112\tSNDCTL_SEQ_OUTOFBAND\tconst struct seq_event_rec *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:615
+#: build/C/man2/ioctl_list.2:625
#, no-wrap
msgid "0xC0045401\tSNDCTL_TMR_TIMEBASE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:616
+#: build/C/man2/ioctl_list.2:626
#, no-wrap
msgid "0x00005402\tSNDCTL_TMR_START\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:617
+#: build/C/man2/ioctl_list.2:627
#, no-wrap
msgid "0x00005403\tSNDCTL_TMR_STOP\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:618
+#: build/C/man2/ioctl_list.2:628
#, no-wrap
msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:619
+#: build/C/man2/ioctl_list.2:629
#, no-wrap
msgid "0xC0045405\tSNDCTL_TMR_TEMPO\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:620
+#: build/C/man2/ioctl_list.2:630
#, no-wrap
msgid "0xC0045406\tSNDCTL_TMR_SOURCE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:621
+#: build/C/man2/ioctl_list.2:631
#, no-wrap
msgid "0x40045407\tSNDCTL_TMR_METRONOME\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:622
+#: build/C/man2/ioctl_list.2:632
#, no-wrap
msgid "0x40045408\tSNDCTL_TMR_SELECT\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:623
+#: build/C/man2/ioctl_list.2:633
#, no-wrap
msgid "0xCFB85001\tSNDCTL_PMGR_IFACE\tstruct patmgr_info *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:624
+#: build/C/man2/ioctl_list.2:634
#, no-wrap
msgid "0xC0046D00\tSNDCTL_MIDI_PRETIME\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:625
+#: build/C/man2/ioctl_list.2:635
#, no-wrap
msgid "0xC0046D01\tSNDCTL_MIDI_MPUMODE\tconst int *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:629
+#: build/C/man2/ioctl_list.2:639
#, no-wrap
msgid "0xC0216D02\tSNDCTL_MIDI_MPUCMD\tstruct mpu_command_rec *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:633
+#: build/C/man2/ioctl_list.2:643
#, no-wrap
msgid "0x00005000\tSNDCTL_DSP_RESET\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:634
+#: build/C/man2/ioctl_list.2:644
#, no-wrap
msgid "0x00005001\tSNDCTL_DSP_SYNC\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:635
+#: build/C/man2/ioctl_list.2:645
#, no-wrap
msgid "0xC0045002\tSNDCTL_DSP_SPEED\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:636
+#: build/C/man2/ioctl_list.2:646
#, no-wrap
msgid "0xC0045003\tSNDCTL_DSP_STEREO\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:637
+#: build/C/man2/ioctl_list.2:647
#, no-wrap
msgid "0xC0045004\tSNDCTL_DSP_GETBLKSIZE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:638
+#: build/C/man2/ioctl_list.2:648
#, no-wrap
msgid "0xC0045006\tSOUND_PCM_WRITE_CHANNELS\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:639
+#: build/C/man2/ioctl_list.2:649
#, no-wrap
msgid "0xC0045007\tSOUND_PCM_WRITE_FILTER\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:640
+#: build/C/man2/ioctl_list.2:650
#, no-wrap
msgid "0x00005008\tSNDCTL_DSP_POST\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:641
+#: build/C/man2/ioctl_list.2:651
#, no-wrap
msgid "0xC0045009\tSNDCTL_DSP_SUBDIVIDE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:642
+#: build/C/man2/ioctl_list.2:652
#, no-wrap
msgid "0xC004500A\tSNDCTL_DSP_SETFRAGMENT\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:643
+#: build/C/man2/ioctl_list.2:653
#, no-wrap
msgid "0x8004500B\tSNDCTL_DSP_GETFMTS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:644
+#: build/C/man2/ioctl_list.2:654
#, no-wrap
msgid "0xC0045005\tSNDCTL_DSP_SETFMT\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:648
+#: build/C/man2/ioctl_list.2:658
#, no-wrap
msgid "0x800C500C\tSNDCTL_DSP_GETOSPACE\tstruct audio_buf_info *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:649
+#: build/C/man2/ioctl_list.2:659
#, no-wrap
msgid "0x800C500D\tSNDCTL_DSP_GETISPACE\tstruct audio_buf_info *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:650
+#: build/C/man2/ioctl_list.2:660
#, no-wrap
msgid "0x0000500E\tSNDCTL_DSP_NONBLOCK\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:651
+#: build/C/man2/ioctl_list.2:661
#, no-wrap
msgid "0x80045002\tSOUND_PCM_READ_RATE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:652
+#: build/C/man2/ioctl_list.2:662
#, no-wrap
msgid "0x80045006\tSOUND_PCM_READ_CHANNELS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:653
+#: build/C/man2/ioctl_list.2:663
#, no-wrap
msgid "0x80045005\tSOUND_PCM_READ_BITS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:654
+#: build/C/man2/ioctl_list.2:664
#, no-wrap
msgid "0x80045007\tSOUND_PCM_READ_FILTER\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:655
+#: build/C/man2/ioctl_list.2:665
#, no-wrap
msgid "0x00004300\tSNDCTL_COPR_RESET\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:656
+#: build/C/man2/ioctl_list.2:666
#, no-wrap
msgid "0xCFB04301\tSNDCTL_COPR_LOAD\tconst struct copr_buffer *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:660
+#: build/C/man2/ioctl_list.2:670
#, no-wrap
msgid "0xC0144302\tSNDCTL_COPR_RDATA\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:661
+#: build/C/man2/ioctl_list.2:671
#, no-wrap
msgid "0xC0144303\tSNDCTL_COPR_RCODE\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:665
+#: build/C/man2/ioctl_list.2:675
#, no-wrap
msgid "0x40144304\tSNDCTL_COPR_WDATA\tconst struct copr_debug_buf *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:666
+#: build/C/man2/ioctl_list.2:676
#, no-wrap
msgid "0x40144305\tSNDCTL_COPR_WCODE\tconst struct copr_debug_buf *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:670
+#: build/C/man2/ioctl_list.2:680
#, no-wrap
msgid "0xC0144306\tSNDCTL_COPR_RUN\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:671
+#: build/C/man2/ioctl_list.2:681
#, no-wrap
msgid "0xC0144307\tSNDCTL_COPR_HALT\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:675
+#: build/C/man2/ioctl_list.2:685
#, no-wrap
msgid "0x4FA44308\tSNDCTL_COPR_SENDMSG\tconst struct copr_msg *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:676
+#: build/C/man2/ioctl_list.2:686
#, no-wrap
msgid "0x8FA44309\tSNDCTL_COPR_RCVMSG\tstruct copr_msg *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:677
+#: build/C/man2/ioctl_list.2:687
#, no-wrap
msgid "0x80044D00\tSOUND_MIXER_READ_VOLUME\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:678
+#: build/C/man2/ioctl_list.2:688
#, no-wrap
msgid "0x80044D01\tSOUND_MIXER_READ_BASS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:679
+#: build/C/man2/ioctl_list.2:689
#, no-wrap
msgid "0x80044D02\tSOUND_MIXER_READ_TREBLE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:680
+#: build/C/man2/ioctl_list.2:690
#, no-wrap
msgid "0x80044D03\tSOUND_MIXER_READ_SYNTH\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:681
+#: build/C/man2/ioctl_list.2:691
#, no-wrap
msgid "0x80044D04\tSOUND_MIXER_READ_PCM\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:682
+#: build/C/man2/ioctl_list.2:692
#, no-wrap
msgid "0x80044D05\tSOUND_MIXER_READ_SPEAKER\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:683
+#: build/C/man2/ioctl_list.2:693
#, no-wrap
msgid "0x80044D06\tSOUND_MIXER_READ_LINE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:684
+#: build/C/man2/ioctl_list.2:694
#, no-wrap
msgid "0x80044D07\tSOUND_MIXER_READ_MIC\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:685
+#: build/C/man2/ioctl_list.2:695
#, no-wrap
msgid "0x80044D08\tSOUND_MIXER_READ_CD\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:686
+#: build/C/man2/ioctl_list.2:696
#, no-wrap
msgid "0x80044D09\tSOUND_MIXER_READ_IMIX\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:687
+#: build/C/man2/ioctl_list.2:697
#, no-wrap
msgid "0x80044D0A\tSOUND_MIXER_READ_ALTPCM\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:688
+#: build/C/man2/ioctl_list.2:698
#, no-wrap
msgid "0x80044D0B\tSOUND_MIXER_READ_RECLEV\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:689
+#: build/C/man2/ioctl_list.2:699
#, no-wrap
msgid "0x80044D0C\tSOUND_MIXER_READ_IGAIN\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:690
+#: build/C/man2/ioctl_list.2:700
#, no-wrap
msgid "0x80044D0D\tSOUND_MIXER_READ_OGAIN\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:691
+#: build/C/man2/ioctl_list.2:701
#, no-wrap
msgid "0x80044D0E\tSOUND_MIXER_READ_LINE1\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:692
+#: build/C/man2/ioctl_list.2:702
#, no-wrap
msgid "0x80044D0F\tSOUND_MIXER_READ_LINE2\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:693
+#: build/C/man2/ioctl_list.2:703
#, no-wrap
msgid "0x80044D10\tSOUND_MIXER_READ_LINE3\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:694
+#: build/C/man2/ioctl_list.2:704
#, no-wrap
msgid "0x80044D1C\tSOUND_MIXER_READ_MUTE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:695
+#: build/C/man2/ioctl_list.2:705
#, no-wrap
msgid "0x80044D1D\tSOUND_MIXER_READ_ENHANCE\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:696
+#: build/C/man2/ioctl_list.2:706
#, no-wrap
msgid "0x80044D1E\tSOUND_MIXER_READ_LOUD\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:697
+#: build/C/man2/ioctl_list.2:707
#, no-wrap
msgid "0x80044DFF\tSOUND_MIXER_READ_RECSRC\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:698
+#: build/C/man2/ioctl_list.2:708
#, no-wrap
msgid "0x80044DFE\tSOUND_MIXER_READ_DEVMASK\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:699
+#: build/C/man2/ioctl_list.2:709
#, no-wrap
msgid "0x80044DFD\tSOUND_MIXER_READ_RECMASK\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:700
+#: build/C/man2/ioctl_list.2:710
#, no-wrap
msgid "0x80044DFB\tSOUND_MIXER_READ_STEREODEVS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:701
+#: build/C/man2/ioctl_list.2:711
#, no-wrap
msgid "0x80044DFC\tSOUND_MIXER_READ_CAPS\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:705
+#: build/C/man2/ioctl_list.2:715
#, no-wrap
msgid "0xC0044D00\tSOUND_MIXER_WRITE_VOLUME\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:706
+#: build/C/man2/ioctl_list.2:716
#, no-wrap
msgid "0xC0044D01\tSOUND_MIXER_WRITE_BASS\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:707
+#: build/C/man2/ioctl_list.2:717
#, no-wrap
msgid "0xC0044D02\tSOUND_MIXER_WRITE_TREBLE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:708
+#: build/C/man2/ioctl_list.2:718
#, no-wrap
msgid "0xC0044D03\tSOUND_MIXER_WRITE_SYNTH\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:709
+#: build/C/man2/ioctl_list.2:719
#, no-wrap
msgid "0xC0044D04\tSOUND_MIXER_WRITE_PCM\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:710
+#: build/C/man2/ioctl_list.2:720
#, no-wrap
msgid "0xC0044D05\tSOUND_MIXER_WRITE_SPEAKER\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:711
+#: build/C/man2/ioctl_list.2:721
#, no-wrap
msgid "0xC0044D06\tSOUND_MIXER_WRITE_LINE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:712
+#: build/C/man2/ioctl_list.2:722
#, no-wrap
msgid "0xC0044D07\tSOUND_MIXER_WRITE_MIC\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:713
+#: build/C/man2/ioctl_list.2:723
#, no-wrap
msgid "0xC0044D08\tSOUND_MIXER_WRITE_CD\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:714
+#: build/C/man2/ioctl_list.2:724
#, no-wrap
msgid "0xC0044D09\tSOUND_MIXER_WRITE_IMIX\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:715
+#: build/C/man2/ioctl_list.2:725
#, no-wrap
msgid "0xC0044D0A\tSOUND_MIXER_WRITE_ALTPCM\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:716
+#: build/C/man2/ioctl_list.2:726
#, no-wrap
msgid "0xC0044D0B\tSOUND_MIXER_WRITE_RECLEV\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:717
+#: build/C/man2/ioctl_list.2:727
#, no-wrap
msgid "0xC0044D0C\tSOUND_MIXER_WRITE_IGAIN\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:718
+#: build/C/man2/ioctl_list.2:728
#, no-wrap
msgid "0xC0044D0D\tSOUND_MIXER_WRITE_OGAIN\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:719
+#: build/C/man2/ioctl_list.2:729
#, no-wrap
msgid "0xC0044D0E\tSOUND_MIXER_WRITE_LINE1\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:720
+#: build/C/man2/ioctl_list.2:730
#, no-wrap
msgid "0xC0044D0F\tSOUND_MIXER_WRITE_LINE2\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:721
+#: build/C/man2/ioctl_list.2:731
#, no-wrap
msgid "0xC0044D10\tSOUND_MIXER_WRITE_LINE3\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:722
+#: build/C/man2/ioctl_list.2:732
#, no-wrap
msgid "0xC0044D1C\tSOUND_MIXER_WRITE_MUTE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:723
+#: build/C/man2/ioctl_list.2:733
#, no-wrap
msgid "0xC0044D1D\tSOUND_MIXER_WRITE_ENHANCE\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:724
+#: build/C/man2/ioctl_list.2:734
#, no-wrap
msgid "0xC0044D1E\tSOUND_MIXER_WRITE_LOUD\tint *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:725
+#: build/C/man2/ioctl_list.2:735
#, no-wrap
msgid "0xC0044DFF\tSOUND_MIXER_WRITE_RECSRC\tint *\t// I-O\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:729
+#: build/C/man2/ioctl_list.2:739
msgid "// E<lt>include/linux/umsdos_fs.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:731
+#: build/C/man2/ioctl_list.2:741
#, no-wrap
msgid "0x000004D2\tUMSDOS_READDIR_DOS\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:732
+#: build/C/man2/ioctl_list.2:742
#, no-wrap
msgid "0x000004D3\tUMSDOS_UNLINK_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:733
+#: build/C/man2/ioctl_list.2:743
#, no-wrap
msgid "0x000004D4\tUMSDOS_RMDIR_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:734
+#: build/C/man2/ioctl_list.2:744
#, no-wrap
msgid "0x000004D5\tUMSDOS_STAT_DOS\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:735
+#: build/C/man2/ioctl_list.2:745
#, no-wrap
msgid "0x000004D6\tUMSDOS_CREAT_EMD\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:736
+#: build/C/man2/ioctl_list.2:746
#, no-wrap
msgid "0x000004D7\tUMSDOS_UNLINK_EMD\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:737
+#: build/C/man2/ioctl_list.2:747
#, no-wrap
msgid "0x000004D8\tUMSDOS_READDIR_EMD\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:738
+#: build/C/man2/ioctl_list.2:748
#, no-wrap
msgid "0x000004D9\tUMSDOS_GETVERSION\tstruct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:739
+#: build/C/man2/ioctl_list.2:749
#, no-wrap
msgid "0x000004DA\tUMSDOS_INIT_EMD\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:740
+#: build/C/man2/ioctl_list.2:750
#, no-wrap
msgid "0x000004DB\tUMSDOS_DOS_SETUP\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:741
+#: build/C/man2/ioctl_list.2:751
#, no-wrap
msgid "0x000004DC\tUMSDOS_RENAME_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:745
+#: build/C/man2/ioctl_list.2:755
msgid "// E<lt>include/linux/vt.hE<gt>"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:747
+#: build/C/man2/ioctl_list.2:757
#, no-wrap
msgid "0x00005600\tVT_OPENQRY\tint *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:748
+#: build/C/man2/ioctl_list.2:758
#, no-wrap
msgid "0x00005601\tVT_GETMODE\tstruct vt_mode *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:749
+#: build/C/man2/ioctl_list.2:759
#, no-wrap
msgid "0x00005602\tVT_SETMODE\tconst struct vt_mode *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:750
+#: build/C/man2/ioctl_list.2:760
#, no-wrap
msgid "0x00005603\tVT_GETSTATE\tstruct vt_stat *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:751
+#: build/C/man2/ioctl_list.2:761
#, no-wrap
msgid "0x00005604\tVT_SENDSIG\tvoid\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:752
+#: build/C/man2/ioctl_list.2:762
#, no-wrap
msgid "0x00005605\tVT_RELDISP\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:753
+#: build/C/man2/ioctl_list.2:763
#, no-wrap
msgid "0x00005606\tVT_ACTIVATE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:754
+#: build/C/man2/ioctl_list.2:764
#, no-wrap
msgid "0x00005607\tVT_WAITACTIVE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:755
+#: build/C/man2/ioctl_list.2:765
#, no-wrap
msgid "0x00005608\tVT_DISALLOCATE\tint\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:756
+#: build/C/man2/ioctl_list.2:766
#, no-wrap
msgid "0x00005609\tVT_RESIZE\tconst struct vt_sizes *\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:757
+#: build/C/man2/ioctl_list.2:767
#, no-wrap
msgid "0x0000560A\tVT_RESIZEX\tconst struct vt_consize *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:764
+#: build/C/man2/ioctl_list.2:774
msgid ""
"// More arguments. Some ioctl's take a pointer to a structure which "
"contains additional pointers. These are documented here in alphabetical "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:772
+#: build/C/man2/ioctl_list.2:782
msgid ""
-"B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio "
-"*>. The I<buf> field points to an output buffer of length I<nframes * "
+"B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio\\ "
+"*>. The I<buf> field points to an output buffer of length I<nframes\\ * "
"CD_FRAMESIZE_RAW>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:788
+#: build/C/man2/ioctl_list.2:798
msgid ""
"B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and "
-"B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf *>. They use "
-"the same pointer as an output pointer to I<char []>. The length varies by "
-"request. For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
+"B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf\\ *>. They "
+"use the same pointer as an output pointer to I<char []>. The length varies "
+"by request. For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
"Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical "
"value 2048)."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:794
+#: build/C/man2/ioctl_list.2:804
#, no-wrap
msgid ""
" CDROMREADCOOKED char [CD_FRAMESIZE]\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:808
+#: build/C/man2/ioctl_list.2:818
msgid ""
"B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, "
-"B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq *>. The "
-"I<ifr_data> field is a pointer to another structure as follows:"
+"B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq\\ *>. "
+"The I<ifr_data> field is a pointer to another structure as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:816
+#: build/C/man2/ioctl_list.2:826
#, no-wrap
msgid ""
" EQL_ENSLAVE const struct slaving_request *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:833
+#: build/C/man2/ioctl_list.2:843
msgid ""
-"B<FDRAWCMD> takes a I<struct floppy raw_cmd *>. If I<flags & FD_RAW_WRITE> "
-"is nonzero, then I<data> points to an input buffer of length I<length>. If "
-"I<flags & FD_RAW_READ> is nonzero, then I<data> points to an output buffer "
-"of length I<length>."
+"B<FDRAWCMD> takes a I<struct floppy raw_cmd\\ *>. If I<flags & "
+"FD_RAW_WRITE> is nonzero, then I<data> points to an input buffer of length "
+"I<length>. If I<flags & FD_RAW_READ> is nonzero, then I<data> points to an "
+"output buffer of length I<length>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:849
+#: build/C/man2/ioctl_list.2:859
msgid ""
-"B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc *> or a "
-"I<const struct console_font_desc *>, respectively. I<chardata> points to a "
-"buffer of I<char [charcount]>. This is an output buffer for B<GIO_FONTX> "
+"B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc\\ *> or a "
+"I<const struct console_font_desc\\ *>, respectively. I<chardata> points to "
+"a buffer of I<char [charcount]>. This is an output buffer for B<GIO_FONTX> "
"and an input buffer for B<PIO_FONTX>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:865
+#: build/C/man2/ioctl_list.2:875
msgid ""
-"B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc *> or a I<const "
-"struct unimapdesc *>, respectively. I<entries> points to a buffer of "
+"B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc\\ *> or a I<const "
+"struct unimapdesc\\ *>, respectively. I<entries> points to a buffer of "
"I<struct unipair [entry_ct]>. This is an output buffer for B<GIO_UNIMAP> "
"and an input buffer for B<PIO_UNIMAP>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:869
+#: build/C/man2/ioctl_list.2:879
msgid ""
"KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O "
"ports. They are essentially alternate interfaces to 'ioperm'."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:875
+#: build/C/man2/ioctl_list.2:885
msgid ""
"B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O "
"port access. They are not implemented in the kernel."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:883
+#: build/C/man2/ioctl_list.2:893
msgid ""
-"B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int *>, which is a "
+"B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int\\ *>, which is a "
"length. It uses the same pointer as an output pointer to a I<char []> "
"buffer of this length."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:889
+#: build/C/man2/ioctl_list.2:899
msgid ""
"B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on "
"the protocol:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:894
+#: build/C/man2/ioctl_list.2:904
#, no-wrap
msgid ""
" Most protocols const struct rtentry *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:905
+#: build/C/man2/ioctl_list.2:915
msgid ""
-"B<SIOCGIFCONF> takes a I<struct ifconf *>. The I<ifc_buf> field points to a "
-"buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
+"B<SIOCGIFCONF> takes a I<struct ifconf\\ *>. The I<ifc_buf> field points to "
+"a buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
"type I<struct ifreq []>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:908
+#: build/C/man2/ioctl_list.2:918
msgid "B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:912
+#: build/C/man2/ioctl_list.2:922
#, no-wrap
msgid ""
" Most protocols const struct ifreq *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:927
+#: build/C/man2/ioctl_list.2:937
msgid ""
-"B<TIOCLINUX> takes a I<const char *>. It uses this to distinguish several "
+"B<TIOCLINUX> takes a I<const char\\ *>. It uses this to distinguish several "
"independent subcases. In the table below, I<N + foo> means I<foo> after an "
"N-byte pad. I<struct selection> is implicitly defined in "
"I<drivers/char/selection.c>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:936
+#: build/C/man2/ioctl_list.2:946
#, no-wrap
msgid ""
" TIOCLINUX-2 1 + const struct selection *\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:939
+#: build/C/man2/ioctl_list.2:949
msgid "// Duplicate ioctls"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:944
+#: build/C/man2/ioctl_list.2:954
msgid ""
"This list does not include ioctls in the range B<SIOCDEVPRIVATE> and "
"B<SIOCPROTOPRIVATE>."
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:946
+#: build/C/man2/ioctl_list.2:956
#, no-wrap
msgid "0x00000001\tFDSETPRM\tFIBMAP\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:947
+#: build/C/man2/ioctl_list.2:957
#, no-wrap
msgid "0x00000002\tFDDEFPRM\tFIGETBSZ\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:948
+#: build/C/man2/ioctl_list.2:958
#, no-wrap
msgid "0x00005382\tCDROMAUDIOBUFSIZ\tSCSI_IOCTL_GET_IDLUN\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:949
+#: build/C/man2/ioctl_list.2:959
#, no-wrap
msgid "0x00005402\tSNDCTL_TMR_START\tTCSETS\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:950
+#: build/C/man2/ioctl_list.2:960
#, no-wrap
msgid "0x00005403\tSNDCTL_TMR_STOP\tTCSETSW\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/ioctl_list.2:951
+#: build/C/man2/ioctl_list.2:961
#, no-wrap
msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tTCSETSF\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioctl_list.2:955
+#: build/C/man2/ioctl_list.2:965
msgid "B<ioctl>(2)"
msgstr ""
#. type: Plain text
#: build/C/man2/ioperm.2:40
-msgid "B<#include E<lt>unistd.hE<gt>> /* for libc5 */"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/ioperm.2:43
msgid "B<#include E<lt>sys/io.hE<gt>> /* for glibc */"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:45
+#: build/C/man2/ioperm.2:42
msgid ""
"B<int ioperm(unsigned long >I<from>B<, unsigned long >I<num>B<, int "
">I<turn_on>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:59
+#: build/C/man2/ioperm.2:56
msgid ""
"B<ioperm>() sets the port access permission bits for the calling thread for "
"I<num> bits starting from port address I<from>. If I<turn_on> is nonzero, "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:68
+#: build/C/man2/ioperm.2:65
msgid ""
"Before Linux 2.6.8, only the first 0x3ff I/O ports could be specified in "
"this manner. For more ports, the B<iopl>(2) system call had to be used "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:78
+#: build/C/man2/ioperm.2:75
msgid ""
"Permissions are not inherited by the child created by B<fork>(2); following "
"a B<fork>(2) the child must turn on those permissions that it needs. "
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:82
+#: build/C/man2/ioperm.2:79
msgid ""
"This call is mostly for the i386 architecture. On many other architectures "
"it does not exist or will always return an error."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:94
+#: build/C/man2/ioperm.2:91
msgid "Invalid values for I<from> or I<num>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:97
+#: build/C/man2/ioperm.2:94
msgid "(on PowerPC) This call is not supported."
msgstr ""
#. Could not allocate I/O bitmap.
#. type: Plain text
-#: build/C/man2/ioperm.2:101
+#: build/C/man2/ioperm.2:98
msgid "Out of memory."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:104
+#: build/C/man2/ioperm.2:101
msgid "The calling thread has insufficient privilege."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:108
+#: build/C/man2/ioperm.2:105
msgid ""
"B<ioperm>() is Linux-specific and should not be used in programs intended "
"to be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:112
+#: build/C/man2/ioperm.2:109
msgid ""
"The I</proc/ioports> file shows the I/O ports that are currently allocated "
"on the system."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:121
+#: build/C/man2/ioperm.2:117
msgid ""
-"Libc5 treats it as a system call and has a prototype in "
-"I<E<lt>unistd.hE<gt>>. Glibc1 does not have a prototype. Glibc2 has a "
-"prototype both in I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>. "
-"Avoid the latter, it is available on i386 only."
+"Glibc has an B<ioperm>() prototype both in I<E<lt>sys/io.hE<gt>> and in "
+"I<E<lt>sys/perm.hE<gt>>. Avoid the latter, it is available on i386 only."
msgstr ""
#. type: Plain text
-#: build/C/man2/ioperm.2:125
+#: build/C/man2/ioperm.2:121
msgid "B<iopl>(2), B<outb>(2), B<capabilities>(7)"
msgstr ""
#. type: TH
#: build/C/man3/lockf.3:28
#, no-wrap
-msgid "2012-07-07"
+msgid "2014-06-13"
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man3/lockf.3:151
-msgid "An invalid operation was specified in I<fd>."
+msgid "An invalid operation was specified in I<cmd>."
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/lockf.3:156
+#: build/C/man3/lockf.3:159
+msgid "The B<lockf>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/lockf.3:161
msgid "SVr4, POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man3/lockf.3:159
+#: build/C/man3/lockf.3:164
msgid "B<fcntl>(2), B<flock>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man3/lockf.3:171
+#: build/C/man3/lockf.3:176
msgid ""
"I<locks.txt> and I<mandatory-locking.txt> in the Linux kernel source "
"directory I<Documentation/filesystems> (on older kernels, these files are "
msgstr ""
#. type: TH
-#: build/C/man2/mkdir.2:10
+#: build/C/man2/mkdir.2:11
#, no-wrap
msgid "MKDIR"
msgstr ""
-#. type: TH
-#: build/C/man2/mkdir.2:10
-#, no-wrap
-msgid "2013-01-27"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/mkdir.2:13
-msgid "mkdir - create a directory"
+#: build/C/man2/mkdir.2:14
+msgid "mkdir, mkdirat - create a directory"
msgstr ""
#. .B #include <unistd.h>
#. type: Plain text
-#: build/C/man2/mkdir.2:18
+#: build/C/man2/mkdir.2:19
#, no-wrap
msgid ""
"B<#include E<lt>sys/stat.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:20
+#: build/C/man2/mkdir.2:21
#, no-wrap
msgid "B<int mkdir(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:25
+#: build/C/man2/mkdir.2:24
+#, no-wrap
+msgid ""
+"B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
+"B<#include E<lt>sys/stat.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:26
+#, no-wrap
+msgid ""
+"B<int mkdirat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
+">I<mode>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:34
+msgid "B<mkdirat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:51
msgid "B<mkdir>() attempts to create a directory named I<pathname>."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:35
+#: build/C/man2/mkdir.2:61
msgid ""
"The argument I<mode> specifies the permissions to use. It is modified by "
"the process's I<umask> in the usual way: the permissions of the created "
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:45
+#: build/C/man2/mkdir.2:71
msgid ""
"The newly created directory will be owned by the effective user ID of the "
"process. If the directory containing the file has the set-group-ID bit set, "
-"or if the file system is mounted with BSD group semantics (I<mount -o "
+"or if the filesystem is mounted with BSD group semantics (I<mount -o "
"bsdgroups> or, synonymously I<mount -o grpid>), the new directory will "
"inherit the group ownership from its parent; otherwise it will be owned by "
"the effective group ID of the process."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:48
+#: build/C/man2/mkdir.2:76
msgid ""
-"If the parent directory has the set-group-ID bit set then so will the newly "
+"If the parent directory has the set-group-ID bit set, then so will the newly "
"created directory."
msgstr ""
+#. type: SS
+#: build/C/man2/mkdir.2:76
+#, no-wrap
+msgid "mkdirat()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:82
+msgid ""
+"The B<mkdirat>() system call operates in exactly the same way as "
+"B<mkdir>(), except for the differences described here."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:92
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<mkdir>() for a relative pathname)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:104
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<mkdir>())."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/mkdir.2:53
+#: build/C/man2/mkdir.2:115
+msgid "See B<openat>(2) for an explanation of the need for B<mkdirat>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:122
msgid ""
-"B<mkdir>() returns zero on success, or -1 if an error occurred (in which "
-"case, I<errno> is set appropriately)."
+"B<mkdir>() and B<mkdirat>() return zero on success, or -1 if an error "
+"occurred (in which case, I<errno> is set appropriately)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:62
+#: build/C/man2/mkdir.2:131
msgid ""
"The parent directory does not allow write permission to the process, or one "
"of the directories in I<pathname> did not allow search permission. (See "
msgstr ""
#. type: TP
-#: build/C/man2/mkdir.2:62
+#: build/C/man2/mkdir.2:131
#, no-wrap
msgid "B<EDQUOT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:66
+#: build/C/man2/mkdir.2:135
msgid ""
-"The user's quota of disk blocks or inodes on the file system has been "
+"The user's quota of disk blocks or inodes on the filesystem has been "
"exhausted."
msgstr ""
#. type: TP
-#: build/C/man2/mkdir.2:66
+#: build/C/man2/mkdir.2:135
#, no-wrap
msgid "B<EEXIST>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:73
+#: build/C/man2/mkdir.2:142
msgid ""
"I<pathname> already exists (not necessarily as a directory). This includes "
"the case where I<pathname> is a symbolic link, dangling or not."
msgstr ""
#. type: TP
-#: build/C/man2/mkdir.2:80
+#: build/C/man2/mkdir.2:149
#, no-wrap
msgid "B<EMLINK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:84
+#: build/C/man2/mkdir.2:153
msgid "The number of links to the parent directory would exceed B<LINK_MAX>."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:87
+#: build/C/man2/mkdir.2:156
msgid "I<pathname> was too long."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:92
+#: build/C/man2/mkdir.2:161
msgid ""
"A directory component in I<pathname> does not exist or is a dangling "
"symbolic link."
msgstr ""
#. type: TP
-#: build/C/man2/mkdir.2:95 build/C/man2/mkdir.2:100
+#: build/C/man2/mkdir.2:164 build/C/man2/mkdir.2:169
#, no-wrap
msgid "B<ENOSPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:100
+#: build/C/man2/mkdir.2:169
msgid "The device containing I<pathname> has no room for the new directory."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:104
+#: build/C/man2/mkdir.2:173
msgid ""
"The new directory cannot be created because the user's disk quota is "
"exhausted."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:114
+#: build/C/man2/mkdir.2:183
msgid ""
-"The file system containing I<pathname> does not support the creation of "
+"The filesystem containing I<pathname> does not support the creation of "
"directories."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:118
-msgid "I<pathname> refers to a file on a read-only file system."
+#: build/C/man2/mkdir.2:187
+msgid "I<pathname> refers to a file on a read-only filesystem."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:190
+msgid "The following additional errors can occur for B<mkdirat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:204
+msgid ""
+"B<mkdirat>() was added to Linux in kernel 2.6.16; library support was added "
+"to glibc in version 2.4."
msgstr ""
#. SVr4 documents additional EIO, EMULTIHOP
#. type: Plain text
-#: build/C/man2/mkdir.2:121
-msgid "SVr4, BSD, POSIX.1-2001."
+#: build/C/man2/mkdir.2:208
+msgid "B<mkdir>(): SVr4, BSD, POSIX.1-2001, POSIX.1-2008."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:129
+#: build/C/man2/mkdir.2:211
+msgid "B<mkdirat>(): POSIX.1-2008."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:219
msgid ""
-"Under Linux apart from the permission bits, only the B<S_ISVTX> mode bit is "
+"Under Linux, apart from the permission bits, only the B<S_ISVTX> mode bit is "
"honored. That is, under Linux the created directory actually gets mode "
"(I<mode> & ~I<umask> & 01777). See also B<stat>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:133
+#: build/C/man2/mkdir.2:223
msgid ""
"There are many infelicities in the protocol underlying NFS. Some of these "
"affect B<mkdir>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/mkdir.2:145
+#: build/C/man2/mkdir.2:236
msgid ""
-"B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mkdirat>(2), B<mknod>(2), "
-"B<mount>(2), B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
-"B<path_resolution>(7)"
+"On older kernels where B<mkdirat>() is unavailable, the glibc wrapper "
+"function falls back to the use of B<mkdir>(). When I<pathname> is a "
+"relative pathname, glibc constructs a pathname based on the symbolic link in "
+"I</proc/self/fd> that corresponds to the I<dirfd> argument."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mkdir.2:247
+msgid ""
+"B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mknod>(2), B<mount>(2), "
+"B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<path_resolution>(7)"
msgstr ""
#. type: TH
msgid "NICE"
msgstr ""
+#. type: TH
+#: build/C/man2/nice.2:31
+#, no-wrap
+msgid "2014-04-28"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/nice.2:34
msgid "nice - change process priority"
#: build/C/man2/nice.2:75
msgid ""
"The calling process attempted to increase its priority by supplying a "
-"negative I<inc> but has insufficient privileges. Under Linux the "
+"negative I<inc> but has insufficient privileges. Under Linux, the "
"B<CAP_SYS_NICE> capability is required. (But see the discussion of the "
"B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/nice.2:112
+#: build/C/man2/nice.2:113
msgid ""
"B<nice>(1), B<renice>(1), B<fork>(2), B<getpriority>(2), B<setpriority>(2), "
-"B<capabilities>(7)"
+"B<capabilities>(7), B<sched>(7)"
msgstr ""
#. type: TH
msgid "PREAD"
msgstr ""
-#. type: TH
-#: build/C/man2/pread.2:25
-#, no-wrap
-msgid "2012-04-30"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/pread.2:28
msgid "pread, pwrite - read from or write to a file descriptor at a given offset"
msgstr ""
#. type: Plain text
-#: build/C/man2/pread.2:133
+#: build/C/man2/pread.2:125
+msgid ""
+"The B<pread>() and B<pwrite>() system calls are especially useful in "
+"multithreaded applications. They allow multiple threads to perform I/O on "
+"the same file descriptor without being affected by changes to the file "
+"offset by other threads."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/pread.2:141
msgid ""
"On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>() "
"became B<pread64>(), and B<pwrite>() became B<pwrite64>(). The system call "
"functions transparently deal with the change."
msgstr ""
-#. FIXME https://bugzilla.kernel.org/show_bug.cgi?id=43178
#. type: Plain text
-#: build/C/man2/pread.2:145
+#: build/C/man2/pread.2:146 build/C/man2/truncate.2:253
+msgid ""
+"On some 32-bit architectures, the calling signature for these system calls "
+"differ, for the reasons described in B<syscall>(2)."
+msgstr ""
+
+#. FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=43178
+#. type: Plain text
+#: build/C/man2/pread.2:158
msgid ""
"POSIX requires that opening a file with the B<O_APPEND> flag should have no "
-"affect on the location at which B<pwrite>() writes data. However, on "
+"effect on the location at which B<pwrite>() writes data. However, on "
"Linux, if a file is opened with B<O_APPEND>, B<pwrite>() appends data to "
"the end of the file, regardless of the value of I<offset>."
msgstr ""
#. type: Plain text
-#: build/C/man2/pread.2:150
+#: build/C/man2/pread.2:163
msgid "B<lseek>(2), B<read>(2), B<readv>(2), B<write>(2)"
msgstr ""
msgstr ""
#. type: Plain text
+#: build/C/man2/set_thread_area.2:72
+msgid ""
+"Glibc does not provide a wrapper for this system call, since it is generally "
+"intended only for use by threading libraries. In the unlikely event that "
+"you want to call it directly, use B<syscall>(2)."
+msgstr ""
+
+#. type: Plain text
#: build/C/man2/set_thread_area.2:74
msgid "B<get_thread_area>(2)"
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/setup.2:34 build/C/man2/uname.2:27
+#: build/C/man2/setup.2:34
#, no-wrap
msgid "2008-12-03"
msgstr ""
#. type: Plain text
#: build/C/man2/setup.2:37
-msgid "setup - setup devices and file systems, mount root file system"
+msgid "setup - setup devices and filesystems, mount root filesystem"
msgstr ""
#. type: Plain text
#: build/C/man2/setup.2:47
msgid ""
"B<setup>() is called once from within I<linux/init/main.c>. It calls "
-"initialization functions for devices and file systems configured into the "
-"kernel and then mounts the root file system."
+"initialization functions for devices and filesystems configured into the "
+"kernel and then mounts the root filesystem."
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man2/setup.2:72
msgid ""
-"The calling sequence varied: at some times I<setup ()> has had a single "
-"argument I<void *BIOS> and at other times a single argument I<int magic>."
+"The calling sequence varied: at some times B<setup>() has had a single "
+"argument I<void\\ *BIOS> and at other times a single argument I<int magic>."
msgstr ""
#. type: TH
#. type: TH
#: build/C/man3/swab.3:31
#, no-wrap
-msgid "2001-12-15"
+msgid "2014-02-25"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/swab.3:49
+#: build/C/man3/swab.3:55
msgid ""
"The B<swab>() function copies I<n> bytes from the array pointed to by "
"I<from> to the array pointed to by I<to>, exchanging adjacent even and odd "
msgstr ""
#. type: Plain text
-#: build/C/man3/swab.3:54
+#: build/C/man3/swab.3:68
msgid ""
"This function does nothing when I<n> is negative. When I<n> is positive and "
"odd, it handles I<n-1> bytes as above, and does something unspecified with "
msgstr ""
#. type: Plain text
-#: build/C/man3/swab.3:58
+#: build/C/man3/swab.3:72
msgid "The B<swab>() function returns no value."
msgstr ""
#. type: Plain text
-#: build/C/man3/swab.3:62
-msgid "B<bstring>(3)"
+#: build/C/man3/swab.3:77
+msgid "The B<swab>() function is thread-safe."
msgstr ""
-#. type: TH
-#: build/C/man2/swapon.2:37
-#, no-wrap
-msgid "SWAPON"
+#. type: Plain text
+#: build/C/man3/swab.3:81
+msgid "B<bstring>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/swapon.2:37
+#: build/C/man2/swapon.2:42
#, no-wrap
-msgid "2010-11-15"
+msgid "SWAPON"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:40
+#: build/C/man2/swapon.2:45
msgid "swapon, swapoff - start/stop swapping to file/device"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:44
-msgid "B<#include E<lt>asm/page.hE<gt> /* to find PAGE_SIZE */>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/swapon.2:46
+#: build/C/man2/swapon.2:49
msgid "B<#include E<lt>sys/swap.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:48
+#: build/C/man2/swapon.2:51
msgid "B<int swapon(const char *>I<path>B<, int >I<swapflags>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:50
+#: build/C/man2/swapon.2:53
msgid "B<int swapoff(const char *>I<path>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:57
+#: build/C/man2/swapon.2:60
msgid ""
"B<swapon>() sets the swap area to the file or block device specified by "
"I<path>. B<swapoff>() stops swapping to the file or block device specified "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:67
+#: build/C/man2/swapon.2:70
msgid ""
"If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>() "
"I<swapflags> argument, the new swap area will have a higher priority than "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:70
+#: build/C/man2/swapon.2:73
msgid "I<(prio E<lt>E<lt> SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:82
+#: build/C/man2/swapon.2:85
msgid ""
"If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>() "
"I<swapflags> argument, freed swap pages will be discarded before they are "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:86
+#: build/C/man2/swapon.2:89
msgid ""
-"These functions may only be used by a privileged process (one having the "
+"These functions may be used only by a privileged process (one having the "
"B<CAP_SYS_ADMIN> capability)."
msgstr ""
#. type: SS
-#: build/C/man2/swapon.2:86
+#: build/C/man2/swapon.2:89
#, no-wrap
msgid "Priority"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:91
+#: build/C/man2/swapon.2:94
msgid ""
"Each swap area has a priority, either high or low. The default priority is "
"low. Within the low-priority areas, newer areas are even lower priority "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:97
+#: build/C/man2/swapon.2:100
msgid ""
"All priorities set with I<swapflags> are high-priority, higher than "
"default. They may have any nonnegative value chosen by the caller. Higher "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:105
+#: build/C/man2/swapon.2:108
msgid ""
"Swap pages are allocated from areas in priority order, highest priority "
"first. For areas with different priorities, a higher-priority area is "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:108
+#: build/C/man2/swapon.2:111
msgid ""
"As of Linux 1.3.6, the kernel usually follows these rules, but there are "
"exceptions."
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:121
+#: build/C/man2/swapon.2:124
msgid ""
"(for B<swapon>()) The specified I<path> is already being used as a swap "
"area."
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:133
+#: build/C/man2/swapon.2:129
msgid ""
"The file I<path> exists, but refers neither to a regular file nor to a block "
-"device; or, for B<swapon>(), the indicated path does not contain a valid "
-"swap signature or resides on an in-memory file system like tmpfs; or, for "
-"B<swapoff>(), I<path> is not currently a swap area."
+"device;"
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:141
-msgid "The file I<path> does not exist."
+#: build/C/man2/swapon.2:134
+msgid ""
+"(B<swapon>()) The indicated path does not contain a valid swap signature or "
+"resides on an in-memory filesystem such as tmpfs."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/swapon.2:134
+#, no-wrap
+msgid "B<EINVAL> (since Linux 3.4)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/swapon.2:139
+msgid "(B<swapon>()) An invalid flag value was specified in I<flags>."
msgstr ""
#. type: Plain text
#: build/C/man2/swapon.2:144
+msgid "(B<swapoff>()) I<path> is not currently a swap area."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/swapon.2:152
+msgid "The file I<path> does not exist."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/swapon.2:155
msgid "The system has insufficient memory to start swapping."
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:151
+#: build/C/man2/swapon.2:162
msgid ""
"The caller does not have the B<CAP_SYS_ADMIN> capability. Alternatively, "
"the maximum number of swap files are already in use; see NOTES below."
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:157
+#: build/C/man2/swapon.2:168
msgid ""
"These functions are Linux-specific and should not be used in programs "
"intended to be portable. The second I<swapflags> argument was introduced in "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:160
+#: build/C/man2/swapon.2:171
msgid "The partition or path must be prepared with B<mkswap>(8)."
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:180
+#: build/C/man2/swapon.2:191
msgid ""
"There is an upper limit on the number of swap files that may be used, "
"defined by the kernel constant B<MAX_SWAPFILES>. Before kernel 2.4.10, "
#. To be precise: 2.6.35.5
#. type: Plain text
-#: build/C/man2/swapon.2:191
+#: build/C/man2/swapon.2:202
msgid ""
"Discard of swap pages was introduced in kernel 2.6.29, then made conditional "
"on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the "
msgstr ""
#. type: Plain text
-#: build/C/man2/swapon.2:195
+#: build/C/man2/swapon.2:206
msgid "B<mkswap>(8), B<swapoff>(8), B<swapon>(8)"
msgstr ""
#. type: TH
-#: build/C/man2/syscall.2:40
+#: build/C/man2/syscall.2:42
#, no-wrap
msgid "SYSCALL"
msgstr ""
-#. type: TH
-#: build/C/man2/syscall.2:40
-#, no-wrap
-msgid "2012-08-14"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/syscall.2:43
+#: build/C/man2/syscall.2:45
msgid "syscall - indirect system call"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:48
+#: build/C/man2/syscall.2:50
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:50
+#: build/C/man2/syscall.2:52
#, no-wrap
-msgid "B<int syscall(int >I<number>B<, ...);>\n"
+msgid "B<long syscall(long >I<number>B<, ...);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:62
+#: build/C/man2/syscall.2:64
msgid ""
"B<syscall>() is a small library function that invokes the system call whose "
"assembly language interface has the specified I<number> with the specified "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:69
+#: build/C/man2/syscall.2:71
msgid ""
"B<syscall>() saves CPU registers before making the system call, restores "
"the registers upon return from the system call, and stores any error code "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:72
+#: build/C/man2/syscall.2:74
msgid ""
"Symbolic constants for system call numbers can be found in the header file "
"I<E<lt>sys/syscall.hE<gt>>."
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:78
+#: build/C/man2/syscall.2:80
msgid ""
"The return value is defined by the system call being invoked. In general, a "
"0 return value indicates success. A -1 return value indicates an error, and "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:82
+#: build/C/man2/syscall.2:84
msgid "B<syscall>() first appeared in 4BSD."
msgstr ""
+#. type: SS
+#: build/C/man2/syscall.2:84
+#, no-wrap
+msgid "Architecture-specific requirements"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:95
+msgid ""
+"Each architecture ABI has its own requirements on how system call arguments "
+"are passed to the kernel. For system calls that have a glibc wrapper (e.g., "
+"most system calls), glibc handles the details of copying arguments to the "
+"right registers in a manner suitable for the architecture. However, when "
+"using B<syscall>() to make a system call, the caller might need to handle "
+"architecture-dependent details; this requirement is most commonly "
+"encountered on certain 32-bit architectures."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:106
+msgid ""
+"For example, on the ARM architecture Embedded ABI (EABI), a 64-bit value "
+"(e.g., I<long long>) must be aligned to an even register pair. Thus, using "
+"B<syscall>() instead of the wrapper provided by glibc, the B<readahead>() "
+"system call would be invoked as follows on the ARM architecture with the "
+"EABI:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:113
+#, no-wrap
+msgid ""
+"syscall(SYS_readahead, fd, 0,\n"
+" (unsigned int) (offset E<gt>E<gt> 32),\n"
+" (unsigned int) (offset & 0xFFFFFFFF),\n"
+" count);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:127
+msgid ""
+"Since the offset argument is 64 bits, and the first argument (I<fd>) is "
+"passed in I<r0>, the caller must manually split and align the 64-bit value "
+"so that it is passed in the I<r2>/I<r3> register pair. That means inserting "
+"a dummy value into I<r1> (the second argument of 0)."
+msgstr ""
+
+#. Mike Frysinger: this issue ends up forcing MIPS
+#. O32 to take 7 arguments to syscall()
+#. type: Plain text
+#: build/C/man2/syscall.2:132
+msgid ""
+"Similar issues can occur on MIPS with the O32 ABI, on PowerPC with the "
+"32-bit ABI, and on Xtensa."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/syscall.2:88
+#: build/C/man2/syscall.2:143
+msgid ""
+"The affected system calls are B<fadvise64_64>(2), B<ftruncate64>(2), "
+"B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), "
+"B<sync_file_range>(2), and B<truncate64>(2)."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/syscall.2:143
+#, no-wrap
+msgid "Architecture calling conventions"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:147
+msgid ""
+"Every architecture has its own way of invoking and passing arguments to the "
+"kernel. The details for various architectures are listed in the two tables "
+"below."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:154
+msgid ""
+"The first table lists the instruction used to transition to kernel mode, "
+"(which might not be the fastest or best way to transition to the kernel, so "
+"you might have to refer to B<vdso>(7)), the register used to indicate the "
+"system call number, and the register used to return the system call result."
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:159
+#, no-wrap
+msgid "arch/ABI\tinstruction\tsyscall #\tretval\tNotes\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:161
+#, no-wrap
+msgid "arm/OABI\tswi NR\t-\ta1\tNR is syscall #\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:162
+#, no-wrap
+msgid "arm/EABI\tswi 0x0\tr7\tr0\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:163
+#, no-wrap
+msgid "arm64\tsvc #0\tx8\tx0\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:164
+#, no-wrap
+msgid "blackfin\texcpt 0x0\tP0\tR0\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:165
+#, no-wrap
+msgid "i386\tint $0x80\teax\teax\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:166
+#, no-wrap
+msgid "ia64\tbreak 0x100000\tr15\tr8\tSee below\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:167
+#, no-wrap
+msgid "mips\tsyscall\tv0\tv0\tSee below\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:168
+#, no-wrap
+msgid "parisc\tble 0x100(%sr2, %r0)\tr20\tr28\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:169
+#, no-wrap
+msgid "s390\tsvc 0\tr1\tr2\tSee below\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:170
+#, no-wrap
+msgid "s390x\tsvc 0\tr1\tr2\tSee below\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:171
+#, no-wrap
+msgid "sparc/32\tt 0x10\tg1\to0\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:172
+#, no-wrap
+msgid "sparc/64\tt 0x6d\tg1\to0\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:173
+#, no-wrap
+msgid "x86_64\tsyscall\trax\trax\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:178
+msgid ""
+"For s390 and s390x, NR (the system call number) may be passed directly with "
+"\"svc NR\" if it is less than 256."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:186
+msgid ""
+"On a few architectures, a register is used to indicate simple boolean "
+"failure of the system call: ia64 uses I<r10> for this purpose, and mips uses "
+"I<a3>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:192
+msgid "The second table shows the registers used to pass the system call arguments."
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:197
+#, no-wrap
+msgid "arch/ABI\targ1\targ2\targ3\targ4\targ5\targ6\targ7\tNotes\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:199
+#, no-wrap
+msgid "arm/OABI\ta1\ta2\ta3\ta4\tv1\tv2\tv3\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:200
+#, no-wrap
+msgid "arm/EABI\tr0\tr1\tr2\tr3\tr4\tr5\tr6\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:201
+#, no-wrap
+msgid "arm64\tx0\tx1\tx2\tx3\tx4\tx5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:202
+#, no-wrap
+msgid "blackfin\tR0\tR1\tR2\tR3\tR4\tR5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:203
+#, no-wrap
+msgid "i386\tebx\tecx\tedx\tesi\tedi\tebp\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:204
+#, no-wrap
+msgid "ia64\tout0\tout1\tout2\tout3\tout4\tout5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:205
+#, no-wrap
+msgid "mips/o32\ta0\ta1\ta2\ta3\t-\t-\t-\tSee below\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:206
+#, no-wrap
+msgid "mips/n32,64\ta0\ta1\ta2\ta3\ta4\ta5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:207
+#, no-wrap
+msgid "parisc\tr26\tr25\tr24\tr23\tr22\tr21\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:208
+#, no-wrap
+msgid "s390\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:209
+#, no-wrap
+msgid "s390x\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:210
+#, no-wrap
+msgid "sparc/32\to0\to1\to2\to3\to4\to5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:211
+#, no-wrap
+msgid "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscall.2:212
+#, no-wrap
+msgid "x86_64\trdi\trsi\trdx\tr10\tr8\tr9\t-\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:217
+msgid ""
+"The mips/o32 system call convention passes arguments 5 through 8 on the user "
+"stack."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:224
+msgid ""
+"Note that these tables don't cover the entire calling convention\\(emsome "
+"architectures may indiscriminately clobber other registers not listed here."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/syscall.2:231
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>sys/syscall.hE<gt>\n"
"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:93
+#: build/C/man2/syscall.2:236
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:97
+#: build/C/man2/syscall.2:240
#, no-wrap
msgid ""
" tid = syscall(SYS_gettid);\n"
-" tid = syscall(SYS_tgkill, getpid(), tid);\n"
+" tid = syscall(SYS_tgkill, getpid(), tid, SIGHUP);\n"
"}\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscall.2:102
-msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2)"
+#: build/C/man2/syscall.2:247
+msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2), B<errno>(3), B<vdso>(7)"
msgstr ""
#. type: TH
msgid "SYSCALLS"
msgstr ""
-#. type: TH
-#: build/C/man2/syscalls.2:31
-#, no-wrap
-msgid "2013-03-10"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/syscalls.2:34
msgid "syscalls - Linux system calls"
#. type: Plain text
#: build/C/man2/syscalls.2:152
msgid ""
-"The list of system calls that are available as at kernel 3.5 (or in a few "
+"The list of system calls that are available as at kernel 3.15 (or in a few "
"cases only on older kernels) is as follows:"
msgstr ""
#. type: tbl table
#: build/C/man2/syscalls.2:171
#, no-wrap
-msgid "Deprecated (does nothing) since 2.6\n"
+msgid "Deprecated (does nothing)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:172 build/C/man2/syscalls.2:182 build/C/man2/syscalls.2:310 build/C/man2/syscalls.2:381 build/C/man2/syscalls.2:395 build/C/man2/syscalls.2:405 build/C/man2/syscalls.2:532
+#: build/C/man2/syscalls.2:172 build/C/man2/syscalls.2:185 build/C/man2/syscalls.2:320 build/C/man2/syscalls.2:393 build/C/man2/syscalls.2:409 build/C/man2/syscalls.2:422
#, no-wrap
-msgid "T}\n"
+msgid ".br\n"
msgstr ""
#. type: tbl table
#: build/C/man2/syscalls.2:173
#, no-wrap
+msgid "since 2.6\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:174 build/C/man2/syscalls.2:187 build/C/man2/syscalls.2:322 build/C/man2/syscalls.2:395 build/C/man2/syscalls.2:411 build/C/man2/syscalls.2:424 build/C/man2/syscalls.2:601
+#, no-wrap
+msgid "T}\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:175
+#, no-wrap
msgid "B<bind>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:174
+#: build/C/man2/syscalls.2:176
+#, no-wrap
+msgid "B<bpf>(2)\t3.18\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:177
#, no-wrap
msgid "B<brk>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:175
+#: build/C/man2/syscalls.2:178
#, no-wrap
msgid "B<cacheflush>(2)\t1.2\tNot on x86\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:176
+#: build/C/man2/syscalls.2:179
#, no-wrap
msgid "B<capget>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:177
+#: build/C/man2/syscalls.2:180
#, no-wrap
msgid "B<capset>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:178
+#: build/C/man2/syscalls.2:181
#, no-wrap
msgid "B<chdir>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:179
+#: build/C/man2/syscalls.2:182
#, no-wrap
msgid "B<chmod>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:180
+#: build/C/man2/syscalls.2:183
#, no-wrap
msgid "B<chown>(2)\t2.2\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:181 build/C/man2/syscalls.2:309
+#: build/C/man2/syscalls.2:184 build/C/man2/syscalls.2:319
#, no-wrap
-msgid "See B<chown>(2) for version details\n"
+msgid "See B<chown>(2) for\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:183
+#: build/C/man2/syscalls.2:186 build/C/man2/syscalls.2:321
+#, no-wrap
+msgid "version details\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:188
#, no-wrap
msgid "B<chown32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:184
+#: build/C/man2/syscalls.2:189
#, no-wrap
msgid "B<chroot>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:185
+#: build/C/man2/syscalls.2:190
#, no-wrap
msgid "B<clock_adjtime>(2)\t2.6.39\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:186
+#: build/C/man2/syscalls.2:191
#, no-wrap
msgid "B<clock_getres>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:187
+#: build/C/man2/syscalls.2:192
#, no-wrap
msgid "B<clock_gettime>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:188
+#: build/C/man2/syscalls.2:193
#, no-wrap
msgid "B<clock_nanosleep>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:189
+#: build/C/man2/syscalls.2:194
#, no-wrap
msgid "B<clock_settime>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:190
+#: build/C/man2/syscalls.2:195
#, no-wrap
msgid "B<clone>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:191
+#: build/C/man2/syscalls.2:196
#, no-wrap
msgid "B<close>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:192
+#: build/C/man2/syscalls.2:197
#, no-wrap
msgid "B<connect>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:193
+#: build/C/man2/syscalls.2:198
#, no-wrap
msgid "B<creat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:194
+#: build/C/man2/syscalls.2:199
#, no-wrap
-msgid "B<create_module>(2)\t\tRemoved in 2.6\n"
+msgid "B<create_module>(2)\t1.0\tRemoved in 2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:195
+#: build/C/man2/syscalls.2:200
#, no-wrap
msgid "B<delete_module>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:196
+#: build/C/man2/syscalls.2:201
#, no-wrap
msgid "B<dup>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:197
+#: build/C/man2/syscalls.2:202
#, no-wrap
msgid "B<dup2>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:198
+#: build/C/man2/syscalls.2:203
#, no-wrap
msgid "B<dup3>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:199
+#: build/C/man2/syscalls.2:204
#, no-wrap
msgid "B<epoll_create>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:200
+#: build/C/man2/syscalls.2:205
#, no-wrap
msgid "B<epoll_create1>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:201
+#: build/C/man2/syscalls.2:206
#, no-wrap
msgid "B<epoll_ctl>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:202
+#: build/C/man2/syscalls.2:207
#, no-wrap
msgid "B<epoll_pwait>(2)\t2.6.19\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:203
+#: build/C/man2/syscalls.2:208
#, no-wrap
msgid "B<epoll_wait>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:204
+#: build/C/man2/syscalls.2:209
#, no-wrap
msgid "B<eventfd>(2)\t2.6.22\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:205
+#: build/C/man2/syscalls.2:210
#, no-wrap
msgid "B<eventfd2>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:206
+#: build/C/man2/syscalls.2:211
#, no-wrap
msgid "B<execve>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:207
+#: build/C/man2/syscalls.2:212
+#, no-wrap
+msgid "B<execveat>(2)\t3.19\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:213
#, no-wrap
msgid "B<exit>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:208
+#: build/C/man2/syscalls.2:214
#, no-wrap
msgid "B<exit_group>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:209
+#: build/C/man2/syscalls.2:215
#, no-wrap
msgid "B<faccessat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:210
+#: build/C/man2/syscalls.2:216
#, no-wrap
msgid "B<fadvise64>(2)\t2.6\n"
msgstr ""
#. Implements \fBposix_fadvise\fP(2)
#. type: tbl table
-#: build/C/man2/syscalls.2:212
+#: build/C/man2/syscalls.2:218
#, no-wrap
msgid "B<fadvise64_64>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:213
+#: build/C/man2/syscalls.2:219
#, no-wrap
msgid "B<fallocate>(2)\t2.6.23\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:214
+#: build/C/man2/syscalls.2:220
#, no-wrap
msgid "B<fanotify_init>(2)\t2.6.37\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:215
+#: build/C/man2/syscalls.2:221
#, no-wrap
msgid "B<fanotify_mark>(2)\t2.6.37\n"
msgstr ""
#. The fanotify calls were added in Linux 2.6.36,
#. but disabled while the API was finalized.
#. type: tbl table
-#: build/C/man2/syscalls.2:218
+#: build/C/man2/syscalls.2:224
#, no-wrap
msgid "B<fchdir>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:219
+#: build/C/man2/syscalls.2:225
#, no-wrap
msgid "B<fchmod>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:220
+#: build/C/man2/syscalls.2:226
#, no-wrap
msgid "B<fchmodat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:221
+#: build/C/man2/syscalls.2:227
#, no-wrap
msgid "B<fchown>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:222
+#: build/C/man2/syscalls.2:228
#, no-wrap
msgid "B<fchown32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:223
+#: build/C/man2/syscalls.2:229
#, no-wrap
msgid "B<fchownat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:224
+#: build/C/man2/syscalls.2:230
#, no-wrap
msgid "B<fcntl>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:225
+#: build/C/man2/syscalls.2:231
#, no-wrap
msgid "B<fcntl64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:226
+#: build/C/man2/syscalls.2:232
#, no-wrap
msgid "B<fdatasync>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:227
+#: build/C/man2/syscalls.2:233
#, no-wrap
msgid "B<fgetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:228
+#: build/C/man2/syscalls.2:234
#, no-wrap
msgid "B<finit_module>(2)\t3.8\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:229
+#: build/C/man2/syscalls.2:235
#, no-wrap
msgid "B<flistxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:230
+#: build/C/man2/syscalls.2:236
#, no-wrap
msgid "B<flock>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:231
+#: build/C/man2/syscalls.2:237
#, no-wrap
msgid "B<fork>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:232
+#: build/C/man2/syscalls.2:238
#, no-wrap
msgid "B<free_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:233
+#: build/C/man2/syscalls.2:239
#, no-wrap
msgid "B<fremovexattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:234
+#: build/C/man2/syscalls.2:240
#, no-wrap
msgid "B<fsetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:235
+#: build/C/man2/syscalls.2:241
#, no-wrap
msgid "B<fstat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:236
+#: build/C/man2/syscalls.2:242
#, no-wrap
msgid "B<fstat64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:237
+#: build/C/man2/syscalls.2:243
#, no-wrap
msgid "B<fstatat64>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:238
+#: build/C/man2/syscalls.2:244
#, no-wrap
msgid "B<fstatfs>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:239
+#: build/C/man2/syscalls.2:245
#, no-wrap
msgid "B<fstatfs64>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:240
+#: build/C/man2/syscalls.2:246
#, no-wrap
-msgid "B<fsync>(2)\t1.0\t1.0\n"
+msgid "B<fsync>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:241
+#: build/C/man2/syscalls.2:247
#, no-wrap
msgid "B<ftruncate>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:242
+#: build/C/man2/syscalls.2:248
#, no-wrap
msgid "B<ftruncate64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:243
+#: build/C/man2/syscalls.2:249
#, no-wrap
msgid "B<futex>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:244
+#: build/C/man2/syscalls.2:250
#, no-wrap
msgid "B<futimesat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:245
+#: build/C/man2/syscalls.2:251
#, no-wrap
-msgid "B<get_kernel_syms>(2)\t\tRemoved in 2.6\n"
+msgid "B<get_kernel_syms>(2)\t1.0\tRemoved in 2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:246
+#: build/C/man2/syscalls.2:252
#, no-wrap
msgid "B<get_mempolicy>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:247
+#: build/C/man2/syscalls.2:253
#, no-wrap
msgid "B<get_robust_list>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:248
+#: build/C/man2/syscalls.2:254
#, no-wrap
msgid "B<get_thread_area>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:249
+#: build/C/man2/syscalls.2:255
#, no-wrap
msgid "B<getcpu>(2)\t2.6.19\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:250
+#: build/C/man2/syscalls.2:256
#, no-wrap
msgid "B<getcwd>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:251
+#: build/C/man2/syscalls.2:257
#, no-wrap
msgid "B<getdents>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:252
+#: build/C/man2/syscalls.2:258
#, no-wrap
msgid "B<getdents64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:253
+#: build/C/man2/syscalls.2:259
#, no-wrap
msgid "B<getegid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:254
+#: build/C/man2/syscalls.2:260
#, no-wrap
msgid "B<getegid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:255
+#: build/C/man2/syscalls.2:261
#, no-wrap
msgid "B<geteuid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:256
+#: build/C/man2/syscalls.2:262
#, no-wrap
msgid "B<geteuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:257
+#: build/C/man2/syscalls.2:263
#, no-wrap
msgid "B<getgid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:258
+#: build/C/man2/syscalls.2:264
#, no-wrap
msgid "B<getgid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:259
+#: build/C/man2/syscalls.2:265
#, no-wrap
msgid "B<getgroups>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:260
+#: build/C/man2/syscalls.2:266
#, no-wrap
msgid "B<getgroups32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:261
+#: build/C/man2/syscalls.2:267
#, no-wrap
msgid "B<getitimer>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:262
+#: build/C/man2/syscalls.2:268
#, no-wrap
msgid "B<getpeername>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:263
+#: build/C/man2/syscalls.2:269
#, no-wrap
msgid "B<getpagesize>(2)\t2.0\tNot on x86\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:264
+#: build/C/man2/syscalls.2:270
#, no-wrap
msgid "B<getpgid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:265
+#: build/C/man2/syscalls.2:271
#, no-wrap
msgid "B<getpgrp>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:266
+#: build/C/man2/syscalls.2:272
#, no-wrap
msgid "B<getpid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:267
+#: build/C/man2/syscalls.2:273
#, no-wrap
msgid "B<getppid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:268
+#: build/C/man2/syscalls.2:274
#, no-wrap
msgid "B<getpriority>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:269
+#: build/C/man2/syscalls.2:275
+#, no-wrap
+msgid "B<getrandom>(2)\t3.17\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:276
#, no-wrap
msgid "B<getresgid>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:270
+#: build/C/man2/syscalls.2:277
#, no-wrap
msgid "B<getresgid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:271
+#: build/C/man2/syscalls.2:278
#, no-wrap
msgid "B<getresuid>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:272
+#: build/C/man2/syscalls.2:279
#, no-wrap
msgid "B<getresuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:273
+#: build/C/man2/syscalls.2:280
#, no-wrap
msgid "B<getrlimit>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:274
+#: build/C/man2/syscalls.2:281
#, no-wrap
msgid "B<getrusage>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:275
+#: build/C/man2/syscalls.2:282
#, no-wrap
msgid "B<getsid>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:276
+#: build/C/man2/syscalls.2:283
#, no-wrap
msgid "B<getsockname>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:277
+#: build/C/man2/syscalls.2:284
#, no-wrap
msgid "B<getsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:278
+#: build/C/man2/syscalls.2:285
#, no-wrap
msgid "B<gettid>(2)\t2.4.11\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:279
+#: build/C/man2/syscalls.2:286
#, no-wrap
msgid "B<gettimeofday>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:280
+#: build/C/man2/syscalls.2:287
#, no-wrap
msgid "B<getuid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:281
+#: build/C/man2/syscalls.2:288
#, no-wrap
msgid "B<getuid32>(2)\t2.4\n"
msgstr ""
#. \fBgetunwind\fP(2) 2.4.8 ia64; DEPRECATED
#. type: tbl table
-#: build/C/man2/syscalls.2:283
+#: build/C/man2/syscalls.2:290
#, no-wrap
msgid "B<getxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:284
+#: build/C/man2/syscalls.2:291
#, no-wrap
msgid "B<init_module>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:285
+#: build/C/man2/syscalls.2:292
#, no-wrap
msgid "B<inotify_add_watch>(2)\t2.6.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:286
+#: build/C/man2/syscalls.2:293
#, no-wrap
msgid "B<inotify_init>(2)\t2.6.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:287
+#: build/C/man2/syscalls.2:294
#, no-wrap
msgid "B<inotify_init1>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:288
+#: build/C/man2/syscalls.2:295
#, no-wrap
msgid "B<inotify_rm_watch>(2)\t2.6.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:289
+#: build/C/man2/syscalls.2:296
#, no-wrap
msgid "B<io_cancel>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:290
+#: build/C/man2/syscalls.2:297
#, no-wrap
msgid "B<io_destroy>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:291
+#: build/C/man2/syscalls.2:298
#, no-wrap
msgid "B<io_getevents>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:292
+#: build/C/man2/syscalls.2:299
#, no-wrap
msgid "B<io_setup>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:293
+#: build/C/man2/syscalls.2:300
#, no-wrap
msgid "B<io_submit>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:294
+#: build/C/man2/syscalls.2:301
#, no-wrap
msgid "B<ioctl>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:295
+#: build/C/man2/syscalls.2:302
#, no-wrap
msgid "B<ioperm>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:296
+#: build/C/man2/syscalls.2:303
#, no-wrap
msgid "B<iopl>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:297
+#: build/C/man2/syscalls.2:304
#, no-wrap
msgid "B<ioprio_get>(2)\t2.6.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:298
+#: build/C/man2/syscalls.2:305
#, no-wrap
msgid "B<ioprio_set>(2)\t2.6.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:299
+#: build/C/man2/syscalls.2:306
#, no-wrap
msgid "B<ipc>(2)\t1.0\n"
msgstr ""
#. Implements System V IPC calls
#. type: tbl table
-#: build/C/man2/syscalls.2:301
+#: build/C/man2/syscalls.2:308
#, no-wrap
msgid "B<kcmp>(2)\t3.5\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:302
+#: build/C/man2/syscalls.2:309
#, no-wrap
msgid "B<kern_features>(2)\t3.7\tSparc64\n"
msgstr ""
+#. FIXME . document kern_features():
+#. commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb
#. type: tbl table
-#: build/C/man2/syscalls.2:303
+#: build/C/man2/syscalls.2:312
+#, no-wrap
+msgid "B<kexec_file_load>(2)\t3.17\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:313
#, no-wrap
msgid "B<kexec_load>(2)\t2.6.13\n"
msgstr ""
#. The entry in the syscall table was reserved starting in 2.6.7
#. Was named sys_kexec_load() from 2.6.7 to 2.6.16
#. type: tbl table
-#: build/C/man2/syscalls.2:306
+#: build/C/man2/syscalls.2:316
#, no-wrap
msgid "B<keyctl>(2)\t2.6.11\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:307
+#: build/C/man2/syscalls.2:317
#, no-wrap
msgid "B<kill>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:308
+#: build/C/man2/syscalls.2:318
#, no-wrap
msgid "B<lchown>(2)\t1.0\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:311
+#: build/C/man2/syscalls.2:323
#, no-wrap
msgid "B<lchown32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:312
+#: build/C/man2/syscalls.2:324
#, no-wrap
msgid "B<lgetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:313
+#: build/C/man2/syscalls.2:325
#, no-wrap
msgid "B<link>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:314
+#: build/C/man2/syscalls.2:326
#, no-wrap
msgid "B<linkat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:315
+#: build/C/man2/syscalls.2:327
#, no-wrap
msgid "B<listen>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:316
+#: build/C/man2/syscalls.2:328
#, no-wrap
msgid "B<listxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:317
+#: build/C/man2/syscalls.2:329
#, no-wrap
msgid "B<llistxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:318
+#: build/C/man2/syscalls.2:330
#, no-wrap
msgid "B<lookup_dcookie>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:319
+#: build/C/man2/syscalls.2:331
#, no-wrap
msgid "B<lremovexattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:320
+#: build/C/man2/syscalls.2:332
#, no-wrap
msgid "B<lseek>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:321
+#: build/C/man2/syscalls.2:333
#, no-wrap
msgid "B<lsetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:322
+#: build/C/man2/syscalls.2:334
#, no-wrap
msgid "B<lstat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:323
+#: build/C/man2/syscalls.2:335
#, no-wrap
msgid "B<lstat64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:324
+#: build/C/man2/syscalls.2:336
#, no-wrap
msgid "B<madvise>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:325
+#: build/C/man2/syscalls.2:337
#, no-wrap
-msgid "B<madvise1>(2)\t2.4\n"
+msgid "B<mbind>(2)\t2.6.6\n"
msgstr ""
+#. \fBmemory_ordering\fP(2) ??? Sparc64
#. type: tbl table
-#: build/C/man2/syscalls.2:326
+#: build/C/man2/syscalls.2:339
#, no-wrap
-msgid "B<mbind>(2)\t2.6.6\n"
+msgid "B<memfd_create>(2)\t3.17\n"
msgstr ""
-#. \fBmemory_ordering\fP(2) ??? Sparc64
#. type: tbl table
-#: build/C/man2/syscalls.2:328
+#: build/C/man2/syscalls.2:340
#, no-wrap
msgid "B<migrate_pages>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:329
+#: build/C/man2/syscalls.2:341
#, no-wrap
msgid "B<mincore>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:330
+#: build/C/man2/syscalls.2:342
#, no-wrap
msgid "B<mkdir>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:331
+#: build/C/man2/syscalls.2:343
#, no-wrap
msgid "B<mkdirat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:332
+#: build/C/man2/syscalls.2:344
#, no-wrap
msgid "B<mknod>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:333
+#: build/C/man2/syscalls.2:345
#, no-wrap
msgid "B<mknodat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:334
+#: build/C/man2/syscalls.2:346
#, no-wrap
msgid "B<mlock>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:335
+#: build/C/man2/syscalls.2:347
#, no-wrap
msgid "B<mlockall>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:336
+#: build/C/man2/syscalls.2:348
#, no-wrap
msgid "B<mmap>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:337
+#: build/C/man2/syscalls.2:349
#, no-wrap
msgid "B<mmap2>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:338
+#: build/C/man2/syscalls.2:350
#, no-wrap
msgid "B<modify_ldt>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:339
+#: build/C/man2/syscalls.2:351
#, no-wrap
msgid "B<mount>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:340
+#: build/C/man2/syscalls.2:352
#, no-wrap
msgid "B<move_pages>(2)\t2.6.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:341
+#: build/C/man2/syscalls.2:353
#, no-wrap
msgid "B<mprotect>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:342
+#: build/C/man2/syscalls.2:354
#, no-wrap
msgid "B<mq_getsetattr>(2)\t2.6.6\n"
msgstr ""
#. Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
#. type: tbl table
-#: build/C/man2/syscalls.2:344
+#: build/C/man2/syscalls.2:356
#, no-wrap
msgid "B<mq_notify>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:345
+#: build/C/man2/syscalls.2:357
#, no-wrap
msgid "B<mq_open>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:346
+#: build/C/man2/syscalls.2:358
#, no-wrap
msgid "B<mq_timedreceive>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:347
+#: build/C/man2/syscalls.2:359
#, no-wrap
msgid "B<mq_timedsend>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:348
+#: build/C/man2/syscalls.2:360
#, no-wrap
msgid "B<mq_unlink>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:349
+#: build/C/man2/syscalls.2:361
#, no-wrap
msgid "B<mremap>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:350
+#: build/C/man2/syscalls.2:362
#, no-wrap
msgid "B<msgctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:351
+#: build/C/man2/syscalls.2:363
#, no-wrap
msgid "B<msgget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:352
+#: build/C/man2/syscalls.2:364
#, no-wrap
msgid "B<msgrcv>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:353
+#: build/C/man2/syscalls.2:365
#, no-wrap
msgid "B<msgsnd>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:354
+#: build/C/man2/syscalls.2:366
#, no-wrap
msgid "B<msync>(2)\t2.0\n"
msgstr ""
#. \fBmultiplexer\fP(2) ?? __NR_multiplexer reserved on
#. PowerPC, but unimplemented?
#. type: tbl table
-#: build/C/man2/syscalls.2:357
+#: build/C/man2/syscalls.2:369
#, no-wrap
msgid "B<munlock>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:358
+#: build/C/man2/syscalls.2:370
#, no-wrap
msgid "B<munlockall>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:359
+#: build/C/man2/syscalls.2:371
#, no-wrap
msgid "B<munmap>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:360
+#: build/C/man2/syscalls.2:372
#, no-wrap
msgid "B<name_to_handle_at>(2)\t2.6.39\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:361
+#: build/C/man2/syscalls.2:373
#, no-wrap
msgid "B<nanosleep>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:362
+#: build/C/man2/syscalls.2:374
#, no-wrap
msgid "B<nfsservctl>(2)\t2.2\tRemoved in 3.1\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:363
+#: build/C/man2/syscalls.2:375
#, no-wrap
msgid "B<nice>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:364
+#: build/C/man2/syscalls.2:376
#, no-wrap
msgid "B<oldfstat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:365
+#: build/C/man2/syscalls.2:377
#, no-wrap
msgid "B<oldlstat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:366
+#: build/C/man2/syscalls.2:378
#, no-wrap
msgid "B<oldolduname>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:367
+#: build/C/man2/syscalls.2:379
#, no-wrap
msgid "B<oldstat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:368
+#: build/C/man2/syscalls.2:380
#, no-wrap
msgid "B<olduname>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:369
+#: build/C/man2/syscalls.2:381
#, no-wrap
msgid "B<open>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:370
+#: build/C/man2/syscalls.2:382
#, no-wrap
msgid "B<open_by_handle_at>(2)\t2.6.39\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:371
+#: build/C/man2/syscalls.2:383
#, no-wrap
msgid "B<openat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:372
+#: build/C/man2/syscalls.2:384
#, no-wrap
msgid "B<pause>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:373
+#: build/C/man2/syscalls.2:385
#, no-wrap
msgid "B<pciconfig_iobase>(2)\t2.2.15; 2.4\tNot on x86\n"
msgstr ""
#. Alpha, PowerPC, ARM; not x86
#. type: tbl table
-#: build/C/man2/syscalls.2:375
+#: build/C/man2/syscalls.2:387
#, no-wrap
msgid "B<pciconfig_read>(2)\t2.0.26; 2.2\tNot on x86\n"
msgstr ""
#. , PowerPC, ARM; not x86
#. type: tbl table
-#: build/C/man2/syscalls.2:377
+#: build/C/man2/syscalls.2:389
#, no-wrap
msgid "B<pciconfig_write>(2)\t2.0.26; 2.2\tNot on x86\n"
msgstr ""
#. , PowerPC, ARM; not x86
#. type: tbl table
-#: build/C/man2/syscalls.2:379
+#: build/C/man2/syscalls.2:391
#, no-wrap
msgid "B<perf_event_open>(2)\t2.6.31\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:380
+#: build/C/man2/syscalls.2:392
#, no-wrap
-msgid "Was called perf_counter_open() in 2.6.31; renamed in 2.6.32\n"
+msgid "Was perf_counter_open() in\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:382
+#: build/C/man2/syscalls.2:394
+#, no-wrap
+msgid "2.6.31; renamed in 2.6.32\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:396
#, no-wrap
msgid "B<personality>(2)\t1.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:383
+#: build/C/man2/syscalls.2:397
#, no-wrap
msgid "B<perfctr>(2)\t2.2\tSparc; removed in 2.6.34\n"
msgstr ""
#. commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr()
#. type: tbl table
-#: build/C/man2/syscalls.2:385
+#: build/C/man2/syscalls.2:399
#, no-wrap
msgid "B<perfmonctl>(2)\t2.4\tia64\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:386
+#: build/C/man2/syscalls.2:400
#, no-wrap
msgid "B<pipe>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:387
+#: build/C/man2/syscalls.2:401
#, no-wrap
msgid "B<pipe2>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:388
+#: build/C/man2/syscalls.2:402
#, no-wrap
msgid "B<pivot_root>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:389
+#: build/C/man2/syscalls.2:403
#, no-wrap
msgid "B<poll>(2)\t2.0.36; 2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:390
+#: build/C/man2/syscalls.2:404
#, no-wrap
-msgid "B<ppc_rtas>(2)\t\tPowerPC only\n"
+msgid "B<ppc_rtas>(2)\t2.6.2\tPowerPC only\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:391
+#: build/C/man2/syscalls.2:405
#, no-wrap
msgid "B<ppoll>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:392
+#: build/C/man2/syscalls.2:406
#, no-wrap
msgid "B<prctl>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:393
+#: build/C/man2/syscalls.2:407
#, no-wrap
msgid "B<pread64>(2)\t\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:394
+#: build/C/man2/syscalls.2:408
#, no-wrap
-msgid "Added as \"pread\" in 2.2; renamed \"pread64\" in 2.6\n"
+msgid "Added as \"pread\" in 2.2;\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:396
+#: build/C/man2/syscalls.2:410
+#, no-wrap
+msgid "renamed \"pread64\" in 2.6\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:412
#, no-wrap
msgid "B<preadv>(2)\t2.6.30\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:397
+#: build/C/man2/syscalls.2:413
#, no-wrap
msgid "B<prlimit>(2)\t2.6.36\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:398
+#: build/C/man2/syscalls.2:414
+#, no-wrap
+msgid "B<prlimit64>(2)\t2.6.36\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:415
#, no-wrap
msgid "B<process_vm_readv>(2)\t3.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:399
+#: build/C/man2/syscalls.2:416
#, no-wrap
msgid "B<process_vm_writev>(2)\t3.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:400
+#: build/C/man2/syscalls.2:417
#, no-wrap
msgid "B<pselect6>(2)\t2.6.16\n"
msgstr ""
#. Implements \fBpselect\fP(2)
#. type: tbl table
-#: build/C/man2/syscalls.2:402
+#: build/C/man2/syscalls.2:419
#, no-wrap
msgid "B<ptrace>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:403
+#: build/C/man2/syscalls.2:420
#, no-wrap
msgid "B<pwrite64>(2)\t\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:404
+#: build/C/man2/syscalls.2:421
#, no-wrap
-msgid "Added as \"pwrite\" in 2.2; renamed \"pwrite64\" in 2.6\n"
+msgid "Added as \"pwrite\" in 2.2;\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:406
+#: build/C/man2/syscalls.2:423
+#, no-wrap
+msgid "renamed \"pwrite64\" in 2.6\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:425
#, no-wrap
msgid "B<pwritev>(2)\t2.6.30\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:407
+#: build/C/man2/syscalls.2:426
#, no-wrap
msgid "B<query_module>(2)\t2.2\tRemoved in 2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:408
+#: build/C/man2/syscalls.2:427
#, no-wrap
msgid "B<quotactl>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:409
+#: build/C/man2/syscalls.2:428
#, no-wrap
msgid "B<read>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:410
+#: build/C/man2/syscalls.2:429
#, no-wrap
msgid "B<readahead>(2)\t2.4.13\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:411
+#: build/C/man2/syscalls.2:430
#, no-wrap
msgid "B<readdir>(2)\t1.0\n"
msgstr ""
#. Supersedes \fBgetdents\fP(2)
#. type: tbl table
-#: build/C/man2/syscalls.2:413
+#: build/C/man2/syscalls.2:432
#, no-wrap
msgid "B<readlink>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:414
+#: build/C/man2/syscalls.2:433
#, no-wrap
msgid "B<readlinkat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:415
+#: build/C/man2/syscalls.2:434
#, no-wrap
msgid "B<readv>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:416
+#: build/C/man2/syscalls.2:435
#, no-wrap
msgid "B<reboot>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:417
+#: build/C/man2/syscalls.2:436
#, no-wrap
msgid "B<recv>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:418
+#: build/C/man2/syscalls.2:437
#, no-wrap
msgid "B<recvfrom>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:419
+#: build/C/man2/syscalls.2:438
#, no-wrap
msgid "B<recvmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:420
+#: build/C/man2/syscalls.2:439
#, no-wrap
msgid "B<recvmmsg>(2)\t2.6.33\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:421
+#: build/C/man2/syscalls.2:440
#, no-wrap
-msgid "B<remap_file_pages>(2)\t2.6\n"
+msgid "B<remap_file_pages>(2)\t2.6\tDeprecated since 3.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:422
+#: build/C/man2/syscalls.2:441
#, no-wrap
msgid "B<removexattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:423
+#: build/C/man2/syscalls.2:442
#, no-wrap
msgid "B<rename>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:424
+#: build/C/man2/syscalls.2:443
#, no-wrap
msgid "B<renameat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:425
+#: build/C/man2/syscalls.2:444
+#, no-wrap
+msgid "B<renameat2>(2)\t3.15\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:445
#, no-wrap
msgid "B<request_key>(2)\t2.6.11\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:426
+#: build/C/man2/syscalls.2:446
#, no-wrap
msgid "B<restart_syscall>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:427
+#: build/C/man2/syscalls.2:447
#, no-wrap
msgid "B<rmdir>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:428
+#: build/C/man2/syscalls.2:448
#, no-wrap
msgid "B<rt_sigaction>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:429
+#: build/C/man2/syscalls.2:449
#, no-wrap
msgid "B<rt_sigpending>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:430
+#: build/C/man2/syscalls.2:450
#, no-wrap
msgid "B<rt_sigprocmask>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:431
+#: build/C/man2/syscalls.2:451
#, no-wrap
msgid "B<rt_sigqueueinfo>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:432
+#: build/C/man2/syscalls.2:452
#, no-wrap
msgid "B<rt_sigreturn>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:433
+#: build/C/man2/syscalls.2:453
#, no-wrap
msgid "B<rt_sigsuspend>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:434
+#: build/C/man2/syscalls.2:454
#, no-wrap
msgid "B<rt_sigtimedwait>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:435
+#: build/C/man2/syscalls.2:455
#, no-wrap
msgid "B<rt_tgsigqueueinfo>(2)\t2.6.31\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:436
+#: build/C/man2/syscalls.2:456
#, no-wrap
msgid "B<s390_runtime_instr>(2)\t3.7\ts390 only\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:437
+#: build/C/man2/syscalls.2:457
+#, no-wrap
+msgid "B<s390_pci_mmio_read>(2)\t3.19\ts390 only\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:458
+#, no-wrap
+msgid "B<s390_pci_mmio_write>(2)\t3.19\ts390 only\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:459
#, no-wrap
msgid "B<sched_get_priority_max>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:438
+#: build/C/man2/syscalls.2:460
#, no-wrap
msgid "B<sched_get_priority_min>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:439
+#: build/C/man2/syscalls.2:461
#, no-wrap
msgid "B<sched_getaffinity>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:440
+#: build/C/man2/syscalls.2:462
+#, no-wrap
+msgid "B<sched_getattr>(2)\t3.14\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:463
#, no-wrap
msgid "B<sched_getparam>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:441
+#: build/C/man2/syscalls.2:464
#, no-wrap
msgid "B<sched_getscheduler>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:442
+#: build/C/man2/syscalls.2:465
#, no-wrap
msgid "B<sched_rr_get_interval>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:443
+#: build/C/man2/syscalls.2:466
#, no-wrap
msgid "B<sched_setaffinity>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:444
+#: build/C/man2/syscalls.2:467
+#, no-wrap
+msgid "B<sched_setattr>(2)\t3.14\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:468
#, no-wrap
msgid "B<sched_setparam>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:445
+#: build/C/man2/syscalls.2:469
#, no-wrap
msgid "B<sched_setscheduler>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:446
+#: build/C/man2/syscalls.2:470
#, no-wrap
msgid "B<sched_yield>(2)\t2.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:447
+#: build/C/man2/syscalls.2:471
+#, no-wrap
+msgid "B<seccomp>(2)\t3.17\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:472
#, no-wrap
msgid "B<select>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:448
+#: build/C/man2/syscalls.2:473
#, no-wrap
msgid "B<semctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:449
+#: build/C/man2/syscalls.2:474
#, no-wrap
msgid "B<semget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:450
+#: build/C/man2/syscalls.2:475
#, no-wrap
msgid "B<semop>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:451
+#: build/C/man2/syscalls.2:476
#, no-wrap
msgid "B<semtimedop>(2)\t2.6; 2.4.22\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:452
+#: build/C/man2/syscalls.2:477
#, no-wrap
msgid "B<send>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:453
+#: build/C/man2/syscalls.2:478
#, no-wrap
msgid "B<sendfile>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:454
+#: build/C/man2/syscalls.2:479
#, no-wrap
msgid "B<sendfile64>(2)\t2.6; 2.4.19\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:455
+#: build/C/man2/syscalls.2:480
#, no-wrap
msgid "B<sendmmsg>(2)\t3.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:456
+#: build/C/man2/syscalls.2:481
#, no-wrap
msgid "B<sendmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:457
+#: build/C/man2/syscalls.2:482
#, no-wrap
msgid "B<sendto>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:458
+#: build/C/man2/syscalls.2:483
#, no-wrap
msgid "B<set_mempolicy>(2)\t2.6.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:459
+#: build/C/man2/syscalls.2:484
#, no-wrap
msgid "B<set_robust_list>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:460
+#: build/C/man2/syscalls.2:485
#, no-wrap
msgid "B<set_thread_area>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:461
+#: build/C/man2/syscalls.2:486
#, no-wrap
msgid "B<set_tid_address>(2)\t2.6\n"
msgstr ""
#. See http://lkml.org/lkml/2005/8/1/83
#. "[PATCH] remove sys_set_zone_reclaim()"
#. type: tbl table
-#: build/C/man2/syscalls.2:464
+#: build/C/man2/syscalls.2:489
#, no-wrap
msgid "B<setdomainname>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:465
+#: build/C/man2/syscalls.2:490
#, no-wrap
msgid "B<setfsgid>(2)\t1.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:466
+#: build/C/man2/syscalls.2:491
#, no-wrap
msgid "B<setfsgid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:467
+#: build/C/man2/syscalls.2:492
#, no-wrap
msgid "B<setfsuid>(2)\t1.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:468
+#: build/C/man2/syscalls.2:493
#, no-wrap
msgid "B<setfsuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:469
+#: build/C/man2/syscalls.2:494
#, no-wrap
msgid "B<setgid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:470
+#: build/C/man2/syscalls.2:495
#, no-wrap
msgid "B<setgid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:471
+#: build/C/man2/syscalls.2:496
#, no-wrap
msgid "B<setgroups>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:472
+#: build/C/man2/syscalls.2:497
#, no-wrap
msgid "B<setgroups32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:473
+#: build/C/man2/syscalls.2:498
#, no-wrap
msgid "B<sethostname>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:474
+#: build/C/man2/syscalls.2:499
#, no-wrap
msgid "B<setitimer>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:475
+#: build/C/man2/syscalls.2:500
#, no-wrap
msgid "B<setns>(2)\t3.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:476
+#: build/C/man2/syscalls.2:501
#, no-wrap
msgid "B<setpgid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:477
+#: build/C/man2/syscalls.2:502
#, no-wrap
msgid "B<setpriority>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:478
+#: build/C/man2/syscalls.2:503
#, no-wrap
msgid "B<setregid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:479
+#: build/C/man2/syscalls.2:504
#, no-wrap
msgid "B<setregid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:480
+#: build/C/man2/syscalls.2:505
#, no-wrap
msgid "B<setresgid>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:481
+#: build/C/man2/syscalls.2:506
#, no-wrap
msgid "B<setresgid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:482
+#: build/C/man2/syscalls.2:507
#, no-wrap
msgid "B<setresuid>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:483
+#: build/C/man2/syscalls.2:508
#, no-wrap
msgid "B<setresuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:484
+#: build/C/man2/syscalls.2:509
#, no-wrap
msgid "B<setreuid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:485
+#: build/C/man2/syscalls.2:510
#, no-wrap
msgid "B<setreuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:486
+#: build/C/man2/syscalls.2:511
#, no-wrap
msgid "B<setrlimit>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:487
+#: build/C/man2/syscalls.2:512
#, no-wrap
msgid "B<setsid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:488
+#: build/C/man2/syscalls.2:513
#, no-wrap
msgid "B<setsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:489
+#: build/C/man2/syscalls.2:514
#, no-wrap
msgid "B<settimeofday>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:490
+#: build/C/man2/syscalls.2:515
#, no-wrap
msgid "B<setuid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:491
+#: build/C/man2/syscalls.2:516
#, no-wrap
msgid "B<setuid32>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:492
+#: build/C/man2/syscalls.2:517
#, no-wrap
-msgid "B<setup>(2)\t\tRemoved in 2.2\n"
+msgid "B<setup>(2)\t1.0\tRemoved in 2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:493
+#: build/C/man2/syscalls.2:518
#, no-wrap
msgid "B<setxattr>(2)\t2.6; 2.4.18\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:494
+#: build/C/man2/syscalls.2:519
#, no-wrap
msgid "B<sgetmask>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:495
+#: build/C/man2/syscalls.2:520
#, no-wrap
msgid "B<shmat>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:496
+#: build/C/man2/syscalls.2:521
#, no-wrap
msgid "B<shmctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:497
+#: build/C/man2/syscalls.2:522
#, no-wrap
msgid "B<shmdt>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:498
+#: build/C/man2/syscalls.2:523
#, no-wrap
msgid "B<shmget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:499
+#: build/C/man2/syscalls.2:524
#, no-wrap
msgid "B<shutdown>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:500
+#: build/C/man2/syscalls.2:525
#, no-wrap
msgid "B<sigaction>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:501
+#: build/C/man2/syscalls.2:526
#, no-wrap
msgid "B<sigaltstack>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:502
+#: build/C/man2/syscalls.2:527
#, no-wrap
msgid "B<signal>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:503
+#: build/C/man2/syscalls.2:528
#, no-wrap
msgid "B<signalfd>(2)\t2.6.22\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:504
+#: build/C/man2/syscalls.2:529
#, no-wrap
msgid "B<signalfd4>(2)\t2.6.27\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:505
+#: build/C/man2/syscalls.2:530
#, no-wrap
msgid "B<sigpending>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:506
+#: build/C/man2/syscalls.2:531
#, no-wrap
msgid "B<sigprocmask>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:507
+#: build/C/man2/syscalls.2:532
#, no-wrap
msgid "B<sigreturn>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:508
+#: build/C/man2/syscalls.2:533
#, no-wrap
msgid "B<sigsuspend>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:509
+#: build/C/man2/syscalls.2:534
#, no-wrap
msgid "B<socket>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:510
+#: build/C/man2/syscalls.2:535
#, no-wrap
msgid "B<socketcall>(2)\t1.0\n"
msgstr ""
#. Implements BSD socket calls
#. type: tbl table
-#: build/C/man2/syscalls.2:512
+#: build/C/man2/syscalls.2:537
#, no-wrap
msgid "B<socketpair>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:513
+#: build/C/man2/syscalls.2:538
#, no-wrap
msgid "B<splice>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:514
+#: build/C/man2/syscalls.2:539
#, no-wrap
msgid "B<spu_create>(2)\t2.6.16\tPowerPC only\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:515
+#: build/C/man2/syscalls.2:540
#, no-wrap
msgid "B<spu_run>(2)\t2.6.16\tPowerPC only\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:516
+#: build/C/man2/syscalls.2:541
#, no-wrap
msgid "B<ssetmask>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:517
+#: build/C/man2/syscalls.2:542
#, no-wrap
msgid "B<stat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:518
+#: build/C/man2/syscalls.2:543
#, no-wrap
msgid "B<stat64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:519
+#: build/C/man2/syscalls.2:544
#, no-wrap
msgid "B<statfs>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:520
+#: build/C/man2/syscalls.2:545
#, no-wrap
msgid "B<statfs64>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:521
+#: build/C/man2/syscalls.2:546
#, no-wrap
msgid "B<stime>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:522
-#, no-wrap
-msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC if\n"
-msgstr ""
-
-#. type: tbl table
-#: build/C/man2/syscalls.2:523
+#: build/C/man2/syscalls.2:547
#, no-wrap
-msgid "\t\tCONFIG_PPC_64K_PAGES\n"
+msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC only\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:524
+#: build/C/man2/syscalls.2:548
#, no-wrap
msgid "B<swapoff>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:525
+#: build/C/man2/syscalls.2:549
#, no-wrap
msgid "B<swapon>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:526
+#: build/C/man2/syscalls.2:550
#, no-wrap
msgid "B<symlink>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:527
+#: build/C/man2/syscalls.2:551
#, no-wrap
msgid "B<symlinkat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:528
-#, no-wrap
-msgid "B<sync>(2)\t1.0\n"
-msgstr ""
-
-#. type: tbl table
-#: build/C/man2/syscalls.2:529
+#: build/C/man2/syscalls.2:552
#, no-wrap
-msgid "B<sync_file_range>(2)\t2.6.17\n"
+msgid "B<sync>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:530
+#: build/C/man2/syscalls.2:553
#, no-wrap
-msgid "B<sync_file_range2>(2)\t2.6.22\tT{\n"
+msgid "B<sync_file_range>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:531
+#: build/C/man2/syscalls.2:554
#, no-wrap
-msgid "Architecture-specific variant of B<sync_file_range>(2)\n"
+msgid "B<sync_file_range2>(2)\t2.6.22\n"
msgstr ""
#. PowerPC, ARM, tile
#. First appeared on ARM, as arm_sync_file_range(), but later renamed
#. \fBsys_debug_setcontext\fP(2) ??? PowerPC if CONFIG_PPC32
#. type: tbl table
-#: build/C/man2/syscalls.2:536
+#: build/C/man2/syscalls.2:558
#, no-wrap
msgid "B<syncfs>(2)\t2.6.39\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:537
+#: build/C/man2/syscalls.2:559
#, no-wrap
msgid "B<sysfs>(2)\t1.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:538
+#: build/C/man2/syscalls.2:560
#, no-wrap
msgid "B<sysinfo>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:539
+#: build/C/man2/syscalls.2:561
#, no-wrap
msgid "B<syslog>(2)\t1.0\n"
msgstr ""
#. glibc interface is \fBklogctl\fP(3)
#. type: tbl table
-#: build/C/man2/syscalls.2:541
+#: build/C/man2/syscalls.2:563
#, no-wrap
msgid "B<tee>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:542
+#: build/C/man2/syscalls.2:564
#, no-wrap
msgid "B<tgkill>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:543
+#: build/C/man2/syscalls.2:565
#, no-wrap
msgid "B<time>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:544
+#: build/C/man2/syscalls.2:566
#, no-wrap
msgid "B<timer_create>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:545
+#: build/C/man2/syscalls.2:567
#, no-wrap
msgid "B<timer_delete>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:546
+#: build/C/man2/syscalls.2:568
#, no-wrap
msgid "B<timer_getoverrun>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:547
+#: build/C/man2/syscalls.2:569
#, no-wrap
msgid "B<timer_gettime>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:548
+#: build/C/man2/syscalls.2:570
#, no-wrap
msgid "B<timer_settime>(2)\t2.6\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:549
+#: build/C/man2/syscalls.2:571
#, no-wrap
msgid "B<timerfd_create>(2)\t2.6.25\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:550
+#: build/C/man2/syscalls.2:572
#, no-wrap
msgid "B<timerfd_gettime>(2)\t2.6.25\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:551
+#: build/C/man2/syscalls.2:573
#, no-wrap
msgid "B<timerfd_settime>(2)\t2.6.25\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:552
+#: build/C/man2/syscalls.2:574
#, no-wrap
msgid "B<times>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:553
+#: build/C/man2/syscalls.2:575
#, no-wrap
msgid "B<tkill>(2)\t2.6; 2.4.22\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:554
+#: build/C/man2/syscalls.2:576
#, no-wrap
msgid "B<truncate>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:555
+#: build/C/man2/syscalls.2:577
#, no-wrap
msgid "B<truncate64>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:556
+#: build/C/man2/syscalls.2:578
#, no-wrap
msgid "B<ugetrlimit>(2)\t2.4\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:557
+#: build/C/man2/syscalls.2:579
#, no-wrap
msgid "B<umask>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:558
+#: build/C/man2/syscalls.2:580
#, no-wrap
msgid "B<umount>(2)\t1.0\n"
msgstr ""
#. sys_oldumount() -- __NR_umount
#. type: tbl table
-#: build/C/man2/syscalls.2:560
+#: build/C/man2/syscalls.2:582
#, no-wrap
msgid "B<umount2>(2)\t2.2\n"
msgstr ""
#. sys_umount() -- __NR_umount2
#. type: tbl table
-#: build/C/man2/syscalls.2:562
+#: build/C/man2/syscalls.2:584
#, no-wrap
msgid "B<uname>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:563
+#: build/C/man2/syscalls.2:585
#, no-wrap
msgid "B<unlink>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:564
+#: build/C/man2/syscalls.2:586
#, no-wrap
msgid "B<unlinkat>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:565
+#: build/C/man2/syscalls.2:587
#, no-wrap
msgid "B<unshare>(2)\t2.6.16\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:566
+#: build/C/man2/syscalls.2:588
#, no-wrap
msgid "B<uselib>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:567
+#: build/C/man2/syscalls.2:589
#, no-wrap
msgid "B<ustat>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:568
+#: build/C/man2/syscalls.2:590
#, no-wrap
msgid "B<utime>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:569
+#: build/C/man2/syscalls.2:591
#, no-wrap
msgid "B<utimensat>(2)\t2.6.22\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:570
+#: build/C/man2/syscalls.2:592
#, no-wrap
msgid "B<utimes>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:571
+#: build/C/man2/syscalls.2:593
#, no-wrap
-msgid "B<utrap_install>(2)\t2.2\tSparc\n"
+msgid "B<utrap_install>(2)\t2.2\tSparc only\n"
msgstr ""
+#. FIXME . document utrap_install()
+#. There's a man page for Solaris 5.11
#. type: tbl table
-#: build/C/man2/syscalls.2:572
+#: build/C/man2/syscalls.2:596
#, no-wrap
msgid "B<vfork>(2)\t2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:573
+#: build/C/man2/syscalls.2:597
#, no-wrap
msgid "B<vhangup>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:574
+#: build/C/man2/syscalls.2:598
#, no-wrap
-msgid "B<vm86old>(2)\t1.0\tWas \"vm86\"; renamed in 2.0.28/2.2\n"
+msgid "B<vm86old>(2)\t1.0\tT{\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:575
+#: build/C/man2/syscalls.2:599
+#, no-wrap
+msgid "Was \"vm86\"; renamed in\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:600
+#, no-wrap
+msgid "2.0.28/2.2\n"
+msgstr ""
+
+#. type: tbl table
+#: build/C/man2/syscalls.2:602
#, no-wrap
msgid "B<vm86>(2)\t2.0.28; 2.2\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:576
+#: build/C/man2/syscalls.2:603
#, no-wrap
msgid "B<vmsplice>(2)\t2.6.17\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:577
+#: build/C/man2/syscalls.2:604
#, no-wrap
msgid "B<wait4>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:578
+#: build/C/man2/syscalls.2:605
#, no-wrap
msgid "B<waitid>(2)\t2.6.10\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:579
+#: build/C/man2/syscalls.2:606
#, no-wrap
msgid "B<waitpid>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:580
+#: build/C/man2/syscalls.2:607
#, no-wrap
msgid "B<write>(2)\t1.0\n"
msgstr ""
#. type: tbl table
-#: build/C/man2/syscalls.2:581
+#: build/C/man2/syscalls.2:608
#, no-wrap
msgid "B<writev>(2)\t2.0\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:590
+#: build/C/man2/syscalls.2:617
msgid ""
"On many platforms, including x86-32, socket calls are all multiplexed (via "
-"glibc wrapper functions) through B<socketcall>(2) and similarly System V "
+"glibc wrapper functions) through B<socketcall>(2) and similarly System\\ V "
"IPC calls are multiplexed through B<ipc>(2)."
msgstr ""
#. __NR_ulimit is 58 on Linux 2.6.22/i386
#. __NR_vserver is 273 on Linux 2.6.22/i386
#. type: Plain text
-#: build/C/man2/syscalls.2:635
+#: build/C/man2/syscalls.2:662
msgid ""
"Although slots are reserved for them in the system call table, the following "
"system calls are not implemented in the standard kernel: B<afs_syscall>(2), "
"B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), "
"B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and "
"B<vserver>(2) (see also B<unimplemented>(2)). However, B<ftime>(3), "
-"B<profil>(3) and B<ulimit>(3) exist as library routines. The slot for "
+"B<profil>(3), and B<ulimit>(3) exist as library routines. The slot for "
"B<phys>(2) is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2) "
"will never be implemented. The B<getpmsg>(2) and B<putpmsg>(2) calls are "
"for kernels patched to support STREAMS, and may never be in the standard "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:640
+#: build/C/man2/syscalls.2:667
msgid ""
"There was briefly B<set_zone_reclaim>(2), added in Linux 2.6.13, and removed "
"in 2.6.16; this system call was never available to user space."
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:657
+#: build/C/man2/syscalls.2:684
msgid ""
"Roughly speaking, the code belonging to the system call with number __NR_xxx "
"defined in I</usr/include/asm/unistd.h> can be found in the Linux kernel "
"exceptions, however, mostly because older system calls were superseded by "
"newer ones, and this has been treated somewhat unsystematically. On "
"platforms with proprietary operating-system emulation, such as parisc, "
-"sparc, sparc64 and alpha, there are many additional system calls; mips64 "
+"sparc, sparc64, and alpha, there are many additional system calls; mips64 "
"also contains a full set of 32-bit system calls."
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:676
+#: build/C/man2/syscalls.2:703
msgid ""
"Over time, changes to the interfaces of some system calls have been "
"necessary. One reason for such changes was the need to increase the size of "
#. The stat system calls deal with three different data structures,
#. defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
#. type: Plain text
-#: build/C/man2/syscalls.2:697
+#: build/C/man2/syscalls.2:724
msgid ""
"By now there are three different versions of B<stat>(2): I<sys_stat>() "
"(slot I<__NR_oldstat>), I<sys_newstat>() (slot I<__NR_stat>), and "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:708
+#: build/C/man2/syscalls.2:735
msgid ""
"Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and "
"I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>() and "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:715
+#: build/C/man2/syscalls.2:742
msgid ""
"In Linux 2.0, a new version of B<vm86>(2) appeared, with the old and the "
"new kernel routines being named I<sys_vm86old>() and I<sys_vm86>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:726
+#: build/C/man2/syscalls.2:753
msgid ""
"In Linux 2.4, a new version of B<getrlimit>(2) appeared, with the old and "
"the new kernel routines being named I<sys_old_getrlimit>() (slot "
#. 64-bit off_t changes: ftruncate64, *stat64,
#. fcntl64 (because of the flock structure), getdents64, *statfs64
#. type: Plain text
-#: build/C/man2/syscalls.2:738
+#: build/C/man2/syscalls.2:765
msgid ""
"Linux 2.4 increased the size of user and group IDs from 16 to 32 bits. To "
"support this change, a range of system calls were added (e.g., "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:755
+#: build/C/man2/syscalls.2:782
msgid ""
"Linux 2.4 added support for applications on 32-bit architectures to access "
"large files (i.e., files for which the sizes and file offsets can't be "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:759
+#: build/C/man2/syscalls.2:786
msgid ""
"On newer platforms that only have 64-bit file access and 32-bit uids (e.g., "
"alpha, ia64, s390x) there are no *64 or *32 calls. Where the *64 and *32 "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:767
+#: build/C/man2/syscalls.2:794
msgid ""
"The I<rt_sig*> calls were added in kernel 2.2 to support the addition of "
"real-time signals (see B<signal>(7)). These system calls supersede the "
#. and the semantics of the latter call were changed to what
#. they are today.
#. type: Plain text
-#: build/C/man2/syscalls.2:817
+#: build/C/man2/syscalls.2:844
msgid ""
"The B<select>(2) and B<mmap>(2) system calls use five or more arguments, "
"which caused problems in the way argument passing on the i386 used to be set "
msgstr ""
#. type: Plain text
-#: build/C/man2/syscalls.2:821
-msgid "B<syscall>(2), B<unimplemented>(2), B<libc>(7)"
+#: build/C/man2/syscalls.2:851
+msgid ""
+"B<intro>(2), B<syscall>(2), B<unimplemented>(2), B<errno>(3), B<libc>(7), "
+"B<vdso>(7)"
msgstr ""
#. type: TH
msgid "SYSCONF"
msgstr ""
-#. type: TH
-#: build/C/man3/sysconf.3:27
-#, no-wrap
-msgid "2013-02-12"
-msgstr ""
-
#. type: Plain text
#: build/C/man3/sysconf.3:30
msgid "sysconf - get configuration information at run time"
#: build/C/man3/sysconf.3:56
msgid ""
"At run time, one can ask for numerical values using the present function "
-"B<sysconf>(). One can ask for numerical values that may depend on the file "
-"system a file is in using the calls B<fpathconf>(3) and B<pathconf>(3). "
-"One can ask for string values using B<confstr>(3)."
+"B<sysconf>(). One can ask for numerical values that may depend on the "
+"filesystem a file is in using the calls B<fpathconf>(3) and "
+"B<pathconf>(3). One can ask for string values using B<confstr>(3)."
msgstr ""
#. except that sysconf(_SC_OPEN_MAX) may change answer after a call
#. type: Plain text
#: build/C/man3/sysconf.3:142
msgid ""
-"The max number of simultaneous processes per user ID. Must not be less than "
-"B<_POSIX_CHILD_MAX> (25)."
+"The maximum number of simultaneous processes per user ID. Must not be less "
+"than B<_POSIX_CHILD_MAX> (25)."
msgstr ""
#. type: TP
#. type: Plain text
#: build/C/man3/sysconf.3:150
msgid ""
-"Max length of a hostname, not including the terminating null byte, as "
+"Maximum length of a hostname, not including the terminating null byte, as "
"returned by B<gethostname>(2). Must not be less than "
"B<_POSIX_HOST_NAME_MAX> (255)."
msgstr ""
#. type: TP
#: build/C/man3/sysconf.3:156
#, no-wrap
+msgid "B<NGROUPS_MAX> - B<_SC_NGROUPS_MAX>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/sysconf.3:159
+msgid "Maximum number of supplementary group IDs."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/sysconf.3:159
+#, no-wrap
msgid "clock ticks - B<_SC_CLK_TCK>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:165
+#: build/C/man3/sysconf.3:168
msgid ""
"The number of clock ticks per second. The corresponding variable is "
"obsolete. It was of course called B<CLK_TCK>. (Note: the macro "
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:165
+#: build/C/man3/sysconf.3:168
#, no-wrap
msgid "B<OPEN_MAX> - B<_SC_OPEN_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:171
+#: build/C/man3/sysconf.3:174
msgid ""
"The maximum number of files that a process can have open at any time. Must "
"not be less than B<_POSIX_OPEN_MAX> (20)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:171
+#: build/C/man3/sysconf.3:174
#, no-wrap
msgid "B<PAGESIZE> - B<_SC_PAGESIZE>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:176
+#: build/C/man3/sysconf.3:179
msgid ""
"Size of a page in bytes. Must not be less than 1. (Some systems use "
"PAGE_SIZE instead.)"
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:176 build/C/man3/sysconf.3:263
+#: build/C/man3/sysconf.3:179 build/C/man3/sysconf.3:266
#, no-wrap
msgid "B<RE_DUP_MAX> - B<_SC_RE_DUP_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:185
+#: build/C/man3/sysconf.3:188
msgid ""
"The number of repeated occurrences of a BRE permitted by B<regexec>(3) and "
"B<regcomp>(3). Must not be less than B<_POSIX2_RE_DUP_MAX> (255)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:185
+#: build/C/man3/sysconf.3:188
#, no-wrap
msgid "B<STREAM_MAX> - B<_SC_STREAM_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:194
+#: build/C/man3/sysconf.3:197
msgid ""
"The maximum number of streams that a process can have open at any time. If "
"defined, it has the same value as the standard C macro B<FOPEN_MAX>. Must "
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:194
+#: build/C/man3/sysconf.3:197
#, no-wrap
msgid "B<SYMLOOP_MAX> - B<_SC_SYMLOOP_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:202
+#: build/C/man3/sysconf.3:205
msgid ""
"The maximum number of symbolic links seen in a pathname before resolution "
"returns B<ELOOP>. Must not be less than B<_POSIX_SYMLOOP_MAX> (8)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:202
+#: build/C/man3/sysconf.3:205
#, no-wrap
msgid "B<TTY_NAME_MAX> - B<_SC_TTY_NAME_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:209
+#: build/C/man3/sysconf.3:212
msgid ""
"The maximum length of terminal device name, including the terminating null "
"byte. Must not be less than B<_POSIX_TTY_NAME_MAX> (9)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:209
+#: build/C/man3/sysconf.3:212
#, no-wrap
msgid "B<TZNAME_MAX> - B<_SC_TZNAME_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:215
+#: build/C/man3/sysconf.3:218
msgid ""
"The maximum number of bytes in a timezone name. Must not be less than "
"B<_POSIX_TZNAME_MAX> (6)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:215
+#: build/C/man3/sysconf.3:218
#, no-wrap
msgid "B<_POSIX_VERSION> - B<_SC_VERSION>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:223
+#: build/C/man3/sysconf.3:226
msgid ""
"indicates the year and month the POSIX.1 standard was approved in the format "
"B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision."
msgstr ""
#. type: SS
-#: build/C/man3/sysconf.3:223
+#: build/C/man3/sysconf.3:226
#, no-wrap
msgid "POSIX.2 variables"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:225
+#: build/C/man3/sysconf.3:228
msgid "Next, the POSIX.2 values, giving limits for utilities."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:225
+#: build/C/man3/sysconf.3:228
#, no-wrap
msgid "B<BC_BASE_MAX> - B<_SC_BC_BASE_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:232
+#: build/C/man3/sysconf.3:235
msgid "indicates the maximum I<obase> value accepted by the B<bc>(1) utility."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:232
+#: build/C/man3/sysconf.3:235
#, no-wrap
msgid "B<BC_DIM_MAX> - B<_SC_BC_DIM_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:236
+#: build/C/man3/sysconf.3:239
msgid "indicates the maximum value of elements permitted in an array by B<bc>(1)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:236
+#: build/C/man3/sysconf.3:239
#, no-wrap
msgid "B<BC_SCALE_MAX> - B<_SC_BC_SCALE_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:242
+#: build/C/man3/sysconf.3:245
msgid "indicates the maximum I<scale> value allowed by B<bc>(1)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:242
+#: build/C/man3/sysconf.3:245
#, no-wrap
msgid "B<BC_STRING_MAX> - B<_SC_BC_STRING_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:246
+#: build/C/man3/sysconf.3:249
msgid "indicates the maximum length of a string accepted by B<bc>(1)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:246
+#: build/C/man3/sysconf.3:249
#, no-wrap
msgid "B<COLL_WEIGHTS_MAX> - B<_SC_COLL_WEIGHTS_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:252
+#: build/C/man3/sysconf.3:255
msgid ""
"indicates the maximum numbers of weights that can be assigned to an entry of "
"the B<LC_COLLATE order> keyword in the locale definition file,"
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:252
+#: build/C/man3/sysconf.3:255
#, no-wrap
msgid "B<EXPR_NEST_MAX> - B<_SC_EXPR_NEST_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:257
+#: build/C/man3/sysconf.3:260
msgid ""
"is the maximum number of expressions which can be nested within parentheses "
"by B<expr>(1)."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:257
+#: build/C/man3/sysconf.3:260
#, no-wrap
msgid "B<LINE_MAX> - B<_SC_LINE_MAX>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:263
+#: build/C/man3/sysconf.3:266
msgid ""
"The maximum length of a utility's input line, either from standard input or "
"from a file. This includes space for a trailing newline."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:269
+#: build/C/man3/sysconf.3:272
msgid ""
"The maximum number of repeated occurrences of a regular expression when the "
"interval notation B<\\e{m,n\\e}> is used."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:269
+#: build/C/man3/sysconf.3:272
#, no-wrap
msgid "B<POSIX2_VERSION> - B<_SC_2_VERSION>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:273
+#: build/C/man3/sysconf.3:276
msgid "indicates the version of the POSIX.2 standard in the format of YYYYMML."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:273
+#: build/C/man3/sysconf.3:276
#, no-wrap
msgid "B<POSIX2_C_DEV> - B<_SC_2_C_DEV>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:277
+#: build/C/man3/sysconf.3:280
msgid ""
"indicates whether the POSIX.2 C language development facilities are "
"supported."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:277
+#: build/C/man3/sysconf.3:280
#, no-wrap
msgid "B<POSIX2_FORT_DEV> - B<_SC_2_FORT_DEV>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:281
+#: build/C/man3/sysconf.3:284
msgid "indicates whether the POSIX.2 FORTRAN development utilities are supported."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:281
+#: build/C/man3/sysconf.3:284
#, no-wrap
msgid "B<POSIX2_FORT_RUN> - B<_SC_2_FORT_RUN>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:284
+#: build/C/man3/sysconf.3:287
msgid "indicates whether the POSIX.2 FORTRAN run-time utilities are supported."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:284
+#: build/C/man3/sysconf.3:287
#, no-wrap
msgid "B<_POSIX2_LOCALEDEF> - B<_SC_2_LOCALEDEF>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:289
+#: build/C/man3/sysconf.3:292
msgid ""
"indicates whether the POSIX.2 creation of locates via B<localedef>(1) is "
"supported."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:289
+#: build/C/man3/sysconf.3:292
#, no-wrap
msgid "B<POSIX2_SW_DEV> - B<_SC_2_SW_DEV>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:293
+#: build/C/man3/sysconf.3:296
msgid ""
"indicates whether the POSIX.2 software development utilities option is "
"supported."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:295
+#: build/C/man3/sysconf.3:298
msgid "These values also exist, but may not be standard."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:295
+#: build/C/man3/sysconf.3:298
#, no-wrap
msgid " - B<_SC_PHYS_PAGES>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:302
+#: build/C/man3/sysconf.3:305
msgid ""
"The number of pages of physical memory. Note that it is possible for the "
"product of this value and the value of B<_SC_PAGESIZE> to overflow."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:302
+#: build/C/man3/sysconf.3:305
#, no-wrap
msgid " - B<_SC_AVPHYS_PAGES>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:305
+#: build/C/man3/sysconf.3:308
msgid "The number of currently available pages of physical memory."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:305
+#: build/C/man3/sysconf.3:308
#, no-wrap
msgid " - B<_SC_NPROCESSORS_CONF>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:308
+#: build/C/man3/sysconf.3:311
msgid "The number of processors configured."
msgstr ""
#. type: TP
-#: build/C/man3/sysconf.3:308
+#: build/C/man3/sysconf.3:311
#, no-wrap
msgid " - B<_SC_NPROCESSORS_ONLN>"
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:311
+#: build/C/man3/sysconf.3:314
msgid "The number of processors currently online (available)."
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:324
+#: build/C/man3/sysconf.3:327
msgid ""
"If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>. "
"Otherwise, the value returned is the value of the system resource and "
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:332
+#: build/C/man3/sysconf.3:335
msgid ""
"It is difficult to use B<ARG_MAX> because it is not specified how much of "
"the argument space for B<exec>(3) is consumed by the user's environment "
msgstr ""
#. type: Plain text
-#: build/C/man3/sysconf.3:343
+#: build/C/man3/sysconf.3:347
msgid ""
-"B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<fpathconf>(3), "
-"B<pathconf>(3), B<posixoptions>(7)"
+"B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<confstr>(3), "
+"B<fpathconf>(3), B<pathconf>(3), B<posixoptions>(7)"
msgstr ""
#. type: TH
msgstr ""
#. type: Plain text
-#: build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:96
+#: build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:92
msgid "B<proc>(5)"
msgstr ""
msgid "SYSINFO"
msgstr ""
-#. type: TH
-#: build/C/man2/sysinfo.2:14
-#, no-wrap
-msgid "2012-05-05"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/sysinfo.2:17
msgid "sysinfo - returns information on overall system statistics"
msgstr ""
#. type: Plain text
-#: build/C/man2/sysinfo.2:94
-msgid ""
-"The Linux kernel has a B<sysinfo>() system call since 0.98.pl6. Linux libc "
-"contains a B<sysinfo>() routine since 5.3.5, and glibc has one since 1.90."
+#: build/C/man2/sysinfo.2:87
+msgid "The Linux kernel has a B<sysinfo>() system call since 0.98.pl6."
msgstr ""
#. type: TH
#. type: TH
#: build/C/man3/tcgetpgrp.3:25
#, no-wrap
-msgid "2003-01-28"
+msgid "2014-01-13"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:52
+#: build/C/man3/tcgetpgrp.3:55
msgid ""
"The function B<tcsetpgrp>() makes the process group with process group ID "
"I<pgrp> the foreground process group on the terminal associated to I<fd>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:61
+#: build/C/man3/tcgetpgrp.3:64
msgid ""
"If B<tcsetpgrp>() is called by a member of a background process group in "
"its session, and the calling process is not blocking or ignoring B<SIGTTOU>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:76
+#: build/C/man3/tcgetpgrp.3:79
msgid ""
"When I<fd> refers to the controlling terminal of the calling process, the "
"function B<tcgetpgrp>() will return the foreground process group ID of that "
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:83
+#: build/C/man3/tcgetpgrp.3:86
msgid ""
"When successful, B<tcsetpgrp>() returns 0. Otherwise, it returns -1, and "
"I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:92
+#: build/C/man3/tcgetpgrp.3:95
msgid "I<pgrp> has an unsupported value."
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:101
+#: build/C/man3/tcgetpgrp.3:104
msgid ""
"The calling process does not have a controlling terminal, or it has one but "
"it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling "
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:106
+#: build/C/man3/tcgetpgrp.3:109
msgid ""
"I<pgrp> has a supported value, but is not the process group ID of a process "
"in the same session as the calling process."
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:114
+#: build/C/man3/tcgetpgrp.3:116
+msgid "The B<tcgetpgrp>() and B<tcsetpgrp>() functions are thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/tcgetpgrp.3:124
msgid ""
"These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> "
"ioctls."
msgstr ""
#. type: SS
-#: build/C/man3/tcgetpgrp.3:114 build/C/man2/vfork.2:234
+#: build/C/man3/tcgetpgrp.3:124 build/C/man2/vfork.2:234
#, no-wrap
msgid "History"
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:117
+#: build/C/man3/tcgetpgrp.3:127
msgid "The ioctls appeared in 4.2BSD. The functions are POSIX inventions."
msgstr ""
#. type: Plain text
-#: build/C/man3/tcgetpgrp.3:121
+#: build/C/man3/tcgetpgrp.3:131
msgid "B<setpgid>(2), B<setsid>(2), B<credentials>(7)"
msgstr ""
msgid "TRUNCATE"
msgstr ""
-#. type: TH
-#: build/C/man2/truncate.2:43
-#, no-wrap
-msgid "2011-09-08"
-msgstr ""
-
#. type: Plain text
#: build/C/man2/truncate.2:46
msgid "truncate, ftruncate - truncate a file to a specified length"
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:128
-msgid "I<Path> points outside the process's allocated address space."
+#: build/C/man2/truncate.2:129
+msgid "The argument I<path> points outside the process's allocated address space."
msgstr ""
#. type: TP
-#: build/C/man2/truncate.2:128
+#: build/C/man2/truncate.2:129
#, no-wrap
msgid "B<EFBIG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:133
+#: build/C/man2/truncate.2:134
msgid "The argument I<length> is larger than the maximum file size. (XSI)"
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:140
+#: build/C/man2/truncate.2:141
msgid ""
"While blocked waiting to complete, the call was interrupted by a signal "
"handler; see B<fcntl>(2) and B<signal>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:145
+#: build/C/man2/truncate.2:146
msgid "The argument I<length> is negative or larger than the maximum file size."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:148
+#: build/C/man2/truncate.2:149
msgid "An I/O error occurred updating the inode."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:151
+#: build/C/man2/truncate.2:152
msgid "The named file is a directory."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:154
+#: build/C/man2/truncate.2:155
msgid "Too many symbolic links were encountered in translating the pathname."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:158
+#: build/C/man2/truncate.2:159
msgid ""
"A component of a pathname exceeded 255 characters, or an entire pathname "
"exceeded 1023 characters."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:161
+#: build/C/man2/truncate.2:162
msgid "The named file does not exist."
msgstr ""
-#. This happens for at least MSDOS and VFAT file systems
+#. This happens for at least MSDOS and VFAT filesystems
#. on kernel 2.6.13
#. type: Plain text
-#: build/C/man2/truncate.2:170
+#: build/C/man2/truncate.2:171
msgid ""
-"The underlying file system does not support extending a file beyond its "
+"The underlying filesystem does not support extending a file beyond its "
"current size."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:176
+#: build/C/man2/truncate.2:175
+msgid "The operation was prevented by a file seal; see B<fcntl>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/truncate.2:181
msgid "The file is a pure procedure (shared text) file that is being executed."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:183
+#: build/C/man2/truncate.2:188
msgid ""
"For B<ftruncate>() the same errors apply, but instead of things that can be "
"wrong with I<path>, we now have things that can be wrong with the file "
"descriptor, I<fd>:"
msgstr ""
-#. type: Plain text
-#: build/C/man2/truncate.2:187
-msgid "I<fd> is not a valid descriptor."
-msgstr ""
-
#. type: TP
-#: build/C/man2/truncate.2:187
+#: build/C/man2/truncate.2:192
#, no-wrap
msgid "B<EBADF> or B<EINVAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:191
+#: build/C/man2/truncate.2:196
msgid "I<fd> is not open for writing."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:195
+#: build/C/man2/truncate.2:200
msgid "I<fd> does not reference a regular file."
msgstr ""
#. .BR ftruncate ()
#. an additional EAGAIN error condition.
#. type: Plain text
-#: build/C/man2/truncate.2:208
+#: build/C/man2/truncate.2:213
msgid "4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD)."
msgstr ""
#. At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
#. type: Plain text
-#: build/C/man2/truncate.2:229
+#: build/C/man2/truncate.2:234
msgid ""
"The details in DESCRIPTION are for XSI-compliant systems. For "
"non-XSI-compliant systems, the POSIX standard allows two behaviors for "
"B<ftruncate>() when I<length> exceeds the file length (note that "
"B<truncate>() is not specified at all in such an environment): either "
"returning an error, or extending the file. Like most UNIX implementations, "
-"Linux follows the XSI requirement when dealing with native file systems. "
-"However, some nonnative file systems do not permit B<truncate>() and "
+"Linux follows the XSI requirement when dealing with native filesystems. "
+"However, some nonnative filesystems do not permit B<truncate>() and "
"B<ftruncate>() to be used to extend a file beyond its current length: a "
"notable example on Linux is VFAT."
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:243
+#: build/C/man2/truncate.2:248
msgid ""
"The original Linux B<truncate>() and B<ftruncate>() system calls were not "
"designed to handle large file offsets. Consequently, Linux 2.4 added "
#. http://sourceware.org/bugzilla/show_bug.cgi?id=12037
#. type: Plain text
-#: build/C/man2/truncate.2:251
+#: build/C/man2/truncate.2:261
msgid ""
"A header file bug in glibc 2.12 meant that the minimum value of "
"B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>() was "
msgstr ""
#. type: Plain text
-#: build/C/man2/truncate.2:255
+#: build/C/man2/truncate.2:265
msgid "B<open>(2), B<stat>(2), B<path_resolution>(7)"
msgstr ""
msgid "UALARM"
msgstr ""
+#. type: TH
+#: build/C/man3/ualarm.3:24
+#, no-wrap
+msgid "2013-12-23"
+msgstr ""
+
#. type: Plain text
#: build/C/man3/ualarm.3:27
msgid "ualarm - schedule signal after given number of microseconds"
msgstr ""
#. type: Plain text
-#: build/C/man3/ualarm.3:100
+#: build/C/man3/ualarm.3:97
+msgid "The B<ualarm>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/ualarm.3:105
msgid ""
"4.3BSD, POSIX.1-2001. POSIX.1-2001 marks B<ualarm>() as obsolete. "
"POSIX.1-2008 removes the specification of B<ualarm>(). 4.3BSD, SUSv2, and "
"POSIX do not define any errors."
msgstr ""
+#. This case is not documented in HP-US, Solar, FreeBSD, NetBSD, or OpenBSD!
+#. type: Plain text
+#: build/C/man3/ualarm.3:112
+msgid ""
+"POSIX.1-2001 does not specify what happens if the I<usecs> argument is 0. "
+"On Linux (and probably most other systems), the effect is to cancel any "
+"pending alarm."
+msgstr ""
+
#. type: Plain text
-#: build/C/man3/ualarm.3:113
+#: build/C/man3/ualarm.3:125
msgid ""
"The type I<useconds_t> is an unsigned integer type capable of holding "
"integers in the range [0,1000000]. On the original BSD implementation, and "
msgstr ""
#. type: Plain text
-#: build/C/man3/ualarm.3:127
+#: build/C/man3/ualarm.3:139
msgid ""
"The interaction of this function with other timer functions such as "
"B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man3/ualarm.3:135
+#: build/C/man3/ualarm.3:147
msgid ""
"This function is obsolete. Use B<setitimer>(2) or POSIX interval timers "
"(B<timer_create>(2), etc.) instead."
msgstr ""
#. type: Plain text
-#: build/C/man3/ualarm.3:143
+#: build/C/man3/ualarm.3:155
msgid ""
"B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
"B<setitimer>(2), B<usleep>(3), B<time>(7)"
#. e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open()
#. but NOT the System V IPC *get() calls
#. type: Plain text
-#: build/C/man2/umask.2:63
+#: build/C/man2/umask.2:65
msgid ""
"The umask is used by B<open>(2), B<mkdir>(2), and other system calls that "
"create files to modify the permissions placed on newly created files or "
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:68
+#: build/C/man2/umask.2:70
msgid ""
"The constants that should be used to specify I<mask> are described under "
"B<stat>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:77
+#: build/C/man2/umask.2:79
msgid ""
"The typical default value for the process umask is I<S_IWGRP\\ |\\ S_IWOTH> "
"(octal 022). In the usual case where the I<mode> argument to B<open>(2) is "
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:80
+#: build/C/man2/umask.2:82
#, no-wrap
msgid " S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:84
+#: build/C/man2/umask.2:86
msgid ""
"(octal 0666) when creating a new file, the permissions on the resulting file "
"will be:"
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:87
+#: build/C/man2/umask.2:89
#, no-wrap
msgid " S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:90
+#: build/C/man2/umask.2:92
msgid "(because 0666 & ~022 = 0644; i.e., rw-r--r--)."
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:93
+#: build/C/man2/umask.2:95
msgid ""
"This system call always succeeds and the previous value of the mask is "
"returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:101
+#: build/C/man2/umask.2:103
msgid ""
"A child process created via B<fork>(2) inherits its parent's umask. The "
"umask is left unchanged by B<execve>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/umask.2:116
+#: build/C/man2/umask.2:118
msgid ""
"The umask setting also affects the permissions assigned to POSIX IPC objects "
"(B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and "
"UNIX domain sockets (B<unix>(7)) created by the process. The umask does "
-"not affect the permissions assigned to System V IPC objects created by the "
+"not affect the permissions assigned to System\\ V IPC objects created by the "
"process (using B<msgget>(2), B<semget>(2), B<shmget>(2))."
msgstr ""
-#. FIXME . eventually: .BR acl (5)
#. type: Plain text
-#: build/C/man2/umask.2:122
-msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2)"
+#: build/C/man2/umask.2:124
+msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2), B<acl>(5)"
msgstr ""
#. type: TH
msgstr ""
#. type: Plain text
-#: build/C/man2/uname.2:94
+#: build/C/man2/uname.2:98
msgid ""
"This is a system call, and the operating system presumably knows its name, "
"release and version. It also knows what hardware it runs on. So, four of "
msgstr ""
#. type: Plain text
-#: build/C/man2/uname.2:108
+#: build/C/man2/uname.2:116
msgid ""
-"To this end Linux uses the system calls B<sethostname>(2) and "
+"To this end, Linux uses the system calls B<sethostname>(2) and "
"B<setdomainname>(2). Note that there is no standard that says that the "
"hostname set by B<sethostname>(2) is the same string as the I<nodename> "
"field of the struct returned by B<uname>() (indeed, some systems allow a "
msgstr ""
#. type: Plain text
-#: build/C/man2/uname.2:123
+#: build/C/man2/uname.2:131
msgid ""
"The length of the fields in the struct varies. Some operating systems or "
"libraries use a hardcoded 9 or 33 or 65 or 257. Other systems use "
msgstr ""
#. type: Plain text
-#: build/C/man2/uname.2:130
+#: build/C/man2/uname.2:138
msgid ""
"Part of the utsname information is also accessible via "
"I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, "
"I<domainname>}."
msgstr ""
-#. type: SS
-#: build/C/man2/uname.2:130
-#, no-wrap
-msgid "Underlying kernel interface"
-msgstr ""
-
#. That was back before Linux 1.0
#. That was also back before Linux 1.0
#. type: Plain text
-#: build/C/man2/uname.2:157
+#: build/C/man2/uname.2:167
msgid ""
"Over time, increases in the size of the I<utsname> structure have led to "
"three successive versions of B<uname>(): I<sys_olduname>() (slot "
msgstr ""
#. type: Plain text
-#: build/C/man2/uname.2:161
-msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2)"
+#: build/C/man2/uname.2:172
+msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2), B<namespaces>(7)"
msgstr ""
#. type: TH
#. type: Plain text
#: build/C/man2/uselib.2:76
msgid ""
-"The file specified by I<library> is not an executable of known type, e.g., "
-"does not have the correct magic numbers."
+"The file specified by I<library> is not an executable of a known type; for "
+"example, it does not have the correct magic numbers."
msgstr ""
#. type: Plain text
#. type: TH
#: build/C/man3/usleep.3:33
#, no-wrap
-msgid "2010-12-03"
+msgid "2013-12-10"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:77
-msgid "0 on success, -1 on error."
+#: build/C/man3/usleep.3:82
+msgid ""
+"The B<usleep>() function returns 0 on success. On error, -1 is returned, "
+"with I<errno> set to indicate the cause of the error."
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:82
+#: build/C/man3/usleep.3:87
msgid "Interrupted by a signal; see B<signal>(7)."
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:86
+#: build/C/man3/usleep.3:91
msgid ""
"I<usec> is not smaller than 1000000. (On systems where that is considered "
"an error.)"
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:93
+#: build/C/man3/usleep.3:96
+msgid "The B<usleep>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/usleep.3:103
msgid ""
"4.3BSD, POSIX.1-2001. POSIX.1-2001 declares this function obsolete; use "
"B<nanosleep>(2) instead. POSIX.1-2008 removes the specification of "
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:100
+#: build/C/man3/usleep.3:110
msgid ""
"On the original BSD implementation, and in glibc before version 2.2.2, the "
"return type of this function is I<void>. The POSIX version returns I<int>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:104
+#: build/C/man3/usleep.3:114
msgid "Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:112
+#: build/C/man3/usleep.3:122
msgid ""
"The type I<useconds_t> is an unsigned integer type capable of holding "
"integers in the range [0,1000000]. Programs will be more portable if they "
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:120
+#: build/C/man3/usleep.3:130
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:137
+#: build/C/man3/usleep.3:147
msgid ""
"The interaction of this function with the B<SIGALRM> signal, and with other "
"timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man3/usleep.3:146
+#: build/C/man3/usleep.3:156
msgid ""
"B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
"B<setitimer>(2), B<sleep>(3), B<ualarm>(3), B<time>(7)"
"implementable on systems that lack an MMU.)"
msgstr ""
+#. type: SS
+#: build/C/man2/vfork.2:213
+#, no-wrap
+msgid "Linux notes"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/vfork.2:224
msgid ""
msgid "VHANGUP"
msgstr ""
+#. type: TH
+#: build/C/man2/vhangup.2:28
+#, no-wrap
+msgid "2007-07-26"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/vhangup.2:31
msgid "vhangup - virtually hangup the current terminal"
#. type: Plain text
#: build/C/man2/vhangup.2:69
-msgid "B<capabilities>(7), B<init>(8)"
+msgid "B<capabilities>(7), B<init>(1)"
+msgstr ""
+
+#. type: TH
+#: build/C/man2/execveat.2:26
+#, no-wrap
+msgid "EXECVEAT"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:29
+msgid "execveat - execute program relative to a directory file descriptor"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:33
+msgid "B<int execveat(int >I<dirfd>B<, const char *>I<pathname>B<,>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:35
+msgid "B< char *const >I<argv>B<[], char *const >I<envp>B<[],>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:37
+msgid "B< int >I<flags>B<);>"
+msgstr ""
+
+#. commit 51f39a1f0cea1cacf8c787f652f26dfee9611874
+#. type: Plain text
+#: build/C/man2/execveat.2:48
+msgid ""
+"The B<execveat>() system call executes the program referred to by the "
+"combination of I<dirfd> and I<pathname>. It operates in exactly the same "
+"way as B<execve>(2), except for the differences described in this manual "
+"page."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:58
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<execve>(2) for a relative pathname)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:70
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<execve>(2))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:86
+msgid ""
+"If I<pathname> is an empty string and the B<AT_EMPTY_PATH> flag is "
+"specified, then the file descriptor I<dirfd> specifies the file to be "
+"executed (i.e., I<dirfd> refers to an executable file, rather than a "
+"directory)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:90
+msgid ""
+"The I<flags> argument is a bit mask that can include zero or more of the "
+"following flags:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/execveat.2:90
+#, no-wrap
+msgid "B<AT_EMPTY_PATH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:100
+msgid ""
+"If I<pathname> is an empty string, operate on the file referred to by "
+"I<dirfd> (which may have been obtained using the B<open>(2) B<O_PATH> "
+"flag)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:108
+msgid ""
+"If the file identified by I<dirfd> and a non-NULL I<pathname> is a symbolic "
+"link, then the call fails with the error B<ELOOP>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:115
+msgid ""
+"On success, B<execveat>() does not return. On error, -1 is returned, and "
+"I<errno> is set appropriately."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:122
+msgid ""
+"The same errors that occur for B<execve>(2) can also occur for "
+"B<execveat>(). The following additional errors can occur for B<execveat>():"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:140
+msgid ""
+"I<flags> includes B<AT_SYMLINK_NOFOLLOW> and the file identified by I<dirfd> "
+"and a non-NULL I<pathname> is a symbolic link."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:154
+msgid ""
+"The program identified by I<dirfd> and I<pathname> requires the use of an "
+"interpreter program (such as a script starting with \"#!\"), but the file "
+"descriptor I<dirfd> was opened with the B<O_CLOEXEC> flag, with the result "
+"that the program file is inaccessible to the launched interpreter. See "
+"BUGS."
+msgstr ""
+
+#. FIXME . check for glibc support in a future release
+#. type: Plain text
+#: build/C/man2/execveat.2:165
+msgid ""
+"B<execveat>() was added to Linux in kernel 3.19. GNU C library support is "
+"pending."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:169
+msgid "The B<execveat>() system call is Linux-specific."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:179
+msgid ""
+"In addition to the reasons explained in B<openat>(2), the B<execveat>() "
+"system call is also needed to allow B<fexecve>(3) to be implemented on "
+"systems that do not have the I</proc> filesystem mounted."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:202
+msgid ""
+"When asked to execute a script file, the I<argv[0]> that is passed to the "
+"script interpreter is a string of the form I</dev/fd/N> or I</dev/fd/N/P>, "
+"where I<N> is the number of the file descriptor passed via the I<dirfd> "
+"argument. A string of the first form occurs when B<AT_EMPTY_PATH> is "
+"employed. A string of the second form occurs when the script is specified "
+"via both I<dirfd> and I<pathname>; in this case, I<P> is the value given in "
+"I<pathname>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:210
+msgid ""
+"For the same reasons described in B<fexecve>(3), the natural idiom when "
+"using B<execveat>(2) is to set the close-on-exec flag on I<dirfd>. (But "
+"see BUGS.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:215
+msgid ""
+"The B<ENOENT> error described above means that it is not possible to set the "
+"close-on-exec flag on the file descriptor given to a call of the form:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:217
+#, no-wrap
+msgid " execveat(fd, \"\", argv, envp, AT_EMPTY_PATH);\n"
+msgstr ""
+
+#. For an example, see Michael Kerrisk's 2015-01-10 reply in this LKML
+#. thread (http://thread.gmane.org/gmane.linux.kernel/1836105/focus=20229):
+#
+#. Subject: [PATCHv10 man-pages 5/5] execveat.2: initial man page.\" for execveat(2
+#. Date: Mon, 24 Nov 2014 11:53:59 +0000
+#. type: Plain text
+#: build/C/man2/execveat.2:229
+msgid ""
+"However, the inability to set the close-on-exec flag means that a file "
+"descriptor referring to the script leaks through to the script itself. As "
+"well as wasting a file descriptor, this leakage can lead to file-descriptor "
+"exhaustion in scenarios where scripts recursively employ B<execveat>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/execveat.2:233
+msgid "B<execve>(2), B<openat>(2), B<fexecve>(3)"
msgstr ""