OSDN Git Service

LDP: Update POT and ja.po to LDP v3.78-git-80a7408
[linuxjm/LDP_man-pages.git] / po4a / unistd / po / unistd.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2015-01-21 20:36+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man2/_syscall.2:38
21 #, no-wrap
22 msgid "_SYSCALL"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man2/_syscall.2:38
27 #, no-wrap
28 msgid "2007-12-19"
29 msgstr ""
30
31 #. type: TH
32 #: 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:25
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: 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:25
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: 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:26
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man2/_syscall.2:41
51 msgid "_syscall - invoking a system call without library support (OBSOLETE)"
52 msgstr ""
53
54 #. type: SH
55 #: 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:28
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man2/_syscall.2:43 build/C/man2/get_thread_area.2:13 build/C/man2/set_thread_area.2:13
62 msgid "B<#include E<lt>linux/unistd.hE<gt>>"
63 msgstr ""
64
65 #. type: Plain text
66 #: build/C/man2/_syscall.2:45
67 msgid "A _syscall macro"
68 msgstr ""
69
70 #. type: Plain text
71 #: build/C/man2/_syscall.2:47
72 msgid "desired system call"
73 msgstr ""
74
75 #. type: SH
76 #: 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:36
77 #, no-wrap
78 msgid "DESCRIPTION"
79 msgstr ""
80
81 #. type: Plain text
82 #: build/C/man2/_syscall.2:53
83 msgid ""
84 "The important thing to know about a system call is its prototype.  You need "
85 "to know how many arguments, their types, and the function return type.  "
86 "There are seven macros that make the actual call into the system easier.  "
87 "They have the form:"
88 msgstr ""
89
90 #. type: Plain text
91 #: build/C/man2/_syscall.2:56
92 msgid "_syscallI<X>(I<type>,I<name>,I<type1>,I<arg1>,I<type2>,I<arg2>,...)"
93 msgstr ""
94
95 #. type: Plain text
96 #: build/C/man2/_syscall.2:59
97 msgid "where"
98 msgstr ""
99
100 #. type: Plain text
101 #: build/C/man2/_syscall.2:63
102 msgid "I<X> is 0\\(en6, which are the number of arguments taken by the system call"
103 msgstr ""
104
105 #. type: Plain text
106 #: build/C/man2/_syscall.2:66
107 msgid "I<type> is the return type of the system call"
108 msgstr ""
109
110 #. type: Plain text
111 #: build/C/man2/_syscall.2:69
112 msgid "I<name> is the name of the system call"
113 msgstr ""
114
115 #. type: Plain text
116 #: build/C/man2/_syscall.2:72
117 msgid "I<typeN> is the Nth argument's type"
118 msgstr ""
119
120 #. type: Plain text
121 #: build/C/man2/_syscall.2:75
122 msgid "I<argN> is the name of the Nth argument"
123 msgstr ""
124
125 #. type: Plain text
126 #: build/C/man2/_syscall.2:83
127 msgid ""
128 "These macros create a function called I<name> with the arguments you "
129 "specify.  Once you include the _syscall() in your source file, you call the "
130 "system call by I<name>."
131 msgstr ""
132
133 #. type: SH
134 #: build/C/man2/_syscall.2:83 build/C/man3/getlogin.3:132 build/C/man3/getusershell.3:89 build/C/man5/shells.5:43
135 #, no-wrap
136 msgid "FILES"
137 msgstr ""
138
139 #. type: Plain text
140 #: build/C/man2/_syscall.2:85
141 msgid "I</usr/include/linux/unistd.h>"
142 msgstr ""
143
144 #. type: SH
145 #: 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:164
146 #, no-wrap
147 msgid "CONFORMING TO"
148 msgstr ""
149
150 #. type: Plain text
151 #: build/C/man2/_syscall.2:87
152 msgid "The use of these macros is Linux-specific, and deprecated."
153 msgstr ""
154
155 #. type: SH
156 #: 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:168
157 #, no-wrap
158 msgid "NOTES"
159 msgstr ""
160
161 #. type: Plain text
162 #: build/C/man2/_syscall.2:97
163 msgid ""
164 "Starting around kernel 2.6.18, the _syscall macros were removed from header "
165 "files supplied to user space.  Use B<syscall>(2)  instead.  (Some "
166 "architectures, notably ia64, never provided the _syscall macros; on those "
167 "architectures, B<syscall>(2)  was always required.)"
168 msgstr ""
169
170 #. type: Plain text
171 #: build/C/man2/_syscall.2:103
172 msgid ""
173 "The _syscall() macros I<do not> produce a prototype.  You may have to create "
174 "one, especially for C++ users."
175 msgstr ""
176
177 #. type: Plain text
178 #: build/C/man2/_syscall.2:124
179 msgid ""
180 "System calls are not required to return only positive or negative error "
181 "codes.  You need to read the source to be sure how it will return errors.  "
182 "Usually, it is the negative of a standard error code, for example, "
183 "-I<EPERM>.  The _syscall() macros will return the result I<r> of the system "
184 "call when I<r> is nonnegative, but will return -1 and set the variable "
185 "I<errno> to -I<r> when I<r> is negative.  For the error codes, see "
186 "B<errno>(3)."
187 msgstr ""
188
189 #.  The preferred way to invoke system calls that glibc does not know
190 #.  about yet is via
191 #.  .BR syscall (2).
192 #.  However, this mechanism can be used only if using a libc
193 #.  (such as glibc) that supports
194 #.  .BR syscall (2),
195 #.  and if the
196 #.  .I <sys/syscall.h>
197 #.  header file contains the required SYS_foo definition.
198 #.  Otherwise, the use of a _syscall macro is required.
199 #. type: Plain text
200 #: build/C/man2/_syscall.2:140
201 msgid ""
202 "When defining a system call, the argument types I<must> be passed by-value "
203 "or by-pointer (for aggregates like structs)."
204 msgstr ""
205
206 #. type: SH
207 #: 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
208 #, no-wrap
209 msgid "EXAMPLE"
210 msgstr ""
211
212 #. type: Plain text
213 #: build/C/man2/_syscall.2:147
214 #, no-wrap
215 msgid ""
216 "#include E<lt>stdio.hE<gt>\n"
217 "#include E<lt>stdlib.hE<gt>\n"
218 "#include E<lt>errno.hE<gt>\n"
219 "#include E<lt>linux/unistd.hE<gt>       /* for _syscallX macros/related "
220 "stuff */\n"
221 "#include E<lt>linux/kernel.hE<gt>       /* for struct sysinfo */\n"
222 msgstr ""
223
224 #. type: Plain text
225 #: build/C/man2/_syscall.2:149
226 #, no-wrap
227 msgid "_syscall1(int, sysinfo, struct sysinfo *, info);\n"
228 msgstr ""
229
230 #. type: Plain text
231 #: build/C/man2/_syscall.2:152
232 #, no-wrap
233 msgid ""
234 "/* Note: if you copy directly from the nroff source, remember to\n"
235 "REMOVE the extra backslashes in the printf statement. */\n"
236 msgstr ""
237
238 #. type: Plain text
239 #: build/C/man2/_syscall.2:158
240 #, no-wrap
241 msgid ""
242 "int\n"
243 "main(void)\n"
244 "{\n"
245 "    struct sysinfo s_info;\n"
246 "    int error;\n"
247 msgstr ""
248
249 #. type: Plain text
250 #: build/C/man2/_syscall.2:173
251 #, no-wrap
252 msgid ""
253 "    error = sysinfo(&s_info);\n"
254 "    printf(\"code error = %d\\en\", error);\n"
255 "    printf(\"Uptime = %lds\\enLoad: 1 min %lu / 5 min %lu / 15 min "
256 "%lu\\en\"\n"
257 "           \"RAM: total %lu / free %lu / shared %lu\\en\"\n"
258 "           \"Memory in buffers = %lu\\enSwap: total %lu / free %lu\\en\"\n"
259 "           \"Number of processes = %d\\en\",\n"
260 "           s_info.uptime, s_info.loads[0],\n"
261 "           s_info.loads[1], s_info.loads[2],\n"
262 "           s_info.totalram, s_info.freeram,\n"
263 "           s_info.sharedram, s_info.bufferram,\n"
264 "           s_info.totalswap, s_info.freeswap,\n"
265 "           s_info.procs);\n"
266 "    exit(EXIT_SUCCESS);\n"
267 "}\n"
268 msgstr ""
269
270 #. type: SS
271 #: build/C/man2/_syscall.2:174
272 #, no-wrap
273 msgid "Sample output"
274 msgstr ""
275
276 #. type: Plain text
277 #: build/C/man2/_syscall.2:183
278 #, no-wrap
279 msgid ""
280 "code error = 0\n"
281 "uptime = 502034s\n"
282 "Load: 1 min 13376 / 5 min 5504 / 15 min 1152\n"
283 "RAM: total 15343616 / free 827392 / shared 8237056\n"
284 "Memory in buffers = 5066752\n"
285 "Swap: total 27881472 / free 24698880\n"
286 "Number of processes = 40\n"
287 msgstr ""
288
289 #. type: SH
290 #: 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:228
291 #, no-wrap
292 msgid "SEE ALSO"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man2/_syscall.2:187
297 msgid "B<intro>(2), B<syscall>(2), B<errno>(3)"
298 msgstr ""
299
300 #. type: TH
301 #: build/C/man2/access.2:43
302 #, no-wrap
303 msgid "ACCESS"
304 msgstr ""
305
306 #. type: TH
307 #: 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
308 #, no-wrap
309 msgid "2014-08-19"
310 msgstr ""
311
312 #. type: Plain text
313 #: build/C/man2/access.2:46
314 msgid "access, faccessat - check user's permissions for a file"
315 msgstr ""
316
317 #. type: Plain text
318 #: 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
319 #, no-wrap
320 msgid "B<#include E<lt>unistd.hE<gt>>\n"
321 msgstr ""
322
323 #. type: Plain text
324 #: build/C/man2/access.2:51
325 #, no-wrap
326 msgid "B<int access(const char *>I<pathname>B<, int >I<mode>B<);>\n"
327 msgstr ""
328
329 #. type: Plain text
330 #: build/C/man2/access.2:54 build/C/man2/chown.2:53
331 #, no-wrap
332 msgid ""
333 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
334 "B<#include E<lt>unistd.hE<gt>>\n"
335 msgstr ""
336
337 #. type: Plain text
338 #: build/C/man2/access.2:57
339 #, no-wrap
340 msgid ""
341 "B<int faccessat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<mode>B<, "
342 "int >I<flags>B<);>\n"
343 msgstr ""
344
345 #. type: Plain text
346 #: 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
347 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
348 msgstr ""
349
350 #. type: Plain text
351 #: build/C/man2/access.2:65
352 msgid "B<faccessat>():"
353 msgstr ""
354
355 #. type: TP
356 #: 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
357 #, no-wrap
358 msgid "Since glibc 2.10:"
359 msgstr ""
360
361 #. type: Plain text
362 #: 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
363 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
364 msgstr ""
365
366 #. type: TP
367 #: 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
368 #, no-wrap
369 msgid "Before glibc 2.10:"
370 msgstr ""
371
372 #. type: Plain text
373 #: build/C/man2/access.2:74 build/C/man2/chmod.2:77 build/C/man2/chown.2:85 build/C/man2/mkdir.2:43
374 msgid "_ATFILE_SOURCE"
375 msgstr ""
376
377 #. type: Plain text
378 #: build/C/man2/access.2:85
379 msgid ""
380 "B<access>()  checks whether the calling process can access the file "
381 "I<pathname>.  If I<pathname> is a symbolic link, it is dereferenced."
382 msgstr ""
383
384 #.  F_OK is defined as 0 on every system that I know of.
385 #. type: Plain text
386 #: build/C/man2/access.2:99
387 msgid ""
388 "The I<mode> specifies the accessibility check(s) to be performed, and is "
389 "either the value B<F_OK>, or a mask consisting of the bitwise OR of one or "
390 "more of B<R_OK>, B<W_OK>, and B<X_OK>.  B<F_OK> tests for the existence of "
391 "the file.  B<R_OK>, B<W_OK>, and B<X_OK> test whether the file exists and "
392 "grants read, write, and execute permissions, respectively."
393 msgstr ""
394
395 #. type: Plain text
396 #: build/C/man2/access.2:108
397 msgid ""
398 "The check is done using the calling process's I<real> UID and GID, rather "
399 "than the effective IDs as is done when actually attempting an operation "
400 "(e.g., B<open>(2))  on the file.  This allows set-user-ID programs to easily "
401 "determine the invoking user's authority."
402 msgstr ""
403
404 #. type: Plain text
405 #: build/C/man2/access.2:114
406 msgid ""
407 "If the calling process is privileged (i.e., its real UID is zero), then an "
408 "B<X_OK> check is successful for a regular file if execute permission is "
409 "enabled for any of the file owner, group, or other."
410 msgstr ""
411
412 #. type: SS
413 #: build/C/man2/access.2:114
414 #, no-wrap
415 msgid "faccessat()"
416 msgstr ""
417
418 #. type: Plain text
419 #: build/C/man2/access.2:120
420 msgid ""
421 "The B<faccessat>()  system call operates in exactly the same way as "
422 "B<access>(), except for the differences described here."
423 msgstr ""
424
425 #. type: Plain text
426 #: build/C/man2/access.2:130
427 msgid ""
428 "If the pathname given in I<pathname> is relative, then it is interpreted "
429 "relative to the directory referred to by the file descriptor I<dirfd> "
430 "(rather than relative to the current working directory of the calling "
431 "process, as is done by B<access>()  for a relative pathname)."
432 msgstr ""
433
434 #. type: Plain text
435 #: build/C/man2/access.2:142
436 msgid ""
437 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
438 "then I<pathname> is interpreted relative to the current working directory of "
439 "the calling process (like B<access>())."
440 msgstr ""
441
442 #. type: Plain text
443 #: 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:75
444 msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
445 msgstr ""
446
447 #. type: Plain text
448 #: build/C/man2/access.2:151
449 msgid ""
450 "I<flags> is constructed by ORing together zero or more of the following "
451 "values:"
452 msgstr ""
453
454 #. type: TP
455 #: build/C/man2/access.2:151
456 #, no-wrap
457 msgid "B<AT_EACCESS>"
458 msgstr ""
459
460 #. type: Plain text
461 #: build/C/man2/access.2:158
462 msgid ""
463 "Perform access checks using the effective user and group IDs.  By default, "
464 "B<faccessat>()  uses the real IDs (like B<access>())."
465 msgstr ""
466
467 #. type: TP
468 #: build/C/man2/access.2:158 build/C/man2/chmod.2:219 build/C/man2/chown.2:208 build/C/man2/execveat.2:99
469 #, no-wrap
470 msgid "B<AT_SYMLINK_NOFOLLOW>"
471 msgstr ""
472
473 #. type: Plain text
474 #: build/C/man2/access.2:164
475 msgid ""
476 "If I<pathname> is a symbolic link, do not dereference it: instead return "
477 "information about the link itself."
478 msgstr ""
479
480 #. type: Plain text
481 #: build/C/man2/access.2:169
482 msgid "See B<openat>(2)  for an explanation of the need for B<faccessat>()."
483 msgstr ""
484
485 #. type: SH
486 #: 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:107
487 #, no-wrap
488 msgid "RETURN VALUE"
489 msgstr ""
490
491 #. type: Plain text
492 #: build/C/man2/access.2:185
493 msgid ""
494 "On success (all requested permissions granted, or I<mode> is B<F_OK> and the "
495 "file exists), zero is returned.  On error (at least one bit in I<mode> asked "
496 "for a permission that is denied, or I<mode> is B<F_OK> and the file does not "
497 "exist, or some other error occurred), -1 is returned, and I<errno> is set "
498 "appropriately."
499 msgstr ""
500
501 #. type: SH
502 #: 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:114
503 #, no-wrap
504 msgid "ERRORS"
505 msgstr ""
506
507 #. type: Plain text
508 #: build/C/man2/access.2:190
509 msgid "B<access>()  and B<faccessat>()  shall fail if:"
510 msgstr ""
511
512 #. type: TP
513 #: 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
514 #, no-wrap
515 msgid "B<EACCES>"
516 msgstr ""
517
518 #. type: Plain text
519 #: build/C/man2/access.2:197
520 msgid ""
521 "The requested access would be denied to the file, or search permission is "
522 "denied for one of the directories in the path prefix of I<pathname>.  (See "
523 "also B<path_resolution>(7).)"
524 msgstr ""
525
526 #. type: TP
527 #: 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:129
528 #, no-wrap
529 msgid "B<ELOOP>"
530 msgstr ""
531
532 #. type: Plain text
533 #: build/C/man2/access.2:201 build/C/man2/chmod.2:259 build/C/man2/chown.2:249 build/C/man2/mkdir.2:149
534 msgid "Too many symbolic links were encountered in resolving I<pathname>."
535 msgstr ""
536
537 #. type: TP
538 #: 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
539 #, no-wrap
540 msgid "B<ENAMETOOLONG>"
541 msgstr ""
542
543 #. type: Plain text
544 #: build/C/man2/access.2:205 build/C/man2/chmod.2:263 build/C/man2/chown.2:253
545 msgid "I<pathname> is too long."
546 msgstr ""
547
548 #. type: TP
549 #: 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:139
550 #, no-wrap
551 msgid "B<ENOENT>"
552 msgstr ""
553
554 #. type: Plain text
555 #: build/C/man2/access.2:210
556 msgid "A component of I<pathname> does not exist or is a dangling symbolic link."
557 msgstr ""
558
559 #. type: TP
560 #: 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:153
561 #, no-wrap
562 msgid "B<ENOTDIR>"
563 msgstr ""
564
565 #. type: Plain text
566 #: build/C/man2/access.2:215 build/C/man2/mkdir.2:178
567 msgid "A component used as a directory in I<pathname> is not, in fact, a directory."
568 msgstr ""
569
570 #. type: TP
571 #: 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
572 #, no-wrap
573 msgid "B<EROFS>"
574 msgstr ""
575
576 #. type: Plain text
577 #: build/C/man2/access.2:218
578 msgid "Write permission was requested for a file on a read-only filesystem."
579 msgstr ""
580
581 #. type: Plain text
582 #: build/C/man2/access.2:223
583 msgid "B<access>()  and B<faccessat>()  may fail if:"
584 msgstr ""
585
586 #. type: TP
587 #: 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
588 #, no-wrap
589 msgid "B<EFAULT>"
590 msgstr ""
591
592 #. type: Plain text
593 #: build/C/man2/access.2:227 build/C/man2/chmod.2:252 build/C/man2/chown.2:245 build/C/man2/mkdir.2:145
594 msgid "I<pathname> points outside your accessible address space."
595 msgstr ""
596
597 #. type: TP
598 #: 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:125
599 #, no-wrap
600 msgid "B<EINVAL>"
601 msgstr ""
602
603 #. type: Plain text
604 #: build/C/man2/access.2:231
605 msgid "I<mode> was incorrectly specified."
606 msgstr ""
607
608 #. type: TP
609 #: 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
610 #, no-wrap
611 msgid "B<EIO>"
612 msgstr ""
613
614 #. type: Plain text
615 #: 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
616 msgid "An I/O error occurred."
617 msgstr ""
618
619 #. type: TP
620 #: 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
621 #, no-wrap
622 msgid "B<ENOMEM>"
623 msgstr ""
624
625 #. type: Plain text
626 #: 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
627 msgid "Insufficient kernel memory was available."
628 msgstr ""
629
630 #. type: TP
631 #: build/C/man2/access.2:237 build/C/man2/execve.2:461 build/C/man2/truncate.2:178
632 #, no-wrap
633 msgid "B<ETXTBSY>"
634 msgstr ""
635
636 #. type: Plain text
637 #: build/C/man2/access.2:241
638 msgid "Write access was requested to an executable which is being executed."
639 msgstr ""
640
641 #. type: Plain text
642 #: build/C/man2/access.2:244
643 msgid "The following additional errors can occur for B<faccessat>():"
644 msgstr ""
645
646 #. type: TP
647 #: 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:121
648 #, no-wrap
649 msgid "B<EBADF>"
650 msgstr ""
651
652 #. type: Plain text
653 #: 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:125
654 msgid "I<dirfd> is not a valid file descriptor."
655 msgstr ""
656
657 #. type: Plain text
658 #: build/C/man2/access.2:252 build/C/man2/chmod.2:314 build/C/man2/chown.2:303 build/C/man2/execveat.2:129
659 msgid "Invalid flag specified in I<flags>."
660 msgstr ""
661
662 #. type: Plain text
663 #: 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:159
664 msgid ""
665 "I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
666 "file other than a directory."
667 msgstr ""
668
669 #. type: SH
670 #: 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:159
671 #, no-wrap
672 msgid "VERSIONS"
673 msgstr ""
674
675 #. type: Plain text
676 #: build/C/man2/access.2:262
677 msgid ""
678 "B<faccessat>()  was added to Linux in kernel 2.6.16; library support was "
679 "added to glibc in version 2.4."
680 msgstr ""
681
682 #. type: Plain text
683 #: build/C/man2/access.2:265
684 msgid "B<access>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
685 msgstr ""
686
687 #. type: Plain text
688 #: build/C/man2/access.2:268
689 msgid "B<faccessat>(): POSIX.1-2008."
690 msgstr ""
691
692 #. type: Plain text
693 #: build/C/man2/access.2:281
694 msgid ""
695 "B<Warning>: Using these calls to check if a user is authorized to, for "
696 "example, open a file before actually doing so using B<open>(2)  creates a "
697 "security hole, because the user might exploit the short time interval "
698 "between checking and opening the file to manipulate it.  B<For this reason, "
699 "the use of this system call should be avoided>.  (In the example just "
700 "described, a safer alternative would be to temporarily switch the process's "
701 "effective user ID to the real ID and then call B<open>(2).)"
702 msgstr ""
703
704 #. type: Plain text
705 #: build/C/man2/access.2:288
706 msgid ""
707 "B<access>()  always dereferences symbolic links.  If you need to check the "
708 "permissions on a symbolic link, use B<faccessat>(2)  with the flag "
709 "B<AT_SYMLINK_NOFOLLOW>."
710 msgstr ""
711
712 #. type: Plain text
713 #: build/C/man2/access.2:294
714 msgid ""
715 "These calls return an error if any of the access types in I<mode> is denied, "
716 "even if some of the other access types in I<mode> are permitted."
717 msgstr ""
718
719 #.  HPU-UX 11 and Tru64 5.1 do this.
720 #. type: Plain text
721 #: build/C/man2/access.2:301
722 msgid ""
723 "If the calling process has appropriate privileges (i.e., is superuser), "
724 "POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> "
725 "check even if none of the execute file permission bits are set.  Linux does "
726 "not do this."
727 msgstr ""
728
729 #. type: Plain text
730 #: build/C/man2/access.2:309
731 msgid ""
732 "A file is accessible only if the permissions on each of the directories in "
733 "the path prefix of I<pathname> grant search (i.e., execute) access.  If any "
734 "directory is inaccessible, then the B<access>()  call will fail, regardless "
735 "of the permissions on the file itself."
736 msgstr ""
737
738 #. type: Plain text
739 #: build/C/man2/access.2:317
740 msgid ""
741 "Only access bits are checked, not the file type or contents.  Therefore, if "
742 "a directory is found to be writable, it probably means that files can be "
743 "created in the directory, and not that the directory can be written as a "
744 "file.  Similarly, a DOS file may be found to be \"executable,\" but the "
745 "B<execve>(2)  call will still fail."
746 msgstr ""
747
748 #. type: Plain text
749 #: build/C/man2/access.2:326
750 msgid ""
751 "These calls may not work correctly on NFSv2 filesystems with UID mapping "
752 "enabled, because UID mapping is done on the server and hidden from the "
753 "client, which checks permissions.  (NFS versions 3 and higher perform the "
754 "check on the server.)  Similar problems can occur to FUSE mounts."
755 msgstr ""
756
757 #. type: SS
758 #: 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
759 #, no-wrap
760 msgid "C library/kernel ABI differences"
761 msgstr ""
762
763 #. type: Plain text
764 #: build/C/man2/access.2:339
765 msgid ""
766 "The raw B<faccessat>()  system call takes only the first three arguments.  "
767 "The B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are actually implemented "
768 "within the glibc wrapper function for B<faccessat>().  If either of these "
769 "flags is specified, then the wrapper function employs B<fstatat>(2)  to "
770 "determine access permissions."
771 msgstr ""
772
773 #. type: SS
774 #: 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
775 #, no-wrap
776 msgid "Glibc notes"
777 msgstr ""
778
779 #. type: Plain text
780 #: build/C/man2/access.2:357
781 msgid ""
782 "On older kernels where B<faccessat>()  is unavailable (and when the "
783 "B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are not specified), the glibc "
784 "wrapper function falls back to the use of B<access>().  When I<pathname> is "
785 "a relative pathname, glibc constructs a pathname based on the symbolic link "
786 "in I</proc/self/fd> that corresponds to the I<dirfd> argument."
787 msgstr ""
788
789 #. type: SH
790 #: 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:209
791 #, no-wrap
792 msgid "BUGS"
793 msgstr ""
794
795 #.  This behavior appears to have been an implementation accident.
796 #. type: Plain text
797 #: build/C/man2/access.2:380
798 msgid ""
799 "In kernel 2.4 (and earlier) there is some strangeness in the handling of "
800 "B<X_OK> tests for superuser.  If all categories of execute permission are "
801 "disabled for a nondirectory file, then the only B<access>()  test that "
802 "returns -1 is when I<mode> is specified as just B<X_OK>; if B<R_OK> or "
803 "B<W_OK> is also specified in I<mode>, then B<access>()  returns 0 for such "
804 "files.  Early 2.6 kernels (up to and including 2.6.3)  also behaved in the "
805 "same way as kernel 2.4."
806 msgstr ""
807
808 #. type: Plain text
809 #: build/C/man2/access.2:390
810 msgid ""
811 "In kernels before 2.6.20, these calls ignored the effect of the B<MS_NOEXEC> "
812 "flag if it was used to B<mount>(2)  the underlying filesystem.  Since kernel "
813 "2.6.20, the B<MS_NOEXEC> is honored"
814 msgstr ""
815
816 #. type: Plain text
817 #: build/C/man2/access.2:400
818 msgid ""
819 "B<chmod>(2), B<chown>(2), B<open>(2), B<setgid>(2), B<setuid>(2), "
820 "B<stat>(2), B<euidaccess>(3), B<credentials>(7), B<path_resolution>(7), "
821 "B<symlink>(7)"
822 msgstr ""
823
824 #. type: TH
825 #: build/C/man2/alarm.2:30
826 #, no-wrap
827 msgid "ALARM"
828 msgstr ""
829
830 #. type: TH
831 #: build/C/man2/alarm.2:30
832 #, no-wrap
833 msgid "2014-02-23"
834 msgstr ""
835
836 #. type: Plain text
837 #: build/C/man2/alarm.2:33
838 msgid "alarm - set an alarm clock for delivery of a signal"
839 msgstr ""
840
841 #. type: Plain text
842 #: build/C/man2/alarm.2:38
843 #, no-wrap
844 msgid "B<unsigned int alarm(unsigned int >I<seconds>B<);>\n"
845 msgstr ""
846
847 #. type: Plain text
848 #: build/C/man2/alarm.2:46
849 msgid ""
850 "B<alarm>()  arranges for a B<SIGALRM> signal to be delivered to the calling "
851 "process in I<seconds> seconds."
852 msgstr ""
853
854 #. type: Plain text
855 #: build/C/man2/alarm.2:50
856 msgid "If I<seconds> is zero, any pending alarm is canceled."
857 msgstr ""
858
859 #. type: Plain text
860 #: build/C/man2/alarm.2:54
861 msgid "In any event any previously set B<alarm>()  is canceled."
862 msgstr ""
863
864 #. type: Plain text
865 #: build/C/man2/alarm.2:59
866 msgid ""
867 "B<alarm>()  returns the number of seconds remaining until any previously "
868 "scheduled alarm was due to be delivered, or zero if there was no previously "
869 "scheduled alarm."
870 msgstr ""
871
872 #. type: Plain text
873 #: build/C/man2/alarm.2:61
874 msgid "SVr4, POSIX.1-2001, 4.3BSD."
875 msgstr ""
876
877 #. type: Plain text
878 #: build/C/man2/alarm.2:67
879 msgid ""
880 "B<alarm>()  and B<setitimer>(2)  share the same timer; calls to one will "
881 "interfere with use of the other."
882 msgstr ""
883
884 #. type: Plain text
885 #: build/C/man2/alarm.2:74
886 msgid ""
887 "Alarms created by B<alarm>()  are preserved across B<execve>(2)  and are not "
888 "inherited by children created via B<fork>(2)."
889 msgstr ""
890
891 #. type: Plain text
892 #: build/C/man2/alarm.2:83
893 msgid ""
894 "B<sleep>(3)  may be implemented using B<SIGALRM>; mixing calls to B<alarm>()  "
895 "and B<sleep>(3)  is a bad idea."
896 msgstr ""
897
898 #. type: Plain text
899 #: build/C/man2/alarm.2:86
900 msgid ""
901 "Scheduling delays can, as ever, cause the execution of the process to be "
902 "delayed by an arbitrary amount of time."
903 msgstr ""
904
905 #. type: Plain text
906 #: build/C/man2/alarm.2:94
907 msgid ""
908 "B<gettimeofday>(2), B<pause>(2), B<select>(2), B<setitimer>(2), "
909 "B<sigaction>(2), B<signal>(2), B<sleep>(3), B<time>(7)"
910 msgstr ""
911
912 #. type: TH
913 #: build/C/man2/brk.2:29
914 #, no-wrap
915 msgid "BRK"
916 msgstr ""
917
918 #. type: Plain text
919 #: build/C/man2/brk.2:32
920 msgid "brk, sbrk - change data segment size"
921 msgstr ""
922
923 #. type: Plain text
924 #: 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:30
925 msgid "B<#include E<lt>unistd.hE<gt>>"
926 msgstr ""
927
928 #. type: Plain text
929 #: build/C/man2/brk.2:36
930 msgid "B<int brk(void *>I<addr>B<);>"
931 msgstr ""
932
933 #. type: Plain text
934 #: build/C/man2/brk.2:38
935 msgid "B<void *sbrk(intptr_t >I<increment>B<);>"
936 msgstr ""
937
938 #. type: Plain text
939 #: build/C/man2/brk.2:46
940 msgid "B<brk>(), B<sbrk>():"
941 msgstr ""
942
943 #. type: TP
944 #: build/C/man2/brk.2:49 build/C/man3/getcwd.3:60 build/C/man3/getdtablesize.3:44 build/C/man2/getpagesize.2:42 build/C/man3/ualarm.3:43 build/C/man3/usleep.3:52 build/C/man2/vfork.2:47
945 #, no-wrap
946 msgid "Since glibc 2.12:"
947 msgstr ""
948
949 #. type: Plain text
950 #: build/C/man2/brk.2:56
951 #, no-wrap
952 msgid ""
953 "_BSD_SOURCE || _SVID_SOURCE ||\n"
954 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
955 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
956 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
957 msgstr ""
958
959 #. type: Plain text
960 #: build/C/man2/brk.2:61
961 msgid ""
962 "Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ "
963 "500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
964 msgstr ""
965
966 #. type: Plain text
967 #: build/C/man2/brk.2:76
968 msgid ""
969 "B<brk>()  and B<sbrk>()  change the location of the I<program break>, which "
970 "defines the end of the process's data segment (i.e., the program break is "
971 "the first location after the end of the uninitialized data segment).  "
972 "Increasing the program break has the effect of allocating memory to the "
973 "process; decreasing the break deallocates memory."
974 msgstr ""
975
976 #. type: Plain text
977 #: build/C/man2/brk.2:83
978 msgid ""
979 "B<brk>()  sets the end of the data segment to the value specified by "
980 "I<addr>, when that value is reasonable, the system has enough memory, and "
981 "the process does not exceed its maximum data size (see B<setrlimit>(2))."
982 msgstr ""
983
984 #. type: Plain text
985 #: build/C/man2/brk.2:93
986 msgid ""
987 "B<sbrk>()  increments the program's data space by I<increment> bytes.  "
988 "Calling B<sbrk>()  with an I<increment> of 0 can be used to find the current "
989 "location of the program break."
990 msgstr ""
991
992 #. type: Plain text
993 #: build/C/man2/brk.2:101
994 msgid ""
995 "On success, B<brk>()  returns zero.  On error, -1 is returned, and I<errno> "
996 "is set to B<ENOMEM>."
997 msgstr ""
998
999 #. type: Plain text
1000 #: build/C/man2/brk.2:113
1001 msgid ""
1002 "On success, B<sbrk>()  returns the previous program break.  (If the break "
1003 "was increased, then this value is a pointer to the start of the newly "
1004 "allocated memory).  On error, I<(void\\ *)\\ -1> is returned, and I<errno> "
1005 "is set to B<ENOMEM>."
1006 msgstr ""
1007
1008 #
1009 #.  .BR brk ()
1010 #.  and
1011 #.  .BR sbrk ()
1012 #.  are not defined in the C Standard and are deliberately excluded from the
1013 #.  POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
1014 #. type: Plain text
1015 #: build/C/man2/brk.2:121
1016 msgid "4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001."
1017 msgstr ""
1018
1019 #. type: Plain text
1020 #: build/C/man2/brk.2:130
1021 msgid ""
1022 "Avoid using B<brk>()  and B<sbrk>(): the B<malloc>(3)  memory allocation "
1023 "package is the portable and comfortable way of allocating memory."
1024 msgstr ""
1025
1026 #.  One sees
1027 #.  \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
1028 #.  \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
1029 #.  \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
1030 #.  \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
1031 #.  Tru64 5.1, glibc2.2).
1032 #. type: Plain text
1033 #: build/C/man2/brk.2:140
1034 msgid ""
1035 "Various systems use various types for the argument of B<sbrk>().  Common are "
1036 "I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>."
1037 msgstr ""
1038
1039 #. type: Plain text
1040 #: build/C/man2/brk.2:156
1041 msgid ""
1042 "The return value described above for B<brk>()  is the behavior provided by "
1043 "the glibc wrapper function for the Linux B<brk>()  system call.  (On most "
1044 "other implementations, the return value from B<brk>()  is the same; this "
1045 "return value was also specified in SUSv2.)  However, the actual Linux system "
1046 "call returns the new program break on success.  On failure, the system call "
1047 "returns the current break.  The glibc wrapper function does some work (i.e., "
1048 "checks whether the new break is less than I<addr>)  to provide the 0 and -1 "
1049 "return values described above."
1050 msgstr ""
1051
1052 #. type: Plain text
1053 #: build/C/man2/brk.2:163
1054 msgid ""
1055 "On Linux, B<sbrk>()  is implemented as a library function that uses the "
1056 "B<brk>()  system call, and does some internal bookkeeping so that it can "
1057 "return the old break value."
1058 msgstr ""
1059
1060 #. type: Plain text
1061 #: build/C/man2/brk.2:167
1062 msgid "B<execve>(2), B<getrlimit>(2), B<end>(3), B<malloc>(3)"
1063 msgstr ""
1064
1065 #. type: TH
1066 #: build/C/man2/chdir.2:33
1067 #, no-wrap
1068 msgid "CHDIR"
1069 msgstr ""
1070
1071 #. type: TH
1072 #: build/C/man2/chdir.2:33
1073 #, no-wrap
1074 msgid "2010-11-25"
1075 msgstr ""
1076
1077 #. type: Plain text
1078 #: build/C/man2/chdir.2:36
1079 msgid "chdir, fchdir - change working directory"
1080 msgstr ""
1081
1082 #. type: Plain text
1083 #: build/C/man2/chdir.2:40
1084 msgid "B<int chdir(const char *>I<path>B<);>"
1085 msgstr ""
1086
1087 #. type: Plain text
1088 #: build/C/man2/chdir.2:42
1089 msgid "B<int fchdir(int >I<fd>B<);>"
1090 msgstr ""
1091
1092 #. type: Plain text
1093 #: build/C/man2/chdir.2:49
1094 msgid "B<fchdir>():"
1095 msgstr ""
1096
1097 #. type: Plain text
1098 #: 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
1099 msgid ""
1100 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
1101 "_XOPEN_SOURCE_EXTENDED"
1102 msgstr ""
1103
1104 #. type: Plain text
1105 #: 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
1106 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1107 msgstr ""
1108
1109 #. type: Plain text
1110 #: build/C/man2/chdir.2:64
1111 msgid ""
1112 "B<chdir>()  changes the current working directory of the calling process to "
1113 "the directory specified in I<path>."
1114 msgstr ""
1115
1116 #. type: Plain text
1117 #: build/C/man2/chdir.2:70
1118 msgid ""
1119 "B<fchdir>()  is identical to B<chdir>(); the only difference is that the "
1120 "directory is given as an open file descriptor."
1121 msgstr ""
1122
1123 #. type: Plain text
1124 #: 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
1125 msgid ""
1126 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1127 "appropriately."
1128 msgstr ""
1129
1130 #. type: Plain text
1131 #: build/C/man2/chdir.2:81
1132 msgid ""
1133 "Depending on the filesystem, other errors can be returned.  The more general "
1134 "errors for B<chdir>()  are listed below:"
1135 msgstr ""
1136
1137 #. type: Plain text
1138 #: build/C/man2/chdir.2:87
1139 msgid ""
1140 "Search permission is denied for one of the components of I<path>.  (See also "
1141 "B<path_resolution>(7).)"
1142 msgstr ""
1143
1144 #. type: Plain text
1145 #: build/C/man2/chdir.2:91 build/C/man2/chroot.2:109
1146 msgid "I<path> points outside your accessible address space."
1147 msgstr ""
1148
1149 #. type: Plain text
1150 #: build/C/man2/chdir.2:98 build/C/man2/chroot.2:116
1151 msgid "Too many symbolic links were encountered in resolving I<path>."
1152 msgstr ""
1153
1154 #. type: Plain text
1155 #: build/C/man2/chdir.2:102 build/C/man2/chroot.2:120
1156 msgid "I<path> is too long."
1157 msgstr ""
1158
1159 #. type: Plain text
1160 #: build/C/man2/chdir.2:105 build/C/man2/chmod.2:266 build/C/man2/chown.2:256 build/C/man2/chroot.2:123
1161 msgid "The file does not exist."
1162 msgstr ""
1163
1164 #. type: Plain text
1165 #: build/C/man2/chdir.2:113 build/C/man2/chroot.2:131
1166 msgid "A component of I<path> is not a directory."
1167 msgstr ""
1168
1169 #. type: Plain text
1170 #: build/C/man2/chdir.2:117
1171 msgid "The general errors for B<fchdir>()  are listed below:"
1172 msgstr ""
1173
1174 #. type: Plain text
1175 #: build/C/man2/chdir.2:121
1176 msgid "Search permission was denied on the directory open on I<fd>."
1177 msgstr ""
1178
1179 #. type: Plain text
1180 #: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:91
1181 msgid "I<fd> is not a valid file descriptor."
1182 msgstr ""
1183
1184 #. type: Plain text
1185 #: build/C/man2/chdir.2:127
1186 msgid "SVr4, 4.4BSD, POSIX.1-2001."
1187 msgstr ""
1188
1189 #. type: Plain text
1190 #: build/C/man2/chdir.2:130
1191 msgid ""
1192 "The current working directory is the starting point for interpreting "
1193 "relative pathnames (those not starting with \\(aq/\\(aq)."
1194 msgstr ""
1195
1196 #. type: Plain text
1197 #: build/C/man2/chdir.2:136
1198 msgid ""
1199 "A child process created via B<fork>(2)  inherits its parent's current "
1200 "working directory.  The current working directory is left unchanged by "
1201 "B<execve>(2)."
1202 msgstr ""
1203
1204 #. type: Plain text
1205 #: build/C/man2/chdir.2:139
1206 msgid "B<chroot>(2), B<getcwd>(3), B<path_resolution>(7)"
1207 msgstr ""
1208
1209 #. type: TH
1210 #: build/C/man2/chmod.2:32
1211 #, no-wrap
1212 msgid "CHMOD"
1213 msgstr ""
1214
1215 #. type: Plain text
1216 #: build/C/man2/chmod.2:35
1217 msgid "chmod, fchmod, fchmodat - change permissions of a file"
1218 msgstr ""
1219
1220 #. type: Plain text
1221 #: build/C/man2/chmod.2:38
1222 #, no-wrap
1223 msgid "B<#include E<lt>sys/stat.hE<gt>>\n"
1224 msgstr ""
1225
1226 #. type: Plain text
1227 #: build/C/man2/chmod.2:40
1228 #, no-wrap
1229 msgid "B<int chmod(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
1230 msgstr ""
1231
1232 #. type: Plain text
1233 #: build/C/man2/chmod.2:42
1234 #, no-wrap
1235 msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>\n"
1236 msgstr ""
1237
1238 #. type: Plain text
1239 #: build/C/man2/chmod.2:45
1240 #, no-wrap
1241 msgid ""
1242 "B<#include E<lt>fcntl.hE<gt>>           /* Definition of AT_* constants */\n"
1243 "B<#include E<lt>sys/stat.hE<gt>>\n"
1244 msgstr ""
1245
1246 #. type: Plain text
1247 #: build/C/man2/chmod.2:48
1248 #, no-wrap
1249 msgid ""
1250 "B<int fchmodat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
1251 ">I<mode>B<, int >I<flags>B<);>\n"
1252 msgstr ""
1253
1254 #. type: Plain text
1255 #: build/C/man2/chmod.2:58
1256 msgid "B<fchmod>():"
1257 msgstr ""
1258
1259 #. type: Plain text
1260 #: build/C/man2/chmod.2:68
1261 msgid "B<fchmodat>():"
1262 msgstr ""
1263
1264 #. type: Plain text
1265 #: build/C/man2/chmod.2:88
1266 msgid ""
1267 "The B<chmod>()  and B<fchmod>()  system calls change the permissions of a "
1268 "file.  They differ only in how the file is specified:"
1269 msgstr ""
1270
1271 #. type: IP
1272 #: 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
1273 #, no-wrap
1274 msgid "*"
1275 msgstr ""
1276
1277 #. type: Plain text
1278 #: build/C/man2/chmod.2:93
1279 msgid ""
1280 "B<chmod>()  changes the permissions of the file specified whose pathname is "
1281 "given in I<pathname>, which is dereferenced if it is a symbolic link."
1282 msgstr ""
1283
1284 #. type: Plain text
1285 #: build/C/man2/chmod.2:97
1286 msgid ""
1287 "B<fchmod>()  changes the permissions of the file referred to by the open "
1288 "file descriptor I<fd>."
1289 msgstr ""
1290
1291 #. type: Plain text
1292 #: build/C/man2/chmod.2:102
1293 msgid ""
1294 "The new file permissions are specified in I<mode>, which is a bit mask "
1295 "created by ORing together zero or more of the following:"
1296 msgstr ""
1297
1298 #. type: TP
1299 #: build/C/man2/chmod.2:102
1300 #, no-wrap
1301 msgid "B<S_ISUID>  (04000)"
1302 msgstr ""
1303
1304 #. type: Plain text
1305 #: build/C/man2/chmod.2:106
1306 msgid "set-user-ID (set process effective user ID on B<execve>(2))"
1307 msgstr ""
1308
1309 #. type: TP
1310 #: build/C/man2/chmod.2:106
1311 #, no-wrap
1312 msgid "B<S_ISGID>  (02000)"
1313 msgstr ""
1314
1315 #. type: Plain text
1316 #: build/C/man2/chmod.2:116
1317 msgid ""
1318 "set-group-ID (set process effective group ID on B<execve>(2); mandatory "
1319 "locking, as described in B<fcntl>(2); take a new file's group from parent "
1320 "directory, as described in B<chown>(2)  and B<mkdir>(2))"
1321 msgstr ""
1322
1323 #. type: TP
1324 #: build/C/man2/chmod.2:116
1325 #, no-wrap
1326 msgid "B<S_ISVTX>  (01000)"
1327 msgstr ""
1328
1329 #. type: Plain text
1330 #: build/C/man2/chmod.2:120
1331 msgid "sticky bit (restricted deletion flag, as described in B<unlink>(2))"
1332 msgstr ""
1333
1334 #. type: TP
1335 #: build/C/man2/chmod.2:120
1336 #, no-wrap
1337 msgid "B<S_IRUSR>  (00400)"
1338 msgstr ""
1339
1340 #. type: Plain text
1341 #: build/C/man2/chmod.2:123
1342 msgid "read by owner"
1343 msgstr ""
1344
1345 #. type: TP
1346 #: build/C/man2/chmod.2:123
1347 #, no-wrap
1348 msgid "B<S_IWUSR>  (00200)"
1349 msgstr ""
1350
1351 #. type: Plain text
1352 #: build/C/man2/chmod.2:126
1353 msgid "write by owner"
1354 msgstr ""
1355
1356 #. type: TP
1357 #: build/C/man2/chmod.2:126
1358 #, no-wrap
1359 msgid "B<S_IXUSR>  (00100)"
1360 msgstr ""
1361
1362 #. type: Plain text
1363 #: build/C/man2/chmod.2:130
1364 msgid ""
1365 "execute/search by owner (\"search\" applies for directories, and means that "
1366 "entries within the directory can be accessed)"
1367 msgstr ""
1368
1369 #. type: TP
1370 #: build/C/man2/chmod.2:130
1371 #, no-wrap
1372 msgid "B<S_IRGRP>  (00040)"
1373 msgstr ""
1374
1375 #. type: Plain text
1376 #: build/C/man2/chmod.2:133
1377 msgid "read by group"
1378 msgstr ""
1379
1380 #. type: TP
1381 #: build/C/man2/chmod.2:133
1382 #, no-wrap
1383 msgid "B<S_IWGRP>  (00020)"
1384 msgstr ""
1385
1386 #. type: Plain text
1387 #: build/C/man2/chmod.2:136
1388 msgid "write by group"
1389 msgstr ""
1390
1391 #. type: TP
1392 #: build/C/man2/chmod.2:136
1393 #, no-wrap
1394 msgid "B<S_IXGRP>  (00010)"
1395 msgstr ""
1396
1397 #. type: Plain text
1398 #: build/C/man2/chmod.2:139
1399 msgid "execute/search by group"
1400 msgstr ""
1401
1402 #. type: TP
1403 #: build/C/man2/chmod.2:139
1404 #, no-wrap
1405 msgid "B<S_IROTH>  (00004)"
1406 msgstr ""
1407
1408 #. type: Plain text
1409 #: build/C/man2/chmod.2:142
1410 msgid "read by others"
1411 msgstr ""
1412
1413 #. type: TP
1414 #: build/C/man2/chmod.2:142
1415 #, no-wrap
1416 msgid "B<S_IWOTH>  (00002)"
1417 msgstr ""
1418
1419 #. type: Plain text
1420 #: build/C/man2/chmod.2:145
1421 msgid "write by others"
1422 msgstr ""
1423
1424 #. type: TP
1425 #: build/C/man2/chmod.2:145
1426 #, no-wrap
1427 msgid "B<S_IXOTH>  (00001)"
1428 msgstr ""
1429
1430 #. type: Plain text
1431 #: build/C/man2/chmod.2:148
1432 msgid "execute/search by others"
1433 msgstr ""
1434
1435 #. type: Plain text
1436 #: build/C/man2/chmod.2:153
1437 msgid ""
1438 "The effective UID of the calling process must match the owner of the file, "
1439 "or the process must be privileged (Linux: it must have the B<CAP_FOWNER> "
1440 "capability)."
1441 msgstr ""
1442
1443 #. type: Plain text
1444 #: build/C/man2/chmod.2:162
1445 msgid ""
1446 "If the calling process is not privileged (Linux: does not have the "
1447 "B<CAP_FSETID> capability), and the group of the file does not match the "
1448 "effective group ID of the process or one of its supplementary group IDs, the "
1449 "B<S_ISGID> bit will be turned off, but this will not cause an error to be "
1450 "returned."
1451 msgstr ""
1452
1453 #. type: Plain text
1454 #: build/C/man2/chmod.2:174
1455 msgid ""
1456 "As a security measure, depending on the filesystem, the set-user-ID and "
1457 "set-group-ID execution bits may be turned off if a file is written.  (On "
1458 "Linux this occurs if the writing process does not have the B<CAP_FSETID> "
1459 "capability.)  On some filesystems, only the superuser can set the sticky "
1460 "bit, which may have a special meaning.  For the sticky bit, and for "
1461 "set-user-ID and set-group-ID bits on directories, see B<stat>(2)."
1462 msgstr ""
1463
1464 #. type: Plain text
1465 #: build/C/man2/chmod.2:182
1466 msgid ""
1467 "On NFS filesystems, restricting the permissions will immediately influence "
1468 "already open files, because the access control is done on the server, but "
1469 "open files are maintained by the client.  Widening the permissions may be "
1470 "delayed for other clients if attribute caching is enabled on them."
1471 msgstr ""
1472
1473 #. type: SS
1474 #: build/C/man2/chmod.2:182
1475 #, no-wrap
1476 msgid "fchmodat()"
1477 msgstr ""
1478
1479 #. type: Plain text
1480 #: build/C/man2/chmod.2:188
1481 msgid ""
1482 "The B<fchmodat>()  system call operates in exactly the same way as "
1483 "B<chmod>(), except for the differences described here."
1484 msgstr ""
1485
1486 #. type: Plain text
1487 #: build/C/man2/chmod.2:198
1488 msgid ""
1489 "If the pathname given in I<pathname> is relative, then it is interpreted "
1490 "relative to the directory referred to by the file descriptor I<dirfd> "
1491 "(rather than relative to the current working directory of the calling "
1492 "process, as is done by B<chmod>()  for a relative pathname)."
1493 msgstr ""
1494
1495 #. type: Plain text
1496 #: build/C/man2/chmod.2:210
1497 msgid ""
1498 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
1499 "then I<pathname> is interpreted relative to the current working directory of "
1500 "the calling process (like B<chmod>())."
1501 msgstr ""
1502
1503 #. type: Plain text
1504 #: build/C/man2/chmod.2:219
1505 msgid "I<flags> can either be 0, or include the following flag:"
1506 msgstr ""
1507
1508 #. type: Plain text
1509 #: build/C/man2/chmod.2:226
1510 msgid ""
1511 "If I<pathname> is a symbolic link, do not dereference it: instead operate on "
1512 "the link itself.  This flag is not currently implemented."
1513 msgstr ""
1514
1515 #. type: Plain text
1516 #: build/C/man2/chmod.2:231
1517 msgid "See B<openat>(2)  for an explanation of the need for B<fchmodat>()."
1518 msgstr ""
1519
1520 #. type: Plain text
1521 #: build/C/man2/chmod.2:239 build/C/man2/chown.2:232
1522 msgid ""
1523 "Depending on the filesystem, errors other than those listed below can be "
1524 "returned."
1525 msgstr ""
1526
1527 #. type: Plain text
1528 #: build/C/man2/chmod.2:243
1529 msgid "The more general errors for B<chmod>()  are listed below:"
1530 msgstr ""
1531
1532 #.  Also search permission is required on the final component,
1533 #.  maybe just to guarantee that it is a directory?
1534 #. type: Plain text
1535 #: build/C/man2/chmod.2:248 build/C/man2/chown.2:241 build/C/man2/chroot.2:105
1536 msgid ""
1537 "Search permission is denied on a component of the path prefix.  (See also "
1538 "B<path_resolution>(7).)"
1539 msgstr ""
1540
1541 #. type: Plain text
1542 #: build/C/man2/chmod.2:272 build/C/man2/chown.2:262 build/C/man2/truncate.2:165
1543 msgid "A component of the path prefix is not a directory."
1544 msgstr ""
1545
1546 #. type: TP
1547 #: 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
1548 #, no-wrap
1549 msgid "B<EPERM>"
1550 msgstr ""
1551
1552 #. type: Plain text
1553 #: build/C/man2/chmod.2:278
1554 msgid ""
1555 "The effective UID does not match the owner of the file, and the process is "
1556 "not privileged (Linux: it does not have the B<CAP_FOWNER> capability)."
1557 msgstr ""
1558
1559 #. type: Plain text
1560 #: build/C/man2/chmod.2:281 build/C/man2/chown.2:269 build/C/man2/truncate.2:178
1561 msgid "The named file resides on a read-only filesystem."
1562 msgstr ""
1563
1564 #. type: Plain text
1565 #: build/C/man2/chmod.2:285
1566 msgid "The general errors for B<fchmod>()  are listed below:"
1567 msgstr ""
1568
1569 #. type: Plain text
1570 #: build/C/man2/chmod.2:290
1571 msgid "The file descriptor I<fd> is not valid."
1572 msgstr ""
1573
1574 #. type: Plain text
1575 #: 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
1576 msgid "See above."
1577 msgstr ""
1578
1579 #. type: Plain text
1580 #: build/C/man2/chmod.2:306
1581 msgid ""
1582 "The same errors that occur for B<chmod>()  can also occur for "
1583 "B<fchmodat>().  The following additional errors can occur for B<fchmodat>():"
1584 msgstr ""
1585
1586 #. type: TP
1587 #: build/C/man2/chmod.2:320
1588 #, no-wrap
1589 msgid "B<ENOTSUP>"
1590 msgstr ""
1591
1592 #. type: Plain text
1593 #: build/C/man2/chmod.2:326
1594 msgid "I<flags> specified B<AT_SYMLINK_NOFOLLOW>, which is not supported."
1595 msgstr ""
1596
1597 #. type: Plain text
1598 #: build/C/man2/chmod.2:330
1599 msgid ""
1600 "B<fchmodat>()  was added to Linux in kernel 2.6.16; library support was "
1601 "added to glibc in version 2.4."
1602 msgstr ""
1603
1604 #. type: Plain text
1605 #: build/C/man2/chmod.2:334
1606 msgid "B<chmod>(), B<fchmod>(): 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008."
1607 msgstr ""
1608
1609 #. type: Plain text
1610 #: build/C/man2/chmod.2:337
1611 msgid "B<fchmodat>(): POSIX.1-2008."
1612 msgstr ""
1613
1614 #. type: Plain text
1615 #: build/C/man2/chmod.2:348
1616 msgid ""
1617 "The GNU C library B<fchmodat>()  wrapper function implements the "
1618 "POSIX-specified interface described in this page.  This interface differs "
1619 "from the underlying Linux system call, which does I<not> have a I<flags> "
1620 "argument."
1621 msgstr ""
1622
1623 #. type: Plain text
1624 #: build/C/man2/chmod.2:361
1625 msgid ""
1626 "On older kernels where B<fchmodat>()  is unavailable, the glibc wrapper "
1627 "function falls back to the use of B<chmod>().  When I<pathname> is a "
1628 "relative pathname, glibc constructs a pathname based on the symbolic link in "
1629 "I</proc/self/fd> that corresponds to the I<dirfd> argument."
1630 msgstr ""
1631
1632 #. type: Plain text
1633 #: build/C/man2/chmod.2:367
1634 msgid ""
1635 "B<chown>(2), B<execve>(2), B<open>(2), B<stat>(2), B<path_resolution>(7), "
1636 "B<symlink>(7)"
1637 msgstr ""
1638
1639 #. type: TH
1640 #: build/C/man2/chown.2:38
1641 #, no-wrap
1642 msgid "CHOWN"
1643 msgstr ""
1644
1645 #. type: Plain text
1646 #: build/C/man2/chown.2:41
1647 msgid "chown, fchown, lchown, fchownat - change ownership of a file"
1648 msgstr ""
1649
1650 #. type: Plain text
1651 #: build/C/man2/chown.2:46
1652 #, no-wrap
1653 msgid ""
1654 "B<int chown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
1655 ">I<group>B<);>\n"
1656 msgstr ""
1657
1658 #. type: Plain text
1659 #: build/C/man2/chown.2:48
1660 #, no-wrap
1661 msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>\n"
1662 msgstr ""
1663
1664 #. type: Plain text
1665 #: build/C/man2/chown.2:50
1666 #, no-wrap
1667 msgid ""
1668 "B<int lchown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
1669 ">I<group>B<);>\n"
1670 msgstr ""
1671
1672 #. type: Plain text
1673 #: build/C/man2/chown.2:56
1674 #, no-wrap
1675 msgid ""
1676 "B<int fchownat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
1677 "B<             uid_t >I<owner>B<, gid_t >I<group>B<, int >I<flags>B<);>\n"
1678 msgstr ""
1679
1680 #. type: Plain text
1681 #: build/C/man2/chown.2:66
1682 msgid "B<fchown>(), B<lchown>():"
1683 msgstr ""
1684
1685 #. type: Plain text
1686 #: build/C/man2/chown.2:76
1687 msgid "B<fchownat>():"
1688 msgstr ""
1689
1690 #. type: Plain text
1691 #: build/C/man2/chown.2:96
1692 msgid ""
1693 "These system calls change the owner and group of a file.  The B<chown>(), "
1694 "B<fchown>(), and B<lchown>()  system calls differ only in how the file is "
1695 "specified:"
1696 msgstr ""
1697
1698 #. type: Plain text
1699 #: build/C/man2/chown.2:101
1700 msgid ""
1701 "B<chown>()  changes the ownership of the file specified by I<pathname>, "
1702 "which is dereferenced if it is a symbolic link."
1703 msgstr ""
1704
1705 #. type: Plain text
1706 #: build/C/man2/chown.2:105
1707 msgid ""
1708 "B<fchown>()  changes the ownership of the file referred to by the open file "
1709 "descriptor I<fd>."
1710 msgstr ""
1711
1712 #. type: Plain text
1713 #: build/C/man2/chown.2:110
1714 msgid "B<lchown>()  is like B<chown>(), but does not dereference symbolic links."
1715 msgstr ""
1716
1717 #. type: Plain text
1718 #: build/C/man2/chown.2:119
1719 msgid ""
1720 "Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may "
1721 "change the owner of a file.  The owner of a file may change the group of the "
1722 "file to any group of which that owner is a member.  A privileged process "
1723 "(Linux: with B<CAP_CHOWN>)  may change the group arbitrarily."
1724 msgstr ""
1725
1726 #. type: Plain text
1727 #: build/C/man2/chown.2:125
1728 msgid "If the I<owner> or I<group> is specified as -1, then that ID is not changed."
1729 msgstr ""
1730
1731 #.  In Linux 2.0 kernels, superuser was like everyone else
1732 #.  In 2.2, up to 2.2.12, these bits were not cleared for superuser.
1733 #.  Since 2.2.13, superuser is once more like everyone else.
1734 #. type: Plain text
1735 #: build/C/man2/chown.2:145
1736 msgid ""
1737 "When the owner or group of an executable file are changed by an unprivileged "
1738 "user the B<S_ISUID> and B<S_ISGID> mode bits are cleared.  POSIX does not "
1739 "specify whether this also should happen when root does the B<chown>(); the "
1740 "Linux behavior depends on the kernel version.  In case of a "
1741 "non-group-executable file (i.e., one for which the B<S_IXGRP> bit is not "
1742 "set) the B<S_ISGID> bit indicates mandatory locking, and is not cleared by a "
1743 "B<chown>()."
1744 msgstr ""
1745
1746 #. type: SS
1747 #: build/C/man2/chown.2:145
1748 #, no-wrap
1749 msgid "fchownat()"
1750 msgstr ""
1751
1752 #. type: Plain text
1753 #: build/C/man2/chown.2:151
1754 msgid ""
1755 "The B<fchownat>()  system call operates in exactly the same way as "
1756 "B<chown>(), except for the differences described here."
1757 msgstr ""
1758
1759 #. type: Plain text
1760 #: build/C/man2/chown.2:161
1761 msgid ""
1762 "If the pathname given in I<pathname> is relative, then it is interpreted "
1763 "relative to the directory referred to by the file descriptor I<dirfd> "
1764 "(rather than relative to the current working directory of the calling "
1765 "process, as is done by B<chown>()  for a relative pathname)."
1766 msgstr ""
1767
1768 #. type: Plain text
1769 #: build/C/man2/chown.2:173
1770 msgid ""
1771 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
1772 "then I<pathname> is interpreted relative to the current working directory of "
1773 "the calling process (like B<chown>())."
1774 msgstr ""
1775
1776 #. type: Plain text
1777 #: build/C/man2/chown.2:184
1778 msgid ""
1779 "The I<flags> argument is a bit mask created by ORing together 0 or more of "
1780 "the following values;"
1781 msgstr ""
1782
1783 #. type: TP
1784 #: build/C/man2/chown.2:184
1785 #, no-wrap
1786 msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
1787 msgstr ""
1788
1789 #.  commit 65cfc6722361570bfe255698d9cd4dccaf47570d
1790 #.  Before glibc 2.16, defining _ATFILE_SOURCE sufficed
1791 #. type: Plain text
1792 #: build/C/man2/chown.2:207
1793 msgid ""
1794 "If I<pathname> is an empty string, operate on the file referred to by "
1795 "I<dirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> "
1796 "flag).  In this case, I<dirfd> can refer to any type of file, not just a "
1797 "directory.  If I<dirfd> is B<AT_FDCWD>, the call operates on the current "
1798 "working directory.  This flag is Linux-specific; define B<_GNU_SOURCE> to "
1799 "obtain its definition."
1800 msgstr ""
1801
1802 #. type: Plain text
1803 #: build/C/man2/chown.2:219
1804 msgid ""
1805 "If I<pathname> is a symbolic link, do not dereference it: instead operate on "
1806 "the link itself, like B<lchown>().  (By default, B<fchownat>()  dereferences "
1807 "symbolic links, like B<chown>().)"
1808 msgstr ""
1809
1810 #. type: Plain text
1811 #: build/C/man2/chown.2:224
1812 msgid "See B<openat>(2)  for an explanation of the need for B<fchownat>()."
1813 msgstr ""
1814
1815 #. type: Plain text
1816 #: build/C/man2/chown.2:236
1817 msgid "The more general errors for B<chown>()  are listed below."
1818 msgstr ""
1819
1820 #. type: Plain text
1821 #: build/C/man2/chown.2:266
1822 msgid ""
1823 "The calling process did not have the required permissions (see above) to "
1824 "change owner and/or group."
1825 msgstr ""
1826
1827 #. type: Plain text
1828 #: build/C/man2/chown.2:273
1829 msgid "The general errors for B<fchown>()  are listed below:"
1830 msgstr ""
1831
1832 #. type: Plain text
1833 #: build/C/man2/chown.2:276
1834 msgid "The descriptor is not valid."
1835 msgstr ""
1836
1837 #. type: Plain text
1838 #: build/C/man2/chown.2:279
1839 msgid "A low-level I/O error occurred while modifying the inode."
1840 msgstr ""
1841
1842 #. type: Plain text
1843 #: build/C/man2/chown.2:295
1844 msgid ""
1845 "The same errors that occur for B<chown>()  can also occur for "
1846 "B<fchownat>().  The following additional errors can occur for B<fchownat>():"
1847 msgstr ""
1848
1849 #. type: Plain text
1850 #: build/C/man2/chown.2:313
1851 msgid ""
1852 "B<fchownat>()  was added to Linux in kernel 2.6.16; library support was "
1853 "added to glibc in version 2.4."
1854 msgstr ""
1855
1856 #. type: Plain text
1857 #: build/C/man2/chown.2:318
1858 msgid ""
1859 "B<chown>(), B<fchown>(), B<lchown>(): 4.4BSD, SVr4, POSIX.1-2001, "
1860 "POSIX.1-2008."
1861 msgstr ""
1862
1863 #.  chown():
1864 #.  SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no
1865 #.  ENOMEM.  POSIX.1 does not document ENOMEM or ELOOP error conditions.
1866 #.  fchown():
1867 #.  SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK
1868 #.  error conditions.
1869 #. type: Plain text
1870 #: build/C/man2/chown.2:327
1871 msgid ""
1872 "The 4.4BSD version can be used only by the superuser (that is, ordinary "
1873 "users cannot give away files)."
1874 msgstr ""
1875
1876 #. type: Plain text
1877 #: build/C/man2/chown.2:330
1878 msgid "B<fchownat>(): POSIX.1-2008."
1879 msgstr ""
1880
1881 #. type: SS
1882 #: build/C/man2/chown.2:331
1883 #, no-wrap
1884 msgid "Ownership of new files"
1885 msgstr ""
1886
1887 #. type: Plain text
1888 #: build/C/man2/chown.2:353
1889 msgid ""
1890 "When a new file is created (by, for example, B<open>(2)  or B<mkdir>(2)), "
1891 "its owner is made the same as the filesystem user ID of the creating "
1892 "process.  The group of the file depends on a range of factors, including the "
1893 "type of filesystem, the options used to mount the filesystem, and whether or "
1894 "not the set-group-ID permission bit is enabled on the parent directory.  If "
1895 "the filesystem supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
1896 "bsdgroups>)  and I<-o\\ nogrpid> (or, synonymously I<-o\\ sysvgroups>)  "
1897 "B<mount>(8)  options, then the rules are as follows:"
1898 msgstr ""
1899
1900 #. type: Plain text
1901 #: build/C/man2/chown.2:358
1902 msgid ""
1903 "If the filesystem is mounted with I<-o\\ grpid>, then the group of a new "
1904 "file is made the same as that of the parent directory."
1905 msgstr ""
1906
1907 #. type: Plain text
1908 #: build/C/man2/chown.2:364
1909 msgid ""
1910 "If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1911 "is disabled on the parent directory, then the group of a new file is made "
1912 "the same as the process's filesystem GID."
1913 msgstr ""
1914
1915 #. type: Plain text
1916 #: build/C/man2/chown.2:370
1917 msgid ""
1918 "If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1919 "is enabled on the parent directory, then the group of a new file is made the "
1920 "same as that of the parent directory."
1921 msgstr ""
1922
1923 #. type: Plain text
1924 #: build/C/man2/chown.2:380
1925 msgid ""
1926 "As at Linux 2.6.25, the I<-o\\ grpid> and I<-o\\ nogrpid> mount options are "
1927 "supported by ext2, ext3, ext4, and XFS.  Filesystems that don't support "
1928 "these mount options follow the I<-o\\ nogrpid> rules."
1929 msgstr ""
1930
1931 #. type: Plain text
1932 #: build/C/man2/chown.2:395
1933 msgid ""
1934 "On older kernels where B<fchownat>()  is unavailable, the glibc wrapper "
1935 "function falls back to the use of B<chown>()  and B<lchown>().  When "
1936 "I<pathname> is a relative pathname, glibc constructs a pathname based on the "
1937 "symbolic link in I</proc/self/fd> that corresponds to the I<dirfd> argument."
1938 msgstr ""
1939
1940 #. type: SS
1941 #: build/C/man2/chown.2:395
1942 #, no-wrap
1943 msgid "NFS"
1944 msgstr ""
1945
1946 #. type: Plain text
1947 #: build/C/man2/chown.2:408
1948 msgid ""
1949 "The B<chown>()  semantics are deliberately violated on NFS filesystems which "
1950 "have UID mapping enabled.  Additionally, the semantics of all system calls "
1951 "which access the file contents are violated, because B<chown>()  may cause "
1952 "immediate access revocation on already open files.  Client side caching may "
1953 "lead to a delay between the time where ownership have been changed to allow "
1954 "access for a user and the time where the file can actually be accessed by "
1955 "the user on other clients."
1956 msgstr ""
1957
1958 #. type: SS
1959 #: build/C/man2/chown.2:408
1960 #, no-wrap
1961 msgid "Historical details"
1962 msgstr ""
1963
1964 #. type: Plain text
1965 #: build/C/man2/chown.2:427
1966 msgid ""
1967 "The original Linux B<chown>(), B<fchown>(), and B<lchown>()  system calls "
1968 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
1969 "B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs.  The "
1970 "glibc B<chown>(), B<fchown>(), and B<lchown>()  wrapper functions "
1971 "transparently deal with the variations across kernel versions."
1972 msgstr ""
1973
1974 #. type: Plain text
1975 #: build/C/man2/chown.2:442
1976 msgid ""
1977 "In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>()  "
1978 "did not follow symbolic links.  Since Linux 2.1.81, B<chown>()  does follow "
1979 "symbolic links, and there is a new system call B<lchown>()  that does not "
1980 "follow symbolic links.  Since Linux 2.1.86, this new call (that has the same "
1981 "semantics as the old B<chown>())  has got the same syscall number, and "
1982 "B<chown>()  got the newly introduced number."
1983 msgstr ""
1984
1985 #. type: Plain text
1986 #: build/C/man2/chown.2:451
1987 msgid ""
1988 "The following program changes the ownership of the file named in its second "
1989 "command-line argument to the value specified in its first command-line "
1990 "argument.  The new owner can be specified either as a numeric user ID, or as "
1991 "a username (which is converted to a user ID by using B<getpwnam>(3)  to "
1992 "perform a lookup in the system password file)."
1993 msgstr ""
1994
1995 #. type: SS
1996 #: build/C/man2/chown.2:451
1997 #, no-wrap
1998 msgid "Program source"
1999 msgstr ""
2000
2001 #. type: Plain text
2002 #: build/C/man2/chown.2:457
2003 #, no-wrap
2004 msgid ""
2005 "#include E<lt>pwd.hE<gt>\n"
2006 "#include E<lt>stdio.hE<gt>\n"
2007 "#include E<lt>stdlib.hE<gt>\n"
2008 "#include E<lt>unistd.hE<gt>\n"
2009 msgstr ""
2010
2011 #. type: Plain text
2012 #: build/C/man2/chown.2:464
2013 #, no-wrap
2014 msgid ""
2015 "int\n"
2016 "main(int argc, char *argv[])\n"
2017 "{\n"
2018 "    uid_t uid;\n"
2019 "    struct passwd *pwd;\n"
2020 "    char *endptr;\n"
2021 msgstr ""
2022
2023 #. type: Plain text
2024 #: build/C/man2/chown.2:469
2025 #, no-wrap
2026 msgid ""
2027 "    if (argc != 3 || argv[1][0] == \\(aq\\e0\\(aq) {\n"
2028 "        fprintf(stderr, \"%s E<lt>ownerE<gt> E<lt>fileE<gt>\\en\", "
2029 "argv[0]);\n"
2030 "        exit(EXIT_FAILURE);\n"
2031 "    }\n"
2032 msgstr ""
2033
2034 #. type: Plain text
2035 #: build/C/man2/chown.2:471
2036 #, no-wrap
2037 msgid "    uid = strtol(argv[1], &endptr, 10);  /* Allow a numeric string */\n"
2038 msgstr ""
2039
2040 #. type: Plain text
2041 #: build/C/man2/chown.2:478
2042 #, no-wrap
2043 msgid ""
2044 "    if (*endptr != \\(aq\\e0\\(aq) {         /* Was not pure numeric string "
2045 "*/\n"
2046 "        pwd = getpwnam(argv[1]);   /* Try getting UID for username */\n"
2047 "        if (pwd == NULL) {\n"
2048 "            perror(\"getpwnam\");\n"
2049 "            exit(EXIT_FAILURE);\n"
2050 "        }\n"
2051 msgstr ""
2052
2053 #. type: Plain text
2054 #: build/C/man2/chown.2:481
2055 #, no-wrap
2056 msgid ""
2057 "        uid = pwd-E<gt>pw_uid;\n"
2058 "    }\n"
2059 msgstr ""
2060
2061 #. type: Plain text
2062 #: build/C/man2/chown.2:486
2063 #, no-wrap
2064 msgid ""
2065 "    if (chown(argv[2], uid, -1) == -1) {\n"
2066 "        perror(\"chown\");\n"
2067 "        exit(EXIT_FAILURE);\n"
2068 "    }\n"
2069 msgstr ""
2070
2071 #. type: Plain text
2072 #: build/C/man2/chown.2:489 build/C/man2/execve.2:677 build/C/man3/getopt.3:430 build/C/man3/getopt.3:515
2073 #, no-wrap
2074 msgid ""
2075 "    exit(EXIT_SUCCESS);\n"
2076 "}\n"
2077 msgstr ""
2078
2079 #. type: Plain text
2080 #: build/C/man2/chown.2:494
2081 msgid "B<chmod>(2), B<flock>(2), B<path_resolution>(7), B<symlink>(7)"
2082 msgstr ""
2083
2084 #. type: TH
2085 #: build/C/man2/chroot.2:33
2086 #, no-wrap
2087 msgid "CHROOT"
2088 msgstr ""
2089
2090 #. type: TH
2091 #: build/C/man2/chroot.2:33 build/C/man3/gethostid.3:29
2092 #, no-wrap
2093 msgid "2010-09-20"
2094 msgstr ""
2095
2096 #. type: Plain text
2097 #: build/C/man2/chroot.2:36
2098 msgid "chroot - change root directory"
2099 msgstr ""
2100
2101 #. type: Plain text
2102 #: build/C/man2/chroot.2:40
2103 msgid "B<int chroot(const char *>I<path>B<);>"
2104 msgstr ""
2105
2106 #. type: Plain text
2107 #: build/C/man2/chroot.2:47
2108 msgid "B<chroot>():"
2109 msgstr ""
2110
2111 #. type: TP
2112 #: build/C/man2/chroot.2:50
2113 #, no-wrap
2114 msgid "Since glibc 2.2.2:"
2115 msgstr ""
2116
2117 #. type: Plain text
2118 #: build/C/man2/chroot.2:57
2119 #, no-wrap
2120 msgid ""
2121 "_BSD_SOURCE ||\n"
2122 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
2123 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
2124 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
2125 msgstr ""
2126
2127 #. type: Plain text
2128 #: build/C/man2/chroot.2:60
2129 msgid "Before glibc 2.2.2: none"
2130 msgstr ""
2131
2132 #. type: Plain text
2133 #: build/C/man2/chroot.2:69
2134 msgid ""
2135 "B<chroot>()  changes the root directory of the calling process to that "
2136 "specified in I<path>.  This directory will be used for pathnames beginning "
2137 "with I</>.  The root directory is inherited by all children of the calling "
2138 "process."
2139 msgstr ""
2140
2141 #. type: Plain text
2142 #: build/C/man2/chroot.2:74
2143 msgid ""
2144 "Only a privileged process (Linux: one with the B<CAP_SYS_CHROOT> capability) "
2145 "may call B<chroot>()."
2146 msgstr ""
2147
2148 #. type: Plain text
2149 #: build/C/man2/chroot.2:77
2150 msgid ""
2151 "This call changes an ingredient in the pathname resolution process and does "
2152 "nothing else."
2153 msgstr ""
2154
2155 #. type: Plain text
2156 #: build/C/man2/chroot.2:83
2157 msgid ""
2158 "This call does not change the current working directory, so that after the "
2159 "call \\(aqI<.>\\(aq can be outside the tree rooted at \\(aqI</>\\(aq.  In "
2160 "particular, the superuser can escape from a \"chroot jail\" by doing:"
2161 msgstr ""
2162
2163 #. type: Plain text
2164 #: build/C/man2/chroot.2:86
2165 #, no-wrap
2166 msgid "    mkdir foo; chroot foo; cd ..\n"
2167 msgstr ""
2168
2169 #. type: Plain text
2170 #: build/C/man2/chroot.2:90
2171 msgid ""
2172 "This call does not close open file descriptors, and such file descriptors "
2173 "may allow access to files outside the chroot tree."
2174 msgstr ""
2175
2176 #. type: Plain text
2177 #: build/C/man2/chroot.2:98
2178 msgid ""
2179 "Depending on the filesystem, other errors can be returned.  The more general "
2180 "errors are listed below:"
2181 msgstr ""
2182
2183 #. type: Plain text
2184 #: build/C/man2/chroot.2:134
2185 msgid "The caller has insufficient privilege."
2186 msgstr ""
2187
2188 #.  SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions.
2189 #.  X/OPEN does not document EIO, ENOMEM or EFAULT error conditions.
2190 #. type: Plain text
2191 #: build/C/man2/chroot.2:139
2192 msgid ""
2193 "SVr4, 4.4BSD, SUSv2 (marked LEGACY).  This function is not part of "
2194 "POSIX.1-2001."
2195 msgstr ""
2196
2197 #. type: Plain text
2198 #: build/C/man2/chroot.2:145
2199 msgid ""
2200 "A child process created via B<fork>(2)  inherits its parent's root "
2201 "directory.  The root directory is left unchanged by B<execve>(2)."
2202 msgstr ""
2203
2204 #.  FIXME . eventually say something about containers,
2205 #.  virtual servers, etc.?
2206 #. type: Plain text
2207 #: build/C/man2/chroot.2:151
2208 msgid "FreeBSD has a stronger B<jail>()  system call."
2209 msgstr ""
2210
2211 #. type: Plain text
2212 #: build/C/man2/chroot.2:153
2213 msgid "B<chdir>(2), B<path_resolution>(7)"
2214 msgstr ""
2215
2216 #. type: TH
2217 #: build/C/man2/close.2:35
2218 #, no-wrap
2219 msgid "CLOSE"
2220 msgstr ""
2221
2222 #. type: TH
2223 #: build/C/man2/close.2:35
2224 #, no-wrap
2225 msgid "2013-12-30"
2226 msgstr ""
2227
2228 #. type: Plain text
2229 #: build/C/man2/close.2:38
2230 msgid "close - close a file descriptor"
2231 msgstr ""
2232
2233 #. type: Plain text
2234 #: build/C/man2/close.2:43
2235 #, no-wrap
2236 msgid "B<int close(int >I<fd>B<);>\n"
2237 msgstr ""
2238
2239 #. type: Plain text
2240 #: build/C/man2/close.2:53
2241 msgid ""
2242 "B<close>()  closes a file descriptor, so that it no longer refers to any "
2243 "file and may be reused.  Any record locks (see B<fcntl>(2))  held on the "
2244 "file it was associated with, and owned by the process, are removed "
2245 "(regardless of the file descriptor that was used to obtain the lock)."
2246 msgstr ""
2247
2248 #. type: Plain text
2249 #: build/C/man2/close.2:64
2250 msgid ""
2251 "If I<fd> is the last file descriptor referring to the underlying open file "
2252 "description (see B<open>(2)), the resources associated with the open file "
2253 "description are freed; if the descriptor was the last reference to a file "
2254 "which has been removed using B<unlink>(2), the file is deleted."
2255 msgstr ""
2256
2257 #. type: Plain text
2258 #: build/C/man2/close.2:70
2259 msgid ""
2260 "B<close>()  returns zero on success.  On error, -1 is returned, and I<errno> "
2261 "is set appropriately."
2262 msgstr ""
2263
2264 #. type: Plain text
2265 #: build/C/man2/close.2:75
2266 msgid "I<fd> isn't a valid open file descriptor."
2267 msgstr ""
2268
2269 #. type: TP
2270 #: 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
2271 #, no-wrap
2272 msgid "B<EINTR>"
2273 msgstr ""
2274
2275 #. type: Plain text
2276 #: build/C/man2/close.2:81
2277 msgid "The B<close>()  call was interrupted by a signal; see B<signal>(7)."
2278 msgstr ""
2279
2280 #. type: Plain text
2281 #: build/C/man2/close.2:87 build/C/man2/fork.2:228 build/C/man3/swab.3:79 build/C/man2/umask.2:97
2282 msgid "SVr4, 4.3BSD, POSIX.1-2001."
2283 msgstr ""
2284
2285 #. type: Plain text
2286 #: build/C/man2/close.2:107
2287 msgid ""
2288 "Not checking the return value of B<close>()  is a common but nevertheless "
2289 "serious programming error.  It is quite possible that errors on a previous "
2290 "B<write>(2)  operation are first reported at the final B<close>().  Not "
2291 "checking the return value when closing the file may lead to silent loss of "
2292 "data.  This can especially be observed with NFS and with disk quota.  Note "
2293 "that the return value should only be used for diagnostics.  In particular "
2294 "B<close>()  should not be retried after an B<EINTR> since this may cause a "
2295 "reused descriptor from another thread to be closed."
2296 msgstr ""
2297
2298 #. type: Plain text
2299 #: build/C/man2/close.2:116
2300 msgid ""
2301 "A successful close does not guarantee that the data has been successfully "
2302 "saved to disk, as the kernel defers writes.  It is not common for a "
2303 "filesystem to flush the buffers when the stream is closed.  If you need to "
2304 "be sure that the data is physically stored, use B<fsync>(2).  (It will "
2305 "depend on the disk hardware at this point.)"
2306 msgstr ""
2307
2308 #.  Date: Tue, 4 Sep 2007 13:57:35 +0200
2309 #.  From: Fredrik Noring <noring@nocrew.org>
2310 #.  One such race involves signals and ERESTARTSYS. If a file descriptor
2311 #.  in use by a system call is closed and then reused by e.g. an
2312 #.  independent open() in some unrelated thread, before the original system
2313 #.  call has restarted after ERESTARTSYS, the original system call will
2314 #.  later restart with the reused file descriptor. This is most likely a
2315 #.  serious programming error.
2316 #. type: Plain text
2317 #: build/C/man2/close.2:131
2318 msgid ""
2319 "It is probably unwise to close file descriptors while they may be in use by "
2320 "system calls in other threads in the same process.  Since a file descriptor "
2321 "may be reused, there are some obscure race conditions that may cause "
2322 "unintended side effects."
2323 msgstr ""
2324
2325 #. type: Plain text
2326 #: build/C/man2/close.2:137
2327 msgid ""
2328 "B<fcntl>(2), B<fsync>(2), B<open>(2), B<shutdown>(2), B<unlink>(2), "
2329 "B<fclose>(3)"
2330 msgstr ""
2331
2332 #. type: TH
2333 #: build/C/man3/confstr.3:32
2334 #, no-wrap
2335 msgid "CONFSTR"
2336 msgstr ""
2337
2338 #. type: TH
2339 #: build/C/man3/confstr.3:32
2340 #, no-wrap
2341 msgid "2014-03-20"
2342 msgstr ""
2343
2344 #. type: TH
2345 #: 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
2346 #, no-wrap
2347 msgid "GNU"
2348 msgstr ""
2349
2350 #. type: Plain text
2351 #: build/C/man3/confstr.3:35
2352 msgid "confstr - get configuration dependent string variables"
2353 msgstr ""
2354
2355 #. type: Plain text
2356 #: build/C/man3/confstr.3:40
2357 #, no-wrap
2358 msgid "B<size_t confstr(int >I<name>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
2359 msgstr ""
2360
2361 #. type: Plain text
2362 #: build/C/man3/confstr.3:49
2363 msgid "B<confstr>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
2364 msgstr ""
2365
2366 #. type: Plain text
2367 #: build/C/man3/confstr.3:52
2368 msgid "B<confstr>()  gets the value of configuration-dependent string variables."
2369 msgstr ""
2370
2371 #. type: Plain text
2372 #: build/C/man3/confstr.3:57
2373 msgid ""
2374 "The I<name> argument is the system variable to be queried.  The following "
2375 "variables are supported:"
2376 msgstr ""
2377
2378 #. type: TP
2379 #: build/C/man3/confstr.3:57
2380 #, no-wrap
2381 msgid "B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)"
2382 msgstr ""
2383
2384 #. type: Plain text
2385 #: build/C/man3/confstr.3:61
2386 msgid ""
2387 "A string which identifies the GNU C library version on this system (e.g, "
2388 "\"glibc 2.3.4\")."
2389 msgstr ""
2390
2391 #. type: TP
2392 #: build/C/man3/confstr.3:61
2393 #, no-wrap
2394 msgid "B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)"
2395 msgstr ""
2396
2397 #. type: Plain text
2398 #: build/C/man3/confstr.3:65
2399 msgid ""
2400 "A string which identifies the POSIX implementation supplied by this C "
2401 "library (e.g, \"NPTL 2.3.4\" or \"linuxthreads-0.10\")."
2402 msgstr ""
2403
2404 #. type: TP
2405 #: build/C/man3/confstr.3:65
2406 #, no-wrap
2407 msgid "B<_CS_PATH>"
2408 msgstr ""
2409
2410 #. type: Plain text
2411 #: build/C/man3/confstr.3:71
2412 msgid ""
2413 "A value for the B<PATH> variable which indicates where all the POSIX.2 "
2414 "standard utilities can be found."
2415 msgstr ""
2416
2417 #. type: Plain text
2418 #: build/C/man3/confstr.3:87
2419 msgid ""
2420 "If I<buf> is not NULL and I<len> is not zero, B<confstr>()  copies the value "
2421 "of the string to I<buf> truncated to I<len - 1> bytes if necessary, with a "
2422 "null byte (\\(aq\\e0\\(aq) as terminator.  This can be detected by comparing "
2423 "the return value of B<confstr>()  against I<len>."
2424 msgstr ""
2425
2426 #. type: Plain text
2427 #: build/C/man3/confstr.3:95
2428 msgid ""
2429 "If I<len> is zero and I<buf> is NULL, B<confstr>()  just returns the value "
2430 "as defined below."
2431 msgstr ""
2432
2433 #. type: Plain text
2434 #: build/C/man3/confstr.3:107
2435 msgid ""
2436 "If I<name> is a valid configuration variable, B<confstr>()  returns the "
2437 "number of bytes (including the terminating null byte)  that would be "
2438 "required to hold the entire value of that variable.  This value may be "
2439 "greater than I<len>, which means that the value in I<buf> is truncated."
2440 msgstr ""
2441
2442 #. type: Plain text
2443 #: build/C/man3/confstr.3:122
2444 msgid ""
2445 "If I<name> is a valid configuration variable, but that variable does not "
2446 "have a value, then B<confstr>()  returns 0.  If I<name> does not correspond "
2447 "to a valid configuration variable, B<confstr>()  returns 0, and I<errno> is "
2448 "set to B<EINVAL>."
2449 msgstr ""
2450
2451 #. type: Plain text
2452 #: build/C/man3/confstr.3:128
2453 msgid "The value of I<name> is invalid."
2454 msgstr ""
2455
2456 #. type: Plain text
2457 #: 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
2458 msgid "POSIX.1-2001."
2459 msgstr ""
2460
2461 #. type: Plain text
2462 #: build/C/man3/confstr.3:133
2463 msgid ""
2464 "The following code fragment determines the path where to find the POSIX.2 "
2465 "system utilities:"
2466 msgstr ""
2467
2468 #. type: Plain text
2469 #: build/C/man3/confstr.3:139
2470 #, no-wrap
2471 msgid ""
2472 "char *pathbuf;\n"
2473 "size_t n;\n"
2474 msgstr ""
2475
2476 #. type: Plain text
2477 #: build/C/man3/confstr.3:145
2478 #, no-wrap
2479 msgid ""
2480 "n = confstr(_CS_PATH, NULL, (size_t) 0);\n"
2481 "pathbuf = malloc(n);\n"
2482 "if (pathbuf == NULL)\n"
2483 "    abort();\n"
2484 "confstr(_CS_PATH, pathbuf, n);\n"
2485 msgstr ""
2486
2487 #. type: Plain text
2488 #: build/C/man3/confstr.3:154
2489 msgid ""
2490 "B<getconf>(1), B<sh>(1), B<exec>(3), B<fpathconf>(3)  B<sysconf>(3)  "
2491 "B<pathconf>(3)  B<system>(3)"
2492 msgstr ""
2493
2494 #. type: TH
2495 #: build/C/man3/crypt.3:36
2496 #, no-wrap
2497 msgid "CRYPT"
2498 msgstr ""
2499
2500 #. type: TH
2501 #: build/C/man3/crypt.3:36
2502 #, no-wrap
2503 msgid "2014-02-26"
2504 msgstr ""
2505
2506 #. type: Plain text
2507 #: build/C/man3/crypt.3:39
2508 msgid "crypt, crypt_r - password and data encryption"
2509 msgstr ""
2510
2511 #. type: Plain text
2512 #: build/C/man3/crypt.3:42
2513 #, no-wrap
2514 msgid "B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
2515 msgstr ""
2516
2517 #. type: Plain text
2518 #: build/C/man3/crypt.3:46
2519 #, no-wrap
2520 msgid "B<char *crypt(const char *>I<key>B<, const char *>I<salt>B<);>\n"
2521 msgstr ""
2522
2523 #. type: Plain text
2524 #: build/C/man3/crypt.3:48
2525 #, no-wrap
2526 msgid "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2527 msgstr ""
2528
2529 #. type: Plain text
2530 #: build/C/man3/crypt.3:50
2531 #, no-wrap
2532 msgid "B<#include E<lt>crypt.hE<gt>>\n"
2533 msgstr ""
2534
2535 #. type: Plain text
2536 #: build/C/man3/crypt.3:53
2537 #, no-wrap
2538 msgid ""
2539 "B<char *crypt_r(const char *>I<key>B<, const char *>I<salt>B<,>\n"
2540 "B<              struct crypt_data *>I<data>B<);>\n"
2541 msgstr ""
2542
2543 #. type: Plain text
2544 #: build/C/man3/crypt.3:56
2545 msgid "Link with I<-lcrypt>."
2546 msgstr ""
2547
2548 #. type: Plain text
2549 #: build/C/man3/crypt.3:62
2550 msgid ""
2551 "B<crypt>()  is the password encryption function.  It is based on the Data "
2552 "Encryption Standard algorithm with variations intended (among other things) "
2553 "to discourage use of hardware implementations of a key search."
2554 msgstr ""
2555
2556 #. type: Plain text
2557 #: build/C/man3/crypt.3:65
2558 msgid "I<key> is a user's typed password."
2559 msgstr ""
2560
2561 #. type: Plain text
2562 #: build/C/man3/crypt.3:71
2563 msgid ""
2564 "I<salt> is a two-character string chosen from the set [B<a-zA-Z0-9./>].  "
2565 "This string is used to perturb the algorithm in one of 4096 different ways."
2566 msgstr ""
2567
2568 #. type: Plain text
2569 #: build/C/man3/crypt.3:82
2570 msgid ""
2571 "By taking the lowest 7 bits of each of the first eight characters of the "
2572 "I<key>, a 56-bit key is obtained.  This 56-bit key is used to encrypt "
2573 "repeatedly a constant string (usually a string consisting of all zeros).  "
2574 "The returned value points to the encrypted password, a series of 13 "
2575 "printable ASCII characters (the first two characters represent the salt "
2576 "itself).  The return value points to static data whose content is "
2577 "overwritten by each call."
2578 msgstr ""
2579
2580 #. type: Plain text
2581 #: build/C/man3/crypt.3:84
2582 msgid "Warning: The key space consists of"
2583 msgstr ""
2584
2585 #. type: Plain text
2586 #: build/C/man3/crypt.3:99
2587 msgid ""
2588 "equal 7.2e16 possible values.  Exhaustive searches of this key space are "
2589 "possible using massively parallel computers.  Software, such as B<crack>(1), "
2590 "is available which will search the portion of this key space that is "
2591 "generally used by humans for passwords.  Hence, password selection should, "
2592 "at minimum, avoid common words and names.  The use of a B<passwd>(1)  "
2593 "program that checks for crackable passwords during the selection process is "
2594 "recommended."
2595 msgstr ""
2596
2597 #. type: Plain text
2598 #: build/C/man3/crypt.3:108
2599 msgid ""
2600 "The DES algorithm itself has a few quirks which make the use of the "
2601 "B<crypt>()  interface a very poor choice for anything other than password "
2602 "authentication.  If you are planning on using the B<crypt>()  interface for "
2603 "a cryptography project, don't do it: get a good book on encryption and one "
2604 "of the widely available DES libraries."
2605 msgstr ""
2606
2607 #. type: Plain text
2608 #: build/C/man3/crypt.3:120
2609 msgid ""
2610 "B<crypt_r>()  is a reentrant version of B<crypt>().  The structure pointed "
2611 "to by I<data> is used to store result data and bookkeeping information.  "
2612 "Other than allocating it, the only thing that the caller should do with this "
2613 "structure is to set I<data-E<gt>initialized> to zero before the first call "
2614 "to B<crypt_r>()."
2615 msgstr ""
2616
2617 #. type: Plain text
2618 #: build/C/man3/crypt.3:123
2619 msgid ""
2620 "On success, a pointer to the encrypted password is returned.  On error, NULL "
2621 "is returned."
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man3/crypt.3:128
2626 msgid "I<salt> has the wrong format."
2627 msgstr ""
2628
2629 #. type: TP
2630 #: build/C/man3/crypt.3:130 build/C/man3/encrypt.3:120 build/C/man3/fexecve.3:86 build/C/man2/fork.2:220
2631 #, no-wrap
2632 msgid "B<ENOSYS>"
2633 msgstr ""
2634
2635 #.  This level of detail is not necessary in this man page. . .
2636 #.  .PP
2637 #.  When encrypting a plain text P using DES with the key K results in the
2638 #.  encrypted text C, then the complementary plain text P' being encrypted
2639 #.  using the complementary key K' will result in the complementary encrypted
2640 #.  text C'.
2641 #.  .PP
2642 #.  Weak keys are keys which stay invariant under the DES key transformation.
2643 #.  The four known weak keys 0101010101010101, fefefefefefefefe,
2644 #.  1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided.
2645 #.  .PP
2646 #.  There are six known half weak key pairs, which keys lead to the same
2647 #.  encrypted data.  Keys which are part of such key clusters should be
2648 #.  avoided.
2649 #.  Sorry, I could not find out what they are.
2650 #. "
2651 #.  .PP
2652 #.  Heavily redundant data causes trouble with DES encryption, when used in the
2653 #.  .I codebook
2654 #.  mode that
2655 #.  .BR crypt ()
2656 #.  implements.  The
2657 #.  .BR crypt ()
2658 #.  interface should be used only for its intended purpose of password
2659 #.  verification, and should not be used as part of a data encryption tool.
2660 #.  .PP
2661 #.  The first and last three output bits of the fourth S-box can be
2662 #.  represented as function of their input bits.  Empiric studies have
2663 #.  shown that S-boxes partially compute the same output for similar input.
2664 #.  It is suspected that this may contain a back door which could allow the
2665 #.  NSA to decrypt DES encrypted data.
2666 #.  .PP
2667 #.  Making encrypted data computed using crypt() publicly available has
2668 #.  to be considered insecure for the given reasons.
2669 #. type: Plain text
2670 #: build/C/man3/crypt.3:169
2671 msgid ""
2672 "The B<crypt>()  function was not implemented, probably because of "
2673 "U.S.A. export restrictions."
2674 msgstr ""
2675
2676 #. type: Plain text
2677 #: build/C/man3/crypt.3:174
2678 msgid ""
2679 "I</proc/sys/crypto/fips_enabled> has a nonzero value, and an attempt was "
2680 "made to use a weak encryption type, such as DES."
2681 msgstr ""
2682
2683 #. type: SH
2684 #: 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
2685 #, no-wrap
2686 msgid "ATTRIBUTES"
2687 msgstr ""
2688
2689 #. type: SS
2690 #: 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
2691 #, no-wrap
2692 msgid "Multithreading (see pthreads(7))"
2693 msgstr ""
2694
2695 #. type: Plain text
2696 #: build/C/man3/crypt.3:179
2697 msgid "The B<crypt>()  function is not thread-safe."
2698 msgstr ""
2699
2700 #. type: Plain text
2701 #: build/C/man3/crypt.3:183
2702 msgid "The B<crypt_r>()  function is thread-safe."
2703 msgstr ""
2704
2705 #. type: Plain text
2706 #: build/C/man3/crypt.3:188
2707 msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001.  B<crypt_r>()  is a GNU extension."
2708 msgstr ""
2709
2710 #. type: Plain text
2711 #: build/C/man3/crypt.3:192
2712 msgid ""
2713 "The glibc2 version of this function supports additional encryption "
2714 "algorithms."
2715 msgstr ""
2716
2717 #. type: Plain text
2718 #: build/C/man3/crypt.3:197
2719 msgid ""
2720 "If I<salt> is a character string starting with the characters \"$I<id>$\" "
2721 "followed by a string terminated by \"$\":"
2722 msgstr ""
2723
2724 #. type: Plain text
2725 #: build/C/man3/crypt.3:200
2726 msgid "$I<id>$I<salt>$I<encrypted>"
2727 msgstr ""
2728
2729 #. type: Plain text
2730 #: build/C/man3/crypt.3:209
2731 msgid ""
2732 "then instead of using the DES machine, I<id> identifies the encryption "
2733 "method used and this then determines how the rest of the password string is "
2734 "interpreted.  The following values of I<id> are supported:"
2735 msgstr ""
2736
2737 #. type: tbl table
2738 #: build/C/man3/crypt.3:212
2739 #, no-wrap
2740 msgid "ID  | Method\n"
2741 msgstr ""
2742
2743 #. type: tbl table
2744 #: build/C/man3/crypt.3:213 build/C/man2/syscall.2:160 build/C/man2/syscall.2:198
2745 #, no-wrap
2746 msgid "_\n"
2747 msgstr ""
2748
2749 #. type: tbl table
2750 #: build/C/man3/crypt.3:214
2751 #, no-wrap
2752 msgid "1   | MD5\n"
2753 msgstr ""
2754
2755 #. type: tbl table
2756 #: build/C/man3/crypt.3:215
2757 #, no-wrap
2758 msgid "2a  | Blowfish (not in mainline glibc; added in some\n"
2759 msgstr ""
2760
2761 #. type: tbl table
2762 #: build/C/man3/crypt.3:216
2763 #, no-wrap
2764 msgid "    | Linux distributions)\n"
2765 msgstr ""
2766
2767 #.  openSUSE has Blowfish, but AFAICS, this option is not supported
2768 #.  natively by glibc -- mtk, Jul 08
2769 #
2770 #.  md5 | Sun MD5
2771 #.  glibc doesn't appear to natively support Sun MD5; I don't know
2772 #.  if any distros add the support.
2773 #. type: tbl table
2774 #: build/C/man3/crypt.3:223
2775 #, no-wrap
2776 msgid "5   | SHA-256 (since glibc 2.7)\n"
2777 msgstr ""
2778
2779 #. type: tbl table
2780 #: build/C/man3/crypt.3:224
2781 #, no-wrap
2782 msgid "6   | SHA-512 (since glibc 2.7)\n"
2783 msgstr ""
2784
2785 #. type: Plain text
2786 #: build/C/man3/crypt.3:231
2787 msgid ""
2788 "So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and "
2789 "$6$I<salt>$I<encrypted> is an SHA-512 encoded one."
2790 msgstr ""
2791
2792 #. type: Plain text
2793 #: build/C/man3/crypt.3:236
2794 msgid ""
2795 "\"I<salt>\" stands for the up to 16 characters following \"$I<id>$\" in the "
2796 "salt.  The encrypted part of the password string is the actual computed "
2797 "password.  The size of this string is fixed:"
2798 msgstr ""
2799
2800 #. type: tbl table
2801 #: build/C/man3/crypt.3:238
2802 #, no-wrap
2803 msgid "MD5     | 22 characters\n"
2804 msgstr ""
2805
2806 #. type: tbl table
2807 #: build/C/man3/crypt.3:239
2808 #, no-wrap
2809 msgid "SHA-256 | 43 characters\n"
2810 msgstr ""
2811
2812 #. type: tbl table
2813 #: build/C/man3/crypt.3:240
2814 #, no-wrap
2815 msgid "SHA-512 | 86 characters\n"
2816 msgstr ""
2817
2818 #. type: Plain text
2819 #: build/C/man3/crypt.3:249
2820 msgid ""
2821 "The characters in \"I<salt>\" and \"I<encrypted>\" are drawn from the set "
2822 "[B<a-zA-Z0-9./>].  In the MD5 and SHA implementations the entire I<key> is "
2823 "significant (instead of only the first 8 bytes in DES)."
2824 msgstr ""
2825
2826 #. type: Plain text
2827 #: build/C/man3/crypt.3:254
2828 msgid "B<login>(1), B<passwd>(1), B<encrypt>(3), B<getpass>(3), B<passwd>(5)"
2829 msgstr ""
2830
2831 #. type: TH
2832 #: build/C/man3/daemon.3:36
2833 #, no-wrap
2834 msgid "DAEMON"
2835 msgstr ""
2836
2837 #. type: TH
2838 #: build/C/man3/daemon.3:36
2839 #, no-wrap
2840 msgid "2013-10-28"
2841 msgstr ""
2842
2843 #. type: Plain text
2844 #: build/C/man3/daemon.3:39
2845 msgid "daemon - run in the background"
2846 msgstr ""
2847
2848 #. type: Plain text
2849 #: build/C/man3/daemon.3:43
2850 msgid "B<int daemon(int >I<nochdir>B<, int >I<noclose>B<);>"
2851 msgstr ""
2852
2853 #. type: Plain text
2854 #: build/C/man3/daemon.3:51
2855 msgid "B<daemon>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
2856 msgstr ""
2857
2858 #. type: Plain text
2859 #: build/C/man3/daemon.3:56
2860 msgid ""
2861 "The B<daemon>()  function is for programs wishing to detach themselves from "
2862 "the controlling terminal and run in the background as system daemons."
2863 msgstr ""
2864
2865 #. type: Plain text
2866 #: build/C/man3/daemon.3:64
2867 msgid ""
2868 "If I<nochdir> is zero, B<daemon>()  changes the calling process's current "
2869 "working directory to the root directory (\"/\"); otherwise, the current "
2870 "working directory is left unchanged."
2871 msgstr ""
2872
2873 #. type: Plain text
2874 #: build/C/man3/daemon.3:73
2875 msgid ""
2876 "If I<noclose> is zero, B<daemon>()  redirects standard input, standard "
2877 "output and standard error to I</dev/null>; otherwise, no changes are made to "
2878 "these file descriptors."
2879 msgstr ""
2880
2881 #.  not .IR in order not to underline _
2882 #. type: Plain text
2883 #: build/C/man3/daemon.3:91
2884 msgid ""
2885 "(This function forks, and if the B<fork>(2)  succeeds, the parent calls "
2886 "B<_exit>(2), so that further errors are seen by the child only.)  On success "
2887 "B<daemon>()  returns zero.  If an error occurs, B<daemon>()  returns -1 and "
2888 "sets I<errno> to any of the errors specified for the B<fork>(2)  and "
2889 "B<setsid>(2)."
2890 msgstr ""
2891
2892 #. type: Plain text
2893 #: build/C/man3/daemon.3:96
2894 msgid "The B<daemon>()  function is thread-safe."
2895 msgstr ""
2896
2897 #. type: Plain text
2898 #: build/C/man3/daemon.3:102
2899 msgid ""
2900 "Not in POSIX.1-2001.  A similar function appears on the BSDs.  The "
2901 "B<daemon>()  function first appeared in 4.4BSD."
2902 msgstr ""
2903
2904 #. type: Plain text
2905 #: build/C/man3/daemon.3:110
2906 msgid ""
2907 "The glibc implementation can also return -1 when I</dev/null> exists but is "
2908 "not a character device with the expected major and minor numbers.  In this "
2909 "case, I<errno> need not be set."
2910 msgstr ""
2911
2912 #. type: Plain text
2913 #: build/C/man3/daemon.3:112
2914 msgid "B<fork>(2), B<setsid>(2)"
2915 msgstr ""
2916
2917 #. type: TH
2918 #: build/C/man3/des_crypt.3:14
2919 #, no-wrap
2920 msgid "DES_CRYPT"
2921 msgstr ""
2922
2923 #. type: Plain text
2924 #: build/C/man3/des_crypt.3:18
2925 msgid ""
2926 "des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - fast DES "
2927 "encryption"
2928 msgstr ""
2929
2930 #.  Sun version
2931 #.  .B #include <des_crypt.h>
2932 #. type: Plain text
2933 #: build/C/man3/des_crypt.3:23
2934 #, no-wrap
2935 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2936 msgstr ""
2937
2938 #. type: Plain text
2939 #: build/C/man3/des_crypt.3:26
2940 #, no-wrap
2941 msgid ""
2942 "B<int ecb_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2943 ">I<datalen>B<,>\n"
2944 "B<              unsigned >I<mode>B<);>\n"
2945 msgstr ""
2946
2947 #. type: Plain text
2948 #: build/C/man3/des_crypt.3:29
2949 #, no-wrap
2950 msgid ""
2951 "B<int cbc_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2952 ">I<datalen>B<,>\n"
2953 "B<              unsigned >I<mode>B<, char *>I<ivec>B<);>\n"
2954 msgstr ""
2955
2956 #. type: Plain text
2957 #: build/C/man3/des_crypt.3:31
2958 #, no-wrap
2959 msgid "B<void des_setparity(char *>I<key>B<);>\n"
2960 msgstr ""
2961
2962 #. type: Plain text
2963 #: build/C/man3/des_crypt.3:33
2964 #, no-wrap
2965 msgid "B<int DES_FAILED(int >I<status>B<);>\n"
2966 msgstr ""
2967
2968 #. type: Plain text
2969 #: build/C/man3/des_crypt.3:63
2970 msgid ""
2971 "B<ecb_crypt>()  and B<cbc_crypt>()  implement the NBS DES (Data Encryption "
2972 "Standard).  These routines are faster and more general purpose than "
2973 "B<crypt>(3).  They also are able to utilize DES hardware if it is "
2974 "available.  B<ecb_crypt>()  encrypts in ECB (Electronic Code Book)  mode, "
2975 "which encrypts blocks of data independently.  B<cbc_crypt>()  encrypts in "
2976 "CBC (Cipher Block Chaining)  mode, which chains together successive blocks.  "
2977 "CBC mode protects against insertions, deletions and substitutions of "
2978 "blocks.  Also, regularities in the clear text will not appear in the cipher "
2979 "text."
2980 msgstr ""
2981
2982 #. type: Plain text
2983 #: build/C/man3/des_crypt.3:106
2984 msgid ""
2985 "Here is how to use these routines.  The first argument, I<key>, is the "
2986 "8-byte encryption key with parity.  To set the key's parity, which for DES "
2987 "is in the low bit of each byte, use B<des_setparity>().  The second "
2988 "argument, I<data>, contains the data to be encrypted or decrypted.  The "
2989 "third argument, I<datalen>, is the length in bytes of I<data>, which must be "
2990 "a multiple of 8.  The fourth argument, I<mode>, is formed by ORing together "
2991 "some things.  For the encryption direction OR in either B<DES_ENCRYPT> or "
2992 "B<DES_DECRYPT>.  For software versus hardware encryption, OR in either "
2993 "B<DES_HW> or B<DES_SW>.  If B<DES_HW> is specified, and there is no "
2994 "hardware, then the encryption is performed in software and the routine "
2995 "returns B<DESERR_NOHWDEVICE>.  For B<cbc_crypt>(), the argument I<ivec> is "
2996 "the 8-byte initialization vector for the chaining.  It is updated to the "
2997 "next initialization vector upon return."
2998 msgstr ""
2999
3000 #. type: TP
3001 #: build/C/man3/des_crypt.3:108
3002 #, no-wrap
3003 msgid "B<DESERR_NONE>"
3004 msgstr ""
3005
3006 #. type: Plain text
3007 #: build/C/man3/des_crypt.3:111
3008 msgid "No error."
3009 msgstr ""
3010
3011 #. type: TP
3012 #: build/C/man3/des_crypt.3:111
3013 #, no-wrap
3014 msgid "B<DESERR_NOHWDEVICE>"
3015 msgstr ""
3016
3017 #. type: Plain text
3018 #: build/C/man3/des_crypt.3:114
3019 msgid ""
3020 "Encryption succeeded, but done in software instead of the requested "
3021 "hardware."
3022 msgstr ""
3023
3024 #. type: TP
3025 #: build/C/man3/des_crypt.3:114
3026 #, no-wrap
3027 msgid "B<DESERR_HWERROR>"
3028 msgstr ""
3029
3030 #. type: Plain text
3031 #: build/C/man3/des_crypt.3:117
3032 msgid "An error occurred in the hardware or driver."
3033 msgstr ""
3034
3035 #. type: TP
3036 #: build/C/man3/des_crypt.3:117
3037 #, no-wrap
3038 msgid "B<DESERR_BADPARAM>"
3039 msgstr ""
3040
3041 #. type: Plain text
3042 #: build/C/man3/des_crypt.3:120
3043 msgid "Bad argument to routine."
3044 msgstr ""
3045
3046 #.  .BR DES_FAILED\c
3047 #.  .BR ( stat )
3048 #.  So far the Sun page
3049 #.  Some additions - aeb
3050 #. type: Plain text
3051 #: build/C/man3/des_crypt.3:131
3052 msgid ""
3053 "Given a result status I<stat>, the macro B<DES_FAILED(>I<stat>B<)> is false "
3054 "only for the first two statuses."
3055 msgstr ""
3056
3057 #. type: Plain text
3058 #: build/C/man3/des_crypt.3:134
3059 msgid "These functions are present in glibc 2.1 and later."
3060 msgstr ""
3061
3062 #. type: Plain text
3063 #: build/C/man3/des_crypt.3:142
3064 msgid ""
3065 "The B<ecb_crypt>(), B<cbc_crypt>(), and B<des_setparity>()  functions are "
3066 "thread-safe."
3067 msgstr ""
3068
3069 #. type: Plain text
3070 #: build/C/man3/des_crypt.3:145
3071 msgid "4.3BSD.  Not in POSIX.1-2001."
3072 msgstr ""
3073
3074 #. type: Plain text
3075 #: build/C/man3/des_crypt.3:148
3076 msgid "B<des>(1), B<crypt>(3), B<xcrypt>(3)"
3077 msgstr ""
3078
3079 #. type: TH
3080 #: build/C/man2/dup.2:37
3081 #, no-wrap
3082 msgid "DUP"
3083 msgstr ""
3084
3085 #. type: TH
3086 #: build/C/man2/dup.2:37
3087 #, no-wrap
3088 msgid "2014-07-08"
3089 msgstr ""
3090
3091 #. type: Plain text
3092 #: build/C/man2/dup.2:40
3093 msgid "dup, dup2, dup3 - duplicate a file descriptor"
3094 msgstr ""
3095
3096 #. type: Plain text
3097 #: build/C/man2/dup.2:46
3098 #, no-wrap
3099 msgid ""
3100 "B<int dup(int >I<oldfd>B<);>\n"
3101 "B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n"
3102 msgstr ""
3103
3104 #. type: Plain text
3105 #: build/C/man2/dup.2:50
3106 #, no-wrap
3107 msgid ""
3108 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
3109 "B<#include E<lt>fcntl.hE<gt>>              /* Obtain O_* constant "
3110 "definitions */\n"
3111 "B<#include E<lt>unistd.hE<gt>>\n"
3112 msgstr ""
3113
3114 #. type: Plain text
3115 #: build/C/man2/dup.2:52
3116 #, no-wrap
3117 msgid "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n"
3118 msgstr ""
3119
3120 #. type: Plain text
3121 #: build/C/man2/dup.2:59
3122 msgid ""
3123 "The B<dup>()  system call creates a copy of the file descriptor I<oldfd>, "
3124 "using the lowest-numbered unused descriptor for the new descriptor."
3125 msgstr ""
3126
3127 #. type: Plain text
3128 #: build/C/man2/dup.2:68
3129 msgid ""
3130 "After a successful return, the old and new file descriptors may be used "
3131 "interchangeably.  They refer to the same open file description (see "
3132 "B<open>(2))  and thus share file offset and file status flags; for example, "
3133 "if the file offset is modified by using B<lseek>(2)  on one of the "
3134 "descriptors, the offset is also changed for the other."
3135 msgstr ""
3136
3137 #. type: Plain text
3138 #: build/C/man2/dup.2:77
3139 msgid ""
3140 "The two descriptors do not share file descriptor flags (the close-on-exec "
3141 "flag).  The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2))  for the "
3142 "duplicate descriptor is off."
3143 msgstr ""
3144
3145 #. type: SS
3146 #: build/C/man2/dup.2:77
3147 #, no-wrap
3148 msgid "dup2()"
3149 msgstr ""
3150
3151 #. type: Plain text
3152 #: build/C/man2/dup.2:88
3153 msgid ""
3154 "The B<dup2>()  system call performs the same task as B<dup>(), but instead "
3155 "of using the lowest-numbered unused file descriptor, it uses the descriptor "
3156 "number specified in I<newfd>.  If the descriptor I<newfd> was previously "
3157 "open, it is silently closed before being reused."
3158 msgstr ""
3159
3160 #. type: Plain text
3161 #: build/C/man2/dup.2:104
3162 msgid ""
3163 "The steps of closing and reusing the file descriptor I<newfd> are performed "
3164 "I<atomically>.  This is important, because trying to implement equivalent "
3165 "functionality using B<close>(2)  and B<dup>()  would be subject to race "
3166 "conditions, whereby I<newfd> might be reused between the two steps.  Such "
3167 "reuse could happen because the main program is interrupted by a signal "
3168 "handler that allocates a file descriptor, or because a parallel thread "
3169 "allocates a file descriptor."
3170 msgstr ""
3171
3172 #. type: Plain text
3173 #: build/C/man2/dup.2:106
3174 msgid "Note the following points:"
3175 msgstr ""
3176
3177 #. type: Plain text
3178 #: build/C/man2/dup.2:112
3179 msgid ""
3180 "If I<oldfd> is not a valid file descriptor, then the call fails, and "
3181 "I<newfd> is not closed."
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man2/dup.2:124
3186 msgid ""
3187 "If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
3188 "I<oldfd>, then B<dup2>()  does nothing, and returns I<newfd>."
3189 msgstr ""
3190
3191 #. type: SS
3192 #: build/C/man2/dup.2:124
3193 #, no-wrap
3194 msgid "dup3()"
3195 msgstr ""
3196
3197 #. type: Plain text
3198 #: build/C/man2/dup.2:129
3199 msgid "B<dup3>()  is the same as B<dup2>(), except that:"
3200 msgstr ""
3201
3202 #. type: Plain text
3203 #: build/C/man2/dup.2:138
3204 msgid ""
3205 "The caller can force the close-on-exec flag to be set for the new file "
3206 "descriptor by specifying B<O_CLOEXEC> in I<flags>.  See the description of "
3207 "the same flag in B<open>(2)  for reasons why this may be useful."
3208 msgstr ""
3209
3210 #.  FIXME . To confirm with Al Viro that this was intended, and its rationale
3211 #. type: Plain text
3212 #: build/C/man2/dup.2:148
3213 msgid "If I<oldfd> equals I<newfd>, then B<dup3>()  fails with the error B<EINVAL>."
3214 msgstr ""
3215
3216 #. type: Plain text
3217 #: build/C/man2/dup.2:154
3218 msgid ""
3219 "On success, these system calls return the new descriptor.  On error, -1 is "
3220 "returned, and I<errno> is set appropriately."
3221 msgstr ""
3222
3223 #. type: Plain text
3224 #: build/C/man2/dup.2:159
3225 msgid "I<oldfd> isn't an open file descriptor."
3226 msgstr ""
3227
3228 #. type: Plain text
3229 #: build/C/man2/dup.2:166
3230 msgid ""
3231 "I<newfd> is out of the allowed range for file descriptors (see the "
3232 "discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))."
3233 msgstr ""
3234
3235 #. type: TP
3236 #: build/C/man2/dup.2:166 build/C/man2/fcntl.2:1503 build/C/man2/fcntl.2:1512 build/C/man2/swapon.2:117
3237 #, no-wrap
3238 msgid "B<EBUSY>"
3239 msgstr ""
3240
3241 #. type: Plain text
3242 #: build/C/man2/dup.2:176
3243 msgid ""
3244 "(Linux only) This may be returned by B<dup2>()  or B<dup3>()  during a race "
3245 "condition with B<open>(2)  and B<dup>()."
3246 msgstr ""
3247
3248 #. type: Plain text
3249 #: build/C/man2/dup.2:184
3250 msgid ""
3251 "The B<dup2>()  or B<dup3>()  call was interrupted by a signal; see "
3252 "B<signal>(7)."
3253 msgstr ""
3254
3255 #. type: Plain text
3256 #: build/C/man2/dup.2:189
3257 msgid "(B<dup3>())  I<flags> contain an invalid value."
3258 msgstr ""
3259
3260 #.  FIXME . To confirm with Al Viro that this was intended, and its rationale
3261 #. type: Plain text
3262 #: build/C/man2/dup.2:196
3263 msgid "(B<dup3>())  I<oldfd> was equal to I<newfd>."
3264 msgstr ""
3265
3266 #. type: TP
3267 #: build/C/man2/dup.2:196 build/C/man2/execve.2:422 build/C/man2/fcntl.2:1607 build/C/man3/getlogin.3:105
3268 #, no-wrap
3269 msgid "B<EMFILE>"
3270 msgstr ""
3271
3272 #. type: Plain text
3273 #: build/C/man2/dup.2:203
3274 msgid ""
3275 "The process already has the maximum number of file descriptors open and "
3276 "tried to open a new one (see the discussion of B<RLIMIT_NOFILE> in "
3277 "B<getrlimit>(2))."
3278 msgstr ""
3279
3280 #. type: Plain text
3281 #: build/C/man2/dup.2:208
3282 msgid ""
3283 "B<dup3>()  was added to Linux in version 2.6.27; glibc support is available "
3284 "starting with version 2.9."
3285 msgstr ""
3286
3287 #. type: Plain text
3288 #: build/C/man2/dup.2:212
3289 msgid "B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001."
3290 msgstr ""
3291
3292 #.  SVr4 documents additional
3293 #.  EINTR and ENOLINK error conditions.  POSIX.1 adds EINTR.
3294 #.  The EBUSY return is Linux-specific.
3295 #. type: Plain text
3296 #: build/C/man2/dup.2:218
3297 msgid "B<dup3>()  is Linux-specific."
3298 msgstr ""
3299
3300 #. type: Plain text
3301 #: build/C/man2/dup.2:232
3302 msgid ""
3303 "The error returned by B<dup2>()  is different from that returned by "
3304 "B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range.  On some "
3305 "systems, B<dup2>()  also sometimes returns B<EINVAL> like B<F_DUPFD>."
3306 msgstr ""
3307
3308 #. type: Plain text
3309 #: build/C/man2/dup.2:248
3310 msgid ""
3311 "If I<newfd> was open, any errors that would have been reported at "
3312 "B<close>(2)  time are lost.  If this is of concern, then\\(emunless the "
3313 "program is single-threaded and does not allocate file descriptors in signal "
3314 "handlers\\(emthe correct approach is I<not> to close I<newfd> before calling "
3315 "B<dup2>(), because of the race condition described above.  Instead, code "
3316 "something like the following could be used:"
3317 msgstr ""
3318
3319 #. type: Plain text
3320 #: build/C/man2/dup.2:253
3321 #, no-wrap
3322 msgid ""
3323 "    /* Obtain a duplicate of 'newfd' that can subsequently\n"
3324 "       be used to check for close() errors; an EBADF error\n"
3325 "       means that 'newfd' was not open. */\n"
3326 msgstr ""
3327
3328 #. type: Plain text
3329 #: build/C/man2/dup.2:258
3330 #, no-wrap
3331 msgid ""
3332 "    tmpfd = dup(newfd);\n"
3333 "    if (tmpfd == -1 && errno != EBADF) {\n"
3334 "        /* Handle unexpected dup() error */\n"
3335 "    }\n"
3336 msgstr ""
3337
3338 #. type: Plain text
3339 #: build/C/man2/dup.2:260
3340 #, no-wrap
3341 msgid "    /* Atomically duplicate 'oldfd' on 'newfd' */\n"
3342 msgstr ""
3343
3344 #. type: Plain text
3345 #: build/C/man2/dup.2:264
3346 #, no-wrap
3347 msgid ""
3348 "    if (dup2(oldfd, newfd) == -1) {\n"
3349 "        /* Handle dup2() error */\n"
3350 "    }\n"
3351 msgstr ""
3352
3353 #. type: Plain text
3354 #: build/C/man2/dup.2:267
3355 #, no-wrap
3356 msgid ""
3357 "    /* Now check for close() errors on the file originally\n"
3358 "       referred to by 'newfd' */\n"
3359 msgstr ""
3360
3361 #. type: Plain text
3362 #: build/C/man2/dup.2:273
3363 #, no-wrap
3364 msgid ""
3365 "    if (tmpfd != -1) {\n"
3366 "        if (close(tmpfd) == -1) {\n"
3367 "            /* Handle errors from close */\n"
3368 "        }\n"
3369 "    }\n"
3370 msgstr ""
3371
3372 #. type: Plain text
3373 #: build/C/man2/dup.2:277
3374 msgid "B<close>(2), B<fcntl>(2), B<open>(2)"
3375 msgstr ""
3376
3377 #. type: TH
3378 #: build/C/man3/encrypt.3:30
3379 #, no-wrap
3380 msgid "ENCRYPT"
3381 msgstr ""
3382
3383 #. type: TH
3384 #: build/C/man3/encrypt.3:30
3385 #, no-wrap
3386 msgid "2013-07-22"
3387 msgstr ""
3388
3389 #. type: Plain text
3390 #: build/C/man3/encrypt.3:33
3391 msgid "encrypt, setkey, encrypt_r, setkey_r - encrypt 64-bit messages"
3392 msgstr ""
3393
3394 #. type: Plain text
3395 #: build/C/man3/encrypt.3:35 build/C/man3/encrypt.3:41
3396 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
3397 msgstr ""
3398
3399 #. type: Plain text
3400 #: build/C/man3/encrypt.3:39
3401 msgid "B<void encrypt(char >I<block>B<[64], int >I<edflag>B<);>"
3402 msgstr ""
3403
3404 #. type: Plain text
3405 #: build/C/man3/encrypt.3:43
3406 msgid "B<#include E<lt>stdlib.hE<gt>>"
3407 msgstr ""
3408
3409 #. type: Plain text
3410 #: build/C/man3/encrypt.3:45
3411 msgid "B<void setkey(const char *>I<key>B<);>"
3412 msgstr ""
3413
3414 #. type: Plain text
3415 #: build/C/man3/encrypt.3:47 build/C/man3/getumask.3:33
3416 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
3417 msgstr ""
3418
3419 #. type: Plain text
3420 #: build/C/man3/encrypt.3:49
3421 msgid "B<#include E<lt>crypt.hE<gt>>"
3422 msgstr ""
3423
3424 #. type: Plain text
3425 #: build/C/man3/encrypt.3:51
3426 msgid "B<void setkey_r(const char *>I<key>B<, struct crypt_data *>I<data>B<);>"
3427 msgstr ""
3428
3429 #. type: Plain text
3430 #: build/C/man3/encrypt.3:54
3431 msgid ""
3432 "B<void encrypt_r(char *>I<block>B<, int >I<edflag>B<, struct crypt_data "
3433 "*>I<data>B<);>"
3434 msgstr ""
3435
3436 #. type: Plain text
3437 #: build/C/man3/encrypt.3:56
3438 msgid "Each of these requires linking with I<-lcrypt>."
3439 msgstr ""
3440
3441 #. type: Plain text
3442 #: build/C/man3/encrypt.3:68
3443 msgid ""
3444 "These functions encrypt and decrypt 64-bit messages.  The B<setkey>()  "
3445 "function sets the key used by B<encrypt>().  The I<key> argument used here "
3446 "is an array of 64 bytes, each of which has numerical value 1 or 0.  The "
3447 "bytes key[n] where n=8*i-1 are ignored, so that the effective key length is "
3448 "56 bits."
3449 msgstr ""
3450
3451 #. type: Plain text
3452 #: build/C/man3/encrypt.3:80
3453 msgid ""
3454 "The B<encrypt>()  function modifies the passed buffer, encoding if I<edflag> "
3455 "is 0, and decoding if 1 is being passed.  Like the I<key> argument, also "
3456 "I<block> is a bit vector representation of the actual value that is "
3457 "encoded.  The result is returned in that same vector."
3458 msgstr ""
3459
3460 #. type: Plain text
3461 #: build/C/man3/encrypt.3:90
3462 msgid ""
3463 "These two functions are not reentrant, that is, the key data is kept in "
3464 "static storage.  The functions B<setkey_r>()  and B<encrypt_r>()  are the "
3465 "reentrant versions.  They use the following structure to hold the key data:"
3466 msgstr ""
3467
3468 #. type: Plain text
3469 #: build/C/man3/encrypt.3:105
3470 #, no-wrap
3471 msgid ""
3472 "struct crypt_data {\n"
3473 "    char     keysched[16 * 8];\n"
3474 "    char     sb0[32768];\n"
3475 "    char     sb1[32768];\n"
3476 "    char     sb2[32768];\n"
3477 "    char     sb3[32768];\n"
3478 "    char     crypt_3_buf[14];\n"
3479 "    char     current_salt[2];\n"
3480 "    long int current_saltbits;\n"
3481 "    int      direction;\n"
3482 "    int      initialized;\n"
3483 "};\n"
3484 msgstr ""
3485
3486 #. type: Plain text
3487 #: build/C/man3/encrypt.3:113
3488 msgid "Before calling B<setkey_r>()  set I<data-E<gt>initialized> to zero."
3489 msgstr ""
3490
3491 #. type: Plain text
3492 #: build/C/man3/encrypt.3:115
3493 msgid "These functions do not return any value."
3494 msgstr ""
3495
3496 #. type: Plain text
3497 #: build/C/man3/encrypt.3:120
3498 msgid ""
3499 "Set I<errno> to zero before calling the above functions.  On success, it is "
3500 "unchanged."
3501 msgstr ""
3502
3503 #. type: Plain text
3504 #: build/C/man3/encrypt.3:124
3505 msgid ""
3506 "The function is not provided.  (For example because of former USA export "
3507 "restrictions.)"
3508 msgstr ""
3509
3510 #. type: Plain text
3511 #: build/C/man3/encrypt.3:131
3512 msgid "The B<encrypt>()  and B<setkey>()  functions are not thread-safe."
3513 msgstr ""
3514
3515 #. type: Plain text
3516 #: build/C/man3/encrypt.3:137
3517 msgid "The B<encrypt_r>()  and B<setkey_r>()  functions are thread-safe."
3518 msgstr ""
3519
3520 #. type: Plain text
3521 #: build/C/man3/encrypt.3:148
3522 msgid ""
3523 "The functions B<encrypt>()  and B<setkey>()  conform to SVr4, SUSv2, and "
3524 "POSIX.1-2001.  The functions B<encrypt_r>()  and B<setkey_r>()  are GNU "
3525 "extensions."
3526 msgstr ""
3527
3528 #. type: Plain text
3529 #: build/C/man3/encrypt.3:150
3530 msgid "In glibc 2.2, these functions use the DES algorithm."
3531 msgstr ""
3532
3533 #. type: Plain text
3534 #: build/C/man3/encrypt.3:157
3535 msgid ""
3536 "You need to link with libcrypt to compile this example with glibc.  To do "
3537 "useful work, the I<key[]> and I<txt[]> arrays must be filled with a useful "
3538 "bit pattern."
3539 msgstr ""
3540
3541 #. type: Plain text
3542 #: build/C/man3/encrypt.3:162
3543 #, no-wrap
3544 msgid ""
3545 "#define _XOPEN_SOURCE\n"
3546 "#include E<lt>unistd.hE<gt>\n"
3547 "#include E<lt>stdlib.hE<gt>\n"
3548 msgstr ""
3549
3550 #. type: Plain text
3551 #: build/C/man3/encrypt.3:168
3552 #, no-wrap
3553 msgid ""
3554 "int\n"
3555 "main(void)\n"
3556 "{\n"
3557 "    char key[64];      /* bit pattern for key */\n"
3558 "    char txt[64];      /* bit pattern for messages */\n"
3559 msgstr ""
3560
3561 #. type: Plain text
3562 #: build/C/man3/encrypt.3:173
3563 #, no-wrap
3564 msgid ""
3565 "    setkey(key);\n"
3566 "    encrypt(txt, 0);   /* encode */\n"
3567 "    encrypt(txt, 1);   /* decode */\n"
3568 "}\n"
3569 msgstr ""
3570
3571 #. type: Plain text
3572 #: build/C/man3/encrypt.3:177
3573 msgid "B<cbc_crypt>(3), B<crypt>(3), B<ecb_crypt>(3),"
3574 msgstr ""
3575
3576 #. type: TH
3577 #: build/C/man7/environ.7:34
3578 #, no-wrap
3579 msgid "ENVIRON"
3580 msgstr ""
3581
3582 #. type: Plain text
3583 #: build/C/man7/environ.7:37
3584 msgid "environ - user environment"
3585 msgstr ""
3586
3587 #. type: Plain text
3588 #: build/C/man7/environ.7:40
3589 #, no-wrap
3590 msgid "B<extern char **>I<environ>B<;>\n"
3591 msgstr ""
3592
3593 #. type: Plain text
3594 #: build/C/man7/environ.7:56
3595 msgid ""
3596 "The variable I<environ> points to an array of pointers to strings called the "
3597 "\"environment\".  The last pointer in this array has the value NULL.  (This "
3598 "variable must be declared in the user program, but is declared in the header "
3599 "file I<E<lt>unistd.hE<gt>> if the B<_GNU_SOURCE> feature test macro is "
3600 "defined.)  This array of strings is made available to the process by the "
3601 "B<exec>(3)  call that started the process."
3602 msgstr ""
3603
3604 #. type: Plain text
3605 #: build/C/man7/environ.7:61
3606 msgid ""
3607 "By convention the strings in I<environ> have the form "
3608 "\"I<name>B<=>I<value>\".  Common examples are:"
3609 msgstr ""
3610
3611 #. type: TP
3612 #: build/C/man7/environ.7:61
3613 #, no-wrap
3614 msgid "B<USER>"
3615 msgstr ""
3616
3617 #. type: Plain text
3618 #: build/C/man7/environ.7:64
3619 msgid "The name of the logged-in user (used by some BSD-derived programs)."
3620 msgstr ""
3621
3622 #. type: TP
3623 #: build/C/man7/environ.7:64
3624 #, no-wrap
3625 msgid "B<LOGNAME>"
3626 msgstr ""
3627
3628 #. type: Plain text
3629 #: build/C/man7/environ.7:67
3630 msgid "The name of the logged-in user (used by some System-V derived programs)."
3631 msgstr ""
3632
3633 #. type: TP
3634 #: build/C/man7/environ.7:67
3635 #, no-wrap
3636 msgid "B<HOME>"
3637 msgstr ""
3638
3639 #. type: Plain text
3640 #: build/C/man7/environ.7:73
3641 msgid ""
3642 "A user's login directory, set by B<login>(1)  from the password file "
3643 "B<passwd>(5)."
3644 msgstr ""
3645
3646 #. type: TP
3647 #: build/C/man7/environ.7:73
3648 #, no-wrap
3649 msgid "B<LANG>"
3650 msgstr ""
3651
3652 #. type: Plain text
3653 #: build/C/man7/environ.7:91
3654 msgid ""
3655 "The name of a locale to use for locale categories when not overridden by "
3656 "B<LC_ALL> or more specific environment variables such as B<LC_COLLATE>, "
3657 "B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, and B<LC_TIME> "
3658 "(see B<locale>(7)  for further details of the B<LC_*> environment "
3659 "variables)."
3660 msgstr ""
3661
3662 #. type: TP
3663 #: build/C/man7/environ.7:91
3664 #, no-wrap
3665 msgid "B<PATH>"
3666 msgstr ""
3667
3668 #. type: Plain text
3669 #: build/C/man7/environ.7:106
3670 msgid ""
3671 "The sequence of directory prefixes that B<sh>(1)  and many other programs "
3672 "apply in searching for a file known by an incomplete pathname.  The prefixes "
3673 "are separated by \\(aqB<:>\\(aq.  (Similarly one has B<CDPATH> used by some "
3674 "shells to find the target of a change directory command, B<MANPATH> used by "
3675 "B<man>(1)  to find manual pages, and so on)"
3676 msgstr ""
3677
3678 #. type: TP
3679 #: build/C/man7/environ.7:106
3680 #, no-wrap
3681 msgid "B<PWD>"
3682 msgstr ""
3683
3684 #. type: Plain text
3685 #: build/C/man7/environ.7:110
3686 msgid "The current working directory.  Set by some shells."
3687 msgstr ""
3688
3689 #. type: TP
3690 #: build/C/man7/environ.7:110
3691 #, no-wrap
3692 msgid "B<SHELL>"
3693 msgstr ""
3694
3695 #. type: Plain text
3696 #: build/C/man7/environ.7:113
3697 msgid "The pathname of the user's login shell."
3698 msgstr ""
3699
3700 #. type: TP
3701 #: build/C/man7/environ.7:113
3702 #, no-wrap
3703 msgid "B<TERM>"
3704 msgstr ""
3705
3706 #. type: Plain text
3707 #: build/C/man7/environ.7:116
3708 msgid "The terminal type for which output is to be prepared."
3709 msgstr ""
3710
3711 #. type: TP
3712 #: build/C/man7/environ.7:116
3713 #, no-wrap
3714 msgid "B<PAGER>"
3715 msgstr ""
3716
3717 #. type: Plain text
3718 #: build/C/man7/environ.7:119
3719 msgid "The user's preferred utility to display text files."
3720 msgstr ""
3721
3722 #. type: TP
3723 #: build/C/man7/environ.7:119
3724 #, no-wrap
3725 msgid "B<EDITOR>/B<VISUAL>"
3726 msgstr ""
3727
3728 #.  .TP
3729 #.  .B BROWSER
3730 #.  The user's preferred utility to browse URLs. Sequence of colon-separated
3731 #.  browser commands. See http://www.catb.org/~esr/BROWSER/ .
3732 #. type: Plain text
3733 #: build/C/man7/environ.7:126
3734 msgid "The user's preferred utility to edit text files."
3735 msgstr ""
3736
3737 #. type: Plain text
3738 #: build/C/man7/environ.7:144
3739 msgid ""
3740 "Further names may be placed in the environment by the I<export> command and "
3741 "\"name=value\" in B<sh>(1), or by the I<setenv> command if you use "
3742 "B<csh>(1).  Arguments may also be placed in the environment at the point of "
3743 "an B<exec>(3).  A C program can manipulate its environment using the "
3744 "functions B<getenv>(3), B<putenv>(3), B<setenv>(3), and B<unsetenv>(3)."
3745 msgstr ""
3746
3747 #. type: Plain text
3748 #: build/C/man7/environ.7:148
3749 msgid ""
3750 "Note that the behavior of many programs and library routines is influenced "
3751 "by the presence or value of certain environment variables.  A random "
3752 "collection:"
3753 msgstr ""
3754
3755 #. type: Plain text
3756 #: build/C/man7/environ.7:157
3757 msgid ""
3758 "The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, "
3759 "B<LC_MESSAGES>, and so on influence locale handling; see B<catopen>(3), "
3760 "B<gettext>(3), and B<locale>(7)."
3761 msgstr ""
3762
3763 #. type: Plain text
3764 #: build/C/man7/environ.7:164
3765 msgid ""
3766 "B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3)  and "
3767 "other routines, and the temporary directory used by B<sort>(1)  and other "
3768 "programs."
3769 msgstr ""
3770
3771 #. type: Plain text
3772 #: build/C/man7/environ.7:168
3773 msgid ""
3774 "B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the "
3775 "behavior of the dynamic loader/linker."
3776 msgstr ""
3777
3778 #. type: Plain text
3779 #: build/C/man7/environ.7:172
3780 msgid ""
3781 "B<POSIXLY_CORRECT> makes certain programs and library routines follow the "
3782 "prescriptions of POSIX."
3783 msgstr ""
3784
3785 #. type: Plain text
3786 #: build/C/man7/environ.7:178
3787 msgid "The behavior of B<malloc>(3)  is influenced by B<MALLOC_*> variables."
3788 msgstr ""
3789
3790 #. type: Plain text
3791 #: build/C/man7/environ.7:184
3792 msgid ""
3793 "The variable B<HOSTALIASES> gives the name of a file containing aliases to "
3794 "be used with B<gethostbyname>(3)."
3795 msgstr ""
3796
3797 #. type: Plain text
3798 #: build/C/man7/environ.7:195
3799 msgid ""
3800 "B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3)  and "
3801 "through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), "
3802 "B<strftime>(3).  See also B<tzselect>(8)."
3803 msgstr ""
3804
3805 #. type: Plain text
3806 #: build/C/man7/environ.7:199
3807 msgid ""
3808 "B<TERMCAP> gives information on how to address a given terminal (or gives "
3809 "the name of a file containing such information)."
3810 msgstr ""
3811
3812 #. type: Plain text
3813 #: build/C/man7/environ.7:202
3814 msgid ""
3815 "B<COLUMNS> and B<LINES> tell applications about the window size, possibly "
3816 "overriding the actual size."
3817 msgstr ""
3818
3819 #. type: Plain text
3820 #: build/C/man7/environ.7:207
3821 msgid ""
3822 "B<PRINTER> or B<LPDEST> may specify the desired printer to use.  See "
3823 "B<lpr>(1)."
3824 msgstr ""
3825
3826 #. type: Plain text
3827 #: build/C/man7/environ.7:209
3828 msgid "Etc."
3829 msgstr ""
3830
3831 #. type: Plain text
3832 #: build/C/man7/environ.7:214
3833 msgid ""
3834 "Clearly there is a security risk here.  Many a system command has been "
3835 "tricked into mischief by a user who specified unusual values for B<IFS> or "
3836 "B<LD_LIBRARY_PATH>."
3837 msgstr ""
3838
3839 #. type: Plain text
3840 #: build/C/man7/environ.7:247
3841 msgid ""
3842 "There is also the risk of name space pollution.  Programs like I<make> and "
3843 "I<autoconf> allow overriding of default utility names from the environment "
3844 "with similarly named variables in all caps.  Thus one uses B<CC> to select "
3845 "the desired C compiler (and similarly B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, "
3846 "B<LEX>, B<RM>, B<YACC>, etc.).  However, in some traditional uses such an "
3847 "environment variable gives options for the program instead of a pathname.  "
3848 "Thus, one has B<MORE>, B<LESS>, and B<GZIP>.  Such usage is considered "
3849 "mistaken, and to be avoided in new programs.  The authors of I<gzip> should "
3850 "consider renaming their option to B<GZIP_OPT>."
3851 msgstr ""
3852
3853 #. type: Plain text
3854 #: build/C/man7/environ.7:263
3855 msgid ""
3856 "B<env>(1), B<bash>(1), B<csh>(1), B<login>(1), B<printenv>(1), B<sh>(1), "
3857 "B<tcsh>(1), B<execve>(2), B<clearenv>(3), B<exec>(3), B<getenv>(3), "
3858 "B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<locale>(7), B<ld.so>(8)"
3859 msgstr ""
3860
3861 #. type: TH
3862 #: build/C/man3/euidaccess.3:25
3863 #, no-wrap
3864 msgid "EUIDACCESS"
3865 msgstr ""
3866
3867 #. type: TH
3868 #: build/C/man3/euidaccess.3:25
3869 #, no-wrap
3870 msgid "2013-09-25"
3871 msgstr ""
3872
3873 #. type: Plain text
3874 #: build/C/man3/euidaccess.3:28
3875 msgid "euidaccess, eaccess - check effective user's permissions for a file"
3876 msgstr ""
3877
3878 #. type: Plain text
3879 #: build/C/man3/euidaccess.3:32
3880 #, no-wrap
3881 msgid ""
3882 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
3883 "B<#include E<lt>unistd.hE<gt>>\n"
3884 msgstr ""
3885
3886 #. type: Plain text
3887 #: build/C/man3/euidaccess.3:35
3888 #, no-wrap
3889 msgid ""
3890 "B<int euidaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3891 "B<int eaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3892 msgstr ""
3893
3894 #. type: Plain text
3895 #: build/C/man3/euidaccess.3:47
3896 msgid ""
3897 "Like B<access>(2), B<euidaccess>()  checks permissions and existence of the "
3898 "file identified by its argument I<pathname>.  However, whereas B<access>(2)  "
3899 "performs checks using the real user and group identifiers of the process, "
3900 "B<euidaccess>()  uses the effective identifiers."
3901 msgstr ""
3902
3903 #. type: Plain text
3904 #: build/C/man3/euidaccess.3:53
3905 msgid ""
3906 "I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK>, "
3907 "and B<F_OK>, with the same meanings as for B<access>(2)."
3908 msgstr ""
3909
3910 #. type: Plain text
3911 #: build/C/man3/euidaccess.3:58
3912 msgid ""
3913 "B<eaccess>()  is a synonym for B<euidaccess>(), provided for compatibility "
3914 "with some other systems."
3915 msgstr ""
3916
3917 #. type: Plain text
3918 #: build/C/man3/euidaccess.3:66
3919 msgid ""
3920 "On success (all requested permissions granted), zero is returned.  On error "
3921 "(at least one bit in I<mode> asked for a permission that is denied, or some "
3922 "other error occurred), -1 is returned, and I<errno> is set appropriately."
3923 msgstr ""
3924
3925 #. type: Plain text
3926 #: build/C/man3/euidaccess.3:69
3927 msgid "As for B<access>(2)."
3928 msgstr ""
3929
3930 #. type: Plain text
3931 #: build/C/man3/euidaccess.3:73
3932 msgid "The B<eaccess>()  function was added to glibc in version 2.4."
3933 msgstr ""
3934
3935 #. type: Plain text
3936 #: build/C/man3/euidaccess.3:80
3937 msgid "The B<euidaccess>()  and B<eaccess>()  functions are thread-safe."
3938 msgstr ""
3939
3940 #.  e.g., FreeBSD 6.1.
3941 #. type: Plain text
3942 #: build/C/man3/euidaccess.3:86
3943 msgid ""
3944 "These functions are nonstandard.  Some other systems have an B<eaccess>()  "
3945 "function."
3946 msgstr ""
3947
3948 #. type: Plain text
3949 #: build/C/man3/euidaccess.3:93
3950 msgid ""
3951 "I<Warning>: Using this function to check a process's permissions on a file "
3952 "before performing some operation based on that information leads to race "
3953 "conditions: the file permissions may change between the two steps.  "
3954 "Generally, it is safer just to attempt the desired operation and handle any "
3955 "permission error that occurs."
3956 msgstr ""
3957
3958 #. type: Plain text
3959 #: build/C/man3/euidaccess.3:101
3960 msgid ""
3961 "This function always dereferences symbolic links.  If you need to check the "
3962 "permissions on a symbolic link, use B<faccessat>(2)  with the flags "
3963 "B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW>."
3964 msgstr ""
3965
3966 #. type: Plain text
3967 #: build/C/man3/euidaccess.3:111
3968 msgid ""
3969 "B<access>(2), B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), "
3970 "B<setgid>(2), B<setuid>(2), B<stat>(2), B<credentials>(7), "
3971 "B<path_resolution>(7)"
3972 msgstr ""
3973
3974 #. type: TH
3975 #: build/C/man3/exec.3:41
3976 #, no-wrap
3977 msgid "EXEC"
3978 msgstr ""
3979
3980 #. type: TH
3981 #: build/C/man3/exec.3:41
3982 #, no-wrap
3983 msgid "2010-09-25"
3984 msgstr ""
3985
3986 #. type: Plain text
3987 #: build/C/man3/exec.3:44
3988 msgid "execl, execlp, execle, execv, execvp, execvpe - execute a file"
3989 msgstr ""
3990
3991 #. type: Plain text
3992 #: build/C/man3/exec.3:48
3993 msgid "B<extern char **environ;>"
3994 msgstr ""
3995
3996 #. type: Plain text
3997 #: build/C/man3/exec.3:50
3998 msgid "B<int execl(const char *>I<path>B<, const char *>I<arg>B<, ...);>"
3999 msgstr ""
4000
4001 #. type: Plain text
4002 #: build/C/man3/exec.3:52
4003 msgid "B<int execlp(const char *>I<file>B<, const char *>I<arg>B<, ...);>"
4004 msgstr ""
4005
4006 #. type: Plain text
4007 #: build/C/man3/exec.3:54
4008 msgid "B<int execle(const char *>I<path>B<, const char *>I<arg>B<,>"
4009 msgstr ""
4010
4011 #. type: Plain text
4012 #: build/C/man3/exec.3:56
4013 msgid "B< ..., char * const >I<envp>B<[]);>"
4014 msgstr ""
4015
4016 #. type: Plain text
4017 #: build/C/man3/exec.3:58
4018 msgid "B<int execv(const char *>I<path>B<, char *const >I<argv>B<[]);>"
4019 msgstr ""
4020
4021 #. type: Plain text
4022 #: build/C/man3/exec.3:60
4023 msgid "B<int execvp(const char *>I<file>B<, char *const >I<argv>B<[]);>"
4024 msgstr ""
4025
4026 #. type: Plain text
4027 #: build/C/man3/exec.3:62
4028 msgid "B<int execvpe(const char *>I<file>B<, char *const >I<argv>B<[],>"
4029 msgstr ""
4030
4031 #. type: Plain text
4032 #: build/C/man3/exec.3:64 build/C/man2/execve.2:46
4033 msgid "B< char *const >I<envp>B<[]);>"
4034 msgstr ""
4035
4036 #. type: Plain text
4037 #: build/C/man3/exec.3:72
4038 msgid "B<execvpe>(): _GNU_SOURCE"
4039 msgstr ""
4040
4041 #. type: Plain text
4042 #: build/C/man3/exec.3:82
4043 msgid ""
4044 "The B<exec>()  family of functions replaces the current process image with a "
4045 "new process image.  The functions described in this manual page are "
4046 "front-ends for B<execve>(2).  (See the manual page for B<execve>(2)  for "
4047 "further details about the replacement of the current process image.)"
4048 msgstr ""
4049
4050 #. type: Plain text
4051 #: build/C/man3/exec.3:85
4052 msgid ""
4053 "The initial argument for these functions is the name of a file that is to be "
4054 "executed."
4055 msgstr ""
4056
4057 #. type: Plain text
4058 #: build/C/man3/exec.3:107
4059 msgid ""
4060 "The I<const char\\ *arg> and subsequent ellipses in the B<execl>(), "
4061 "B<execlp>(), and B<execle>()  functions can be thought of as I<arg0>, "
4062 "I<arg1>, \\&..., I<argn>.  Together they describe a list of one or more "
4063 "pointers to null-terminated strings that represent the argument list "
4064 "available to the executed program.  The first argument, by convention, "
4065 "should point to the filename associated with the file being executed.  The "
4066 "list of arguments I<must> be terminated by a null pointer, and, since these "
4067 "are variadic functions, this pointer must be cast I<(char\\ *) NULL>."
4068 msgstr ""
4069
4070 #. type: Plain text
4071 #: build/C/man3/exec.3:120
4072 msgid ""
4073 "The B<execv>(), B<execvp>(), and B<execvpe>()  functions provide an array of "
4074 "pointers to null-terminated strings that represent the argument list "
4075 "available to the new program.  The first argument, by convention, should "
4076 "point to the filename associated with the file being executed.  The array of "
4077 "pointers I<must> be terminated by a null pointer."
4078 msgstr ""
4079
4080 #. type: Plain text
4081 #: build/C/man3/exec.3:137
4082 msgid ""
4083 "The B<execle>()  and B<execvpe>()  functions allow the caller to specify the "
4084 "environment of the executed program via the argument I<envp>.  The I<envp> "
4085 "argument is an array of pointers to null-terminated strings and I<must> be "
4086 "terminated by a null pointer.  The other functions take the environment for "
4087 "the new process image from the external variable I<environ> in the calling "
4088 "process."
4089 msgstr ""
4090
4091 #. type: SS
4092 #: build/C/man3/exec.3:137
4093 #, no-wrap
4094 msgid "Special semantics for execlp() and execvp()"
4095 msgstr ""
4096
4097 #. type: Plain text
4098 #: build/C/man3/exec.3:157
4099 msgid ""
4100 "The B<execlp>(), B<execvp>(), and B<execvpe>()  functions duplicate the "
4101 "actions of the shell in searching for an executable file if the specified "
4102 "filename does not contain a slash (/) character.  The file is sought in the "
4103 "colon-separated list of directory pathnames specified in the B<PATH> "
4104 "environment variable.  If this variable isn't defined, the path list "
4105 "defaults to the current directory followed by the list of directories "
4106 "returned by I<confstr(_CS_PATH)>.  (This B<confstr>(3)  call typically "
4107 "returns the value \"/bin:/usr/bin\".)"
4108 msgstr ""
4109
4110 #. type: Plain text
4111 #: build/C/man3/exec.3:161
4112 msgid ""
4113 "If the specified filename includes a slash character, then B<PATH> is "
4114 "ignored, and the file at the specified pathname is executed."
4115 msgstr ""
4116
4117 #. type: Plain text
4118 #: build/C/man3/exec.3:163
4119 msgid "In addition, certain errors are treated specially."
4120 msgstr ""
4121
4122 #. type: Plain text
4123 #: build/C/man3/exec.3:174
4124 msgid ""
4125 "If permission is denied for a file (the attempted B<execve>(2)  failed with "
4126 "the error B<EACCES>), these functions will continue searching the rest of "
4127 "the search path.  If no other file is found, however, they will return with "
4128 "I<errno> set to B<EACCES>."
4129 msgstr ""
4130
4131 #. type: Plain text
4132 #: build/C/man3/exec.3:183
4133 msgid ""
4134 "If the header of a file isn't recognized (the attempted B<execve>(2)  failed "
4135 "with the error B<ENOEXEC>), these functions will execute the shell "
4136 "(I</bin/sh>)  with the path of the file as its first argument.  (If this "
4137 "attempt fails, no further searching is done.)"
4138 msgstr ""
4139
4140 #. type: Plain text
4141 #: build/C/man3/exec.3:190
4142 msgid ""
4143 "The B<exec>()  functions return only if an error has occurred.  The return "
4144 "value is -1, and I<errno> is set to indicate the error."
4145 msgstr ""
4146
4147 #. type: Plain text
4148 #: build/C/man3/exec.3:195
4149 msgid ""
4150 "All of these functions may fail and set I<errno> for any of the errors "
4151 "specified for B<execve>(2)."
4152 msgstr ""
4153
4154 #. type: Plain text
4155 #: build/C/man3/exec.3:199
4156 msgid "The B<execvpe>()  function first appeared in glibc 2.11."
4157 msgstr ""
4158
4159 #. type: Plain text
4160 #: build/C/man3/exec.3:201
4161 msgid "POSIX.1-2001, POSIX.1-2008."
4162 msgstr ""
4163
4164 #. type: Plain text
4165 #: build/C/man3/exec.3:205
4166 msgid "The B<execvpe>()  function is a GNU extension."
4167 msgstr ""
4168
4169 #. type: Plain text
4170 #: build/C/man3/exec.3:215
4171 msgid ""
4172 "On some other systems, the default path (used when the environment does not "
4173 "contain the variable B<PATH>) has the current working directory listed after "
4174 "I</bin> and I</usr/bin>, as an anti-Trojan-horse measure.  Linux uses here "
4175 "the traditional \"current directory first\" default path."
4176 msgstr ""
4177
4178 #. type: Plain text
4179 #: build/C/man3/exec.3:229
4180 msgid ""
4181 "The behavior of B<execlp>()  and B<execvp>()  when errors occur while "
4182 "attempting to execute the file is historic practice, but has not "
4183 "traditionally been documented and is not specified by the POSIX standard.  "
4184 "BSD (and possibly other systems) do an automatic sleep and retry if "
4185 "B<ETXTBSY> is encountered.  Linux treats it as a hard error and returns "
4186 "immediately."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man3/exec.3:241
4191 msgid ""
4192 "Traditionally, the functions B<execlp>()  and B<execvp>()  ignored all "
4193 "errors except for the ones described above and B<ENOMEM> and B<E2BIG>, upon "
4194 "which they returned.  They now return if any error other than the ones "
4195 "described above occurs."
4196 msgstr ""
4197
4198 #. type: Plain text
4199 #: build/C/man3/exec.3:248
4200 msgid ""
4201 "B<sh>(1), B<execve>(2), B<execveat>(2), B<fork>(2), B<ptrace>(2), "
4202 "B<fexecve>(3), B<environ>(7)"
4203 msgstr ""
4204
4205 #. type: TH
4206 #: build/C/man2/execve.2:37
4207 #, no-wrap
4208 msgid "EXECVE"
4209 msgstr ""
4210
4211 #. type: TH
4212 #: build/C/man2/execve.2:37
4213 #, no-wrap
4214 msgid "2014-10-02"
4215 msgstr ""
4216
4217 #. type: Plain text
4218 #: build/C/man2/execve.2:40
4219 msgid "execve - execute program"
4220 msgstr ""
4221
4222 #. type: Plain text
4223 #: build/C/man2/execve.2:44
4224 msgid "B<int execve(const char *>I<filename>B<, char *const >I<argv>B<[], >"
4225 msgstr ""
4226
4227 #. type: Plain text
4228 #: build/C/man2/execve.2:51
4229 msgid ""
4230 "B<execve>()  executes the program pointed to by I<filename>.  I<filename> "
4231 "must be either a binary executable, or a script starting with a line of the "
4232 "form:"
4233 msgstr ""
4234
4235 #. type: Plain text
4236 #: build/C/man2/execve.2:55 build/C/man2/execve.2:265
4237 #, no-wrap
4238 msgid "B<#!> I<interpreter >[optional-arg]\n"
4239 msgstr ""
4240
4241 #. type: Plain text
4242 #: build/C/man2/execve.2:59
4243 msgid "For details of the latter case, see \"Interpreter scripts\" below."
4244 msgstr ""
4245
4246 #. type: Plain text
4247 #: build/C/man2/execve.2:68
4248 msgid ""
4249 "I<argv> is an array of argument strings passed to the new program.  By "
4250 "convention, the first of these strings should contain the filename "
4251 "associated with the file being executed.  I<envp> is an array of strings, "
4252 "conventionally of the form B<key=value>, which are passed as environment to "
4253 "the new program.  Both I<argv> and I<envp> must be terminated by a null "
4254 "pointer.  The argument vector and environment can be accessed by the called "
4255 "program's main function, when it is defined as:"
4256 msgstr ""
4257
4258 #. type: Plain text
4259 #: build/C/man2/execve.2:72
4260 #, no-wrap
4261 msgid "int main(int argc, char *argv[], char *envp[])\n"
4262 msgstr ""
4263
4264 #. type: Plain text
4265 #: build/C/man2/execve.2:79
4266 msgid ""
4267 "B<execve>()  does not return on success, and the text, data, bss, and stack "
4268 "of the calling process are overwritten by that of the program loaded."
4269 msgstr ""
4270
4271 #. type: Plain text
4272 #: build/C/man2/execve.2:83
4273 msgid ""
4274 "If the current program is being ptraced, a B<SIGTRAP> is sent to it after a "
4275 "successful B<execve>()."
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man2/execve.2:98
4280 msgid ""
4281 "If the set-user-ID bit is set on the program file pointed to by I<filename>, "
4282 "and the underlying filesystem is not mounted I<nosuid> (the B<MS_NOSUID> "
4283 "flag for B<mount>(2)), and the calling process is not being ptraced, then "
4284 "the effective user ID of the calling process is changed to that of the owner "
4285 "of the program file.  Similarly, when the set-group-ID bit of the program "
4286 "file is set the effective group ID of the calling process is set to the "
4287 "group of the program file."
4288 msgstr ""
4289
4290 #. type: Plain text
4291 #: build/C/man2/execve.2:103
4292 msgid ""
4293 "The effective user ID of the process is copied to the saved set-user-ID; "
4294 "similarly, the effective group ID is copied to the saved set-group-ID.  This "
4295 "copying takes place after any effective ID changes that occur because of the "
4296 "set-user-ID and set-group-ID permission bits."
4297 msgstr ""
4298
4299 #. type: Plain text
4300 #: build/C/man2/execve.2:111
4301 msgid ""
4302 "If the executable is an a.out dynamically linked binary executable "
4303 "containing shared-library stubs, the Linux dynamic linker B<ld.so>(8)  is "
4304 "called at the start of execution to bring needed shared libraries into "
4305 "memory and link the executable with them."
4306 msgstr ""
4307
4308 #. type: Plain text
4309 #: build/C/man2/execve.2:118
4310 msgid ""
4311 "If the executable is a dynamically linked ELF executable, the interpreter "
4312 "named in the PT_INTERP segment is used to load the needed shared libraries.  "
4313 "This interpreter is typically I</lib/ld-linux.so.2> for binaries linked with "
4314 "glibc."
4315 msgstr ""
4316
4317 #. type: Plain text
4318 #: build/C/man2/execve.2:122
4319 msgid ""
4320 "All process attributes are preserved during an B<execve>(), except the "
4321 "following:"
4322 msgstr ""
4323
4324 #. type: Plain text
4325 #: build/C/man2/execve.2:126
4326 msgid ""
4327 "The dispositions of any signals that are being caught are reset to the "
4328 "default (B<signal>(7))."
4329 msgstr ""
4330
4331 #. type: Plain text
4332 #: build/C/man2/execve.2:129
4333 msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
4334 msgstr ""
4335
4336 #. type: Plain text
4337 #: build/C/man2/execve.2:132
4338 msgid "Memory mappings are not preserved (B<mmap>(2))."
4339 msgstr ""
4340
4341 #. type: Plain text
4342 #: build/C/man2/execve.2:135
4343 msgid "Attached System\\ V shared memory segments are detached (B<shmat>(2))."
4344 msgstr ""
4345
4346 #. type: Plain text
4347 #: build/C/man2/execve.2:138
4348 msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
4349 msgstr ""
4350
4351 #. type: Plain text
4352 #: build/C/man2/execve.2:141
4353 msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
4354 msgstr ""
4355
4356 #. type: Plain text
4357 #: build/C/man2/execve.2:144
4358 msgid "Any open POSIX named semaphores are closed (B<sem_overview>(7))."
4359 msgstr ""
4360
4361 #. type: Plain text
4362 #: build/C/man2/execve.2:147
4363 msgid "POSIX timers are not preserved (B<timer_create>(2))."
4364 msgstr ""
4365
4366 #. type: Plain text
4367 #: build/C/man2/execve.2:150
4368 msgid "Any open directory streams are closed (B<opendir>(3))."
4369 msgstr ""
4370
4371 #. type: Plain text
4372 #: build/C/man2/execve.2:154
4373 msgid "Memory locks are not preserved (B<mlock>(2), B<mlockall>(2))."
4374 msgstr ""
4375
4376 #. type: Plain text
4377 #: build/C/man2/execve.2:158
4378 msgid "Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3))."
4379 msgstr ""
4380
4381 #. type: Plain text
4382 #: build/C/man2/execve.2:161
4383 msgid "The floating-point environment is reset to the default (see B<fenv>(3))."
4384 msgstr ""
4385
4386 #. type: Plain text
4387 #: build/C/man2/execve.2:167
4388 msgid ""
4389 "The process attributes in the preceding list are all specified in "
4390 "POSIX.1-2001.  The following Linux-specific process attributes are also not "
4391 "preserved during an B<execve>():"
4392 msgstr ""
4393
4394 #. type: Plain text
4395 #: build/C/man2/execve.2:174
4396 msgid ""
4397 "The B<prctl>(2)  B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or "
4398 "set-group ID program is being executed, in which case it is cleared."
4399 msgstr ""
4400
4401 #. type: Plain text
4402 #: build/C/man2/execve.2:179
4403 msgid "The B<prctl>(2)  B<PR_SET_KEEPCAPS> flag is cleared."
4404 msgstr ""
4405
4406 #. type: Plain text
4407 #: build/C/man2/execve.2:186
4408 msgid ""
4409 "(Since Linux 2.4.36 / 2.6.23)  If a set-user-ID or set-group-ID program is "
4410 "being executed, then the parent death signal set by B<prctl>(2)  "
4411 "B<PR_SET_PDEATHSIG> flag is cleared."
4412 msgstr ""
4413
4414 #. type: Plain text
4415 #: build/C/man2/execve.2:193
4416 msgid ""
4417 "The process name, as set by B<prctl>(2)  B<PR_SET_NAME> (and displayed by "
4418 "I<ps\\ -o comm>), is reset to the name of the new executable file."
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man2/execve.2:200
4423 msgid ""
4424 "The B<SECBIT_KEEP_CAPS> I<securebits> flag is cleared.  See "
4425 "B<capabilities>(7)."
4426 msgstr ""
4427
4428 #. type: Plain text
4429 #: build/C/man2/execve.2:205
4430 msgid "The termination signal is reset to B<SIGCHLD> (see B<clone>(2))."
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man2/execve.2:207 build/C/man2/fork.2:138
4435 msgid "Note the following further points:"
4436 msgstr ""
4437
4438 #. type: Plain text
4439 #: build/C/man2/execve.2:211
4440 msgid ""
4441 "All threads other than the calling thread are destroyed during an "
4442 "B<execve>().  Mutexes, condition variables, and other pthreads objects are "
4443 "not preserved."
4444 msgstr ""
4445
4446 #. type: Plain text
4447 #: build/C/man2/execve.2:214
4448 msgid ""
4449 "The equivalent of I<setlocale(LC_ALL, \"C\")> is executed at program "
4450 "start-up."
4451 msgstr ""
4452
4453 #. type: Plain text
4454 #: build/C/man2/execve.2:222
4455 msgid ""
4456 "POSIX.1-2001 specifies that the dispositions of any signals that are ignored "
4457 "or set to the default are left unchanged.  POSIX.1-2001 specifies one "
4458 "exception: if B<SIGCHLD> is being ignored, then an implementation may leave "
4459 "the disposition unchanged or reset it to the default; Linux does the former."
4460 msgstr ""
4461
4462 #. type: Plain text
4463 #: build/C/man2/execve.2:226
4464 msgid ""
4465 "Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), "
4466 "B<aio_write>(3))."
4467 msgstr ""
4468
4469 #. type: Plain text
4470 #: build/C/man2/execve.2:231
4471 msgid "For the handling of capabilities during B<execve>(), see B<capabilities>(7)."
4472 msgstr ""
4473
4474 #.  On Linux it appears that these file descriptors are
4475 #.  always open after an execve(), and it looks like
4476 #.  Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
4477 #. type: Plain text
4478 #: build/C/man2/execve.2:258
4479 msgid ""
4480 "By default, file descriptors remain open across an B<execve>().  File "
4481 "descriptors that are marked close-on-exec are closed; see the description of "
4482 "B<FD_CLOEXEC> in B<fcntl>(2).  (If a file descriptor is closed, this will "
4483 "cause the release of all record locks obtained on the underlying file by "
4484 "this process.  See B<fcntl>(2)  for details.)  POSIX.1-2001 says that if "
4485 "file descriptors 0, 1, and 2 would otherwise be closed after a successful "
4486 "B<execve>(), and the process would gain privilege because the set-user_ID or "
4487 "set-group_ID permission bit was set on the executed file, then the system "
4488 "may open an unspecified file for each of these file descriptors.  As a "
4489 "general principle, no portable program, whether privileged or not, can "
4490 "assume that these three file descriptors will remain closed across an "
4491 "B<execve>()."
4492 msgstr ""
4493
4494 #. type: SS
4495 #: build/C/man2/execve.2:258 build/C/man2/execve.2:528
4496 #, no-wrap
4497 msgid "Interpreter scripts"
4498 msgstr ""
4499
4500 #. type: Plain text
4501 #: build/C/man2/execve.2:261
4502 msgid ""
4503 "An interpreter script is a text file that has execute permission enabled and "
4504 "whose first line is of the form:"
4505 msgstr ""
4506
4507 #. type: Plain text
4508 #: build/C/man2/execve.2:279
4509 msgid ""
4510 "The I<interpreter> must be a valid pathname for an executable which is not "
4511 "itself a script.  If the I<filename> argument of B<execve>()  specifies an "
4512 "interpreter script, then I<interpreter> will be invoked with the following "
4513 "arguments:"
4514 msgstr ""
4515
4516 #. type: Plain text
4517 #: build/C/man2/execve.2:283
4518 #, no-wrap
4519 msgid "I<interpreter> [optional-arg] I<filename> arg...\n"
4520 msgstr ""
4521
4522 #. type: Plain text
4523 #: build/C/man2/execve.2:294
4524 msgid ""
4525 "where I<arg...> is the series of words pointed to by the I<argv> argument of "
4526 "B<execve>(), starting at I<argv>[1]."
4527 msgstr ""
4528
4529 #. type: Plain text
4530 #: build/C/man2/execve.2:299
4531 msgid ""
4532 "For portable use, I<optional-arg> should either be absent, or be specified "
4533 "as a single word (i.e., it should not contain white space); see NOTES below."
4534 msgstr ""
4535
4536 #. type: SS
4537 #: build/C/man2/execve.2:299
4538 #, no-wrap
4539 msgid "Limits on size of arguments and environment"
4540 msgstr ""
4541
4542 #. type: Plain text
4543 #: build/C/man2/execve.2:312
4544 msgid ""
4545 "Most UNIX implementations impose some limit on the total size of the "
4546 "command-line argument (I<argv>)  and environment (I<envp>)  strings that may "
4547 "be passed to a new program.  POSIX.1 allows an implementation to advertise "
4548 "this limit using the B<ARG_MAX> constant (either defined in "
4549 "I<E<lt>limits.hE<gt>> or available at run time using the call "
4550 "I<sysconf(_SC_ARG_MAX)>)."
4551 msgstr ""
4552
4553 #. type: Plain text
4554 #: build/C/man2/execve.2:319
4555 msgid ""
4556 "On Linux prior to kernel 2.6.23, the memory used to store the environment "
4557 "and argument strings was limited to 32 pages (defined by the kernel constant "
4558 "B<MAX_ARG_PAGES>).  On architectures with a 4-kB page size, this yields a "
4559 "maximum size of 128 kB."
4560 msgstr ""
4561
4562 #.  For some background on the changes to ARG_MAX in kernels 2.6.23 and
4563 #.  2.6.25, see:
4564 #.      http://sourceware.org/bugzilla/show_bug.cgi?id=5786
4565 #.      http://bugzilla.kernel.org/show_bug.cgi?id=10095
4566 #.      http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101,
4567 #.      checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.
4568 #.  Ollie: That doesn't include the lists of pointers, though,
4569 #.  so the actual usage is a bit higher (1 pointer per argument).
4570 #. type: Plain text
4571 #: build/C/man2/execve.2:355
4572 msgid ""
4573 "On kernel 2.6.23 and later, most architectures support a size limit derived "
4574 "from the soft B<RLIMIT_STACK> resource limit (see B<getrlimit>(2))  that is "
4575 "in force at the time of the B<execve>()  call.  (Architectures with no "
4576 "memory management unit are excepted: they maintain the limit that was in "
4577 "effect before kernel 2.6.23.)  This change allows programs to have a much "
4578 "larger argument and/or environment list.  For these architectures, the total "
4579 "size is limited to 1/4 of the allowed stack size.  (Imposing the 1/4-limit "
4580 "ensures that the new program always has some stack space.)  Since Linux "
4581 "2.6.25, the kernel places a floor of 32 pages on this size limit, so that, "
4582 "even when B<RLIMIT_STACK> is set very low, applications are guaranteed to "
4583 "have at least as much argument and environment space as was provided by "
4584 "Linux 2.6.23 and earlier.  (This guarantee was not provided in Linux 2.6.23 "
4585 "and 2.6.24.)  Additionally, the limit per string is 32 pages (the kernel "
4586 "constant B<MAX_ARG_STRLEN>), and the maximum number of strings is "
4587 "0x7FFFFFFF."
4588 msgstr ""
4589
4590 #. type: Plain text
4591 #: build/C/man2/execve.2:361
4592 msgid ""
4593 "On success, B<execve>()  does not return, on error -1 is returned, and "
4594 "I<errno> is set appropriately."
4595 msgstr ""
4596
4597 #. type: TP
4598 #: build/C/man2/execve.2:362
4599 #, no-wrap
4600 msgid "B<E2BIG>"
4601 msgstr ""
4602
4603 #. type: Plain text
4604 #: build/C/man2/execve.2:369
4605 msgid ""
4606 "The total number of bytes in the environment (I<envp>)  and argument list "
4607 "(I<argv>)  is too large."
4608 msgstr ""
4609
4610 #. type: Plain text
4611 #: build/C/man2/execve.2:376
4612 msgid ""
4613 "Search permission is denied on a component of the path prefix of I<filename> "
4614 "or the name of a script interpreter.  (See also B<path_resolution>(7).)"
4615 msgstr ""
4616
4617 #. type: Plain text
4618 #: build/C/man2/execve.2:379
4619 msgid "The file or a script interpreter is not a regular file."
4620 msgstr ""
4621
4622 #. type: Plain text
4623 #: build/C/man2/execve.2:382
4624 msgid "Execute permission is denied for the file or a script or ELF interpreter."
4625 msgstr ""
4626
4627 #. type: Plain text
4628 #: build/C/man2/execve.2:386
4629 msgid "The filesystem is mounted I<noexec>."
4630 msgstr ""
4631
4632 #. type: TP
4633 #: build/C/man2/execve.2:386
4634 #, no-wrap
4635 msgid "B<EAGAIN> (since Linux 3.1)"
4636 msgstr ""
4637
4638 #.  commit 72fa59970f8698023045ab0713d66f3f4f96945c
4639 #. type: Plain text
4640 #: build/C/man2/execve.2:396
4641 msgid ""
4642 "Having changed its real UID using one of the B<set*uid>()  calls, the caller "
4643 "was\\(emand is now still\\(emabove its B<RLIMIT_NPROC> resource limit (see "
4644 "B<setrlimit>(2)).  For a more detailed explanation of this error, see NOTES."
4645 msgstr ""
4646
4647 #. type: Plain text
4648 #: build/C/man2/execve.2:404
4649 msgid ""
4650 "I<filename> or one of the pointers in the vectors I<argv> or I<envp> points "
4651 "outside your accessible address space."
4652 msgstr ""
4653
4654 #. type: Plain text
4655 #: build/C/man2/execve.2:408
4656 msgid ""
4657 "An ELF executable had more than one PT_INTERP segment (i.e., tried to name "
4658 "more than one interpreter)."
4659 msgstr ""
4660
4661 #. type: TP
4662 #: build/C/man2/execve.2:411 build/C/man2/truncate.2:149
4663 #, no-wrap
4664 msgid "B<EISDIR>"
4665 msgstr ""
4666
4667 #. type: Plain text
4668 #: build/C/man2/execve.2:414
4669 msgid "An ELF interpreter was a directory."
4670 msgstr ""
4671
4672 #. type: TP
4673 #: build/C/man2/execve.2:414
4674 #, no-wrap
4675 msgid "B<ELIBBAD>"
4676 msgstr ""
4677
4678 #. type: Plain text
4679 #: build/C/man2/execve.2:417
4680 msgid "An ELF interpreter was not in a recognized format."
4681 msgstr ""
4682
4683 #. type: Plain text
4684 #: build/C/man2/execve.2:422
4685 msgid ""
4686 "Too many symbolic links were encountered in resolving I<filename> or the "
4687 "name of a script or ELF interpreter."
4688 msgstr ""
4689
4690 #. type: Plain text
4691 #: build/C/man2/execve.2:425
4692 msgid "The process has the maximum number of files open."
4693 msgstr ""
4694
4695 #. type: Plain text
4696 #: build/C/man2/execve.2:429
4697 msgid "I<filename> is too long."
4698 msgstr ""
4699
4700 #. type: TP
4701 #: build/C/man2/execve.2:429 build/C/man3/getlogin.3:108 build/C/man2/swapon.2:144 build/C/man2/uselib.2:67
4702 #, no-wrap
4703 msgid "B<ENFILE>"
4704 msgstr ""
4705
4706 #. type: Plain text
4707 #: build/C/man2/execve.2:432 build/C/man2/swapon.2:147 build/C/man2/uselib.2:70
4708 msgid "The system limit on the total number of open files has been reached."
4709 msgstr ""
4710
4711 #. type: Plain text
4712 #: build/C/man2/execve.2:438
4713 msgid ""
4714 "The file I<filename> or a script or ELF interpreter does not exist, or a "
4715 "shared library needed for file or interpreter cannot be found."
4716 msgstr ""
4717
4718 #. type: TP
4719 #: build/C/man2/execve.2:438 build/C/man2/uselib.2:70
4720 #, no-wrap
4721 msgid "B<ENOEXEC>"
4722 msgstr ""
4723
4724 #. type: Plain text
4725 #: build/C/man2/execve.2:443
4726 msgid ""
4727 "An executable is not in a recognized format, is for the wrong architecture, "
4728 "or has some other format error that means it cannot be executed."
4729 msgstr ""
4730
4731 #. type: Plain text
4732 #: build/C/man2/execve.2:451
4733 msgid ""
4734 "A component of the path prefix of I<filename> or a script or ELF interpreter "
4735 "is not a directory."
4736 msgstr ""
4737
4738 #. type: Plain text
4739 #: build/C/man2/execve.2:457
4740 msgid ""
4741 "The filesystem is mounted I<nosuid>, the user is not the superuser, and the "
4742 "file has the set-user-ID or set-group-ID bit set."
4743 msgstr ""
4744
4745 #. type: Plain text
4746 #: build/C/man2/execve.2:461
4747 msgid ""
4748 "The process is being traced, the user is not the superuser and the file has "
4749 "the set-user-ID or set-group-ID bit set."
4750 msgstr ""
4751
4752 #. type: Plain text
4753 #: build/C/man2/execve.2:464
4754 msgid "Executable was open for writing by one or more processes."
4755 msgstr ""
4756
4757 #.  SVr4 documents additional error
4758 #.  conditions EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX does not
4759 #.  document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL,
4760 #.  EISDIR or ELIBBAD error conditions.
4761 #. type: Plain text
4762 #: build/C/man2/execve.2:472
4763 msgid ""
4764 "SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2001 does not document the #! behavior "
4765 "but is otherwise compatible."
4766 msgstr ""
4767
4768 #. type: Plain text
4769 #: build/C/man2/execve.2:475
4770 msgid "Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d."
4771 msgstr ""
4772
4773 #.  e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
4774 #.  HP-UX 11 is like Linux -- mtk, Apr 2007
4775 #.  Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
4776 #.  Bug rejected (because fix would constitute an ABI change).
4777 #. type: Plain text
4778 #: build/C/man2/execve.2:502
4779 msgid ""
4780 "The result of mounting a filesystem I<nosuid> varies across Linux kernel "
4781 "versions: some will refuse execution of set-user-ID and set-group-ID "
4782 "executables when this would give the user powers she did not have already "
4783 "(and return B<EPERM>), some will just ignore the set-user-ID and "
4784 "set-group-ID bits and B<exec>()  successfully.  On Linux, I<argv> and "
4785 "I<envp> can be specified as NULL.  In both cases, this has the same effect "
4786 "as specifying the argument as a pointer to a list containing a single null "
4787 "pointer.  B<Do not take advantage of this misfeature!> It is nonstandard and "
4788 "nonportable: on most other UNIX systems doing this will result in an error "
4789 "(B<EFAULT>)."
4790 msgstr ""
4791
4792 #. type: Plain text
4793 #: build/C/man2/execve.2:513
4794 msgid ""
4795 "POSIX.1-2001 says that values returned by B<sysconf>(3)  should be invariant "
4796 "over the lifetime of a process.  However, since Linux 2.6.23, if the "
4797 "B<RLIMIT_STACK> resource limit changes, then the value reported by "
4798 "B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
4799 "for holding command-line arguments and environment variables has changed."
4800 msgstr ""
4801
4802 #. type: Plain text
4803 #: build/C/man2/execve.2:528
4804 msgid ""
4805 "In most cases where B<execve>()  fails, control returns to the original "
4806 "executable image, and the caller of B<execve>()  can then handle the error.  "
4807 "However, in (rare) cases (typically caused by resource exhaustion), failure "
4808 "may occur past the point of no return: the original executable image has "
4809 "been torn down, but the new image could not be completely built.  In such "
4810 "cases, the kernel kills the process with a B<SIGKILL> signal."
4811 msgstr ""
4812
4813 #. type: Plain text
4814 #: build/C/man2/execve.2:531
4815 msgid ""
4816 "A maximum line length of 127 characters is allowed for the first line in an "
4817 "interpreter scripts."
4818 msgstr ""
4819
4820 #.  e.g., Solaris 8
4821 #.  e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
4822 #. type: Plain text
4823 #: build/C/man2/execve.2:550
4824 msgid ""
4825 "The semantics of the I<optional-arg> argument of an interpreter script vary "
4826 "across implementations.  On Linux, the entire string following the "
4827 "I<interpreter> name is passed as a single argument to the interpreter, and "
4828 "this string can include white space.  However, behavior differs on some "
4829 "other systems.  Some systems use the first white space to terminate "
4830 "I<optional-arg>.  On some systems, an interpreter script can have multiple "
4831 "arguments, and white spaces in I<optional-arg> are used to delimit the "
4832 "arguments."
4833 msgstr ""
4834
4835 #
4836 #.  .SH BUGS
4837 #.  Some Linux versions have failed to check permissions on ELF
4838 #.  interpreters.  This is a security hole, because it allows users to
4839 #.  open any file, such as a rewinding tape device, for reading.  Some
4840 #.  Linux versions have also had other security holes in
4841 #.  .BR execve ()
4842 #.  that could be exploited for denial of service by a suitably crafted
4843 #.  ELF binary. There are no known problems with 2.0.34 or 2.2.15.
4844 #. type: Plain text
4845 #: build/C/man2/execve.2:561
4846 msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
4847 msgstr ""
4848
4849 #. type: SS
4850 #: build/C/man2/execve.2:561
4851 #, no-wrap
4852 msgid "execve() and EAGAIN"
4853 msgstr ""
4854
4855 #. type: Plain text
4856 #: build/C/man2/execve.2:567
4857 msgid ""
4858 "A more detailed explanation of the B<EAGAIN> error that can occur (since "
4859 "Linux 3.1) when calling B<execve>()  is as follows."
4860 msgstr ""
4861
4862 #.  commit 909cc4ae86f3380152a18e2a3c44523893ee11c4
4863 #. type: Plain text
4864 #: build/C/man2/execve.2:589
4865 msgid ""
4866 "The B<EAGAIN> error can occur when a I<preceding> call to B<setuid>(2), "
4867 "B<setreuid>(2), or B<setresuid>(2)  caused the real user ID of the process "
4868 "to change, and that change caused the process to exceed its B<RLIMIT_NPROC> "
4869 "resource limit (i.e., the number of processes belonging to the new real UID "
4870 "exceeds the resource limit).  From Linux 2.6.0 to 3.0, this caused the "
4871 "B<set*uid>()  call to fail.  (Prior to 2.6, the resource limit was not "
4872 "imposed on processes that changed their user IDs.)"
4873 msgstr ""
4874
4875 #. type: Plain text
4876 #: build/C/man2/execve.2:620
4877 msgid ""
4878 "Since Linux 3.1, the scenario just described no longer causes the "
4879 "B<set*uid>()  call to fail, because it too often led to security holes where "
4880 "buggy applications didn't check the return status and assumed that\\(emif "
4881 "the caller had root privileges\\(emthe call would always succeed.  Instead, "
4882 "the B<set*uid>()  calls now successfully change the real UID, but the kernel "
4883 "sets an internal flag, named B<PF_NPROC_EXCEEDED>, to note that the "
4884 "B<RLIMIT_NPROC> resource limit has been exceeded.  If the "
4885 "B<PF_NPROC_EXCEEDED> flag is set and the resource limit is still exceeded at "
4886 "the time of a subsequent B<execve>()  call, that call fails with the error "
4887 "B<EAGAIN>.  This kernel logic ensures that the B<RLIMIT_NPROC> resource "
4888 "limit is still enforced for the common privileged daemon "
4889 "workflow\\(emnamely, B<fork>(2)  + B<set*uid>()  + B<execve>()."
4890 msgstr ""
4891
4892 #. type: Plain text
4893 #: build/C/man2/execve.2:636
4894 msgid ""
4895 "If the resource limit was not still exceeded at the time of the B<execve>()  "
4896 "call (because other processes belonging to this real UID terminated between "
4897 "the B<set*uid>()  call and the B<execve>()  call), then the B<execve>()  "
4898 "call succeeds and the kernel clears the B<PF_NPROC_EXCEEDED> process flag.  "
4899 "The flag is also cleared if a subsequent call to B<fork>(2)  by this process "
4900 "succeeds."
4901 msgstr ""
4902
4903 #. type: SS
4904 #: build/C/man2/execve.2:636
4905 #, no-wrap
4906 msgid "Historical"
4907 msgstr ""
4908
4909 #
4910 #.  .SH BUGS
4911 #.  Some Linux versions have failed to check permissions on ELF
4912 #.  interpreters.  This is a security hole, because it allows users to
4913 #.  open any file, such as a rewinding tape device, for reading.  Some
4914 #.  Linux versions have also had other security holes in
4915 #.  .BR execve ()
4916 #.  that could be exploited for denial of service by a suitably crafted
4917 #.  ELF binary. There are no known problems with 2.0.34 or 2.2.15.
4918 #. type: Plain text
4919 #: build/C/man2/execve.2:656
4920 msgid ""
4921 "With UNIX\\ V6, the argument list of an B<exec>()  call was ended by 0, "
4922 "while the argument list of I<main> was ended by -1.  Thus, this argument "
4923 "list was not directly usable in a further B<exec>()  call.  Since UNIX\\ V7, "
4924 "both are NULL."
4925 msgstr ""
4926
4927 #. type: Plain text
4928 #: build/C/man2/execve.2:659
4929 msgid ""
4930 "The following program is designed to be execed by the second program below.  "
4931 "It just echoes its command-line arguments, one per line."
4932 msgstr ""
4933
4934 #. type: Plain text
4935 #: build/C/man2/execve.2:663
4936 #, no-wrap
4937 msgid "/* myecho.c */\n"
4938 msgstr ""
4939
4940 #. type: Plain text
4941 #: build/C/man2/execve.2:666
4942 #, no-wrap
4943 msgid ""
4944 "#include E<lt>stdio.hE<gt>\n"
4945 "#include E<lt>stdlib.hE<gt>\n"
4946 msgstr ""
4947
4948 #. type: Plain text
4949 #: build/C/man2/execve.2:671
4950 #, no-wrap
4951 msgid ""
4952 "int\n"
4953 "main(int argc, char *argv[])\n"
4954 "{\n"
4955 "    int j;\n"
4956 msgstr ""
4957
4958 #. type: Plain text
4959 #: build/C/man2/execve.2:674
4960 #, no-wrap
4961 msgid ""
4962 "    for (j = 0; j E<lt> argc; j++)\n"
4963 "        printf(\"argv[%d]: %s\\en\", j, argv[j]);\n"
4964 msgstr ""
4965
4966 #. type: Plain text
4967 #: build/C/man2/execve.2:682
4968 msgid ""
4969 "This program can be used to exec the program named in its command-line "
4970 "argument:"
4971 msgstr ""
4972
4973 #. type: Plain text
4974 #: build/C/man2/execve.2:686
4975 #, no-wrap
4976 msgid "/* execve.c */\n"
4977 msgstr ""
4978
4979 #. type: Plain text
4980 #: build/C/man2/execve.2:690
4981 #, no-wrap
4982 msgid ""
4983 "#include E<lt>stdio.hE<gt>\n"
4984 "#include E<lt>stdlib.hE<gt>\n"
4985 "#include E<lt>unistd.hE<gt>\n"
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man2/execve.2:696
4990 #, no-wrap
4991 msgid ""
4992 "int\n"
4993 "main(int argc, char *argv[])\n"
4994 "{\n"
4995 "    char *newargv[] = { NULL, \"hello\", \"world\", NULL };\n"
4996 "    char *newenviron[] = { NULL };\n"
4997 msgstr ""
4998
4999 #. type: Plain text
5000 #: build/C/man2/execve.2:701
5001 #, no-wrap
5002 msgid ""
5003 "    if (argc != 2) {\n"
5004 "        fprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", "
5005 "argv[0]);\n"
5006 "        exit(EXIT_FAILURE);\n"
5007 "    }\n"
5008 msgstr ""
5009
5010 #. type: Plain text
5011 #: build/C/man2/execve.2:703
5012 #, no-wrap
5013 msgid "    newargv[0] = argv[1];\n"
5014 msgstr ""
5015
5016 #. type: Plain text
5017 #: build/C/man2/execve.2:708
5018 #, no-wrap
5019 msgid ""
5020 "    execve(argv[1], newargv, newenviron);\n"
5021 "    perror(\"execve\");   /* execve() only returns on error */\n"
5022 "    exit(EXIT_FAILURE);\n"
5023 "}\n"
5024 msgstr ""
5025
5026 #. type: Plain text
5027 #: build/C/man2/execve.2:712
5028 msgid "We can use the second program to exec the first as follows:"
5029 msgstr ""
5030
5031 #. type: Plain text
5032 #: build/C/man2/execve.2:721
5033 #, no-wrap
5034 msgid ""
5035 "$B< cc myecho.c -o myecho>\n"
5036 "$B< cc execve.c -o execve>\n"
5037 "$B< ./execve ./myecho>\n"
5038 "argv[0]: ./myecho\n"
5039 "argv[1]: hello\n"
5040 "argv[2]: world\n"
5041 msgstr ""
5042
5043 #. type: Plain text
5044 #: build/C/man2/execve.2:729
5045 msgid ""
5046 "We can also use these programs to demonstrate the use of a script "
5047 "interpreter.  To do this we create a script whose \"interpreter\" is our "
5048 "I<myecho> program:"
5049 msgstr ""
5050
5051 #. type: Plain text
5052 #: build/C/man2/execve.2:736
5053 #, no-wrap
5054 msgid ""
5055 "$B< cat E<gt> script>\n"
5056 "B<#!./myecho script-arg>\n"
5057 "B<^D>\n"
5058 "$B< chmod +x script>\n"
5059 msgstr ""
5060
5061 #. type: Plain text
5062 #: build/C/man2/execve.2:740
5063 msgid "We can then use our program to exec the script:"
5064 msgstr ""
5065
5066 #. type: Plain text
5067 #: build/C/man2/execve.2:749
5068 #, no-wrap
5069 msgid ""
5070 "$B< ./execve ./script>\n"
5071 "argv[0]: ./myecho\n"
5072 "argv[1]: script-arg\n"
5073 "argv[2]: ./script\n"
5074 "argv[3]: hello\n"
5075 "argv[4]: world\n"
5076 msgstr ""
5077
5078 #. type: Plain text
5079 #: build/C/man2/execve.2:762
5080 msgid ""
5081 "B<chmod>(2), B<execveat>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), "
5082 "B<fexecve>(3), B<getopt>(3), B<credentials>(7), B<environ>(7), "
5083 "B<path_resolution>(7), B<ld.so>(8)"
5084 msgstr ""
5085
5086 #. type: TH
5087 #: build/C/man2/exit_group.2:25
5088 #, no-wrap
5089 msgid "EXIT_GROUP"
5090 msgstr ""
5091
5092 #. type: TH
5093 #: build/C/man2/exit_group.2:25
5094 #, no-wrap
5095 msgid "2008-11-27"
5096 msgstr ""
5097
5098 #. type: Plain text
5099 #: build/C/man2/exit_group.2:28
5100 msgid "exit_group - exit all threads in a process"
5101 msgstr ""
5102
5103 #. type: Plain text
5104 #: build/C/man2/exit_group.2:31
5105 #, no-wrap
5106 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
5107 msgstr ""
5108
5109 #. type: Plain text
5110 #: build/C/man2/exit_group.2:33
5111 #, no-wrap
5112 msgid "B<void exit_group(int >I<status>B<);>\n"
5113 msgstr ""
5114
5115 #. type: Plain text
5116 #: build/C/man2/exit_group.2:39
5117 msgid ""
5118 "This system call is equivalent to B<exit>(2)  except that it terminates not "
5119 "only the calling thread, but all threads in the calling process's thread "
5120 "group."
5121 msgstr ""
5122
5123 #. type: Plain text
5124 #: build/C/man2/exit_group.2:41
5125 msgid "This system call does not return."
5126 msgstr ""
5127
5128 #. type: Plain text
5129 #: build/C/man2/exit_group.2:43
5130 msgid "This call is present since Linux 2.5.35."
5131 msgstr ""
5132
5133 #. type: Plain text
5134 #: build/C/man2/exit_group.2:45
5135 msgid "This call is Linux-specific."
5136 msgstr ""
5137
5138 #. type: Plain text
5139 #: build/C/man2/exit_group.2:49
5140 msgid ""
5141 "Since glibc 2.3, this is the system call invoked when the B<exit>(2)  "
5142 "wrapper function is called."
5143 msgstr ""
5144
5145 #. type: Plain text
5146 #: build/C/man2/exit_group.2:50
5147 msgid "B<exit>(2)"
5148 msgstr ""
5149
5150 #. type: TH
5151 #: build/C/man2/fcntl.2:65
5152 #, no-wrap
5153 msgid "FCNTL"
5154 msgstr ""
5155
5156 #. type: TH
5157 #: build/C/man2/fcntl.2:65
5158 #, no-wrap
5159 msgid "2014-09-06"
5160 msgstr ""
5161
5162 #. type: Plain text
5163 #: build/C/man2/fcntl.2:68
5164 msgid "fcntl - manipulate file descriptor"
5165 msgstr ""
5166
5167 #. type: Plain text
5168 #: build/C/man2/fcntl.2:72
5169 #, no-wrap
5170 msgid ""
5171 "B<#include E<lt>unistd.hE<gt>>\n"
5172 "B<#include E<lt>fcntl.hE<gt>>\n"
5173 msgstr ""
5174
5175 #. type: Plain text
5176 #: build/C/man2/fcntl.2:74
5177 #, no-wrap
5178 msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n"
5179 msgstr ""
5180
5181 #. type: Plain text
5182 #: build/C/man2/fcntl.2:81
5183 msgid ""
5184 "B<fcntl>()  performs one of the operations described below on the open file "
5185 "descriptor I<fd>.  The operation is determined by I<cmd>."
5186 msgstr ""
5187
5188 #. type: Plain text
5189 #: build/C/man2/fcntl.2:95
5190 msgid ""
5191 "B<fcntl>()  can take an optional third argument.  Whether or not this "
5192 "argument is required is determined by I<cmd>.  The required argument type is "
5193 "indicated in parentheses after each I<cmd> name (in most cases, the required "
5194 "type is I<int>, and we identify the argument using the name I<arg>), or "
5195 "I<void> is specified if the argument is not required."
5196 msgstr ""
5197
5198 #. type: Plain text
5199 #: build/C/man2/fcntl.2:106
5200 msgid ""
5201 "Certain of the operations below are supported only since a particular Linux "
5202 "kernel version.  The preferred method of checking whether the host kernel "
5203 "supports a particular operation is to invoke B<fcntl>()  with the desired "
5204 "I<cmd> value and then test whether the call failed with B<EINVAL>, "
5205 "indicating that the kernel does not recognize this value."
5206 msgstr ""
5207
5208 #. type: SS
5209 #: build/C/man2/fcntl.2:106
5210 #, no-wrap
5211 msgid "Duplicating a file descriptor"
5212 msgstr ""
5213
5214 #. type: TP
5215 #: build/C/man2/fcntl.2:107
5216 #, no-wrap
5217 msgid "B<F_DUPFD> (I<int>)"
5218 msgstr ""
5219
5220 #. type: Plain text
5221 #: build/C/man2/fcntl.2:117
5222 msgid ""
5223 "Find the lowest numbered available file descriptor greater than or equal to "
5224 "I<arg> and make it be a copy of I<fd>.  This is different from B<dup2>(2), "
5225 "which uses exactly the descriptor specified."
5226 msgstr ""
5227
5228 #. type: Plain text
5229 #: build/C/man2/fcntl.2:119
5230 msgid "On success, the new descriptor is returned."
5231 msgstr ""
5232
5233 #. type: Plain text
5234 #: build/C/man2/fcntl.2:123
5235 msgid "See B<dup>(2)  for further details."
5236 msgstr ""
5237
5238 #. type: TP
5239 #: build/C/man2/fcntl.2:123
5240 #, no-wrap
5241 msgid "B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)"
5242 msgstr ""
5243
5244 #. type: Plain text
5245 #: build/C/man2/fcntl.2:140
5246 msgid ""
5247 "As for B<F_DUPFD>, but additionally set the close-on-exec flag for the "
5248 "duplicate descriptor.  Specifying this flag permits a program to avoid an "
5249 "additional B<fcntl>()  B<F_SETFD> operation to set the B<FD_CLOEXEC> flag.  "
5250 "For an explanation of why this flag is useful, see the description of "
5251 "B<O_CLOEXEC> in B<open>(2)."
5252 msgstr ""
5253
5254 #. type: SS
5255 #: build/C/man2/fcntl.2:140
5256 #, no-wrap
5257 msgid "File descriptor flags"
5258 msgstr ""
5259
5260 #. type: Plain text
5261 #: build/C/man2/fcntl.2:151
5262 msgid ""
5263 "The following commands manipulate the flags associated with a file "
5264 "descriptor.  Currently, only one such flag is defined: B<FD_CLOEXEC>, the "
5265 "close-on-exec flag.  If the B<FD_CLOEXEC> bit is 0, the file descriptor will "
5266 "remain open across an B<execve>(2), otherwise it will be closed."
5267 msgstr ""
5268
5269 #. type: TP
5270 #: build/C/man2/fcntl.2:151
5271 #, no-wrap
5272 msgid "B<F_GETFD> (I<void>)"
5273 msgstr ""
5274
5275 #. type: Plain text
5276 #: build/C/man2/fcntl.2:156
5277 msgid "Read the file descriptor flags; I<arg> is ignored."
5278 msgstr ""
5279
5280 #. type: TP
5281 #: build/C/man2/fcntl.2:156
5282 #, no-wrap
5283 msgid "B<F_SETFD> (I<int>)"
5284 msgstr ""
5285
5286 #. type: Plain text
5287 #: build/C/man2/fcntl.2:160
5288 msgid "Set the file descriptor flags to the value specified by I<arg>."
5289 msgstr ""
5290
5291 #. type: Plain text
5292 #: build/C/man2/fcntl.2:175
5293 msgid ""
5294 "In multithreaded programs, using B<fcntl>()  B<F_SETFD> to set the "
5295 "close-on-exec flag at the same time as another thread performs a B<fork>(2)  "
5296 "plus B<execve>(2)  is vulnerable to a race condition that may "
5297 "unintentionally leak the file descriptor to the program executed in the "
5298 "child process.  See the discussion of the B<O_CLOEXEC> flag in B<open>(2)  "
5299 "for details and a remedy to the problem."
5300 msgstr ""
5301
5302 #. type: SS
5303 #: build/C/man2/fcntl.2:175
5304 #, no-wrap
5305 msgid "File status flags"
5306 msgstr ""
5307
5308 #.  or
5309 #.  .BR creat (2),
5310 #. type: Plain text
5311 #: build/C/man2/fcntl.2:190
5312 msgid ""
5313 "Each open file description has certain associated status flags, initialized "
5314 "by B<open>(2)  and possibly modified by B<fcntl>().  Duplicated file "
5315 "descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer "
5316 "to the same open file description, and thus share the same file status "
5317 "flags."
5318 msgstr ""
5319
5320 #. type: Plain text
5321 #: build/C/man2/fcntl.2:193
5322 msgid "The file status flags and their semantics are described in B<open>(2)."
5323 msgstr ""
5324
5325 #. type: TP
5326 #: build/C/man2/fcntl.2:193
5327 #, no-wrap
5328 msgid "B<F_GETFL> (I<void>)"
5329 msgstr ""
5330
5331 #. type: Plain text
5332 #: build/C/man2/fcntl.2:198
5333 msgid "Get the file access mode and the file status flags; I<arg> is ignored."
5334 msgstr ""
5335
5336 #. type: TP
5337 #: build/C/man2/fcntl.2:198
5338 #, no-wrap
5339 msgid "B<F_SETFL> (I<int>)"
5340 msgstr ""
5341
5342 #. type: Plain text
5343 #: build/C/man2/fcntl.2:223
5344 msgid ""
5345 "Set the file status flags to the value specified by I<arg>.  File access "
5346 "mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>)  and file creation flags (i.e., "
5347 "B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>)  in I<arg> are ignored.  On "
5348 "Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, "
5349 "B<O_NOATIME>, and B<O_NONBLOCK> flags.  It is not possible to change the "
5350 "B<O_DSYNC> and B<O_SYNC> flags; see BUGS, below."
5351 msgstr ""
5352
5353 #. type: SS
5354 #: build/C/man2/fcntl.2:223
5355 #, no-wrap
5356 msgid "Advisory record locking"
5357 msgstr ""
5358
5359 #. type: Plain text
5360 #: build/C/man2/fcntl.2:228
5361 msgid ""
5362 "Linux implements traditional (\"process-associated\") UNIX record locks, as "
5363 "standardized by POSIX.  For a Linux-specific alternative with better "
5364 "semantics, see the discussion of open file description locks below."
5365 msgstr ""
5366
5367 #. type: Plain text
5368 #: build/C/man2/fcntl.2:239
5369 msgid ""
5370 "B<F_SETLK>, B<F_SETLKW>, and B<F_GETLK> are used to acquire, release, and "
5371 "test for the existence of record locks (also known as byte-range, "
5372 "file-segment, or file-region locks).  The third argument, I<lock>, is a "
5373 "pointer to a structure that has at least the following fields (in "
5374 "unspecified order)."
5375 msgstr ""
5376
5377 #. type: Plain text
5378 #: build/C/man2/fcntl.2:254
5379 #, no-wrap
5380 msgid ""
5381 "struct flock {\n"
5382 "    ...\n"
5383 "    short l_type;    /* Type of lock: F_RDLCK,\n"
5384 "                        F_WRLCK, F_UNLCK */\n"
5385 "    short l_whence;  /* How to interpret l_start:\n"
5386 "                        SEEK_SET, SEEK_CUR, SEEK_END */\n"
5387 "    off_t l_start;   /* Starting offset for lock */\n"
5388 "    off_t l_len;     /* Number of bytes to lock */\n"
5389 "    pid_t l_pid;     /* PID of process blocking our lock\n"
5390 "                        (set by F_GETLK and F_OFD_GETLK) */\n"
5391 "    ...\n"
5392 "};\n"
5393 msgstr ""
5394
5395 #. type: Plain text
5396 #: build/C/man2/fcntl.2:262
5397 msgid ""
5398 "The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify "
5399 "the range of bytes we wish to lock.  Bytes past the end of the file may be "
5400 "locked, but not bytes before the start of the file."
5401 msgstr ""
5402
5403 #. type: Plain text
5404 #: build/C/man2/fcntl.2:282
5405 msgid ""
5406 "I<l_start> is the starting offset for the lock, and is interpreted relative "
5407 "to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the "
5408 "current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file "
5409 "(if I<l_whence> is B<SEEK_END>).  In the final two cases, I<l_start> can be "
5410 "a negative number provided the offset does not lie before the start of the "
5411 "file."
5412 msgstr ""
5413
5414 #. type: Plain text
5415 #: build/C/man2/fcntl.2:297
5416 msgid ""
5417 "I<l_len> specifies the number of bytes to be locked.  If I<l_len> is "
5418 "positive, then the range to be locked covers bytes I<l_start> up to and "
5419 "including I<l_start>+I<l_len>-1.  Specifying 0 for I<l_len> has the special "
5420 "meaning: lock all bytes starting at the location specified by I<l_whence> "
5421 "and I<l_start> through to the end of file, no matter how large the file "
5422 "grows."
5423 msgstr ""
5424
5425 #. type: Plain text
5426 #: build/C/man2/fcntl.2:310
5427 msgid ""
5428 "POSIX.1-2001 allows (but does not require)  an implementation to support a "
5429 "negative I<l_len> value; if I<l_len> is negative, the interval described by "
5430 "I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1.  "
5431 "This is supported by Linux since kernel versions 2.4.21 and 2.5.49."
5432 msgstr ""
5433
5434 #. type: Plain text
5435 #: build/C/man2/fcntl.2:329
5436 msgid ""
5437 "The I<l_type> field can be used to place a read (B<F_RDLCK>)  or a write "
5438 "(B<F_WRLCK>)  lock on a file.  Any number of processes may hold a read lock "
5439 "(shared lock)  on a file region, but only one process may hold a write lock "
5440 "(exclusive lock).  An exclusive lock excludes all other locks, both shared "
5441 "and exclusive.  A single process can hold only one type of lock on a file "
5442 "region; if a new lock is applied to an already-locked region, then the "
5443 "existing lock is converted to the new lock type.  (Such conversions may "
5444 "involve splitting, shrinking, or coalescing with an existing lock if the "
5445 "byte range specified by the new lock does not precisely coincide with the "
5446 "range of the existing lock.)"
5447 msgstr ""
5448
5449 #. type: TP
5450 #: build/C/man2/fcntl.2:329
5451 #, no-wrap
5452 msgid "B<F_SETLK> (I<struct flock *>)"
5453 msgstr ""
5454
5455 #. type: Plain text
5456 #: build/C/man2/fcntl.2:354
5457 msgid ""
5458 "Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>)  or release a "
5459 "lock (when I<l_type> is B<F_UNLCK>)  on the bytes specified by the "
5460 "I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If a conflicting "
5461 "lock is held by another process, this call returns -1 and sets I<errno> to "
5462 "B<EACCES> or B<EAGAIN>.  (The error returned in this case differs across "
5463 "implementations, so POSIX requires a portable application to check for both "
5464 "errors.)"
5465 msgstr ""
5466
5467 #. type: TP
5468 #: build/C/man2/fcntl.2:354
5469 #, no-wrap
5470 msgid "B<F_SETLKW> (I<struct flock *>)"
5471 msgstr ""
5472
5473 #. type: Plain text
5474 #: build/C/man2/fcntl.2:368
5475 msgid ""
5476 "As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait "
5477 "for that lock to be released.  If a signal is caught while waiting, then the "
5478 "call is interrupted and (after the signal handler has returned)  returns "
5479 "immediately (with return value -1 and I<errno> set to B<EINTR>; see "
5480 "B<signal>(7))."
5481 msgstr ""
5482
5483 #. type: TP
5484 #: build/C/man2/fcntl.2:368
5485 #, no-wrap
5486 msgid "B<F_GETLK> (I<struct flock *>)"
5487 msgstr ""
5488
5489 #. type: Plain text
5490 #: build/C/man2/fcntl.2:382
5491 msgid ""
5492 "On input to this call, I<lock> describes a lock we would like to place on "
5493 "the file.  If the lock could be placed, B<fcntl>()  does not actually place "
5494 "it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
5495 "other fields of the structure unchanged."
5496 msgstr ""
5497
5498 #. type: Plain text
5499 #: build/C/man2/fcntl.2:399
5500 msgid ""
5501 "If one or more incompatible locks would prevent this lock being placed, then "
5502 "B<fcntl>()  returns details about one of those locks in the I<l_type>, "
5503 "I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If the conflicting "
5504 "lock is a traditional (process-associated) record lock, then the I<l_pid> "
5505 "field is set to the PID of the process holding that lock.  If the "
5506 "conflicting lock is an open file description lock, then I<l_pid> is set to "
5507 "-1.  Note that the returned information may already be out of date by the "
5508 "time the caller inspects it."
5509 msgstr ""
5510
5511 #. type: Plain text
5512 #: build/C/man2/fcntl.2:407
5513 msgid ""
5514 "In order to place a read lock, I<fd> must be open for reading.  In order to "
5515 "place a write lock, I<fd> must be open for writing.  To place both types of "
5516 "lock, open a file read-write."
5517 msgstr ""
5518
5519 #. type: Plain text
5520 #: build/C/man2/fcntl.2:430
5521 msgid ""
5522 "When placing locks with B<F_SETLKW>, the kernel detects I<deadlocks>, "
5523 "whereby two or more processes have their lock requests mutually blocked by "
5524 "locks held by the other processes.  For example, suppose process A holds a "
5525 "write lock on byte 100 of a file, and process B holds a write lock on byte "
5526 "200.  If each process then attempts to lock the byte already locked by the "
5527 "other process using B<F_SETLKW>, then, without deadlock detection, both "
5528 "processes would remain blocked indefinitely.  When the kernel detects such "
5529 "deadlocks, it causes one of the blocking lock requests to immediately fail "
5530 "with the error B<EDEADLK>; an application that encounters such an error "
5531 "should release some of its locks to allow other applications to proceed "
5532 "before attempting regain the locks that it requires.  Circular deadlocks "
5533 "involving more than two processes are also detected.  Note, however, that "
5534 "there are limitations to the kernel's deadlock-detection algorithm; see "
5535 "BUGS."
5536 msgstr ""
5537
5538 #. type: Plain text
5539 #: build/C/man2/fcntl.2:434
5540 msgid ""
5541 "As well as being removed by an explicit B<F_UNLCK>, record locks are "
5542 "automatically released when the process terminates."
5543 msgstr ""
5544
5545 #. type: Plain text
5546 #: build/C/man2/fcntl.2:439
5547 msgid ""
5548 "Record locks are not inherited by a child created via B<fork>(2), but are "
5549 "preserved across an B<execve>(2)."
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man2/fcntl.2:448
5554 msgid ""
5555 "Because of the buffering performed by the B<stdio>(3)  library, the use of "
5556 "record locking with routines in that package should be avoided; use "
5557 "B<read>(2)  and B<write>(2)  instead."
5558 msgstr ""
5559
5560 #. type: Plain text
5561 #: build/C/man2/fcntl.2:452
5562 msgid ""
5563 "The record locks described above are associated with the process (unlike the "
5564 "open file description locks described below).  This has some unfortunate "
5565 "consequences:"
5566 msgstr ""
5567
5568 #.  (Additional file descriptors referring to the same file
5569 #.  may have been obtained by calls to
5570 #.  .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
5571 #. type: Plain text
5572 #: build/C/man2/fcntl.2:468
5573 msgid ""
5574 "If a process closes I<any> file descriptor referring to a file, then all of "
5575 "the process's locks on that file are released, regardless of the file "
5576 "descriptor(s) on which the locks were obtained.  This is bad: it means that "
5577 "a process can lose its locks on a file such as I</etc/passwd> or "
5578 "I</etc/mtab> when for some reason a library function decides to open, read, "
5579 "and close the same file."
5580 msgstr ""
5581
5582 #. type: Plain text
5583 #: build/C/man2/fcntl.2:473
5584 msgid ""
5585 "The threads in a process share locks.  In other words, a multithreaded "
5586 "program can't use record locking to ensure that threads don't simultaneously "
5587 "access the same region of a file."
5588 msgstr ""
5589
5590 #. type: Plain text
5591 #: build/C/man2/fcntl.2:475
5592 msgid "Open file description locks solve both of these problems."
5593 msgstr ""
5594
5595 #. type: SS
5596 #: build/C/man2/fcntl.2:475
5597 #, no-wrap
5598 msgid "Open file description locks (non-POSIX)"
5599 msgstr ""
5600
5601 #. type: Plain text
5602 #: build/C/man2/fcntl.2:482
5603 msgid ""
5604 "Open file description locks are advisory byte-range locks whose operation is "
5605 "in most respects identical to the traditional record locks described above.  "
5606 "This lock type is Linux-specific, and available since Linux 3.15.  For an "
5607 "explanation of open file descriptions, see B<open>(2)."
5608 msgstr ""
5609
5610 #. type: Plain text
5611 #: build/C/man2/fcntl.2:500
5612 msgid ""
5613 "The principal difference between the two lock types is that whereas "
5614 "traditional record locks are associated with a process, open file "
5615 "description locks are associated with the open file description on which "
5616 "they are acquired, much like locks acquired with B<flock>(2).  Consequently "
5617 "(and unlike traditional advisory record locks), open file description locks "
5618 "are inherited across B<fork>(2)  (and B<clone>(2)  with B<CLONE_FILES>), and "
5619 "are only automatically released on the last close of the open file "
5620 "description, instead of being released on any close of the file."
5621 msgstr ""
5622
5623 #. type: Plain text
5624 #: build/C/man2/fcntl.2:503
5625 msgid ""
5626 "Open file description locks always conflict with traditional record locks, "
5627 "even when they are acquired by the same process on the same file descriptor."
5628 msgstr ""
5629
5630 #. type: Plain text
5631 #: build/C/man2/fcntl.2:516
5632 msgid ""
5633 "Open file description locks placed via the same open file description (i.e., "
5634 "via the same file descriptor, or via a duplicate of the file descriptor "
5635 "created by B<fork>(2), B<dup>(2), B<fcntl>(2)  B<F_DUPFD>, and so on) are "
5636 "always compatible: if a new lock is placed on an already locked region, then "
5637 "the existing lock is converted to the new lock type.  (Such conversions may "
5638 "result in splitting, shrinking, or coalescing with an existing lock as "
5639 "discussed above.)"
5640 msgstr ""
5641
5642 #. type: Plain text
5643 #: build/C/man2/fcntl.2:524
5644 msgid ""
5645 "On the other hand, open file description locks may conflict with each other "
5646 "when they are acquired via different open file descriptions.  Thus, the "
5647 "threads in a multithreaded program can use open file description locks to "
5648 "synchronize access to a file region by having each thread perform its own "
5649 "B<open>(2)  on the file and applying locks via the resulting file "
5650 "descriptor."
5651 msgstr ""
5652
5653 #. type: Plain text
5654 #: build/C/man2/fcntl.2:535
5655 msgid ""
5656 "As with traditional advisory locks, the third argument to B<fcntl>(), "
5657 "I<lock>, is a pointer to an I<flock> structure.  By contrast with "
5658 "traditional record locks, the I<l_pid> field of that structure must be set "
5659 "to zero when using the commands described below."
5660 msgstr ""
5661
5662 #. type: Plain text
5663 #: build/C/man2/fcntl.2:538
5664 msgid ""
5665 "The commands for working with open file description locks are analogous to "
5666 "those used with traditional locks:"
5667 msgstr ""
5668
5669 #. type: TP
5670 #: build/C/man2/fcntl.2:538
5671 #, no-wrap
5672 msgid "B<F_OFD_SETLK> (I<struct flock *>)"
5673 msgstr ""
5674
5675 #. type: Plain text
5676 #: build/C/man2/fcntl.2:559
5677 msgid ""
5678 "Acquire an open file description lock (when I<l_type> is B<F_RDLCK> or "
5679 "B<F_WRLCK>)  or release an open file description lock (when I<l_type> is "
5680 "B<F_UNLCK>)  on the bytes specified by the I<l_whence>, I<l_start>, and "
5681 "I<l_len> fields of I<lock>.  If a conflicting lock is held by another "
5682 "process, this call returns -1 and sets I<errno> to B<EAGAIN>."
5683 msgstr ""
5684
5685 #. type: TP
5686 #: build/C/man2/fcntl.2:559
5687 #, no-wrap
5688 msgid "B<F_OFD_SETLKW> (I<struct flock *>)"
5689 msgstr ""
5690
5691 #. type: Plain text
5692 #: build/C/man2/fcntl.2:573
5693 msgid ""
5694 "As for B<F_OFD_SETLK>, but if a conflicting lock is held on the file, then "
5695 "wait for that lock to be released.  If a signal is caught while waiting, "
5696 "then the call is interrupted and (after the signal handler has returned) "
5697 "returns immediately (with return value -1 and I<errno> set to B<EINTR>; see "
5698 "B<signal>(7))."
5699 msgstr ""
5700
5701 #. type: TP
5702 #: build/C/man2/fcntl.2:573
5703 #, no-wrap
5704 msgid "B<F_OFD_GETLK> (I<struct flock *>)"
5705 msgstr ""
5706
5707 #. type: Plain text
5708 #: build/C/man2/fcntl.2:592
5709 msgid ""
5710 "On input to this call, I<lock> describes an open file description lock we "
5711 "would like to place on the file.  If the lock could be placed, B<fcntl>()  "
5712 "does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of "
5713 "I<lock> and leaves the other fields of the structure unchanged.  If one or "
5714 "more incompatible locks would prevent this lock being placed, then details "
5715 "about one of these locks are returned via I<lock>, as described above for "
5716 "B<F_GETLK>."
5717 msgstr ""
5718
5719 #.  commit 57b65325fe34ec4c917bc4e555144b4a94d9e1f7
5720 #. type: Plain text
5721 #: build/C/man2/fcntl.2:599
5722 msgid ""
5723 "In the current implementation, no deadlock detection is performed for open "
5724 "file description locks.  (This contrasts with process-associated record "
5725 "locks, for which the kernel does perform deadlock detection.)"
5726 msgstr ""
5727
5728 #. type: SS
5729 #: build/C/man2/fcntl.2:599 build/C/man2/fcntl.2:1894
5730 #, no-wrap
5731 msgid "Mandatory locking"
5732 msgstr ""
5733
5734 #. type: Plain text
5735 #: build/C/man2/fcntl.2:603
5736 msgid ""
5737 "I<Warning>: the Linux implementation of mandatory locking is unreliable.  "
5738 "See BUGS below."
5739 msgstr ""
5740
5741 #. type: Plain text
5742 #: build/C/man2/fcntl.2:608
5743 msgid ""
5744 "By default, both traditional (process-associated) and open file description "
5745 "record locks are advisory.  Advisory locks are not enforced and are useful "
5746 "only between cooperating processes."
5747 msgstr ""
5748
5749 #. type: Plain text
5750 #: build/C/man2/fcntl.2:628
5751 msgid ""
5752 "Both lock types can also be mandatory.  Mandatory locks are enforced for all "
5753 "processes.  If a process tries to perform an incompatible access (e.g., "
5754 "B<read>(2)  or B<write>(2))  on a file region that has an incompatible "
5755 "mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag "
5756 "is enabled for its open file description.  If the B<O_NONBLOCK> flag is not "
5757 "enabled, then the system call is blocked until the lock is removed or "
5758 "converted to a mode that is compatible with the access.  If the "
5759 "B<O_NONBLOCK> flag is enabled, then the system call fails with the error "
5760 "B<EAGAIN>."
5761 msgstr ""
5762
5763 #. type: Plain text
5764 #: build/C/man2/fcntl.2:645
5765 msgid ""
5766 "To make use of mandatory locks, mandatory locking must be enabled both on "
5767 "the filesystem that contains the file to be locked, and on the file itself.  "
5768 "Mandatory locking is enabled on a filesystem using the \"-o mand\" option to "
5769 "B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2).  Mandatory locking "
5770 "is enabled on a file by disabling group execute permission on the file and "
5771 "enabling the set-group-ID permission bit (see B<chmod>(1)  and B<chmod>(2))."
5772 msgstr ""
5773
5774 #. type: Plain text
5775 #: build/C/man2/fcntl.2:649
5776 msgid ""
5777 "Mandatory locking is not specified by POSIX.  Some other systems also "
5778 "support mandatory locking, although the details of how to enable it vary "
5779 "across systems."
5780 msgstr ""
5781
5782 #. type: SS
5783 #: build/C/man2/fcntl.2:649
5784 #, no-wrap
5785 msgid "Managing signals"
5786 msgstr ""
5787
5788 #. type: Plain text
5789 #: build/C/man2/fcntl.2:658
5790 msgid ""
5791 "B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
5792 "B<F_SETSIG> are used to manage I/O availability signals:"
5793 msgstr ""
5794
5795 #. type: TP
5796 #: build/C/man2/fcntl.2:658
5797 #, no-wrap
5798 msgid "B<F_GETOWN> (I<void>)"
5799 msgstr ""
5800
5801 #. type: Plain text
5802 #: build/C/man2/fcntl.2:671
5803 msgid ""
5804 "Return (as the function result)  the process ID or process group currently "
5805 "receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
5806 "I<fd>.  Process IDs are returned as positive values; process group IDs are "
5807 "returned as negative values (but see BUGS below).  I<arg> is ignored."
5808 msgstr ""
5809
5810 #. type: TP
5811 #: build/C/man2/fcntl.2:671
5812 #, no-wrap
5813 msgid "B<F_SETOWN> (I<int>)"
5814 msgstr ""
5815
5816 #. type: Plain text
5817 #: build/C/man2/fcntl.2:688
5818 msgid ""
5819 "Set the process ID or process group ID that will receive B<SIGIO> and "
5820 "B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
5821 "I<arg>.  A process ID is specified as a positive value; a process group ID "
5822 "is specified as a negative value.  Most commonly, the calling process "
5823 "specifies itself as the owner (that is, I<arg> is specified as "
5824 "B<getpid>(2))."
5825 msgstr ""
5826
5827 #.  From glibc.info:
5828 #. type: Plain text
5829 #: build/C/man2/fcntl.2:705
5830 msgid ""
5831 "If you set the B<O_ASYNC> status flag on a file descriptor by using the "
5832 "B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
5833 "or output becomes possible on that file descriptor.  B<F_SETSIG> can be used "
5834 "to obtain delivery of a signal other than B<SIGIO>.  If this permission "
5835 "check fails, then the signal is silently discarded."
5836 msgstr ""
5837
5838 #. type: Plain text
5839 #: build/C/man2/fcntl.2:713
5840 msgid ""
5841 "Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
5842 "subject to the same permissions checks as are described for B<kill>(2), "
5843 "where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
5844 "below)."
5845 msgstr ""
5846
5847 #.  The following appears to be rubbish.  It doesn't seem to
5848 #.  be true according to the kernel source, and I can write
5849 #.  a program that gets a terminal-generated SIGIO even though
5850 #.  it is not the foreground process group of the terminal.
5851 #.  -- MTK, 8 Apr 05
5852 #
5853 #.  If the file descriptor
5854 #.  .I fd
5855 #.  refers to a terminal device, then SIGIO
5856 #.  signals are sent to the foreground process group of the terminal.
5857 #. type: Plain text
5858 #: build/C/man2/fcntl.2:737
5859 msgid ""
5860 "If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
5861 "the recipient of B<SIGURG> signals that are delivered when out-of-band data "
5862 "arrives on that socket.  (B<SIGURG> is sent in any situation where "
5863 "B<select>(2)  would report the socket as having an \"exceptional "
5864 "condition\".)"
5865 msgstr ""
5866
5867 #. type: Plain text
5868 #: build/C/man2/fcntl.2:740
5869 msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
5870 msgstr ""
5871
5872 #.  The relevant place in the (2.6) kernel source is the
5873 #.  'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
5874 #.  send_sigurg()/send_sigurg_to_task() bypasses
5875 #.  kill_fasync()/send_sigio()/send_sigio_to_task()
5876 #.  to directly call send_group_sig_info()
5877 #.      -- MTK, Apr 2005 (kernel 2.6.11)
5878 #. type: Plain text
5879 #: build/C/man2/fcntl.2:780
5880 msgid ""
5881 "If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
5882 "running with a threading library that supports thread groups (e.g., NPTL), "
5883 "then a positive value given to B<F_SETOWN> has a different meaning: instead "
5884 "of being a process ID identifying a whole process, it is a thread ID "
5885 "identifying a specific thread within a process.  Consequently, it may be "
5886 "necessary to pass B<F_SETOWN> the result of B<gettid>(2)  instead of "
5887 "B<getpid>(2)  to get sensible results when B<F_SETSIG> is used.  (In current "
5888 "Linux threading implementations, a main thread's thread ID is the same as "
5889 "its process ID.  This means that a single-threaded program can equally use "
5890 "B<gettid>(2)  or B<getpid>(2)  in this scenario.)  Note, however, that the "
5891 "statements in this paragraph do not apply to the B<SIGURG> signal generated "
5892 "for out-of-band data on a socket: this signal is always sent to either a "
5893 "process or a process group, depending on the value given to B<F_SETOWN>."
5894 msgstr ""
5895
5896 #. type: Plain text
5897 #: build/C/man2/fcntl.2:791
5898 msgid ""
5899 "The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
5900 "restored.  From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
5901 "and B<SIGURG> signals at a particular thread."
5902 msgstr ""
5903
5904 #. type: TP
5905 #: build/C/man2/fcntl.2:791
5906 #, no-wrap
5907 msgid "B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5908 msgstr ""
5909
5910 #. type: Plain text
5911 #: build/C/man2/fcntl.2:800
5912 msgid ""
5913 "Return the current file descriptor owner settings as defined by a previous "
5914 "B<F_SETOWN_EX> operation.  The information is returned in the structure "
5915 "pointed to by I<arg>, which has the following form:"
5916 msgstr ""
5917
5918 #. type: Plain text
5919 #: build/C/man2/fcntl.2:807
5920 #, no-wrap
5921 msgid ""
5922 "struct f_owner_ex {\n"
5923 "    int   type;\n"
5924 "    pid_t pid;\n"
5925 "};\n"
5926 msgstr ""
5927
5928 #. type: Plain text
5929 #: build/C/man2/fcntl.2:824
5930 msgid ""
5931 "The I<type> field will have one of the values B<F_OWNER_TID>, "
5932 "B<F_OWNER_PID>, or B<F_OWNER_PGRP>.  The I<pid> field is a positive integer "
5933 "representing a thread ID, process ID, or process group ID.  See "
5934 "B<F_SETOWN_EX> for more details."
5935 msgstr ""
5936
5937 #. type: TP
5938 #: build/C/man2/fcntl.2:824
5939 #, no-wrap
5940 msgid "B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5941 msgstr ""
5942
5943 #. type: Plain text
5944 #: build/C/man2/fcntl.2:840
5945 msgid ""
5946 "This operation performs a similar task to B<F_SETOWN>.  It allows the caller "
5947 "to direct I/O availability signals to a specific thread, process, or process "
5948 "group.  The caller specifies the target of signals via I<arg>, which is a "
5949 "pointer to a I<f_owner_ex> structure.  The I<type> field has one of the "
5950 "following values, which define how I<pid> is interpreted:"
5951 msgstr ""
5952
5953 #. type: TP
5954 #: build/C/man2/fcntl.2:841
5955 #, no-wrap
5956 msgid "B<F_OWNER_TID>"
5957 msgstr ""
5958
5959 #. type: Plain text
5960 #: build/C/man2/fcntl.2:850
5961 msgid ""
5962 "Send the signal to the thread whose thread ID (the value returned by a call "
5963 "to B<clone>(2)  or B<gettid>(2))  is specified in I<pid>."
5964 msgstr ""
5965
5966 #. type: TP
5967 #: build/C/man2/fcntl.2:850
5968 #, no-wrap
5969 msgid "B<F_OWNER_PID>"
5970 msgstr ""
5971
5972 #. type: Plain text
5973 #: build/C/man2/fcntl.2:855
5974 msgid "Send the signal to the process whose ID is specified in I<pid>."
5975 msgstr ""
5976
5977 #. type: TP
5978 #: build/C/man2/fcntl.2:855
5979 #, no-wrap
5980 msgid "B<F_OWNER_PGRP>"
5981 msgstr ""
5982
5983 #. type: Plain text
5984 #: build/C/man2/fcntl.2:863
5985 msgid ""
5986 "Send the signal to the process group whose ID is specified in I<pid>.  (Note "
5987 "that, unlike with B<F_SETOWN>, a process group ID is specified as a positive "
5988 "value here.)"
5989 msgstr ""
5990
5991 #. type: TP
5992 #: build/C/man2/fcntl.2:864
5993 #, no-wrap
5994 msgid "B<F_GETSIG> (I<void>)"
5995 msgstr ""
5996
5997 #. type: Plain text
5998 #: build/C/man2/fcntl.2:879
5999 msgid ""
6000 "Return (as the function result)  the signal sent when input or output "
6001 "becomes possible.  A value of zero means B<SIGIO> is sent.  Any other value "
6002 "(including B<SIGIO>)  is the signal sent instead, and in this case "
6003 "additional info is available to the signal handler if installed with "
6004 "B<SA_SIGINFO>.  I<arg> is ignored."
6005 msgstr ""
6006
6007 #. type: TP
6008 #: build/C/man2/fcntl.2:879
6009 #, no-wrap
6010 msgid "B<F_SETSIG> (I<int>)"
6011 msgstr ""
6012
6013 #
6014 #.  The following was true only up until 2.6.11:
6015 #
6016 #.  Additionally, passing a nonzero value to
6017 #.  .B F_SETSIG
6018 #.  changes the signal recipient from a whole process to a specific thread
6019 #.  within a process.
6020 #.  See the description of
6021 #.  .B F_SETOWN
6022 #.  for more details.
6023 #. type: Plain text
6024 #: build/C/man2/fcntl.2:902
6025 msgid ""
6026 "Set the signal sent when input or output becomes possible to the value given "
6027 "in I<arg>.  A value of zero means to send the default B<SIGIO> signal.  Any "
6028 "other value (including B<SIGIO>)  is the signal to send instead, and in this "
6029 "case additional info is available to the signal handler if installed with "
6030 "B<SA_SIGINFO>."
6031 msgstr ""
6032
6033 #. type: Plain text
6034 #: build/C/man2/fcntl.2:930
6035 msgid ""
6036 "By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the "
6037 "signal handler (see B<sigaction>(2)), extra information about I/O events is "
6038 "passed to the handler in a I<siginfo_t> structure.  If the I<si_code> field "
6039 "indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file "
6040 "descriptor associated with the event.  Otherwise, there is no indication "
6041 "which file descriptors are pending, and you should use the usual mechanisms "
6042 "(B<select>(2), B<poll>(2), B<read>(2)  with B<O_NONBLOCK> set etc.) to "
6043 "determine which file descriptors are available for I/O."
6044 msgstr ""
6045
6046 #. type: Plain text
6047 #: build/C/man2/fcntl.2:939
6048 msgid ""
6049 "By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O "
6050 "events may be queued using the same signal numbers.  (Queuing is dependent "
6051 "on available memory).  Extra information is available if B<SA_SIGINFO> is "
6052 "set for the signal handler, as above."
6053 msgstr ""
6054
6055 #.  See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
6056 #. type: Plain text
6057 #: build/C/man2/fcntl.2:952
6058 msgid ""
6059 "Note that Linux imposes a limit on the number of real-time signals that may "
6060 "be queued to a process (see B<getrlimit>(2)  and B<signal>(7))  and if this "
6061 "limit is reached, then the kernel reverts to delivering B<SIGIO>, and this "
6062 "signal is delivered to the entire process rather than to a specific thread."
6063 msgstr ""
6064
6065 #. type: Plain text
6066 #: build/C/man2/fcntl.2:959
6067 msgid ""
6068 "Using these mechanisms, a program can implement fully asynchronous I/O "
6069 "without using B<select>(2)  or B<poll>(2)  most of the time."
6070 msgstr ""
6071
6072 #. type: Plain text
6073 #: build/C/man2/fcntl.2:983
6074 msgid ""
6075 "The use of B<O_ASYNC> is specific to BSD and Linux.  The only use of "
6076 "B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with the "
6077 "use of the B<SIGURG> signal on sockets.  (POSIX does not specify the "
6078 "B<SIGIO> signal.)  B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and "
6079 "B<F_SETSIG> are Linux-specific.  POSIX has asynchronous I/O and the "
6080 "I<aio_sigevent> structure to achieve similar things; these are also "
6081 "available in Linux as part of the GNU C Library (Glibc)."
6082 msgstr ""
6083
6084 #. type: SS
6085 #: build/C/man2/fcntl.2:983
6086 #, no-wrap
6087 msgid "Leases"
6088 msgstr ""
6089
6090 #. type: Plain text
6091 #: build/C/man2/fcntl.2:998
6092 msgid ""
6093 "B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) "
6094 "to establish a new lease, and retrieve the current lease, on the open file "
6095 "description referred to by the file descriptor I<fd>.  A file lease provides "
6096 "a mechanism whereby the process holding the lease (the \"lease holder\") is "
6097 "notified (via delivery of a signal)  when a process (the \"lease breaker\") "
6098 "tries to B<open>(2)  or B<truncate>(2)  the file referred to by that file "
6099 "descriptor."
6100 msgstr ""
6101
6102 #. type: TP
6103 #: build/C/man2/fcntl.2:998
6104 #, no-wrap
6105 msgid "B<F_SETLEASE> (I<int>)"
6106 msgstr ""
6107
6108 #. type: Plain text
6109 #: build/C/man2/fcntl.2:1003
6110 msgid ""
6111 "Set or remove a file lease according to which of the following values is "
6112 "specified in the integer I<arg>:"
6113 msgstr ""
6114
6115 #. type: TP
6116 #: build/C/man2/fcntl.2:1004
6117 #, no-wrap
6118 msgid "B<F_RDLCK>"
6119 msgstr ""
6120
6121 #.  The following became true in kernel 2.6.10:
6122 #.  See the man-pages-2.09 Changelog for further info.
6123 #. type: Plain text
6124 #: build/C/man2/fcntl.2:1013
6125 msgid ""
6126 "Take out a read lease.  This will cause the calling process to be notified "
6127 "when the file is opened for writing or is truncated.  A read lease can be "
6128 "placed only on a file descriptor that is opened read-only."
6129 msgstr ""
6130
6131 #. type: TP
6132 #: build/C/man2/fcntl.2:1013
6133 #, no-wrap
6134 msgid "B<F_WRLCK>"
6135 msgstr ""
6136
6137 #. type: Plain text
6138 #: build/C/man2/fcntl.2:1020
6139 msgid ""
6140 "Take out a write lease.  This will cause the caller to be notified when the "
6141 "file is opened for reading or writing or is truncated.  A write lease may be "
6142 "placed on a file only if there are no other open file descriptors for the "
6143 "file."
6144 msgstr ""
6145
6146 #. type: TP
6147 #: build/C/man2/fcntl.2:1020
6148 #, no-wrap
6149 msgid "B<F_UNLCK>"
6150 msgstr ""
6151
6152 #. type: Plain text
6153 #: build/C/man2/fcntl.2:1023
6154 msgid "Remove our lease from the file."
6155 msgstr ""
6156
6157 #. type: Plain text
6158 #: build/C/man2/fcntl.2:1037
6159 msgid ""
6160 "Leases are associated with an open file description (see B<open>(2)).  This "
6161 "means that duplicate file descriptors (created by, for example, B<fork>(2)  "
6162 "or B<dup>(2))  refer to the same lease, and this lease may be modified or "
6163 "released using any of these descriptors.  Furthermore, the lease is released "
6164 "by either an explicit B<F_UNLCK> operation on any of these duplicate "
6165 "descriptors, or when all such descriptors have been closed."
6166 msgstr ""
6167
6168 #. type: Plain text
6169 #: build/C/man2/fcntl.2:1044
6170 msgid ""
6171 "Leases may be taken out only on regular files.  An unprivileged process may "
6172 "take out a lease only on a file whose UID (owner) matches the filesystem UID "
6173 "of the process.  A process with the B<CAP_LEASE> capability may take out "
6174 "leases on arbitrary files."
6175 msgstr ""
6176
6177 #. type: TP
6178 #: build/C/man2/fcntl.2:1044
6179 #, no-wrap
6180 msgid "B<F_GETLEASE> (I<void>)"
6181 msgstr ""
6182
6183 #. type: Plain text
6184 #: build/C/man2/fcntl.2:1053
6185 msgid ""
6186 "Indicates what type of lease is associated with the file descriptor I<fd> by "
6187 "returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, "
6188 "respectively, a read lease , a write lease, or no lease.  I<arg> is ignored."
6189 msgstr ""
6190
6191 #. type: Plain text
6192 #: build/C/man2/fcntl.2:1084
6193 msgid ""
6194 "When a process (the \"lease breaker\") performs an B<open>(2)  or "
6195 "B<truncate>(2)  that conflicts with a lease established via B<F_SETLEASE>, "
6196 "the system call is blocked by the kernel and the kernel notifies the lease "
6197 "holder by sending it a signal (B<SIGIO> by default).  The lease holder "
6198 "should respond to receipt of this signal by doing whatever cleanup is "
6199 "required in preparation for the file to be accessed by another process "
6200 "(e.g., flushing cached buffers) and then either remove or downgrade its "
6201 "lease.  A lease is removed by performing an B<F_SETLEASE> command specifying "
6202 "I<arg> as B<F_UNLCK>.  If the lease holder currently holds a write lease on "
6203 "the file, and the lease breaker is opening the file for reading, then it is "
6204 "sufficient for the lease holder to downgrade the lease to a read lease.  "
6205 "This is done by performing an B<F_SETLEASE> command specifying I<arg> as "
6206 "B<F_RDLCK>."
6207 msgstr ""
6208
6209 #. type: Plain text
6210 #: build/C/man2/fcntl.2:1089
6211 msgid ""
6212 "If the lease holder fails to downgrade or remove the lease within the number "
6213 "of seconds specified in I</proc/sys/fs/lease-break-time>, then the kernel "
6214 "forcibly removes or downgrades the lease holder's lease."
6215 msgstr ""
6216
6217 #. type: Plain text
6218 #: build/C/man2/fcntl.2:1099
6219 msgid ""
6220 "Once a lease break has been initiated, B<F_GETLEASE> returns the target "
6221 "lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be "
6222 "compatible with the lease breaker)  until the lease holder voluntarily "
6223 "downgrades or removes the lease or the kernel forcibly does so after the "
6224 "lease break timer expires."
6225 msgstr ""
6226
6227 #. type: Plain text
6228 #: build/C/man2/fcntl.2:1103
6229 msgid ""
6230 "Once the lease has been voluntarily or forcibly removed or downgraded, and "
6231 "assuming the lease breaker has not unblocked its system call, the kernel "
6232 "permits the lease breaker's system call to proceed."
6233 msgstr ""
6234
6235 #. type: Plain text
6236 #: build/C/man2/fcntl.2:1124
6237 msgid ""
6238 "If the lease breaker's blocked B<open>(2)  or B<truncate>(2)  is interrupted "
6239 "by a signal handler, then the system call fails with the error B<EINTR>, but "
6240 "the other steps still occur as described above.  If the lease breaker is "
6241 "killed by a signal while blocked in B<open>(2)  or B<truncate>(2), then the "
6242 "other steps still occur as described above.  If the lease breaker specifies "
6243 "the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately "
6244 "fails with the error B<EWOULDBLOCK>, but the other steps still occur as "
6245 "described above."
6246 msgstr ""
6247
6248 #. type: Plain text
6249 #: build/C/man2/fcntl.2:1145
6250 msgid ""
6251 "The default signal used to notify the lease holder is B<SIGIO>, but this can "
6252 "be changed using the B<F_SETSIG> command to B<fcntl>().  If a B<F_SETSIG> "
6253 "command is performed (even one specifying B<SIGIO>), and the signal handler "
6254 "is established using B<SA_SIGINFO>, then the handler will receive a "
6255 "I<siginfo_t> structure as its second argument, and the I<si_fd> field of "
6256 "this argument will hold the descriptor of the leased file that has been "
6257 "accessed by another process.  (This is useful if the caller holds leases "
6258 "against multiple files)."
6259 msgstr ""
6260
6261 #. type: SS
6262 #: build/C/man2/fcntl.2:1145
6263 #, no-wrap
6264 msgid "File and directory change notification (dnotify)"
6265 msgstr ""
6266
6267 #. type: TP
6268 #: build/C/man2/fcntl.2:1146
6269 #, no-wrap
6270 msgid "B<F_NOTIFY> (I<int>)"
6271 msgstr ""
6272
6273 #. type: Plain text
6274 #: build/C/man2/fcntl.2:1156
6275 msgid ""
6276 "(Linux 2.4 onward)  Provide notification when the directory referred to by "
6277 "I<fd> or any of the files that it contains is changed.  The events to be "
6278 "notified are specified in I<arg>, which is a bit mask specified by ORing "
6279 "together zero or more of the following bits:"
6280 msgstr ""
6281
6282 #. type: TP
6283 #: build/C/man2/fcntl.2:1159
6284 #, no-wrap
6285 msgid "B<DN_ACCESS>"
6286 msgstr ""
6287
6288 #. type: Plain text
6289 #: build/C/man2/fcntl.2:1166
6290 msgid "A file was accessed (B<read>(2), B<pread>(2), B<readv>(2), and similar)"
6291 msgstr ""
6292
6293 #. type: TP
6294 #: build/C/man2/fcntl.2:1166
6295 #, no-wrap
6296 msgid "B<DN_MODIFY>"
6297 msgstr ""
6298
6299 #. type: Plain text
6300 #: build/C/man2/fcntl.2:1175
6301 msgid ""
6302 "A file was modified (B<write>(2), B<pwrite>(2), B<writev>(2), "
6303 "B<truncate>(2), B<ftruncate>(2), and similar)."
6304 msgstr ""
6305
6306 #. type: TP
6307 #: build/C/man2/fcntl.2:1175
6308 #, no-wrap
6309 msgid "B<DN_CREATE>"
6310 msgstr ""
6311
6312 #. type: Plain text
6313 #: build/C/man2/fcntl.2:1186
6314 msgid ""
6315 "A file was created (B<open>(2), B<creat>(2), B<mknod>(2), B<mkdir>(2), "
6316 "B<link>(2), B<symlink>(2), B<rename>(2)  into this directory)."
6317 msgstr ""
6318
6319 #. type: TP
6320 #: build/C/man2/fcntl.2:1186
6321 #, no-wrap
6322 msgid "B<DN_DELETE>"
6323 msgstr ""
6324
6325 #. type: Plain text
6326 #: build/C/man2/fcntl.2:1193
6327 msgid ""
6328 "A file was unlinked (B<unlink>(2), B<rename>(2)  to another directory, "
6329 "B<rmdir>(2))."
6330 msgstr ""
6331
6332 #. type: TP
6333 #: build/C/man2/fcntl.2:1193
6334 #, no-wrap
6335 msgid "B<DN_RENAME>"
6336 msgstr ""
6337
6338 #. type: Plain text
6339 #: build/C/man2/fcntl.2:1197
6340 msgid "A file was renamed within this directory (B<rename>(2))."
6341 msgstr ""
6342
6343 #. type: TP
6344 #: build/C/man2/fcntl.2:1197
6345 #, no-wrap
6346 msgid "B<DN_ATTRIB>"
6347 msgstr ""
6348
6349 #. type: Plain text
6350 #: build/C/man2/fcntl.2:1205
6351 msgid ""
6352 "The attributes of a file were changed (B<chown>(2), B<chmod>(2), "
6353 "B<utime>(2), B<utimensat>(2), and similar)."
6354 msgstr ""
6355
6356 #. type: Plain text
6357 #: build/C/man2/fcntl.2:1213
6358 msgid ""
6359 "(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro "
6360 "must be defined before including I<any> header files.)"
6361 msgstr ""
6362
6363 #. type: Plain text
6364 #: build/C/man2/fcntl.2:1221
6365 msgid ""
6366 "Directory notifications are normally \"one-shot\", and the application must "
6367 "reregister to receive further notifications.  Alternatively, if "
6368 "B<DN_MULTISHOT> is included in I<arg>, then notification will remain in "
6369 "effect until explicitly removed."
6370 msgstr ""
6371
6372 #.  The following does seem a poor API-design choice...
6373 #. type: Plain text
6374 #: build/C/man2/fcntl.2:1233
6375 msgid ""
6376 "A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> "
6377 "being added to the set already monitored.  To disable notification of all "
6378 "events, make an B<F_NOTIFY> call specifying I<arg> as 0."
6379 msgstr ""
6380
6381 #. type: Plain text
6382 #: build/C/man2/fcntl.2:1256
6383 msgid ""
6384 "Notification occurs via delivery of a signal.  The default signal is "
6385 "B<SIGIO>, but this can be changed using the B<F_SETSIG> command to "
6386 "B<fcntl>().  (Note that B<SIGIO> is one of the nonqueuing standard signals; "
6387 "switching to the use of a real-time signal means that multiple notifications "
6388 "can be queued to the process.)  In the latter case, the signal handler "
6389 "receives a I<siginfo_t> structure as its second argument (if the handler was "
6390 "established using B<SA_SIGINFO>)  and the I<si_fd> field of this structure "
6391 "contains the file descriptor which generated the notification (useful when "
6392 "establishing notification on multiple directories)."
6393 msgstr ""
6394
6395 #. type: Plain text
6396 #: build/C/man2/fcntl.2:1261
6397 msgid ""
6398 "Especially when using B<DN_MULTISHOT>, a real time signal should be used for "
6399 "notification, so that multiple notifications can be queued."
6400 msgstr ""
6401
6402 #. type: Plain text
6403 #: build/C/man2/fcntl.2:1270
6404 msgid ""
6405 "B<NOTE:> New applications should use the I<inotify> interface (available "
6406 "since kernel 2.6.13), which provides a much superior interface for obtaining "
6407 "notifications of filesystem events.  See B<inotify>(7)."
6408 msgstr ""
6409
6410 #. type: SS
6411 #: build/C/man2/fcntl.2:1270
6412 #, no-wrap
6413 msgid "Changing the capacity of a pipe"
6414 msgstr ""
6415
6416 #. type: TP
6417 #: build/C/man2/fcntl.2:1271
6418 #, no-wrap
6419 msgid "B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)"
6420 msgstr ""
6421
6422 #. type: Plain text
6423 #: build/C/man2/fcntl.2:1300
6424 msgid ""
6425 "Change the capacity of the pipe referred to by I<fd> to be at least I<arg> "
6426 "bytes.  An unprivileged process can adjust the pipe capacity to any value "
6427 "between the system page size and the limit defined in "
6428 "I</proc/sys/fs/pipe-max-size> (see B<proc>(5)).  Attempts to set the pipe "
6429 "capacity below the page size are silently rounded up to the page size.  "
6430 "Attempts by an unprivileged process to set the pipe capacity above the limit "
6431 "in I</proc/sys/fs/pipe-max-size> yield the error B<EPERM>; a privileged "
6432 "process (B<CAP_SYS_RESOURCE>)  can override the limit.  When allocating the "
6433 "buffer for the pipe, the kernel may use a capacity larger than I<arg>, if "
6434 "that is convenient for the implementation.  The actual capacity that is set "
6435 "is returned as the function result.  Attempting to set the pipe capacity "
6436 "smaller than the amount of buffer space currently used to store data "
6437 "produces the error B<EBUSY>."
6438 msgstr ""
6439
6440 #. type: TP
6441 #: build/C/man2/fcntl.2:1300
6442 #, no-wrap
6443 msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)"
6444 msgstr ""
6445
6446 #. type: Plain text
6447 #: build/C/man2/fcntl.2:1305
6448 msgid ""
6449 "Return (as the function result) the capacity of the pipe referred to by "
6450 "I<fd>."
6451 msgstr ""
6452
6453 #. type: SS
6454 #: build/C/man2/fcntl.2:1305
6455 #, no-wrap
6456 msgid "File Sealing"
6457 msgstr ""
6458
6459 #. type: Plain text
6460 #: build/C/man2/fcntl.2:1317
6461 msgid ""
6462 "File seals limit the set of allowed operations on a given file.  For each "
6463 "seal that is set on a file, a specific set of operations will fail with "
6464 "B<EPERM> on this file from now on.  The file is said to be sealed.  The "
6465 "default set of seals depends on the type of the underlying file and "
6466 "filesystem.  For an overview of file sealing, a discussion of its purpose, "
6467 "and some code examples, see B<memfd_create>(2)."
6468 msgstr ""
6469
6470 #. type: Plain text
6471 #: build/C/man2/fcntl.2:1325
6472 msgid ""
6473 "Currently, only the I<tmpfs> filesystem supports sealing.  On other "
6474 "filesystems, all B<fcntl>(2)  operations that operate on seals will return "
6475 "B<EINVAL>."
6476 msgstr ""
6477
6478 #. type: Plain text
6479 #: build/C/man2/fcntl.2:1330
6480 msgid ""
6481 "Seals are a property of an inode.  Thus, all open file descriptors referring "
6482 "to the same inode share the same set of seals.  Furthermore, seals can never "
6483 "be removed, only added."
6484 msgstr ""
6485
6486 #. type: TP
6487 #: build/C/man2/fcntl.2:1330
6488 #, no-wrap
6489 msgid "B<F_ADD_SEALS> (I<int>; since Linux 3.17)"
6490 msgstr ""
6491
6492 #. type: Plain text
6493 #: build/C/man2/fcntl.2:1348
6494 msgid ""
6495 "Add the seals given in the bit-mask argument I<arg> to the set of seals of "
6496 "the inode referred to by the file descriptor I<fd>.  Seals cannot be removed "
6497 "again.  Once this call succeeds, the seals are enforced by the kernel "
6498 "immediately.  If the current set of seals includes B<F_SEAL_SEAL> (see "
6499 "below), then this call will be rejected with B<EPERM>.  Adding a seal that "
6500 "is already set is a no-op, in case B<F_SEAL_SEAL> is not set already.  In "
6501 "order to place a seal, the file descriptor I<fd> must be writable."
6502 msgstr ""
6503
6504 #. type: TP
6505 #: build/C/man2/fcntl.2:1348
6506 #, no-wrap
6507 msgid "B<F_GET_SEALS> (I<void>; since Linux 3.17)"
6508 msgstr ""
6509
6510 #. type: Plain text
6511 #: build/C/man2/fcntl.2:1358
6512 msgid ""
6513 "Return (as the function result) the current set of seals of the inode "
6514 "referred to by I<fd>.  If no seals are set, 0 is returned.  If the file does "
6515 "not support sealing, -1 is returned and I<errno> is set to B<EINVAL>."
6516 msgstr ""
6517
6518 #. type: Plain text
6519 #: build/C/man2/fcntl.2:1360
6520 msgid "The following seals are available:"
6521 msgstr ""
6522
6523 #. type: TP
6524 #: build/C/man2/fcntl.2:1360
6525 #, no-wrap
6526 msgid "B<F_SEAL_SEAL>"
6527 msgstr ""
6528
6529 #. type: Plain text
6530 #: build/C/man2/fcntl.2:1372
6531 msgid ""
6532 "If this seal is set, any further call to B<fcntl>(2)  with B<F_ADD_SEALS> "
6533 "will fail with B<EPERM>.  Therefore, this seal prevents any modifications to "
6534 "the set of seals itself.  If the initial set of seals of a file includes "
6535 "B<F_SEAL_SEAL>, then this effectively causes the set of seals to be constant "
6536 "and locked."
6537 msgstr ""
6538
6539 #. type: TP
6540 #: build/C/man2/fcntl.2:1372
6541 #, no-wrap
6542 msgid "B<F_SEAL_SHRINK>"
6543 msgstr ""
6544
6545 #. type: Plain text
6546 #: build/C/man2/fcntl.2:1387
6547 msgid ""
6548 "If this seal is set, the file in question cannot be reduced in size.  This "
6549 "affects B<open>(2)  with the B<O_TRUNC> flag as well as B<truncate>(2)  and "
6550 "B<ftruncate>(2).  Those calls will fail with B<EPERM> if you try to shrink "
6551 "the file in question.  Increasing the file size is still possible."
6552 msgstr ""
6553
6554 #. type: TP
6555 #: build/C/man2/fcntl.2:1387
6556 #, no-wrap
6557 msgid "B<F_SEAL_GROW>"
6558 msgstr ""
6559
6560 #. type: Plain text
6561 #: build/C/man2/fcntl.2:1401
6562 msgid ""
6563 "If this seal is set, the size of the file in question cannot be increased.  "
6564 "This affects B<write>(2)  beyond the end of the file, B<truncate>(2), "
6565 "B<ftruncate>(2), and B<fallocate>(2).  These calls will fail with B<EPERM> "
6566 "if you use them to increase the file size.  If you keep the size or shrink "
6567 "it, those calls still work as expected."
6568 msgstr ""
6569
6570 #. type: TP
6571 #: build/C/man2/fcntl.2:1401
6572 #, no-wrap
6573 msgid "B<F_SEAL_WRITE>"
6574 msgstr ""
6575
6576 #.  One or more other seals are typically used with F_SEAL_WRITE
6577 #.  because, given a file with the F_SEAL_WRITE seal set, then,
6578 #.  while it would no longer be possinle to (say) write zeros into
6579 #.  the last 100 bytes of a file, it would still be possible
6580 #.  to (say) shrink the file by 100 bytes using ftruncate(), and
6581 #.  then increase the file size by 100 bytes, which would have
6582 #.  the effect of replacing the last hundred bytes by zeros.
6583 #. type: Plain text
6584 #: build/C/man2/fcntl.2:1429
6585 msgid ""
6586 "If this seal is set, you cannot modify the contents of the file.  Note that "
6587 "shrinking or growing the size of the file is still possible and allowed.  "
6588 "Thus, this seal is normally used in combination with one of the other "
6589 "seals.  This seal affects B<write>(2)  and B<fallocate>(2)  (only in "
6590 "combination with the B<FALLOC_FL_PUNCH_HOLE> flag).  Those calls will fail "
6591 "with B<EPERM> if this seal is set.  Furthermore, trying to create new "
6592 "shared, writable memory-mappings via B<mmap>(2)  will also fail with "
6593 "B<EPERM>."
6594 msgstr ""
6595
6596 #. type: Plain text
6597 #: build/C/man2/fcntl.2:1444
6598 msgid ""
6599 "Setting B<F_SEAL_WRITE> via B<fcntl>(2)  with B<F_ADD_SEALS> will fail with "
6600 "B<EBUSY> if any writable, shared mapping exists.  Such mappings must be "
6601 "unmapped before you can add this seal.  Furthermore, if there are any "
6602 "asynchronous I/O operations (B<io_submit>(2))  pending on the file, all "
6603 "outstanding writes will be discarded."
6604 msgstr ""
6605
6606 #. type: Plain text
6607 #: build/C/man2/fcntl.2:1446
6608 msgid "For a successful call, the return value depends on the operation:"
6609 msgstr ""
6610
6611 #. type: TP
6612 #: build/C/man2/fcntl.2:1446
6613 #, no-wrap
6614 msgid "B<F_DUPFD>"
6615 msgstr ""
6616
6617 #. type: Plain text
6618 #: build/C/man2/fcntl.2:1449
6619 msgid "The new descriptor."
6620 msgstr ""
6621
6622 #. type: TP
6623 #: build/C/man2/fcntl.2:1449
6624 #, no-wrap
6625 msgid "B<F_GETFD>"
6626 msgstr ""
6627
6628 #. type: Plain text
6629 #: build/C/man2/fcntl.2:1452
6630 msgid "Value of file descriptor flags."
6631 msgstr ""
6632
6633 #. type: TP
6634 #: build/C/man2/fcntl.2:1452
6635 #, no-wrap
6636 msgid "B<F_GETFL>"
6637 msgstr ""
6638
6639 #. type: Plain text
6640 #: build/C/man2/fcntl.2:1455
6641 msgid "Value of file status flags."
6642 msgstr ""
6643
6644 #. type: TP
6645 #: build/C/man2/fcntl.2:1455
6646 #, no-wrap
6647 msgid "B<F_GETLEASE>"
6648 msgstr ""
6649
6650 #. type: Plain text
6651 #: build/C/man2/fcntl.2:1458
6652 msgid "Type of lease held on file descriptor."
6653 msgstr ""
6654
6655 #. type: TP
6656 #: build/C/man2/fcntl.2:1458
6657 #, no-wrap
6658 msgid "B<F_GETOWN>"
6659 msgstr ""
6660
6661 #. type: Plain text
6662 #: build/C/man2/fcntl.2:1461
6663 msgid "Value of descriptor owner."
6664 msgstr ""
6665
6666 #. type: TP
6667 #: build/C/man2/fcntl.2:1461
6668 #, no-wrap
6669 msgid "B<F_GETSIG>"
6670 msgstr ""
6671
6672 #. type: Plain text
6673 #: build/C/man2/fcntl.2:1467
6674 msgid ""
6675 "Value of signal sent when read or write becomes possible, or zero for "
6676 "traditional B<SIGIO> behavior."
6677 msgstr ""
6678
6679 #. type: TP
6680 #: build/C/man2/fcntl.2:1467
6681 #, no-wrap
6682 msgid "B<F_GETPIPE_SZ>, B<F_SETPIPE_SZ>"
6683 msgstr ""
6684
6685 #. type: Plain text
6686 #: build/C/man2/fcntl.2:1470
6687 msgid "The pipe capacity."
6688 msgstr ""
6689
6690 #. type: TP
6691 #: build/C/man2/fcntl.2:1470
6692 #, no-wrap
6693 msgid "B<F_GET_SEALS>"
6694 msgstr ""
6695
6696 #. type: Plain text
6697 #: build/C/man2/fcntl.2:1475
6698 msgid ""
6699 "A bit mask identifying the seals that have been set for the inode referred "
6700 "to by I<fd>."
6701 msgstr ""
6702
6703 #. type: TP
6704 #: build/C/man2/fcntl.2:1475
6705 #, no-wrap
6706 msgid "All other commands"
6707 msgstr ""
6708
6709 #. type: Plain text
6710 #: build/C/man2/fcntl.2:1478
6711 msgid "Zero."
6712 msgstr ""
6713
6714 #. type: Plain text
6715 #: build/C/man2/fcntl.2:1482
6716 msgid "On error, -1 is returned, and I<errno> is set appropriately."
6717 msgstr ""
6718
6719 #. type: TP
6720 #: build/C/man2/fcntl.2:1483 build/C/man3/lockf.3:122
6721 #, no-wrap
6722 msgid "B<EACCES> or B<EAGAIN>"
6723 msgstr ""
6724
6725 #. type: Plain text
6726 #: build/C/man2/fcntl.2:1486
6727 msgid "Operation is prohibited by locks held by other processes."
6728 msgstr ""
6729
6730 #. type: TP
6731 #: build/C/man2/fcntl.2:1486 build/C/man2/fork.2:186 build/C/man2/fork.2:191 build/C/man2/fork.2:209
6732 #, no-wrap
6733 msgid "B<EAGAIN>"
6734 msgstr ""
6735
6736 #. type: Plain text
6737 #: build/C/man2/fcntl.2:1490
6738 msgid ""
6739 "The operation is prohibited because the file has been memory-mapped by "
6740 "another process."
6741 msgstr ""
6742
6743 #. type: Plain text
6744 #: build/C/man2/fcntl.2:1494
6745 msgid "I<fd> is not an open file descriptor"
6746 msgstr ""
6747
6748 #. type: Plain text
6749 #: build/C/man2/fcntl.2:1503
6750 msgid ""
6751 "I<cmd> is B<F_SETLK> or B<F_SETLKW> and the file descriptor open mode "
6752 "doesn't match with the type of lock requested."
6753 msgstr ""
6754
6755 #. type: Plain text
6756 #: build/C/man2/fcntl.2:1512
6757 msgid ""
6758 "I<cmd> is B<F_SETPIPE_SZ> and the new pipe capacity specified in I<arg> is "
6759 "smaller than the amount of buffer space currently used to store data in the "
6760 "pipe."
6761 msgstr ""
6762
6763 #. type: Plain text
6764 #: build/C/man2/fcntl.2:1522
6765 msgid ""
6766 "I<cmd> is B<F_ADD_SEALS>, I<arg> includes B<F_SEAL_WRITE>, and there exists "
6767 "a writable, shared mapping on the file referred to by I<fd>."
6768 msgstr ""
6769
6770 #. type: TP
6771 #: build/C/man2/fcntl.2:1522 build/C/man3/lockf.3:142
6772 #, no-wrap
6773 msgid "B<EDEADLK>"
6774 msgstr ""
6775
6776 #. type: Plain text
6777 #: build/C/man2/fcntl.2:1527
6778 msgid ""
6779 "It was detected that the specified B<F_SETLKW> command would cause a "
6780 "deadlock."
6781 msgstr ""
6782
6783 #. type: Plain text
6784 #: build/C/man2/fcntl.2:1531
6785 msgid "I<lock> is outside your accessible address space."
6786 msgstr ""
6787
6788 #. type: Plain text
6789 #: build/C/man2/fcntl.2:1540
6790 msgid ""
6791 "I<cmd> is B<F_SETLKW> or B<F_OFD_SETLKW> and the operation was interrupted "
6792 "by a signal; see B<signal>(7)."
6793 msgstr ""
6794
6795 #. type: Plain text
6796 #: build/C/man2/fcntl.2:1553
6797 msgid ""
6798 "I<cmd> is B<F_GETLK>, B<F_SETLK>, B<F_OFD_GETLK>, or B<F_OFD_SETLK>, and the "
6799 "operation was interrupted by a signal before the lock was checked or "
6800 "acquired.  Most likely when locking a remote file (e.g., locking over NFS), "
6801 "but can sometimes happen locally."
6802 msgstr ""
6803
6804 #. type: Plain text
6805 #: build/C/man2/fcntl.2:1558
6806 msgid "The value specified in I<cmd> is not recognized by this kernel."
6807 msgstr ""
6808
6809 #. type: Plain text
6810 #: build/C/man2/fcntl.2:1566
6811 msgid "I<cmd> is B<F_ADD_SEALS> and I<arg> includes an unrecognized sealing bit."
6812 msgstr ""
6813
6814 #. type: Plain text
6815 #: build/C/man2/fcntl.2:1576
6816 msgid ""
6817 "I<cmd> is B<F_ADD_SEALS> or B<F_GET_SEALS> and the filesystem containing the "
6818 "inode referred to by I<fd> does not support sealing."
6819 msgstr ""
6820
6821 #. type: Plain text
6822 #: build/C/man2/fcntl.2:1588
6823 msgid ""
6824 "I<cmd> is B<F_DUPFD> and I<arg> is negative or is greater than the maximum "
6825 "allowable value (see the discussion of B<RLIMIT_NOFILE> in B<getrlimit>(2))."
6826 msgstr ""
6827
6828 #. type: Plain text
6829 #: build/C/man2/fcntl.2:1596
6830 msgid "I<cmd> is B<F_SETSIG> and I<arg> is not an allowable signal number."
6831 msgstr ""
6832
6833 #. type: Plain text
6834 #: build/C/man2/fcntl.2:1607
6835 msgid ""
6836 "I<cmd> is B<F_OFD_SETLK>, B<F_OFD_SETLKW>, or B<F_OFD_GETLK>, and I<l_pid> "
6837 "was not specified as zero."
6838 msgstr ""
6839
6840 #. type: Plain text
6841 #: build/C/man2/fcntl.2:1613
6842 msgid ""
6843 "I<cmd> is B<F_DUPFD> and the process already has the maximum number of file "
6844 "descriptors open."
6845 msgstr ""
6846
6847 #. type: TP
6848 #: build/C/man2/fcntl.2:1613 build/C/man2/flock.2:131 build/C/man3/lockf.3:151
6849 #, no-wrap
6850 msgid "B<ENOLCK>"
6851 msgstr ""
6852
6853 #. type: Plain text
6854 #: build/C/man2/fcntl.2:1617
6855 msgid ""
6856 "Too many segment locks open, lock table is full, or a remote locking "
6857 "protocol failed (e.g., locking over NFS)."
6858 msgstr ""
6859
6860 #. type: Plain text
6861 #: build/C/man2/fcntl.2:1625
6862 msgid ""
6863 "B<F_NOTIFY> was specified in I<cmd>, but I<fd> does not refer to a "
6864 "directory."
6865 msgstr ""
6866
6867 #. type: Plain text
6868 #: build/C/man2/fcntl.2:1630
6869 msgid ""
6870 "Attempted to clear the B<O_APPEND> flag on a file that has the append-only "
6871 "attribute set."
6872 msgstr ""
6873
6874 #. type: Plain text
6875 #: build/C/man2/fcntl.2:1640
6876 msgid ""
6877 "I<cmd> was B<F_ADD_SEALS>, but I<fd> was not open for writing or the current "
6878 "set of seals on the file already includes B<F_SEAL_SEAL>."
6879 msgstr ""
6880
6881 #. type: Plain text
6882 #: build/C/man2/fcntl.2:1653
6883 msgid ""
6884 "SVr4, 4.3BSD, POSIX.1-2001.  Only the operations B<F_DUPFD>, B<F_GETFD>, "
6885 "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> "
6886 "are specified in POSIX.1-2001."
6887 msgstr ""
6888
6889 #. type: Plain text
6890 #: build/C/man2/fcntl.2:1665
6891 msgid ""
6892 "B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001.  (To get their "
6893 "definitions, define either B<_BSD_SOURCE>, or B<_XOPEN_SOURCE> with the "
6894 "value 500 or greater, or B<_POSIX_C_SOURCE> with the value 200809L or "
6895 "greater.)"
6896 msgstr ""
6897
6898 #. type: Plain text
6899 #: build/C/man2/fcntl.2:1673
6900 msgid ""
6901 "B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008.  (To get this definition, "
6902 "define B<_POSIX_C_SOURCE> with the value 200809L or greater, or "
6903 "B<_XOPEN_SOURCE> with the value 700 or greater.)"
6904 msgstr ""
6905
6906 #.  .PP
6907 #.  SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions.
6908 #. type: Plain text
6909 #: build/C/man2/fcntl.2:1690
6910 msgid ""
6911 "B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, "
6912 "B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are "
6913 "Linux-specific.  (Define the B<_GNU_SOURCE> macro to obtain these "
6914 "definitions.)"
6915 msgstr ""
6916
6917 #. type: Plain text
6918 #: build/C/man2/fcntl.2:1699
6919 msgid ""
6920 "B<F_OFD_SETLK>, B<F_OFD_SETLKW>, and B<F_OFD_GETLK> are Linux-specific (and "
6921 "one must define B<_GNU_SOURCE> to obtain their definitions), but work is "
6922 "being done to have them included in the next version of POSIX.1."
6923 msgstr ""
6924
6925 #.  FIXME . Once glibc adds support, add a note about FTM requirements
6926 #. type: Plain text
6927 #: build/C/man2/fcntl.2:1705
6928 msgid "B<F_ADD_SEALS> and B<F_GET_SEALS> are Lnux-specific."
6929 msgstr ""
6930
6931 #. type: Plain text
6932 #: build/C/man2/fcntl.2:1711 build/C/man2/fcntl.2:1737
6933 msgid ""
6934 "The errors returned by B<dup2>(2)  are different from those returned by "
6935 "B<F_DUPFD>."
6936 msgstr ""
6937
6938 #. type: SS
6939 #: build/C/man2/fcntl.2:1711
6940 #, no-wrap
6941 msgid "File locking"
6942 msgstr ""
6943
6944 #. type: Plain text
6945 #: build/C/man2/fcntl.2:1732 build/C/man2/fcntl.2:1776
6946 msgid ""
6947 "The original Linux B<fcntl>()  system call was not designed to handle large "
6948 "file offsets (in the I<flock> structure).  Consequently, an B<fcntl64>()  "
6949 "system call was added in Linux 2.4.  The newer system call employs a "
6950 "different structure for file locking, I<flock64>, and corresponding "
6951 "commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>.  However, these "
6952 "details can be ignored by applications using glibc, whose B<fcntl>()  "
6953 "wrapper function transparently employs the more recent system call where it "
6954 "is available."
6955 msgstr ""
6956
6957 #. type: SS
6958 #: build/C/man2/fcntl.2:1737
6959 #, no-wrap
6960 msgid "Record locks"
6961 msgstr ""
6962
6963 #. type: Plain text
6964 #: build/C/man2/fcntl.2:1743
6965 msgid ""
6966 "Since kernel 2.0, there is no interaction between the types of lock placed "
6967 "by B<flock>(2)  and B<fcntl>()."
6968 msgstr ""
6969
6970 #.  e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
6971 #.  documents it in fcntl(5).  mtk, May 2007
6972 #.  Also, FreeBSD documents it (Apr 2014).
6973 #. type: Plain text
6974 #: build/C/man2/fcntl.2:1755
6975 msgid ""
6976 "Several systems have more fields in I<struct flock> such as, for example, "
6977 "I<l_sysid>.  Clearly, I<l_pid> alone is not going to be very useful if the "
6978 "process holding the lock may live on a different machine."
6979 msgstr ""
6980
6981 #. type: SS
6982 #: build/C/man2/fcntl.2:1776
6983 #, no-wrap
6984 msgid "Record locking and NFS"
6985 msgstr ""
6986
6987 #
6988 #.  Neil Brown: With NFSv3 the failure mode is the reverse.  If
6989 #.      the server loses contact with a client then any lock stays in place
6990 #.      indefinitely ("why can't I read my mail"... I remember it well).
6991 #
6992 #
6993 #.  Jeff Layton:
6994 #.      Note that this is not a firm timeout. The server runs a job
6995 #.      periodically to clean out expired stateful objects, and it's likely
6996 #.      that there is some time (maybe even up to another whole lease period)
6997 #.      between when the timeout expires and the job actually runs. If the
6998 #.      client gets a RENEW in there within that window, its lease will be
6999 #.      renewed and its state preserved.
7000 #. type: Plain text
7001 #: build/C/man2/fcntl.2:1804
7002 msgid ""
7003 "Before Linux 3.12, if an NFSv4 client loses contact with the server for a "
7004 "period of time (defined as more than 90 seconds with no communication), it "
7005 "might lose and regain a lock without ever being aware of the fact.  (The "
7006 "period of time after which contact is assumed lost is known as the NFSv4 "
7007 "leasetime.  On a Linux NFS server, this can be determined by looking at "
7008 "I</proc/fs/nfsd/nfsv4leasetime>, which expresses the period in seconds.  The "
7009 "default value for this file is 90.)  This scenario potentially risks data "
7010 "corruption, since another process might acquire a lock in the intervening "
7011 "period and perform file I/O."
7012 msgstr ""
7013
7014 #.  commit ef1820f9be27b6ad158f433ab38002ab8131db4d
7015 #.  commit f6de7a39c181dfb8a2c534661a53c73afb3081cd
7016 #. type: Plain text
7017 #: build/C/man2/fcntl.2:1818
7018 msgid ""
7019 "Since Linux 3.12, if an NFSv4 client loses contact with the server, any I/O "
7020 "to the file by a process which \"thinks\" it holds a lock will fail until "
7021 "that process closes and reopens the file.  A kernel parameter, "
7022 "I<nfs.recover_lost_locks>, can be set to 1 to obtain the pre-3.12 behavior, "
7023 "whereby the client will attempt to recover lost locks when contact is "
7024 "reestablished with the server.  Because of the attendant risk of data "
7025 "corruption, this parameter defaults to 0 (disabled)."
7026 msgstr ""
7027
7028 #. type: SS
7029 #: build/C/man2/fcntl.2:1819
7030 #, no-wrap
7031 msgid "F_SETFL"
7032 msgstr ""
7033
7034 #.  FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
7035 #.  via fcntl(2), but currently Linux does not permit this
7036 #.  See http://bugzilla.kernel.org/show_bug.cgi?id=5994
7037 #. type: Plain text
7038 #: build/C/man2/fcntl.2:1831
7039 msgid ""
7040 "It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> "
7041 "and B<O_SYNC> flags.  Attempts to change the state of these flags are "
7042 "silently ignored."
7043 msgstr ""
7044
7045 #. type: SS
7046 #: build/C/man2/fcntl.2:1831
7047 #, no-wrap
7048 msgid "F_GETOWN"
7049 msgstr ""
7050
7051 #.  glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h
7052 #.  mtk, Dec 04: some limited testing on alpha and ia64 seems to
7053 #.  indicate that ANY negative PGID value will cause F_GETOWN
7054 #.  to misinterpret the return as an error. Some other architectures
7055 #.  seem to have the same range check as i386.
7056 #. type: Plain text
7057 #: build/C/man2/fcntl.2:1857
7058 msgid ""
7059 "A limitation of the Linux system call conventions on some architectures "
7060 "(notably i386) means that if a (negative)  process group ID to be returned "
7061 "by B<F_GETOWN> falls in the range -1 to -4095, then the return value is "
7062 "wrongly interpreted by glibc as an error in the system call; that is, the "
7063 "return value of B<fcntl>()  will be -1, and I<errno> will contain the "
7064 "(positive) process group ID.  The Linux-specific B<F_GETOWN_EX> operation "
7065 "avoids this problem.  Since glibc version 2.11, glibc makes the kernel "
7066 "B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using "
7067 "B<F_GETOWN_EX>."
7068 msgstr ""
7069
7070 #. type: SS
7071 #: build/C/man2/fcntl.2:1857
7072 #, no-wrap
7073 msgid "F_SETOWN"
7074 msgstr ""
7075
7076 #. type: Plain text
7077 #: build/C/man2/fcntl.2:1875
7078 msgid ""
7079 "In Linux 2.4 and earlier, there is bug that can occur when an unprivileged "
7080 "process uses B<F_SETOWN> to specify the owner of a socket file descriptor as "
7081 "a process (group) other than the caller.  In this case, B<fcntl>()  can "
7082 "return -1 with I<errno> set to B<EPERM>, even when the owner process (group) "
7083 "is one that the caller has permission to send signals to.  Despite this "
7084 "error return, the file descriptor owner is set, and signals will be sent to "
7085 "the owner."
7086 msgstr ""
7087
7088 #. type: SS
7089 #: build/C/man2/fcntl.2:1875
7090 #, no-wrap
7091 msgid "Deadlock detection"
7092 msgstr ""
7093
7094 #. type: Plain text
7095 #: build/C/man2/fcntl.2:1894
7096 msgid ""
7097 "The deadlock-detection algorithm employed by the kernel when dealing with "
7098 "B<F_SETLKW> requests can yield both false negatives (failures to detect "
7099 "deadlocks, leaving a set of deadlocked processes blocked indefinitely)  and "
7100 "false positives (B<EDEADLK> errors when there is no deadlock).  For example, "
7101 "the kernel limits the lock depth of its dependency search to 10 steps, "
7102 "meaning that circular deadlock chains that exceed that size will not be "
7103 "detected.  In addition, the kernel may falsely indicate a deadlock when two "
7104 "or more processes created using the B<clone>(2)  B<CLONE_FILES> flag place "
7105 "locks that appear (to the kernel) to conflict."
7106 msgstr ""
7107
7108 #.  http://marc.info/?l=linux-kernel&m=119013491707153&w=2
7109 #
7110 #.  Reconfirmed by Jeff Layton
7111 #.      From: Jeff Layton <jlayton <at> redhat.com>
7112 #.      Subject: Re: Status of fcntl() mandatory locking
7113 #.      Newsgroups: gmane.linux.file-systems
7114 #.      Date: 2014-04-28 10:07:57 GMT
7115 #.      http://thread.gmane.org/gmane.linux.file-systems/84481/focus=84518
7116 #. type: Plain text
7117 #: build/C/man2/fcntl.2:1916
7118 msgid ""
7119 "The Linux implementation of mandatory locking is subject to race conditions "
7120 "which render it unreliable: a B<write>(2)  call that overlaps with a lock "
7121 "may modify data after the mandatory lock is acquired; a B<read>(2)  call "
7122 "that overlaps with a lock may detect changes to data that were made only "
7123 "after a write lock was acquired.  Similar races exist between mandatory "
7124 "locks and B<mmap>(2).  It is therefore inadvisable to rely on mandatory "
7125 "locking."
7126 msgstr ""
7127
7128 #. type: Plain text
7129 #: build/C/man2/fcntl.2:1924
7130 msgid ""
7131 "B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), "
7132 "B<capabilities>(7), B<feature_test_macros>(7)"
7133 msgstr ""
7134
7135 #. type: Plain text
7136 #: build/C/man2/fcntl.2:1936
7137 msgid ""
7138 "I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux "
7139 "kernel source directory I<Documentation/filesystems/> (on older kernels, "
7140 "these files are directly under the I<Documentation/> directory, and "
7141 "I<mandatory-locking.txt> is called I<mandatory.txt>)"
7142 msgstr ""
7143
7144 #. type: TH
7145 #: build/C/man3/fexecve.3:25
7146 #, no-wrap
7147 msgid "FEXECVE"
7148 msgstr ""
7149
7150 #. type: TH
7151 #: build/C/man3/fexecve.3:25
7152 #, no-wrap
7153 msgid "2014-04-20"
7154 msgstr ""
7155
7156 #. type: Plain text
7157 #: build/C/man3/fexecve.3:28
7158 msgid "fexecve - execute program specified via file descriptor"
7159 msgstr ""
7160
7161 #. type: Plain text
7162 #: build/C/man3/fexecve.3:33
7163 #, no-wrap
7164 msgid ""
7165 "B<int fexecve(int >I<fd>B<, char *const >I<argv>B<[], char *const "
7166 ">I<envp>B<[]);>\n"
7167 msgstr ""
7168
7169 #. type: Plain text
7170 #: build/C/man3/fexecve.3:41
7171 msgid "B<fexecve>():"
7172 msgstr ""
7173
7174 #. type: Plain text
7175 #: build/C/man3/fexecve.3:50 build/C/man3/getcwd.3:54
7176 msgid "_GNU_SOURCE"
7177 msgstr ""
7178
7179 #.  POSIX.1-2008 specifies the O_EXEC flag for open as an alternative,
7180 #.  but Linux doesn't support this flag yet.
7181 #. type: Plain text
7182 #: build/C/man3/fexecve.3:67
7183 msgid ""
7184 "B<fexecve>()  performs the same task as B<execve>(2), with the difference "
7185 "that the file to be executed is specified via a file descriptor, I<fd>, "
7186 "rather than via a pathname.  The file descriptor I<fd> must be opened "
7187 "read-only, and the caller must have permission to execute the file that it "
7188 "refers to."
7189 msgstr ""
7190
7191 #. type: Plain text
7192 #: build/C/man3/fexecve.3:74
7193 msgid ""
7194 "A successful call to B<fexecve>()  never returns.  On error, the function "
7195 "does return, with a result value of -1, and I<errno> is set appropriately."
7196 msgstr ""
7197
7198 #. type: Plain text
7199 #: build/C/man3/fexecve.3:78
7200 msgid "Errors are as for B<execve>(2), with the following additions:"
7201 msgstr ""
7202
7203 #. type: Plain text
7204 #: build/C/man3/fexecve.3:86
7205 msgid ""
7206 "I<fd> is not a valid file descriptor, or I<argv> is NULL, or I<envp> is "
7207 "NULL."
7208 msgstr ""
7209
7210 #. type: Plain text
7211 #: build/C/man3/fexecve.3:91
7212 msgid "The I</proc> filesystem could not be accessed."
7213 msgstr ""
7214
7215 #. type: Plain text
7216 #: build/C/man3/fexecve.3:94
7217 msgid "B<fexecve>()  is implemented since glibc 2.3.2."
7218 msgstr ""
7219
7220 #. type: Plain text
7221 #: build/C/man3/fexecve.3:99
7222 msgid ""
7223 "POSIX.1-2008.  This function is not specified in POSIX.1-2001, and is not "
7224 "widely available on other systems.  It is specified in POSIX.1-2008."
7225 msgstr ""
7226
7227 #.  FIXME .
7228 #.  With the addition of the execveat(2), fexecve() can be implemented
7229 #.  even where /proc is unavailable. Review future glibc releases to
7230 #.  see if the implementation is changed to use execveat(2).
7231 #. type: Plain text
7232 #: build/C/man3/fexecve.3:111
7233 msgid ""
7234 "On Linux, B<fexecve>()  is implemented using the B<proc>(5)  filesystem, so "
7235 "I</proc> needs to be mounted and available at the time of the call."
7236 msgstr ""
7237
7238 #. type: Plain text
7239 #: build/C/man3/fexecve.3:128
7240 msgid ""
7241 "The idea behind B<fexecve>()  is to allow the caller to verify (checksum) "
7242 "the contents of an executable before executing it.  Simply opening the file, "
7243 "checksumming the contents, and then doing an B<execve>(2)  would not "
7244 "suffice, since, between the two steps, the filename, or a directory prefix "
7245 "of the pathname, could have been exchanged (by, for example, modifying the "
7246 "target of a symbolic link).  B<fexecve>()  does not mitigate the problem "
7247 "that the I<contents> of a file could be changed between the checksumming and "
7248 "the call to B<fexecve>(); for that, the solution is to ensure that the "
7249 "permissions on the file prevent it from being modified by malicious users."
7250 msgstr ""
7251
7252 #. type: Plain text
7253 #: build/C/man3/fexecve.3:146
7254 msgid ""
7255 "The natural idiom when using B<fexecve>()  is to set the close-on-exec flag "
7256 "on I<fd>, so that the file descriptor does not leak through to the program "
7257 "that is executed.  This approach is natural for two reasons.  First, it "
7258 "prevents file descriptors being consumed unnecessarily.  (The executed "
7259 "program normally has no need of a file descriptor that refers to the program "
7260 "itself.)  Second, if B<fexecve>()  is used recursively, employing the "
7261 "close-on-exec flag prevents the file descriptor exhaustion that would result "
7262 "from the fact that each step in the recursion would cause one more file "
7263 "descriptor to be passed to the new program.  (But see BUGS.)"
7264 msgstr ""
7265
7266 #. type: Plain text
7267 #: build/C/man3/fexecve.3:165
7268 msgid ""
7269 "If I<fd> refers to a script (i.e., it is an executable text file that names "
7270 "a script interpreter with a first line that begins with the characters "
7271 "I<#!>)  and the close-on-exec flag has been set for I<fd>, then B<fexecve>()  "
7272 "fails with the error B<ENOENT>.  This error occurs because, by the time the "
7273 "script interpreter is executed, I<fd> has already been closed because of the "
7274 "close-on-exec flag.  Thus, the close-on-exec flag can't be set on I<fd> if "
7275 "it refers to a script, leading to the problems described in NOTES."
7276 msgstr ""
7277
7278 #. type: Plain text
7279 #: build/C/man3/fexecve.3:167
7280 msgid "B<execve>(2), B<execveat>(2)"
7281 msgstr ""
7282
7283 #. type: TH
7284 #: build/C/man2/flock.2:35
7285 #, no-wrap
7286 msgid "FLOCK"
7287 msgstr ""
7288
7289 #. type: TH
7290 #: build/C/man2/flock.2:35 build/C/man2/uname.2:27
7291 #, no-wrap
7292 msgid "2014-09-21"
7293 msgstr ""
7294
7295 #. type: Plain text
7296 #: build/C/man2/flock.2:38
7297 msgid "flock - apply or remove an advisory lock on an open file"
7298 msgstr ""
7299
7300 #. type: Plain text
7301 #: build/C/man2/flock.2:40
7302 msgid "B<#include E<lt>sys/file.hE<gt>>"
7303 msgstr ""
7304
7305 #. type: Plain text
7306 #: build/C/man2/flock.2:42
7307 msgid "B<int flock(int >I<fd>B<, int >I<operation>B<);>"
7308 msgstr ""
7309
7310 #. type: Plain text
7311 #: build/C/man2/flock.2:48
7312 msgid ""
7313 "Apply or remove an advisory lock on the open file specified by I<fd>.  The "
7314 "argument I<operation> is one of the following:"
7315 msgstr ""
7316
7317 #. type: TP
7318 #: build/C/man2/flock.2:49
7319 #, no-wrap
7320 msgid "B<LOCK_SH>"
7321 msgstr ""
7322
7323 #. type: Plain text
7324 #: build/C/man2/flock.2:54
7325 msgid ""
7326 "Place a shared lock.  More than one process may hold a shared lock for a "
7327 "given file at a given time."
7328 msgstr ""
7329
7330 #. type: TP
7331 #: build/C/man2/flock.2:54
7332 #, no-wrap
7333 msgid "B<LOCK_EX>"
7334 msgstr ""
7335
7336 #. type: Plain text
7337 #: build/C/man2/flock.2:59
7338 msgid ""
7339 "Place an exclusive lock.  Only one process may hold an exclusive lock for a "
7340 "given file at a given time."
7341 msgstr ""
7342
7343 #. type: TP
7344 #: build/C/man2/flock.2:59
7345 #, no-wrap
7346 msgid "B<LOCK_UN>"
7347 msgstr ""
7348
7349 #. type: Plain text
7350 #: build/C/man2/flock.2:62
7351 msgid "Remove an existing lock held by this process."
7352 msgstr ""
7353
7354 #. type: Plain text
7355 #: build/C/man2/flock.2:71
7356 msgid ""
7357 "A call to B<flock>()  may block if an incompatible lock is held by another "
7358 "process.  To make a nonblocking request, include B<LOCK_NB> (by ORing)  with "
7359 "any of the above operations."
7360 msgstr ""
7361
7362 #. type: Plain text
7363 #: build/C/man2/flock.2:73
7364 msgid "A single file may not simultaneously have both shared and exclusive locks."
7365 msgstr ""
7366
7367 #. type: Plain text
7368 #: build/C/man2/flock.2:88
7369 msgid ""
7370 "Locks created by B<flock>()  are associated with an open file description "
7371 "(see B<open>(2)).  This means that duplicate file descriptors (created by, "
7372 "for example, B<fork>(2)  or B<dup>(2))  refer to the same lock, and this "
7373 "lock may be modified or released using any of these descriptors.  "
7374 "Furthermore, the lock is released either by an explicit B<LOCK_UN> operation "
7375 "on any of these duplicate descriptors, or when all such descriptors have "
7376 "been closed."
7377 msgstr ""
7378
7379 #. type: Plain text
7380 #: build/C/man2/flock.2:97
7381 msgid ""
7382 "If a process uses B<open>(2)  (or similar) to obtain more than one "
7383 "descriptor for the same file, these descriptors are treated independently by "
7384 "B<flock>().  An attempt to lock the file using one of these file descriptors "
7385 "may be denied by a lock that the calling process has already placed via "
7386 "another descriptor."
7387 msgstr ""
7388
7389 #. type: Plain text
7390 #: build/C/man2/flock.2:104
7391 msgid ""
7392 "A process may hold only one type of lock (shared or exclusive)  on a file.  "
7393 "Subsequent B<flock>()  calls on an already locked file will convert an "
7394 "existing lock to the new lock mode."
7395 msgstr ""
7396
7397 #. type: Plain text
7398 #: build/C/man2/flock.2:109
7399 msgid "Locks created by B<flock>()  are preserved across an B<execve>(2)."
7400 msgstr ""
7401
7402 #. type: Plain text
7403 #: build/C/man2/flock.2:112
7404 msgid ""
7405 "A shared or exclusive lock can be placed on a file regardless of the mode in "
7406 "which the file was opened."
7407 msgstr ""
7408
7409 #. type: Plain text
7410 #: build/C/man2/flock.2:122
7411 msgid "I<fd> is not an open file descriptor."
7412 msgstr ""
7413
7414 #. type: Plain text
7415 #: build/C/man2/flock.2:127
7416 msgid ""
7417 "While waiting to acquire a lock, the call was interrupted by delivery of a "
7418 "signal caught by a handler; see B<signal>(7)."
7419 msgstr ""
7420
7421 #. type: Plain text
7422 #: build/C/man2/flock.2:131
7423 msgid "I<operation> is invalid."
7424 msgstr ""
7425
7426 #. type: Plain text
7427 #: build/C/man2/flock.2:134
7428 msgid "The kernel ran out of memory for allocating lock records."
7429 msgstr ""
7430
7431 #. type: TP
7432 #: build/C/man2/flock.2:134
7433 #, no-wrap
7434 msgid "B<EWOULDBLOCK>"
7435 msgstr ""
7436
7437 #. type: Plain text
7438 #: build/C/man2/flock.2:139
7439 msgid "The file is locked and the B<LOCK_NB> flag was selected."
7440 msgstr ""
7441
7442 #. type: Plain text
7443 #: build/C/man2/flock.2:148
7444 msgid ""
7445 "4.4BSD (the B<flock>()  call first appeared in 4.2BSD).  A version of "
7446 "B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most "
7447 "UNIX systems."
7448 msgstr ""
7449
7450 #.  E.g., according to the flock(2) man page, FreeBSD since at least 5.3
7451 #. type: Plain text
7452 #: build/C/man2/flock.2:171
7453 msgid ""
7454 "Since kernel 2.0, B<flock>()  is implemented as a system call in its own "
7455 "right rather than being emulated in the GNU C library as a call to "
7456 "B<fcntl>(2).  With this implementation, there is no interaction between the "
7457 "types of lock placed by B<flock>()  and B<fcntl>(2), and B<flock>()  does "
7458 "not detect deadlock.  (Note, however, that on some systems, such as the "
7459 "modern BSDs, B<flock>()  and B<fcntl>(2)  locks I<do> interact with one "
7460 "another.)"
7461 msgstr ""
7462
7463 #.  commit 5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2
7464 #. type: Plain text
7465 #: build/C/man2/flock.2:202
7466 msgid ""
7467 "In Linux kernels up to 2.6.11, B<flock>()  does not lock files over NFS "
7468 "(i.e., the scope of locks was limited to the local system).  Instead, one "
7469 "could use B<fcntl>(2)  byte-range locking, which does work over NFS, given a "
7470 "sufficiently recent version of Linux and a server which supports locking.  "
7471 "Since Linux 2.6.12, NFS clients support B<flock>()  locks by emulating them "
7472 "as byte-range locks on the entire file.  This means that B<fcntl>(2)  and "
7473 "B<flock>()  locks I<do> interact with one another over NFS.  Since Linux "
7474 "2.6.37, the kernel supports a compatibility mode that allows B<flock>()  "
7475 "locks (and also B<fcntl>(2)  byte region locks) to be treated as local; see "
7476 "the discussion of the I<local_lock> option in B<nfs>(5)."
7477 msgstr ""
7478
7479 #. type: Plain text
7480 #: build/C/man2/flock.2:208
7481 msgid ""
7482 "B<flock>()  places advisory locks only; given suitable permissions on a "
7483 "file, a process is free to ignore the use of B<flock>()  and perform I/O on "
7484 "the file."
7485 msgstr ""
7486
7487 #. type: Plain text
7488 #: build/C/man2/flock.2:221
7489 msgid ""
7490 "B<flock>()  and B<fcntl>(2)  locks have different semantics with respect to "
7491 "forked processes and B<dup>(2).  On systems that implement B<flock>()  using "
7492 "B<fcntl>(2), the semantics of B<flock>()  will be different from those "
7493 "described in this manual page."
7494 msgstr ""
7495
7496 #.  Kernel 2.5.21 changed things a little: during lock conversion
7497 #.  it is now the highest priority process that will get the lock -- mtk
7498 #. type: Plain text
7499 #: build/C/man2/flock.2:234
7500 msgid ""
7501 "Converting a lock (shared to exclusive, or vice versa) is not guaranteed to "
7502 "be atomic: the existing lock is first removed, and then a new lock is "
7503 "established.  Between these two steps, a pending lock request by another "
7504 "process may be granted, with the result that the conversion either blocks, "
7505 "or fails if B<LOCK_NB> was specified.  (This is the original BSD behavior, "
7506 "and occurs on many other implementations.)"
7507 msgstr ""
7508
7509 #. type: Plain text
7510 #: build/C/man2/flock.2:243
7511 msgid ""
7512 "B<flock>(1), B<close>(2), B<dup>(2), B<execve>(2), B<fcntl>(2), B<fork>(2), "
7513 "B<open>(2), B<lockf>(3)"
7514 msgstr ""
7515
7516 #. type: Plain text
7517 #: build/C/man2/flock.2:247
7518 msgid ""
7519 "I<Documentation/filesystems/locks.txt> in the Linux kernel source tree "
7520 "(I<Documentation/locks.txt> in older kernels)"
7521 msgstr ""
7522
7523 #. type: TH
7524 #: build/C/man2/fork.2:39
7525 #, no-wrap
7526 msgid "FORK"
7527 msgstr ""
7528
7529 #. type: TH
7530 #: build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/swapon.2:42
7531 #, no-wrap
7532 msgid "2014-05-28"
7533 msgstr ""
7534
7535 #. type: Plain text
7536 #: build/C/man2/fork.2:42
7537 msgid "fork - create a child process"
7538 msgstr ""
7539
7540 #. type: Plain text
7541 #: build/C/man2/fork.2:46
7542 msgid "B<pid_t fork(void);>"
7543 msgstr ""
7544
7545 #. type: Plain text
7546 #: build/C/man2/fork.2:52
7547 msgid ""
7548 "B<fork>()  creates a new process by duplicating the calling process.  The "
7549 "new process, referred to as the I<child>, is an exact duplicate of the "
7550 "calling process, referred to as the I<parent>, except for the following "
7551 "points:"
7552 msgstr ""
7553
7554 #. type: Plain text
7555 #: build/C/man2/fork.2:56
7556 msgid ""
7557 "The child has its own unique process ID, and this PID does not match the ID "
7558 "of any existing process group (B<setpgid>(2))."
7559 msgstr ""
7560
7561 #. type: Plain text
7562 #: build/C/man2/fork.2:58
7563 msgid "The child's parent process ID is the same as the parent's process ID."
7564 msgstr ""
7565
7566 #. type: Plain text
7567 #: build/C/man2/fork.2:62
7568 msgid ""
7569 "The child does not inherit its parent's memory locks (B<mlock>(2), "
7570 "B<mlockall>(2))."
7571 msgstr ""
7572
7573 #. type: Plain text
7574 #: build/C/man2/fork.2:68
7575 msgid ""
7576 "Process resource utilizations (B<getrusage>(2))  and CPU time counters "
7577 "(B<times>(2))  are reset to zero in the child."
7578 msgstr ""
7579
7580 #. type: Plain text
7581 #: build/C/man2/fork.2:71
7582 msgid "The child's set of pending signals is initially empty (B<sigpending>(2))."
7583 msgstr ""
7584
7585 #. type: Plain text
7586 #: build/C/man2/fork.2:74
7587 msgid ""
7588 "The child does not inherit semaphore adjustments from its parent "
7589 "(B<semop>(2))."
7590 msgstr ""
7591
7592 #. type: Plain text
7593 #: build/C/man2/fork.2:82
7594 msgid ""
7595 "The child does not inherit process-associated record locks from its parent "
7596 "(B<fcntl>(2)).  (On the other hand, it does inherit B<fcntl>(2)  open file "
7597 "description locks and B<flock>(2)  locks from its parent.)"
7598 msgstr ""
7599
7600 #. type: Plain text
7601 #: build/C/man2/fork.2:87
7602 msgid ""
7603 "The child does not inherit timers from its parent (B<setitimer>(2), "
7604 "B<alarm>(2), B<timer_create>(2))."
7605 msgstr ""
7606
7607 #. type: Plain text
7608 #: build/C/man2/fork.2:94
7609 msgid ""
7610 "The child does not inherit outstanding asynchronous I/O operations from its "
7611 "parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any "
7612 "asynchronous I/O contexts from its parent (see B<io_setup>(2))."
7613 msgstr ""
7614
7615 #. type: Plain text
7616 #: build/C/man2/fork.2:99
7617 msgid ""
7618 "The process attributes in the preceding list are all specified in "
7619 "POSIX.1-2001.  The parent and child also differ with respect to the "
7620 "following Linux-specific process attributes:"
7621 msgstr ""
7622
7623 #. type: Plain text
7624 #: build/C/man2/fork.2:106
7625 msgid ""
7626 "The child does not inherit directory change notifications (dnotify)  from "
7627 "its parent (see the description of B<F_NOTIFY> in B<fcntl>(2))."
7628 msgstr ""
7629
7630 #. type: Plain text
7631 #: build/C/man2/fork.2:112
7632 msgid ""
7633 "The B<prctl>(2)  B<PR_SET_PDEATHSIG> setting is reset so that the child does "
7634 "not receive a signal when its parent terminates."
7635 msgstr ""
7636
7637 #. type: Plain text
7638 #: build/C/man2/fork.2:119
7639 msgid ""
7640 "The default timer slack value is set to the parent's current timer slack "
7641 "value.  See the description of B<PR_SET_TIMERSLACK> in B<prctl>(2)."
7642 msgstr ""
7643
7644 #. type: Plain text
7645 #: build/C/man2/fork.2:125
7646 msgid ""
7647 "Memory mappings that have been marked with the B<madvise>(2)  "
7648 "B<MADV_DONTFORK> flag are not inherited across a B<fork>()."
7649 msgstr ""
7650
7651 #. type: Plain text
7652 #: build/C/man2/fork.2:130
7653 msgid "The termination signal of the child is always B<SIGCHLD> (see B<clone>(2))."
7654 msgstr ""
7655
7656 #. type: Plain text
7657 #: build/C/man2/fork.2:136
7658 msgid ""
7659 "The port access permission bits set by B<ioperm>(2)  are not inherited by "
7660 "the child; the child must turn on any bits that it requires using "
7661 "B<ioperm>(2)."
7662 msgstr ""
7663
7664 #. type: Plain text
7665 #: build/C/man2/fork.2:147
7666 msgid ""
7667 "The child process is created with a single thread\\(emthe one that called "
7668 "B<fork>().  The entire virtual address space of the parent is replicated in "
7669 "the child, including the states of mutexes, condition variables, and other "
7670 "pthreads objects; the use of B<pthread_atfork>(3)  may be helpful for "
7671 "dealing with problems that this can cause."
7672 msgstr ""
7673
7674 #. type: Plain text
7675 #: build/C/man2/fork.2:161
7676 msgid ""
7677 "The child inherits copies of the parent's set of open file descriptors.  "
7678 "Each file descriptor in the child refers to the same open file description "
7679 "(see B<open>(2))  as the corresponding file descriptor in the parent.  This "
7680 "means that the two descriptors share open file status flags, current file "
7681 "offset, and signal-driven I/O attributes (see the description of B<F_SETOWN> "
7682 "and B<F_SETSIG> in B<fcntl>(2))."
7683 msgstr ""
7684
7685 #. type: Plain text
7686 #: build/C/man2/fork.2:170
7687 msgid ""
7688 "The child inherits copies of the parent's set of open message queue "
7689 "descriptors (see B<mq_overview>(7)).  Each descriptor in the child refers to "
7690 "the same open message queue description as the corresponding descriptor in "
7691 "the parent.  This means that the two descriptors share the same flags "
7692 "(I<mq_flags>)."
7693 msgstr ""
7694
7695 #. type: Plain text
7696 #: build/C/man2/fork.2:178
7697 msgid ""
7698 "The child inherits copies of the parent's set of open directory streams (see "
7699 "B<opendir>(3)).  POSIX.1-2001 says that the corresponding directory streams "
7700 "in the parent and child I<may> share the directory stream positioning; on "
7701 "Linux/glibc they do not."
7702 msgstr ""
7703
7704 #. type: Plain text
7705 #: build/C/man2/fork.2:185
7706 msgid ""
7707 "On success, the PID of the child process is returned in the parent, and 0 is "
7708 "returned in the child.  On failure, -1 is returned in the parent, no child "
7709 "process is created, and I<errno> is set appropriately."
7710 msgstr ""
7711
7712 #. type: Plain text
7713 #: build/C/man2/fork.2:191
7714 msgid ""
7715 "B<fork>()  cannot allocate sufficient memory to copy the parent's page "
7716 "tables and allocate a task structure for the child."
7717 msgstr ""
7718
7719 #.  NOTE! The following should match the description in pthread_create(3)
7720 #. type: Plain text
7721 #: build/C/man2/fork.2:209
7722 msgid ""
7723 "A system-imposed limit on the number of threads was encountered.  There are "
7724 "a number of limits that may trigger this error: the B<RLIMIT_NPROC> soft "
7725 "resource limit (set via B<setrlimit>(2)), which limits the number of "
7726 "processes and threads for a real user ID, was reached; the kernel's "
7727 "system-wide limit on the number of processes and threads, "
7728 "I</proc/sys/kernel/threads-max>, was reached (see B<proc>(5)); or the "
7729 "maximum number of PIDs, I</proc/sys/kernel/pid_max>, was reached (see "
7730 "B<proc>(5))."
7731 msgstr ""
7732
7733 #. type: Plain text
7734 #: build/C/man2/fork.2:216
7735 msgid ""
7736 "The caller is operating under the B<SCHED_DEADLINE> scheduling policy and "
7737 "does not have the reset-on-fork flag set.  See B<sched>(7)."
7738 msgstr ""
7739
7740 #. type: Plain text
7741 #: build/C/man2/fork.2:220
7742 msgid ""
7743 "B<fork>()  failed to allocate the necessary kernel structures because memory "
7744 "is tight."
7745 msgstr ""
7746
7747 #.  e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
7748 #. type: Plain text
7749 #: build/C/man2/fork.2:226
7750 msgid ""
7751 "B<fork>()  is not supported on this platform (for example, hardware without "
7752 "a Memory-Management Unit)."
7753 msgstr ""
7754
7755 #. type: Plain text
7756 #: build/C/man2/fork.2:235
7757 msgid ""
7758 "Under Linux, B<fork>()  is implemented using copy-on-write pages, so the "
7759 "only penalty that it incurs is the time and memory required to duplicate the "
7760 "parent's page tables, and to create a unique task structure for the child."
7761 msgstr ""
7762
7763 #.  nptl/sysdeps/unix/sysv/linux/fork.c
7764 #.  and does some magic to ensure that getpid(2) returns the right value.
7765 #. type: Plain text
7766 #: build/C/man2/fork.2:259
7767 msgid ""
7768 "Since version 2.3.3, rather than invoking the kernel's B<fork>()  system "
7769 "call, the glibc B<fork>()  wrapper that is provided as part of the NPTL "
7770 "threading implementation invokes B<clone>(2)  with flags that provide the "
7771 "same effect as the traditional system call.  (A call to B<fork>()  is "
7772 "equivalent to a call to B<clone>(2)  specifying I<flags> as just "
7773 "B<SIGCHLD>.)  The glibc wrapper invokes any fork handlers that have been "
7774 "established using B<pthread_atfork>(3)."
7775 msgstr ""
7776
7777 #. type: Plain text
7778 #: build/C/man2/fork.2:264
7779 msgid "See B<pipe>(2)  and B<wait>(2)."
7780 msgstr ""
7781
7782 #. type: Plain text
7783 #: build/C/man2/fork.2:274
7784 msgid ""
7785 "B<clone>(2), B<execve>(2), B<exit>(2), B<setrlimit>(2), B<unshare>(2), "
7786 "B<vfork>(2), B<wait>(2), B<daemon>(3), B<capabilities>(7), B<credentials>(7)"
7787 msgstr ""
7788
7789 #. type: TH
7790 #: build/C/man3/fpathconf.3:41
7791 #, no-wrap
7792 msgid "FPATHCONF"
7793 msgstr ""
7794
7795 #. type: Plain text
7796 #: build/C/man3/fpathconf.3:44
7797 msgid "fpathconf, pathconf - get configuration values for files"
7798 msgstr ""
7799
7800 #. type: Plain text
7801 #: build/C/man3/fpathconf.3:49
7802 #, no-wrap
7803 msgid "B<long fpathconf(int >I<fd>B<, int >I<name>B<);>\n"
7804 msgstr ""
7805
7806 #. type: Plain text
7807 #: build/C/man3/fpathconf.3:51
7808 #, no-wrap
7809 msgid "B<long pathconf(const char *>I<path>B<, int >I<name>B<);>\n"
7810 msgstr ""
7811
7812 #. type: Plain text
7813 #: build/C/man3/fpathconf.3:58
7814 msgid ""
7815 "B<fpathconf>()  gets a value for the configuration option I<name> for the "
7816 "open file descriptor I<fd>."
7817 msgstr ""
7818
7819 #. type: Plain text
7820 #: build/C/man3/fpathconf.3:64
7821 msgid ""
7822 "B<pathconf>()  gets a value for configuration option I<name> for the "
7823 "filename I<path>."
7824 msgstr ""
7825
7826 #. type: Plain text
7827 #: build/C/man3/fpathconf.3:73
7828 msgid ""
7829 "The corresponding macros defined in I<E<lt>unistd.hE<gt>> are minimum "
7830 "values; if an application wants to take advantage of values which may "
7831 "change, a call to B<fpathconf>()  or B<pathconf>()  can be made, which may "
7832 "yield more liberal results."
7833 msgstr ""
7834
7835 #. type: Plain text
7836 #: build/C/man3/fpathconf.3:78
7837 msgid ""
7838 "Setting I<name> equal to one of the following constants returns the "
7839 "following configuration options:"
7840 msgstr ""
7841
7842 #. type: TP
7843 #: build/C/man3/fpathconf.3:78
7844 #, no-wrap
7845 msgid "B<_PC_LINK_MAX>"
7846 msgstr ""
7847
7848 #. type: Plain text
7849 #: build/C/man3/fpathconf.3:88
7850 msgid ""
7851 "returns the maximum number of links to the file.  If I<fd> or I<path> refer "
7852 "to a directory, then the value applies to the whole directory.  The "
7853 "corresponding macro is B<_POSIX_LINK_MAX>."
7854 msgstr ""
7855
7856 #. type: TP
7857 #: build/C/man3/fpathconf.3:88
7858 #, no-wrap
7859 msgid "B<_PC_MAX_CANON>"
7860 msgstr ""
7861
7862 #. type: Plain text
7863 #: build/C/man3/fpathconf.3:97
7864 msgid ""
7865 "returns the maximum length of a formatted input line, where I<fd> or I<path> "
7866 "must refer to a terminal.  The corresponding macro is B<_POSIX_MAX_CANON>."
7867 msgstr ""
7868
7869 #. type: TP
7870 #: build/C/man3/fpathconf.3:97
7871 #, no-wrap
7872 msgid "B<_PC_MAX_INPUT>"
7873 msgstr ""
7874
7875 #. type: Plain text
7876 #: build/C/man3/fpathconf.3:106
7877 msgid ""
7878 "returns the maximum length of an input line, where I<fd> or I<path> must "
7879 "refer to a terminal.  The corresponding macro is B<_POSIX_MAX_INPUT>."
7880 msgstr ""
7881
7882 #. type: TP
7883 #: build/C/man3/fpathconf.3:106
7884 #, no-wrap
7885 msgid "B<_PC_NAME_MAX>"
7886 msgstr ""
7887
7888 #. type: Plain text
7889 #: build/C/man3/fpathconf.3:115
7890 msgid ""
7891 "returns the maximum length of a filename in the directory I<path> or I<fd> "
7892 "that the process is allowed to create.  The corresponding macro is "
7893 "B<_POSIX_NAME_MAX>."
7894 msgstr ""
7895
7896 #. type: TP
7897 #: build/C/man3/fpathconf.3:115
7898 #, no-wrap
7899 msgid "B<_PC_PATH_MAX>"
7900 msgstr ""
7901
7902 #. type: Plain text
7903 #: build/C/man3/fpathconf.3:124
7904 msgid ""
7905 "returns the maximum length of a relative pathname when I<path> or I<fd> is "
7906 "the current working directory.  The corresponding macro is "
7907 "B<_POSIX_PATH_MAX>."
7908 msgstr ""
7909
7910 #. type: TP
7911 #: build/C/man3/fpathconf.3:124
7912 #, no-wrap
7913 msgid "B<_PC_PIPE_BUF>"
7914 msgstr ""
7915
7916 #. type: Plain text
7917 #: build/C/man3/fpathconf.3:133
7918 msgid ""
7919 "returns the size of the pipe buffer, where I<fd> must refer to a pipe or "
7920 "FIFO and I<path> must refer to a FIFO.  The corresponding macro is "
7921 "B<_POSIX_PIPE_BUF>."
7922 msgstr ""
7923
7924 #. type: TP
7925 #: build/C/man3/fpathconf.3:133
7926 #, no-wrap
7927 msgid "B<_PC_CHOWN_RESTRICTED>"
7928 msgstr ""
7929
7930 #. type: Plain text
7931 #: build/C/man3/fpathconf.3:146
7932 msgid ""
7933 "returns nonzero if the B<chown>(2)  call may not be used on this file.  If "
7934 "I<fd> or I<path> refer to a directory, then this applies to all files in "
7935 "that directory.  The corresponding macro is B<_POSIX_CHOWN_RESTRICTED>."
7936 msgstr ""
7937
7938 #. type: TP
7939 #: build/C/man3/fpathconf.3:146
7940 #, no-wrap
7941 msgid "B<_PC_NO_TRUNC>"
7942 msgstr ""
7943
7944 #. type: Plain text
7945 #: build/C/man3/fpathconf.3:153
7946 msgid ""
7947 "returns nonzero if accessing filenames longer than B<_POSIX_NAME_MAX> "
7948 "generates an error.  The corresponding macro is B<_POSIX_NO_TRUNC>."
7949 msgstr ""
7950
7951 #. type: TP
7952 #: build/C/man3/fpathconf.3:153
7953 #, no-wrap
7954 msgid "B<_PC_VDISABLE>"
7955 msgstr ""
7956
7957 #. type: Plain text
7958 #: build/C/man3/fpathconf.3:160
7959 msgid ""
7960 "returns nonzero if special character processing can be disabled, where I<fd> "
7961 "or I<path> must refer to a terminal."
7962 msgstr ""
7963
7964 #. type: Plain text
7965 #: build/C/man3/fpathconf.3:169
7966 msgid ""
7967 "The limit is returned, if one exists.  If the system does not have a limit "
7968 "for the requested resource, -1 is returned, and I<errno> is unchanged.  If "
7969 "there is an error, -1 is returned, and I<errno> is set to reflect the nature "
7970 "of the error."
7971 msgstr ""
7972
7973 #. type: Plain text
7974 #: build/C/man3/fpathconf.3:177
7975 msgid ""
7976 "Files with name lengths longer than the value returned for I<name> equal to "
7977 "B<_PC_NAME_MAX> may exist in the given directory."
7978 msgstr ""
7979
7980 #. type: Plain text
7981 #: build/C/man3/fpathconf.3:180 build/C/man3/sysconf.3:338
7982 msgid ""
7983 "Some returned values may be huge; they are not suitable for allocating "
7984 "memory."
7985 msgstr ""
7986
7987 #. type: Plain text
7988 #: build/C/man3/fpathconf.3:185
7989 msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<confstr>(3), B<sysconf>(3)"
7990 msgstr ""
7991
7992 #. type: TH
7993 #: build/C/man2/fsync.2:38
7994 #, no-wrap
7995 msgid "FSYNC"
7996 msgstr ""
7997
7998 #. type: Plain text
7999 #: build/C/man2/fsync.2:41
8000 msgid "fsync, fdatasync - synchronize a file's in-core state with storage device"
8001 msgstr ""
8002
8003 #. type: Plain text
8004 #: build/C/man2/fsync.2:45
8005 msgid "B<int fsync(int >I<fd>B<);>"
8006 msgstr ""
8007
8008 #. type: Plain text
8009 #: build/C/man2/fsync.2:47
8010 msgid "B<int fdatasync(int >I<fd>B<);>"
8011 msgstr ""
8012
8013 #. type: Plain text
8014 #: build/C/man2/fsync.2:55
8015 msgid "B<fsync>(): _BSD_SOURCE || _XOPEN_SOURCE"
8016 msgstr ""
8017
8018 #.  _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
8019 #. type: Plain text
8020 #: build/C/man2/fsync.2:58
8021 #, no-wrap
8022 msgid "         || /* since glibc 2.8: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L\n"
8023 msgstr ""
8024
8025 #. type: Plain text
8026 #: build/C/man2/fsync.2:61
8027 msgid ""
8028 "B<fdatasync>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L || _XOPEN_SOURCE\\ "
8029 "E<gt>=\\ 500"
8030 msgstr ""
8031
8032 #. type: Plain text
8033 #: build/C/man2/fsync.2:74
8034 msgid ""
8035 "B<fsync>()  transfers (\"flushes\") all modified in-core data of (i.e., "
8036 "modified buffer cache pages for) the file referred to by the file descriptor "
8037 "I<fd> to the disk device (or other permanent storage device) so that all "
8038 "changed information can be retrieved even after the system crashed or was "
8039 "rebooted.  This includes writing through or flushing a disk cache if "
8040 "present.  The call blocks until the device reports that the transfer has "
8041 "completed.  It also flushes metadata information associated with the file "
8042 "(see B<stat>(2))."
8043 msgstr ""
8044
8045 #. type: Plain text
8046 #: build/C/man2/fsync.2:82
8047 msgid ""
8048 "Calling B<fsync>()  does not necessarily ensure that the entry in the "
8049 "directory containing the file has also reached disk.  For that an explicit "
8050 "B<fsync>()  on a file descriptor for the directory is also needed."
8051 msgstr ""
8052
8053 #. type: Plain text
8054 #: build/C/man2/fsync.2:103
8055 msgid ""
8056 "B<fdatasync>()  is similar to B<fsync>(), but does not flush modified "
8057 "metadata unless that metadata is needed in order to allow a subsequent data "
8058 "retrieval to be correctly handled.  For example, changes to I<st_atime> or "
8059 "I<st_mtime> (respectively, time of last access and time of last "
8060 "modification; see B<stat>(2))  do not require flushing because they are not "
8061 "necessary for a subsequent data read to be handled correctly.  On the other "
8062 "hand, a change to the file size (I<st_size>, as made by say "
8063 "B<ftruncate>(2)), would require a metadata flush."
8064 msgstr ""
8065
8066 #. type: Plain text
8067 #: build/C/man2/fsync.2:108
8068 msgid ""
8069 "The aim of B<fdatasync>()  is to reduce disk activity for applications that "
8070 "do not require all metadata to be synchronized with the disk."
8071 msgstr ""
8072
8073 #. type: Plain text
8074 #: build/C/man2/fsync.2:113
8075 msgid ""
8076 "On success, these system calls return zero.  On error, -1 is returned, and "
8077 "I<errno> is set appropriately."
8078 msgstr ""
8079
8080 #. type: Plain text
8081 #: build/C/man2/fsync.2:118
8082 msgid "I<fd> is not a valid open file descriptor."
8083 msgstr ""
8084
8085 #. type: Plain text
8086 #: build/C/man2/fsync.2:121
8087 msgid "An error occurred during synchronization."
8088 msgstr ""
8089
8090 #. type: TP
8091 #: build/C/man2/fsync.2:121
8092 #, no-wrap
8093 msgid "B<EROFS>, B<EINVAL>"
8094 msgstr ""
8095
8096 #. type: Plain text
8097 #: build/C/man2/fsync.2:125
8098 msgid "I<fd> is bound to a special file which does not support synchronization."
8099 msgstr ""
8100
8101 #. type: Plain text
8102 #: build/C/man2/fsync.2:127
8103 msgid "4.3BSD, POSIX.1-2001."
8104 msgstr ""
8105
8106 #. type: SH
8107 #: build/C/man2/fsync.2:127
8108 #, no-wrap
8109 msgid "AVAILABILITY"
8110 msgstr ""
8111
8112 #.  POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
8113 #.  -1: unavailable, 0: ask using sysconf().
8114 #.  glibc defines them to 1.
8115 #. type: Plain text
8116 #: build/C/man2/fsync.2:140
8117 msgid ""
8118 "On POSIX systems on which B<fdatasync>()  is available, "
8119 "B<_POSIX_SYNCHRONIZED_IO> is defined in I<E<lt>unistd.hE<gt>> to a value "
8120 "greater than 0.  (See also B<sysconf>(3).)"
8121 msgstr ""
8122
8123 #. type: Plain text
8124 #: build/C/man2/fsync.2:146
8125 msgid ""
8126 "On some UNIX systems (but not Linux), I<fd> must be a I<writable> file "
8127 "descriptor."
8128 msgstr ""
8129
8130 #. type: Plain text
8131 #: build/C/man2/fsync.2:152
8132 msgid ""
8133 "In Linux 2.2 and earlier, B<fdatasync>()  is equivalent to B<fsync>(), and "
8134 "so has no performance advantage."
8135 msgstr ""
8136
8137 #. type: Plain text
8138 #: build/C/man2/fsync.2:162
8139 msgid ""
8140 "The B<fsync>()  implementations in older kernels and lesser used filesystems "
8141 "does not know how to flush disk caches.  In these cases disk caches need to "
8142 "be disabled using B<hdparm>(8)  or B<sdparm>(8)  to guarantee safe "
8143 "operation."
8144 msgstr ""
8145
8146 #. type: Plain text
8147 #: build/C/man2/fsync.2:169
8148 msgid ""
8149 "B<bdflush>(2), B<open>(2), B<sync>(2), B<sync_file_range>(2), B<hdparm>(8), "
8150 "B<mount>(8), B<sync>(1)"
8151 msgstr ""
8152
8153 #. type: TH
8154 #: build/C/man3/get_nprocs_conf.3:26
8155 #, no-wrap
8156 msgid "GET_NPROCS"
8157 msgstr ""
8158
8159 #. type: TH
8160 #: build/C/man3/get_nprocs_conf.3:26
8161 #, no-wrap
8162 msgid "2012-03-20"
8163 msgstr ""
8164
8165 #. type: Plain text
8166 #: build/C/man3/get_nprocs_conf.3:29
8167 msgid "get_nprocs, get_nprocs_conf - get number of processors"
8168 msgstr ""
8169
8170 #. type: Plain text
8171 #: build/C/man3/get_nprocs_conf.3:31 build/C/man2/sysinfo.2:19
8172 msgid "B<#include E<lt>sys/sysinfo.hE<gt>>"
8173 msgstr ""
8174
8175 #. type: Plain text
8176 #: build/C/man3/get_nprocs_conf.3:33
8177 msgid "B<int get_nprocs(void);>"
8178 msgstr ""
8179
8180 #. type: Plain text
8181 #: build/C/man3/get_nprocs_conf.3:35
8182 msgid "B<int get_nprocs_conf(void);>"
8183 msgstr ""
8184
8185 #. type: Plain text
8186 #: build/C/man3/get_nprocs_conf.3:39
8187 msgid ""
8188 "The function B<get_nprocs_conf>()  returns the number of processors "
8189 "configured by the operating system."
8190 msgstr ""
8191
8192 #. type: Plain text
8193 #: build/C/man3/get_nprocs_conf.3:46
8194 msgid ""
8195 "The function B<get_nprocs>()  returns the number of processors currently "
8196 "available in the system.  This may be less than the number returned by "
8197 "B<get_nprocs_conf>()  because processors may be offline (e.g., on "
8198 "hotpluggable systems)."
8199 msgstr ""
8200
8201 #. type: Plain text
8202 #: build/C/man3/get_nprocs_conf.3:48
8203 msgid "As given in DESCRIPTION."
8204 msgstr ""
8205
8206 #. type: Plain text
8207 #: build/C/man3/get_nprocs_conf.3:50 build/C/man3/getopt.3:350
8208 msgid "These functions are GNU extensions."
8209 msgstr ""
8210
8211 #.  glibc 2.15
8212 #. type: Plain text
8213 #: build/C/man3/get_nprocs_conf.3:57
8214 msgid ""
8215 "The current implementation of these functions is rather expensive, since "
8216 "they open and parse files in the I</sys> filesystem each time they are "
8217 "called."
8218 msgstr ""
8219
8220 #. type: Plain text
8221 #: build/C/man3/get_nprocs_conf.3:62
8222 msgid ""
8223 "The following B<sysconf>(3)  calls make use of the functions documented on "
8224 "this page to return the same information."
8225 msgstr ""
8226
8227 #. type: Plain text
8228 #: build/C/man3/get_nprocs_conf.3:66
8229 #, no-wrap
8230 msgid ""
8231 "    np = sysconf(_SC_NPROCESSORS_CONF);     /* processors configured */\n"
8232 "    np = sysconf(_SC_NPROCESSORS_ONLN);     /* processors available */\n"
8233 msgstr ""
8234
8235 #. type: Plain text
8236 #: build/C/man3/get_nprocs_conf.3:73
8237 msgid ""
8238 "The following example shows how B<get_nprocs>()  and B<get_nprocs_conf>()  "
8239 "can be used."
8240 msgstr ""
8241
8242 #. type: Plain text
8243 #: build/C/man3/get_nprocs_conf.3:77
8244 #, no-wrap
8245 msgid ""
8246 "#include E<lt>stdio.hE<gt>\n"
8247 "#include E<lt>sys/sysinfo.hE<gt>\n"
8248 msgstr ""
8249
8250 #. type: Plain text
8251 #: build/C/man3/get_nprocs_conf.3:86
8252 #, no-wrap
8253 msgid ""
8254 "int\n"
8255 "main(int argc, char *argv[])\n"
8256 "{\n"
8257 "    printf(\"This system has %d processors configured and \"\n"
8258 "            \"%d processors available.\\en\",\n"
8259 "            get_nprocs_conf(), get_nprocs());\n"
8260 "    return 0;\n"
8261 "}\n"
8262 msgstr ""
8263
8264 #. type: TH
8265 #: build/C/man2/get_thread_area.2:8
8266 #, no-wrap
8267 msgid "GET_THREAD_AREA"
8268 msgstr ""
8269
8270 #. type: TH
8271 #: build/C/man2/get_thread_area.2:8 build/C/man2/set_thread_area.2:8
8272 #, no-wrap
8273 msgid "2012-07-13"
8274 msgstr ""
8275
8276 #. type: Plain text
8277 #: build/C/man2/get_thread_area.2:11
8278 msgid "get_thread_area - get a thread-local storage (TLS) area"
8279 msgstr ""
8280
8281 #. type: Plain text
8282 #: build/C/man2/get_thread_area.2:15 build/C/man2/set_thread_area.2:15
8283 msgid "B<#include E<lt>asm/ldt.hE<gt>>"
8284 msgstr ""
8285
8286 #. type: Plain text
8287 #: build/C/man2/get_thread_area.2:17
8288 msgid "B<int get_thread_area(struct user_desc *>I<u_info>B<);>"
8289 msgstr ""
8290
8291 #. type: Plain text
8292 #: build/C/man2/get_thread_area.2:20 build/C/man2/gettid.2:38 build/C/man2/set_thread_area.2:20 build/C/man2/sysctl.2:44
8293 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
8294 msgstr ""
8295
8296 #. type: Plain text
8297 #: build/C/man2/get_thread_area.2:29
8298 msgid ""
8299 "B<get_thread_area>()  returns an entry in the current thread's thread-local "
8300 "storage (TLS) array.  The index of the entry corresponds to the value of "
8301 "I<u_info-E<gt>entry_number>, passed in by the user.  If the value is in "
8302 "bounds, B<get_thread_area>()  copies the corresponding TLS entry into the "
8303 "area pointed to by I<u_info>."
8304 msgstr ""
8305
8306 #. type: Plain text
8307 #: build/C/man2/get_thread_area.2:35
8308 msgid ""
8309 "B<get_thread_area>()  returns 0 on success.  Otherwise, it returns -1 and "
8310 "sets I<errno> appropriately."
8311 msgstr ""
8312
8313 #. type: Plain text
8314 #: build/C/man2/get_thread_area.2:39 build/C/man2/set_thread_area.2:56
8315 msgid "I<u_info> is an invalid pointer."
8316 msgstr ""
8317
8318 #. type: Plain text
8319 #: build/C/man2/get_thread_area.2:42 build/C/man2/set_thread_area.2:53
8320 msgid "I<u_info-E<gt>entry_number> is out of bounds."
8321 msgstr ""
8322
8323 #. type: Plain text
8324 #: build/C/man2/get_thread_area.2:46
8325 msgid "A version of B<get_thread_area>()  first appeared in Linux 2.5.32."
8326 msgstr ""
8327
8328 #. type: Plain text
8329 #: build/C/man2/get_thread_area.2:50
8330 msgid ""
8331 "B<get_thread_area>()  is Linux-specific and should not be used in programs "
8332 "that are intended to be portable."
8333 msgstr ""
8334
8335 #. type: Plain text
8336 #: build/C/man2/get_thread_area.2:55
8337 msgid ""
8338 "Glibc does not provide a wrapper for this system call, since it is generally "
8339 "intended for use only by threading libraries.  In the unlikely event that "
8340 "you want to call it directly, use B<syscall>(2)."
8341 msgstr ""
8342
8343 #. type: Plain text
8344 #: build/C/man2/get_thread_area.2:57
8345 msgid "B<modify_ldt>(2), B<set_thread_area>(2)"
8346 msgstr ""
8347
8348 #. type: TH
8349 #: build/C/man3/getcwd.3:32
8350 #, no-wrap
8351 msgid "GETCWD"
8352 msgstr ""
8353
8354 #. type: Plain text
8355 #: build/C/man3/getcwd.3:35
8356 msgid "getcwd, getwd, get_current_dir_name - get current working directory"
8357 msgstr ""
8358
8359 #. type: Plain text
8360 #: build/C/man3/getcwd.3:40
8361 #, no-wrap
8362 msgid "B<char *getcwd(char *>I<buf>B<, size_t >I<size>B<);>\n"
8363 msgstr ""
8364
8365 #. type: Plain text
8366 #: build/C/man3/getcwd.3:42
8367 #, no-wrap
8368 msgid "B<char *getwd(char *>I<buf>B<);>\n"
8369 msgstr ""
8370
8371 #. type: Plain text
8372 #: build/C/man3/getcwd.3:44
8373 #, no-wrap
8374 msgid "B<char *get_current_dir_name(void);>\n"
8375 msgstr ""
8376
8377 #. type: Plain text
8378 #: build/C/man3/getcwd.3:52
8379 msgid "B<get_current_dir_name>():"
8380 msgstr ""
8381
8382 #. type: Plain text
8383 #: build/C/man3/getcwd.3:57
8384 msgid "B<getwd>():"
8385 msgstr ""
8386
8387 #. type: Plain text
8388 #: build/C/man3/getcwd.3:67 build/C/man3/ualarm.3:50 build/C/man3/usleep.3:59 build/C/man2/vfork.2:54
8389 #, no-wrap
8390 msgid ""
8391 "_BSD_SOURCE ||\n"
8392 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
8393 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
8394 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)\n"
8395 msgstr ""
8396
8397 #. type: Plain text
8398 #: build/C/man3/getcwd.3:72 build/C/man3/getdtablesize.3:54 build/C/man2/getpagesize.2:52 build/C/man3/ualarm.3:55 build/C/man3/usleep.3:64 build/C/man2/vfork.2:59
8399 msgid ""
8400 "Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
8401 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
8402 msgstr ""
8403
8404 #. type: Plain text
8405 #: build/C/man3/getcwd.3:82
8406 msgid ""
8407 "These functions return a null-terminated string containing an absolute "
8408 "pathname that is the current working directory of the calling process.  The "
8409 "pathname is returned as the function result and via the argument I<buf>, if "
8410 "present."
8411 msgstr ""
8412
8413 #. type: Plain text
8414 #: build/C/man3/getcwd.3:90
8415 msgid ""
8416 "The B<getcwd>()  function copies an absolute pathname of the current working "
8417 "directory to the array pointed to by I<buf>, which is of length I<size>."
8418 msgstr ""
8419
8420 #. type: Plain text
8421 #: build/C/man3/getcwd.3:100
8422 msgid ""
8423 "If the length of the absolute pathname of the current working directory, "
8424 "including the terminating null byte, exceeds I<size> bytes, NULL is "
8425 "returned, and I<errno> is set to B<ERANGE>; an application should check for "
8426 "this error, and allocate a larger buffer if necessary."
8427 msgstr ""
8428
8429 #. type: Plain text
8430 #: build/C/man3/getcwd.3:118
8431 msgid ""
8432 "As an extension to the POSIX.1-2001 standard, glibc's B<getcwd>()  allocates "
8433 "the buffer dynamically using B<malloc>(3)  if I<buf> is NULL.  In this case, "
8434 "the allocated buffer has the length I<size> unless I<size> is zero, when "
8435 "I<buf> is allocated as big as necessary.  The caller should B<free>(3)  the "
8436 "returned buffer."
8437 msgstr ""
8438
8439 #. type: Plain text
8440 #: build/C/man3/getcwd.3:131
8441 msgid ""
8442 "B<get_current_dir_name>()  will B<malloc>(3)  an array big enough to hold "
8443 "the absolute pathname of the current working directory.  If the environment "
8444 "variable B<PWD> is set, and its value is correct, then that value will be "
8445 "returned.  The caller should B<free>(3)  the returned buffer."
8446 msgstr ""
8447
8448 #. type: Plain text
8449 #: build/C/man3/getcwd.3:156
8450 msgid ""
8451 "B<getwd>()  does not B<malloc>(3)  any memory.  The I<buf> argument should "
8452 "be a pointer to an array at least B<PATH_MAX> bytes long.  If the length of "
8453 "the absolute pathname of the current working directory, including the "
8454 "terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and "
8455 "I<errno> is set to B<ENAMETOOLONG>.  (Note that on some systems, B<PATH_MAX> "
8456 "may not be a compile-time constant; furthermore, its value may depend on the "
8457 "filesystem, see B<pathconf>(3).)  For portability and security reasons, use "
8458 "of B<getwd>()  is deprecated."
8459 msgstr ""
8460
8461 #. type: Plain text
8462 #: build/C/man3/getcwd.3:165
8463 msgid ""
8464 "On success, these functions return a pointer to a string containing the "
8465 "pathname of the current working directory.  In the case B<getcwd>()  and "
8466 "B<getwd>()  this is the same value as I<buf>."
8467 msgstr ""
8468
8469 #. type: Plain text
8470 #: build/C/man3/getcwd.3:172
8471 msgid ""
8472 "On failure, these functions return NULL, and I<errno> is set to indicate the "
8473 "error.  The contents of the array pointed to by I<buf> are undefined on "
8474 "error."
8475 msgstr ""
8476
8477 #. type: Plain text
8478 #: build/C/man3/getcwd.3:176
8479 msgid "Permission to read or search a component of the filename was denied."
8480 msgstr ""
8481
8482 #. type: Plain text
8483 #: build/C/man3/getcwd.3:180
8484 msgid "I<buf> points to a bad address."
8485 msgstr ""
8486
8487 #. type: Plain text
8488 #: build/C/man3/getcwd.3:187
8489 msgid "The I<size> argument is zero and I<buf> is not a null pointer."
8490 msgstr ""
8491
8492 #. type: TP
8493 #: build/C/man3/getcwd.3:187
8494 #, no-wrap
8495 msgid "EINVAL"
8496 msgstr ""
8497
8498 #. type: Plain text
8499 #: build/C/man3/getcwd.3:192
8500 msgid "B<getwd>(): I<buf> is NULL."
8501 msgstr ""
8502
8503 #. type: TP
8504 #: build/C/man3/getcwd.3:192
8505 #, no-wrap
8506 msgid "ENAMETOOLONG"
8507 msgstr ""
8508
8509 #. type: Plain text
8510 #: build/C/man3/getcwd.3:198
8511 msgid ""
8512 "B<getwd>(): The size of the null-terminated absolute pathname string exceeds "
8513 "B<PATH_MAX> bytes."
8514 msgstr ""
8515
8516 #. type: Plain text
8517 #: build/C/man3/getcwd.3:201
8518 msgid "The current working directory has been unlinked."
8519 msgstr ""
8520
8521 #. type: TP
8522 #: build/C/man3/getcwd.3:201 build/C/man3/getlogin.3:114
8523 #, no-wrap
8524 msgid "B<ERANGE>"
8525 msgstr ""
8526
8527 #. type: Plain text
8528 #: build/C/man3/getcwd.3:208
8529 msgid ""
8530 "The I<size> argument is less than the length of the absolute pathname of the "
8531 "working directory, including the terminating null byte.  You need to "
8532 "allocate a bigger array and try again."
8533 msgstr ""
8534
8535 #. type: Plain text
8536 #: build/C/man3/getcwd.3:216
8537 msgid ""
8538 "B<getcwd>()  conforms to POSIX.1-2001.  Note however that POSIX.1-2001 "
8539 "leaves the behavior of B<getcwd>()  unspecified if I<buf> is NULL."
8540 msgstr ""
8541
8542 #. type: Plain text
8543 #: build/C/man3/getcwd.3:227
8544 msgid ""
8545 "B<getwd>()  is present in POSIX.1-2001, but marked LEGACY.  POSIX.1-2008 "
8546 "removes the specification of B<getwd>().  Use B<getcwd>()  instead.  "
8547 "POSIX.1-2001 does not define any errors for B<getwd>()."
8548 msgstr ""
8549
8550 #. type: Plain text
8551 #: build/C/man3/getcwd.3:230
8552 msgid "B<get_current_dir_name>()  is a GNU extension."
8553 msgstr ""
8554
8555 #. type: Plain text
8556 #: build/C/man3/getcwd.3:241
8557 msgid ""
8558 "Under Linux, the function B<getcwd>()  is a system call (since 2.1.92).  On "
8559 "older systems it would query I</proc/self/cwd>.  If both system call and "
8560 "proc filesystem are missing, a generic implementation is called.  Only in "
8561 "that case can these calls fail under Linux with B<EACCES>."
8562 msgstr ""
8563
8564 #. type: Plain text
8565 #: build/C/man3/getcwd.3:249
8566 msgid ""
8567 "These functions are often used to save the location of the current working "
8568 "directory for the purpose of returning to it later.  Opening the current "
8569 "directory (\".\") and calling B<fchdir>(2)  to return is usually a faster "
8570 "and more reliable alternative when sufficiently many file descriptors are "
8571 "available, especially on platforms other than Linux."
8572 msgstr ""
8573
8574 #. type: Plain text
8575 #: build/C/man3/getcwd.3:255
8576 msgid ""
8577 "B<chdir>(2), B<fchdir>(2), B<open>(2), B<unlink>(2), B<free>(3), "
8578 "B<malloc>(3)"
8579 msgstr ""
8580
8581 #. type: TH
8582 #: build/C/man2/getdomainname.2:29
8583 #, no-wrap
8584 msgid "GETDOMAINNAME"
8585 msgstr ""
8586
8587 #. type: TH
8588 #: build/C/man2/getdomainname.2:29
8589 #, no-wrap
8590 msgid "2012-10-25"
8591 msgstr ""
8592
8593 #. type: Plain text
8594 #: build/C/man2/getdomainname.2:32
8595 msgid "getdomainname, setdomainname - get/set NIS domain name"
8596 msgstr ""
8597
8598 #. type: Plain text
8599 #: build/C/man2/getdomainname.2:36
8600 msgid "B<int getdomainname(char *>I<name>B<, size_t >I<len>B<);>"
8601 msgstr ""
8602
8603 #. type: Plain text
8604 #: build/C/man2/getdomainname.2:38
8605 msgid "B<int setdomainname(const char *>I<name>B<, size_t >I<len>B<);>"
8606 msgstr ""
8607
8608 #. type: Plain text
8609 #: build/C/man2/getdomainname.2:47
8610 msgid "B<getdomainname>(), B<setdomainname>():"
8611 msgstr ""
8612
8613 #. type: Plain text
8614 #: build/C/man2/getdomainname.2:49 build/C/man3/gethostid.3:54 build/C/man2/gethostname.2:60 build/C/man3/getusershell.3:55
8615 msgid "_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
8616 msgstr ""
8617
8618 #. type: Plain text
8619 #: build/C/man2/getdomainname.2:54
8620 msgid ""
8621 "These functions are used to access or to change the NIS domain name of the "
8622 "host system."
8623 msgstr ""
8624
8625 #. type: Plain text
8626 #: build/C/man2/getdomainname.2:65
8627 msgid ""
8628 "B<setdomainname>()  sets the domain name to the value given in the character "
8629 "array I<name>.  The I<len> argument specifies the number of bytes in "
8630 "I<name>.  (Thus, I<name> does not require a terminating null byte.)"
8631 msgstr ""
8632
8633 #. type: Plain text
8634 #: build/C/man2/getdomainname.2:75
8635 msgid ""
8636 "B<getdomainname>()  returns the null-terminated domain name in the character "
8637 "array I<name>, which has a length of I<len> bytes.  If the null-terminated "
8638 "domain name requires more than I<len> bytes, B<getdomainname>()  returns the "
8639 "first I<len> bytes (glibc) or gives an error (libc)."
8640 msgstr ""
8641
8642 #. type: Plain text
8643 #: build/C/man2/getdomainname.2:83
8644 msgid "B<setdomainname>()  can fail with the following errors:"
8645 msgstr ""
8646
8647 #. type: Plain text
8648 #: build/C/man2/getdomainname.2:87
8649 msgid "I<name> pointed outside of user address space."
8650 msgstr ""
8651
8652 #. type: Plain text
8653 #: build/C/man2/getdomainname.2:91
8654 msgid "I<len> was negative or too large."
8655 msgstr ""
8656
8657 #. type: Plain text
8658 #: build/C/man2/getdomainname.2:96
8659 msgid ""
8660 "the caller is unprivileged (Linux: does not have the B<CAP_SYS_ADMIN> "
8661 "capability)."
8662 msgstr ""
8663
8664 #. type: Plain text
8665 #: build/C/man2/getdomainname.2:99
8666 msgid "B<getdomainname>()  can fail with the following errors:"
8667 msgstr ""
8668
8669 #. type: Plain text
8670 #: build/C/man2/getdomainname.2:110
8671 msgid ""
8672 "For B<getdomainname>()  under libc: I<name> is NULL or I<name> is longer "
8673 "than I<len> bytes."
8674 msgstr ""
8675
8676 #.  But they appear on most systems...
8677 #. type: Plain text
8678 #: build/C/man2/getdomainname.2:113
8679 msgid "POSIX does not specify these calls."
8680 msgstr ""
8681
8682 #. type: Plain text
8683 #: build/C/man2/getdomainname.2:117
8684 msgid ""
8685 "Since Linux 1.0, the limit on the length of a domain name, including the "
8686 "terminating null byte, is 64 bytes.  In older kernels, it was 8 bytes."
8687 msgstr ""
8688
8689 #. type: Plain text
8690 #: build/C/man2/getdomainname.2:127
8691 msgid ""
8692 "On most Linux architectures (including x86), there is no B<getdomainname>()  "
8693 "system call; instead, glibc implements B<getdomainname>()  as a library "
8694 "function that returns a copy of the I<domainname> field returned from a call "
8695 "to B<uname>(2)."
8696 msgstr ""
8697
8698 #. type: Plain text
8699 #: build/C/man2/getdomainname.2:130
8700 msgid "B<gethostname>(2), B<sethostname>(2), B<uname>(2)"
8701 msgstr ""
8702
8703 #. type: TH
8704 #: build/C/man3/getdtablesize.3:27
8705 #, no-wrap
8706 msgid "GETDTABLESIZE"
8707 msgstr ""
8708
8709 #. type: Plain text
8710 #: build/C/man3/getdtablesize.3:30
8711 msgid "getdtablesize - get descriptor table size"
8712 msgstr ""
8713
8714 #. type: Plain text
8715 #: build/C/man3/getdtablesize.3:34
8716 msgid "B<int getdtablesize(void);>"
8717 msgstr ""
8718
8719 #. type: Plain text
8720 #: build/C/man3/getdtablesize.3:41
8721 msgid "B<getdtablesize>():"
8722 msgstr ""
8723
8724 #. type: Plain text
8725 #: build/C/man3/getdtablesize.3:49 build/C/man2/getpagesize.2:47
8726 #, no-wrap
8727 msgid ""
8728 "_BSD_SOURCE ||\n"
8729 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
8730 msgstr ""
8731
8732 #. type: Plain text
8733 #: build/C/man3/getdtablesize.3:61
8734 msgid ""
8735 "B<getdtablesize>()  returns the maximum number of files a process can have "
8736 "open, one more than the largest possible value for a file descriptor."
8737 msgstr ""
8738
8739 #. type: Plain text
8740 #: build/C/man3/getdtablesize.3:63
8741 msgid "The current limit on the number of open files per process."
8742 msgstr ""
8743
8744 #. type: Plain text
8745 #: build/C/man3/getdtablesize.3:69
8746 msgid ""
8747 "On Linux, B<getdtablesize>()  can return any of the errors described for "
8748 "B<getrlimit>(2); see NOTES below."
8749 msgstr ""
8750
8751 #. type: Plain text
8752 #: build/C/man3/getdtablesize.3:74
8753 msgid "The B<getdtablesize>()  function is thread-safe."
8754 msgstr ""
8755
8756 #. type: Plain text
8757 #: build/C/man3/getdtablesize.3:82
8758 msgid ""
8759 "SVr4, 4.4BSD (the B<getdtablesize>()  function first appeared in 4.2BSD).  "
8760 "It is not specified in POSIX.1-2001; portable applications should employ "
8761 "I<sysconf(_SC_OPEN_MAX)> instead of this call."
8762 msgstr ""
8763
8764 #.  The libc4 and libc5 versions return
8765 #.  .B OPEN_MAX
8766 #.  (set to 256 since Linux 0.98.4).
8767 #. type: Plain text
8768 #: build/C/man3/getdtablesize.3:95
8769 msgid ""
8770 "B<getdtablesize>()  is implemented as a libc library function.  The glibc "
8771 "version calls B<getrlimit>(2)  and returns the current B<RLIMIT_NOFILE> "
8772 "limit, or B<OPEN_MAX> when that fails."
8773 msgstr ""
8774
8775 #. type: Plain text
8776 #: build/C/man3/getdtablesize.3:99
8777 msgid "B<close>(2), B<dup>(2), B<getrlimit>(2), B<open>(2)"
8778 msgstr ""
8779
8780 #. type: TH
8781 #: build/C/man3/gethostid.3:29
8782 #, no-wrap
8783 msgid "GETHOSTID"
8784 msgstr ""
8785
8786 #. type: Plain text
8787 #: build/C/man3/gethostid.3:32
8788 msgid "gethostid, sethostid - get or set the unique identifier of the current host"
8789 msgstr ""
8790
8791 #. type: Plain text
8792 #: build/C/man3/gethostid.3:36
8793 msgid "B<long gethostid(void);>"
8794 msgstr ""
8795
8796 #. type: Plain text
8797 #: build/C/man3/gethostid.3:38
8798 msgid "B<int sethostid(long >I<hostid>B<);>"
8799 msgstr ""
8800
8801 #. type: Plain text
8802 #: build/C/man3/gethostid.3:47
8803 msgid "B<gethostid>():"
8804 msgstr ""
8805
8806 #. type: Plain text
8807 #: build/C/man3/gethostid.3:52
8808 msgid "B<sethostid>():"
8809 msgstr ""
8810
8811 #. type: Plain text
8812 #: build/C/man3/gethostid.3:67
8813 msgid ""
8814 "B<gethostid>()  and B<sethostid>()  respectively get or set a unique 32-bit "
8815 "identifier for the current machine.  The 32-bit identifier is intended to be "
8816 "unique among all UNIX systems in existence.  This normally resembles the "
8817 "Internet address for the local machine, as returned by B<gethostbyname>(3), "
8818 "and thus usually never needs to be set."
8819 msgstr ""
8820
8821 #. type: Plain text
8822 #: build/C/man3/gethostid.3:71
8823 msgid "The B<sethostid>()  call is restricted to the superuser."
8824 msgstr ""
8825
8826 #. type: Plain text
8827 #: build/C/man3/gethostid.3:75
8828 msgid ""
8829 "B<gethostid>()  returns the 32-bit identifier for the current host as set by "
8830 "B<sethostid>()."
8831 msgstr ""
8832
8833 #. type: Plain text
8834 #: build/C/man3/gethostid.3:81
8835 msgid ""
8836 "On success, B<sethostid>()  returns 0; on error, -1 is returned, and "
8837 "I<errno> is set to indicate the error."
8838 msgstr ""
8839
8840 #. type: Plain text
8841 #: build/C/man3/gethostid.3:84
8842 msgid "B<sethostid>()  can fail with the following errors:"
8843 msgstr ""
8844
8845 #. type: Plain text
8846 #: build/C/man3/gethostid.3:88
8847 msgid ""
8848 "The caller did not have permission to write to the file used to store the "
8849 "host ID."
8850 msgstr ""
8851
8852 #. type: Plain text
8853 #: build/C/man3/gethostid.3:92
8854 msgid ""
8855 "The calling process's effective user or group ID is not the same as its "
8856 "corresponding real ID."
8857 msgstr ""
8858
8859 #. type: Plain text
8860 #: build/C/man3/gethostid.3:102
8861 msgid ""
8862 "4.2BSD; these functions were dropped in 4.4BSD.  SVr4 includes "
8863 "B<gethostid>()  but not B<sethostid>().  POSIX.1-2001 specifies "
8864 "B<gethostid>()  but not B<sethostid>()."
8865 msgstr ""
8866
8867 #.  libc5 used /etc/hostid; libc4 didn't have these functions
8868 #. type: Plain text
8869 #: build/C/man3/gethostid.3:111
8870 msgid ""
8871 "In the glibc implementation, the I<hostid> is stored in the file "
8872 "I</etc/hostid>.  (In glibc versions before 2.2, the file I</var/adm/hostid> "
8873 "was used.)"
8874 msgstr ""
8875
8876 #. type: Plain text
8877 #: build/C/man3/gethostid.3:122
8878 msgid ""
8879 "In the glibc implementation, if B<gethostid>()  cannot open the file "
8880 "containing the host ID, then it obtains the hostname using "
8881 "B<gethostname>(2), passes that hostname to B<gethostbyname_r>(3)  in order "
8882 "to obtain the host's IPv4 address, and returns a value obtained by "
8883 "bit-twiddling the IPv4 address.  (This value may not be unique.)"
8884 msgstr ""
8885
8886 #. type: Plain text
8887 #: build/C/man3/gethostid.3:124
8888 msgid "It is impossible to ensure that the identifier is globally unique."
8889 msgstr ""
8890
8891 #. type: Plain text
8892 #: build/C/man3/gethostid.3:126
8893 msgid "B<hostid>(1), B<gethostbyname>(3)"
8894 msgstr ""
8895
8896 #. type: TH
8897 #: build/C/man2/gethostname.2:32
8898 #, no-wrap
8899 msgid "GETHOSTNAME"
8900 msgstr ""
8901
8902 #. type: Plain text
8903 #: build/C/man2/gethostname.2:35
8904 msgid "gethostname, sethostname - get/set hostname"
8905 msgstr ""
8906
8907 #. type: Plain text
8908 #: build/C/man2/gethostname.2:39
8909 msgid "B<int gethostname(char *>I<name>B<, size_t >I<len>B<);>"
8910 msgstr ""
8911
8912 #. type: Plain text
8913 #: build/C/man2/gethostname.2:41
8914 msgid "B<int sethostname(const char *>I<name>B<, size_t >I<len>B<);>"
8915 msgstr ""
8916
8917 #. type: Plain text
8918 #: build/C/man2/gethostname.2:50
8919 msgid "B<gethostname>():"
8920 msgstr ""
8921
8922 #. type: Plain text
8923 #: build/C/man2/gethostname.2:53
8924 msgid "Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
8925 msgstr ""
8926
8927 #. type: Plain text
8928 #: build/C/man2/gethostname.2:55
8929 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
8930 msgstr ""
8931
8932 #. type: Plain text
8933 #: build/C/man2/gethostname.2:58
8934 msgid "B<sethostname>():"
8935 msgstr ""
8936
8937 #. type: Plain text
8938 #: build/C/man2/gethostname.2:66
8939 msgid ""
8940 "These system calls are used to access or to change the hostname of the "
8941 "current processor."
8942 msgstr ""
8943
8944 #. type: Plain text
8945 #: build/C/man2/gethostname.2:77
8946 msgid ""
8947 "B<sethostname>()  sets the hostname to the value given in the character "
8948 "array I<name>.  The I<len> argument specifies the number of bytes in "
8949 "I<name>.  (Thus, I<name> does not require a terminating null byte.)"
8950 msgstr ""
8951
8952 #. type: Plain text
8953 #: build/C/man2/gethostname.2:89
8954 msgid ""
8955 "B<gethostname>()  returns the null-terminated hostname in the character "
8956 "array I<name>, which has a length of I<len> bytes.  If the null-terminated "
8957 "hostname is too large to fit, then the name is truncated, and no error is "
8958 "returned (but see NOTES below).  POSIX.1-2001 says that if such truncation "
8959 "occurs, then it is unspecified whether the returned buffer includes a "
8960 "terminating null byte."
8961 msgstr ""
8962
8963 #. type: Plain text
8964 #: build/C/man2/gethostname.2:99
8965 msgid "I<name> is an invalid address."
8966 msgstr ""
8967
8968 #.  Can't occur for gethostbyname() wrapper, since 'len' has an
8969 #.  unsigned type; can occur for the underlying system call.
8970 #. type: Plain text
8971 #: build/C/man2/gethostname.2:109
8972 msgid ""
8973 "I<len> is negative or, for B<sethostname>(), I<len> is larger than the "
8974 "maximum allowed size."
8975 msgstr ""
8976
8977 #. type: Plain text
8978 #: build/C/man2/gethostname.2:117
8979 msgid ""
8980 "(glibc B<gethostname>())  I<len> is smaller than the actual size.  (Before "
8981 "version 2.1, glibc uses B<EINVAL> for this case.)"
8982 msgstr ""
8983
8984 #. type: Plain text
8985 #: build/C/man2/gethostname.2:124
8986 msgid ""
8987 "For B<sethostname>(), the caller did not have the B<CAP_SYS_ADMIN> "
8988 "capability."
8989 msgstr ""
8990
8991 #. type: Plain text
8992 #: build/C/man2/gethostname.2:130
8993 msgid ""
8994 "SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).  POSIX.1-2001 "
8995 "specifies B<gethostname>()  but not B<sethostname>()."
8996 msgstr ""
8997
8998 #. type: Plain text
8999 #: build/C/man2/gethostname.2:140
9000 msgid ""
9001 "SUSv2 guarantees that \"Host names are limited to 255 bytes\".  POSIX.1-2001 "
9002 "guarantees that \"Host names (not including the terminating null byte) are "
9003 "limited to B<HOST_NAME_MAX> bytes\".  On Linux, B<HOST_NAME_MAX> is defined "
9004 "with the value 64, which has been the limit since Linux 1.0 (earlier kernels "
9005 "imposed a limit of 8 bytes)."
9006 msgstr ""
9007
9008 #. type: Plain text
9009 #: build/C/man2/gethostname.2:163
9010 msgid ""
9011 "The GNU C library does not employ the B<gethostname>()  system call; "
9012 "instead, it implements B<gethostname>()  as a library function that calls "
9013 "B<uname>(2)  and copies up to I<len> bytes from the returned I<nodename> "
9014 "field into I<name>.  Having performed the copy, the function then checks if "
9015 "the length of the I<nodename> was greater than or equal to I<len>, and if it "
9016 "is, then the function returns -1 with I<errno> set to B<ENAMETOOLONG>; in "
9017 "this case, a terminating null byte is not included in the returned I<name>."
9018 msgstr ""
9019
9020 #.  At least glibc 2.0 and 2.1, older versions not checked
9021 #. type: Plain text
9022 #: build/C/man2/gethostname.2:176
9023 msgid ""
9024 "Versions of glibc before 2.2 handle the case where the length of the "
9025 "I<nodename> was greater than or equal to I<len> differently: nothing is "
9026 "copied into I<name> and the function returns -1 with I<errno> set to "
9027 "B<ENAMETOOLONG>."
9028 msgstr ""
9029
9030 #. type: Plain text
9031 #: build/C/man2/gethostname.2:179
9032 msgid "B<getdomainname>(2), B<setdomainname>(2), B<uname>(2)"
9033 msgstr ""
9034
9035 #. type: TH
9036 #: build/C/man3/getlogin.3:28
9037 #, no-wrap
9038 msgid "GETLOGIN"
9039 msgstr ""
9040
9041 #. type: TH
9042 #: build/C/man3/getlogin.3:28
9043 #, no-wrap
9044 msgid "2013-04-19"
9045 msgstr ""
9046
9047 #. type: Plain text
9048 #: build/C/man3/getlogin.3:31
9049 msgid "getlogin, getlogin_r, cuserid - get username"
9050 msgstr ""
9051
9052 #. type: Plain text
9053 #: build/C/man3/getlogin.3:35
9054 msgid "B<char *getlogin(void);>"
9055 msgstr ""
9056
9057 #. type: Plain text
9058 #: build/C/man3/getlogin.3:37
9059 msgid "B<int getlogin_r(char *>I<buf>B<, size_t >I<bufsize>B<);>"
9060 msgstr ""
9061
9062 #. type: Plain text
9063 #: build/C/man3/getlogin.3:39
9064 msgid "B<#include E<lt>stdio.hE<gt>>"
9065 msgstr ""
9066
9067 #. type: Plain text
9068 #: build/C/man3/getlogin.3:41
9069 msgid "B<char *cuserid(char *>I<string>B<);>"
9070 msgstr ""
9071
9072 #. type: Plain text
9073 #: build/C/man3/getlogin.3:49
9074 msgid "B<getlogin_r>(): _REENTRANT || _POSIX_C_SOURCE\\ E<gt>=\\ 199506L"
9075 msgstr ""
9076
9077 #. type: Plain text
9078 #: build/C/man3/getlogin.3:52
9079 msgid "B<cuserid>(): _XOPEN_SOURCE"
9080 msgstr ""
9081
9082 #. type: Plain text
9083 #: build/C/man3/getlogin.3:61
9084 msgid ""
9085 "B<getlogin>()  returns a pointer to a string containing the name of the user "
9086 "logged in on the controlling terminal of the process, or a null pointer if "
9087 "this information cannot be determined.  The string is statically allocated "
9088 "and might be overwritten on subsequent calls to this function or to "
9089 "B<cuserid>()."
9090 msgstr ""
9091
9092 #. type: Plain text
9093 #: build/C/man3/getlogin.3:67
9094 msgid ""
9095 "B<getlogin_r>()  returns this same username in the array I<buf> of size "
9096 "I<bufsize>."
9097 msgstr ""
9098
9099 #. type: Plain text
9100 #: build/C/man3/getlogin.3:79
9101 msgid ""
9102 "B<cuserid>()  returns a pointer to a string containing a username associated "
9103 "with the effective user ID of the process.  If I<string> is not a null "
9104 "pointer, it should be an array that can hold at least B<L_cuserid> "
9105 "characters; the string is returned in this array.  Otherwise, a pointer to a "
9106 "string in a static area is returned.  This string is statically allocated "
9107 "and might be overwritten on subsequent calls to this function or to "
9108 "B<getlogin>()."
9109 msgstr ""
9110
9111 #. type: Plain text
9112 #: build/C/man3/getlogin.3:83
9113 msgid ""
9114 "The macro B<L_cuserid> is an integer constant that indicates how long an "
9115 "array you might need to store a username.  B<L_cuserid> is declared in "
9116 "I<E<lt>stdio.hE<gt>>."
9117 msgstr ""
9118
9119 #. type: Plain text
9120 #: build/C/man3/getlogin.3:90
9121 msgid ""
9122 "These functions let your program identify positively the user who is running "
9123 "(B<cuserid>())  or the user who logged in this session (B<getlogin>()).  "
9124 "(These can differ when set-user-ID programs are involved.)"
9125 msgstr ""
9126
9127 #. type: Plain text
9128 #: build/C/man3/getlogin.3:95
9129 msgid ""
9130 "For most purposes, it is more useful to use the environment variable "
9131 "B<LOGNAME> to find out who the user is.  This is more flexible precisely "
9132 "because the user can set B<LOGNAME> arbitrarily."
9133 msgstr ""
9134
9135 #. type: Plain text
9136 #: build/C/man3/getlogin.3:103
9137 msgid ""
9138 "B<getlogin>()  returns a pointer to the username when successful, and NULL "
9139 "on failure, with I<errno> set to indicate the cause of the error.  "
9140 "B<getlogin_r>()  returns 0 when successful, and nonzero on failure."
9141 msgstr ""
9142
9143 #. type: Plain text
9144 #: build/C/man3/getlogin.3:105
9145 msgid "POSIX specifies"
9146 msgstr ""
9147
9148 #. type: Plain text
9149 #: build/C/man3/getlogin.3:108
9150 msgid "The calling process already has the maximum allowed number of open files."
9151 msgstr ""
9152
9153 #. type: Plain text
9154 #: build/C/man3/getlogin.3:111
9155 msgid "The system already has the maximum allowed number of open files."
9156 msgstr ""
9157
9158 #. type: TP
9159 #: build/C/man3/getlogin.3:111
9160 #, no-wrap
9161 msgid "B<ENXIO>"
9162 msgstr ""
9163
9164 #. type: Plain text
9165 #: build/C/man3/getlogin.3:114
9166 msgid "The calling process has no controlling terminal."
9167 msgstr ""
9168
9169 #. type: Plain text
9170 #: build/C/man3/getlogin.3:120
9171 msgid ""
9172 "(getlogin_r)  The length of the username, including the terminating null "
9173 "byte (\\(aq\\e0\\(aq), is larger than I<bufsize>."
9174 msgstr ""
9175
9176 #. type: Plain text
9177 #: build/C/man3/getlogin.3:122
9178 msgid "Linux/glibc also has"
9179 msgstr ""
9180
9181 #. type: Plain text
9182 #: build/C/man3/getlogin.3:125
9183 msgid "There was no corresponding entry in the utmp-file."
9184 msgstr ""
9185
9186 #. type: Plain text
9187 #: build/C/man3/getlogin.3:128
9188 msgid "Insufficient memory to allocate passwd structure."
9189 msgstr ""
9190
9191 #. type: TP
9192 #: build/C/man3/getlogin.3:128 build/C/man2/ioctl.2:109 build/C/man2/ioctl.2:113 build/C/man3/tcgetpgrp.3:95
9193 #, no-wrap
9194 msgid "B<ENOTTY>"
9195 msgstr ""
9196
9197 #. type: Plain text
9198 #: build/C/man3/getlogin.3:132
9199 msgid "Standard input didn't refer to a terminal.  (See BUGS.)"
9200 msgstr ""
9201
9202 #. type: TP
9203 #: build/C/man3/getlogin.3:133
9204 #, no-wrap
9205 msgid "I</etc/passwd>"
9206 msgstr ""
9207
9208 #. type: Plain text
9209 #: build/C/man3/getlogin.3:136
9210 msgid "password database file"
9211 msgstr ""
9212
9213 #. type: TP
9214 #: build/C/man3/getlogin.3:136
9215 #, no-wrap
9216 msgid "I</var/run/utmp>"
9217 msgstr ""
9218
9219 #. type: Plain text
9220 #: build/C/man3/getlogin.3:140
9221 msgid "(traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)"
9222 msgstr ""
9223
9224 #. type: Plain text
9225 #: build/C/man3/getlogin.3:145
9226 msgid "The B<getlogin>()  function is not thread-safe."
9227 msgstr ""
9228
9229 #. type: Plain text
9230 #: build/C/man3/getlogin.3:149
9231 msgid "The B<getlogin_r>()  function is thread-safe."
9232 msgstr ""
9233
9234 #. type: Plain text
9235 #: build/C/man3/getlogin.3:154
9236 msgid ""
9237 "The B<cuserid>()  function is thread-safe with exceptions.  It is not "
9238 "thread-safe if called with a NULL parameter."
9239 msgstr ""
9240
9241 #. type: Plain text
9242 #: build/C/man3/getlogin.3:159
9243 msgid "B<getlogin>()  and B<getlogin_r>()  specified in POSIX.1-2001."
9244 msgstr ""
9245
9246 #. type: Plain text
9247 #: build/C/man3/getlogin.3:170
9248 msgid ""
9249 "System V has a B<cuserid>()  function which uses the real user ID rather "
9250 "than the effective user ID.  The B<cuserid>()  function was included in the "
9251 "1988 version of POSIX, but removed from the 1990 version.  It was present in "
9252 "SUSv2, but removed in POSIX.1-2001."
9253 msgstr ""
9254
9255 #. type: Plain text
9256 #: build/C/man3/getlogin.3:177
9257 msgid ""
9258 "OpenBSD has B<getlogin>()  and B<setlogin>(), and a username associated with "
9259 "a session, even if it has no controlling terminal."
9260 msgstr ""
9261
9262 #. type: Plain text
9263 #: build/C/man3/getlogin.3:189
9264 msgid ""
9265 "Unfortunately, it is often rather easy to fool B<getlogin>().  Sometimes it "
9266 "does not work at all, because some program messed up the utmp file.  Often, "
9267 "it gives only the first 8 characters of the login name.  The user currently "
9268 "logged in on the controlling terminal of our program need not be the user "
9269 "who started it.  Avoid B<getlogin>()  for security-related purposes."
9270 msgstr ""
9271
9272 #. type: Plain text
9273 #: build/C/man3/getlogin.3:199
9274 msgid ""
9275 "Note that glibc does not follow the POSIX specification and uses I<stdin> "
9276 "instead of I</dev/tty>.  A bug.  (Other recent systems, like SunOS 5.8 and "
9277 "HP-UX 11.11 and FreeBSD 4.8 all return the login name also when I<stdin> is "
9278 "redirected.)"
9279 msgstr ""
9280
9281 #. type: Plain text
9282 #: build/C/man3/getlogin.3:209
9283 msgid ""
9284 "Nobody knows precisely what B<cuserid>()  does; avoid it in portable "
9285 "programs.  Or avoid it altogether: use I<getpwuid(geteuid())> instead, if "
9286 "that is what you meant.  B<Do not use> B<cuserid>()."
9287 msgstr ""
9288
9289 #. type: Plain text
9290 #: build/C/man3/getlogin.3:212
9291 msgid "B<geteuid>(2), B<getuid>(2), B<utmp>(5)"
9292 msgstr ""
9293
9294 #. type: TH
9295 #: build/C/man3/getopt.3:41
9296 #, no-wrap
9297 msgid "GETOPT"
9298 msgstr ""
9299
9300 #. type: TH
9301 #: build/C/man3/getopt.3:41 build/C/man2/ioctl.2:41 build/C/man2/syscall.2:42 build/C/man2/syscalls.2:31 build/C/man3/sysconf.3:27
9302 #, no-wrap
9303 msgid "2014-12-31"
9304 msgstr ""
9305
9306 #. type: Plain text
9307 #: build/C/man3/getopt.3:45
9308 msgid ""
9309 "getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - "
9310 "Parse command-line options"
9311 msgstr ""
9312
9313 #. type: Plain text
9314 #: build/C/man3/getopt.3:51
9315 #, no-wrap
9316 msgid ""
9317 "B<int getopt(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9318 "B<           const char *>I<optstring>B<);>\n"
9319 msgstr ""
9320
9321 #. type: Plain text
9322 #: build/C/man3/getopt.3:54
9323 #, no-wrap
9324 msgid ""
9325 "B<extern char *>I<optarg>B<;>\n"
9326 "B<extern int >I<optind>B<, >I<opterr>B<, >I<optopt>B<;>\n"
9327 msgstr ""
9328
9329 #. type: Plain text
9330 #: build/C/man3/getopt.3:56
9331 #, no-wrap
9332 msgid "B<#include E<lt>getopt.hE<gt>>\n"
9333 msgstr ""
9334
9335 #. type: Plain text
9336 #: build/C/man3/getopt.3:60
9337 #, no-wrap
9338 msgid ""
9339 "B<int getopt_long(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9340 "B<           const char *>I<optstring>B<,>\n"
9341 "B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
9342 msgstr ""
9343
9344 #. type: Plain text
9345 #: build/C/man3/getopt.3:64
9346 #, no-wrap
9347 msgid ""
9348 "B<int getopt_long_only(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9349 "B<           const char *>I<optstring>B<,>\n"
9350 "B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
9351 msgstr ""
9352
9353 #. type: Plain text
9354 #: build/C/man3/getopt.3:74
9355 msgid "B<getopt>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
9356 msgstr ""
9357
9358 #. type: Plain text
9359 #: build/C/man3/getopt.3:78
9360 msgid "B<getopt_long>(), B<getopt_long_only>(): _GNU_SOURCE"
9361 msgstr ""
9362
9363 #. type: Plain text
9364 #: build/C/man3/getopt.3:99
9365 msgid ""
9366 "The B<getopt>()  function parses the command-line arguments.  Its arguments "
9367 "I<argc> and I<argv> are the argument count and array as passed to the "
9368 "I<main>()  function on program invocation.  An element of I<argv> that "
9369 "starts with \\(aq-\\(aq (and is not exactly \"-\" or \"--\")  is an option "
9370 "element.  The characters of this element (aside from the initial "
9371 "\\(aq-\\(aq) are option characters.  If B<getopt>()  is called repeatedly, "
9372 "it returns successively each of the option characters from each of the "
9373 "option elements."
9374 msgstr ""
9375
9376 #. type: Plain text
9377 #: build/C/man3/getopt.3:108
9378 msgid ""
9379 "The variable I<optind> is the index of the next element to be processed in "
9380 "I<argv>.  The system initializes this value to 1.  The caller can reset it "
9381 "to 1 to restart scanning of the same I<argv>, or when scanning a new "
9382 "argument vector."
9383 msgstr ""
9384
9385 #. type: Plain text
9386 #: build/C/man3/getopt.3:118
9387 msgid ""
9388 "If B<getopt>()  finds another option character, it returns that character, "
9389 "updating the external variable I<optind> and a static variable I<nextchar> "
9390 "so that the next call to B<getopt>()  can resume the scan with the following "
9391 "option character or I<argv>-element."
9392 msgstr ""
9393
9394 #. type: Plain text
9395 #: build/C/man3/getopt.3:124
9396 msgid ""
9397 "If there are no more option characters, B<getopt>()  returns -1.  Then "
9398 "I<optind> is the index in I<argv> of the first I<argv>-element that is not "
9399 "an option."
9400 msgstr ""
9401
9402 #. type: Plain text
9403 #: build/C/man3/getopt.3:151
9404 msgid ""
9405 "I<optstring> is a string containing the legitimate option characters.  If "
9406 "such a character is followed by a colon, the option requires an argument, so "
9407 "B<getopt>()  places a pointer to the following text in the same "
9408 "I<argv>-element, or the text of the following I<argv>-element, in "
9409 "I<optarg>.  Two colons mean an option takes an optional arg; if there is "
9410 "text in the current I<argv>-element (i.e., in the same word as the option "
9411 "name itself, for example, \"-oarg\"), then it is returned in I<optarg>, "
9412 "otherwise I<optarg> is set to zero.  This is a GNU extension.  If "
9413 "I<optstring> contains B<W> followed by a semicolon, then B<-W foo> is "
9414 "treated as the long option B<--foo>.  (The B<-W> option is reserved by "
9415 "POSIX.2 for implementation extensions.)  This behavior is a GNU extension, "
9416 "not available with libraries before glibc 2."
9417 msgstr ""
9418
9419 #. type: Plain text
9420 #: build/C/man3/getopt.3:169
9421 msgid ""
9422 "By default, B<getopt>()  permutes the contents of I<argv> as it scans, so "
9423 "that eventually all the nonoptions are at the end.  Two other modes are also "
9424 "implemented.  If the first character of I<optstring> is \\(aq+\\(aq or the "
9425 "environment variable B<POSIXLY_CORRECT> is set, then option processing stops "
9426 "as soon as a nonoption argument is encountered.  If the first character of "
9427 "I<optstring> is \\(aq-\\(aq, then each nonoption I<argv>-element is handled "
9428 "as if it were the argument of an option with character code 1.  (This is "
9429 "used by programs that were written to expect options and other "
9430 "I<argv>-elements in any order and that care about the ordering of the two.)  "
9431 "The special argument \"--\" forces an end of option-scanning regardless of "
9432 "the scanning mode."
9433 msgstr ""
9434
9435 #. type: Plain text
9436 #: build/C/man3/getopt.3:177
9437 msgid ""
9438 "If B<getopt>()  does not recognize an option character, it prints an error "
9439 "message to I<stderr>, stores the character in I<optopt>, and returns "
9440 "\\(aq?\\(aq.  The calling program may prevent the error message by setting "
9441 "I<opterr> to 0."
9442 msgstr ""
9443
9444 #. type: Plain text
9445 #: build/C/man3/getopt.3:196
9446 msgid ""
9447 "If B<getopt>()  finds an option character in I<argv> that was not included "
9448 "in I<optstring>, or if it detects a missing option argument, it returns "
9449 "\\(aq?\\(aq and sets the external variable I<optopt> to the actual option "
9450 "character.  If the first character (following any optional \\(aq+\\(aq or "
9451 "\\(aq-\\(aq described above)  of I<optstring> is a colon (\\(aq:\\(aq), then "
9452 "B<getopt>()  returns \\(aq:\\(aq instead of \\(aq?\\(aq to indicate a "
9453 "missing option argument.  If an error was detected, and the first character "
9454 "of I<optstring> is not a colon, and the external variable I<opterr> is "
9455 "nonzero (which is the default), B<getopt>()  prints an error message."
9456 msgstr ""
9457
9458 #. type: SS
9459 #: build/C/man3/getopt.3:196
9460 #, no-wrap
9461 msgid "getopt_long() and getopt_long_only()"
9462 msgstr ""
9463
9464 #. type: Plain text
9465 #: build/C/man3/getopt.3:212
9466 msgid ""
9467 "The B<getopt_long>()  function works like B<getopt>()  except that it also "
9468 "accepts long options, started with two dashes.  (If the program accepts only "
9469 "long options, then I<optstring> should be specified as an empty string "
9470 "(\"\"), not NULL.)  Long option names may be abbreviated if the abbreviation "
9471 "is unique or is an exact match for some defined option.  A long option may "
9472 "take a parameter, of the form B<--arg=param> or B<--arg param>."
9473 msgstr ""
9474
9475 #. type: Plain text
9476 #: build/C/man3/getopt.3:219
9477 msgid ""
9478 "I<longopts> is a pointer to the first element of an array of I<struct "
9479 "option> declared in I<E<lt>getopt.hE<gt>> as"
9480 msgstr ""
9481
9482 #. type: Plain text
9483 #: build/C/man3/getopt.3:228
9484 #, no-wrap
9485 msgid ""
9486 "struct option {\n"
9487 "    const char *name;\n"
9488 "    int         has_arg;\n"
9489 "    int        *flag;\n"
9490 "    int         val;\n"
9491 "};\n"
9492 msgstr ""
9493
9494 #. type: Plain text
9495 #: build/C/man3/getopt.3:232
9496 msgid "The meanings of the different fields are:"
9497 msgstr ""
9498
9499 #. type: TP
9500 #: build/C/man3/getopt.3:232
9501 #, no-wrap
9502 msgid "I<name>"
9503 msgstr ""
9504
9505 #. type: Plain text
9506 #: build/C/man3/getopt.3:235
9507 msgid "is the name of the long option."
9508 msgstr ""
9509
9510 #. type: TP
9511 #: build/C/man3/getopt.3:235
9512 #, no-wrap
9513 msgid "I<has_arg>"
9514 msgstr ""
9515
9516 #. type: Plain text
9517 #: build/C/man3/getopt.3:241
9518 msgid ""
9519 "is: B<no_argument> (or 0) if the option does not take an argument; "
9520 "B<required_argument> (or 1) if the option requires an argument; or "
9521 "B<optional_argument> (or 2) if the option takes an optional argument."
9522 msgstr ""
9523
9524 #. type: TP
9525 #: build/C/man3/getopt.3:241
9526 #, no-wrap
9527 msgid "I<flag>"
9528 msgstr ""
9529
9530 #. type: Plain text
9531 #: build/C/man3/getopt.3:255
9532 msgid ""
9533 "specifies how results are returned for a long option.  If I<flag> is NULL, "
9534 "then B<getopt_long>()  returns I<val>.  (For example, the calling program "
9535 "may set I<val> to the equivalent short option character.)  Otherwise, "
9536 "B<getopt_long>()  returns 0, and I<flag> points to a variable which is set "
9537 "to I<val> if the option is found, but left unchanged if the option is not "
9538 "found."
9539 msgstr ""
9540
9541 #. type: TP
9542 #: build/C/man3/getopt.3:255
9543 #, no-wrap
9544 msgid "I<val>"
9545 msgstr ""
9546
9547 #. type: Plain text
9548 #: build/C/man3/getopt.3:259
9549 msgid "is the value to return, or to load into the variable pointed to by I<flag>."
9550 msgstr ""
9551
9552 #. type: Plain text
9553 #: build/C/man3/getopt.3:261
9554 msgid "The last element of the array has to be filled with zeros."
9555 msgstr ""
9556
9557 #. type: Plain text
9558 #: build/C/man3/getopt.3:265
9559 msgid ""
9560 "If I<longindex> is not NULL, it points to a variable which is set to the "
9561 "index of the long option relative to I<longopts>."
9562 msgstr ""
9563
9564 #. type: Plain text
9565 #: build/C/man3/getopt.3:274
9566 msgid ""
9567 "B<getopt_long_only>()  is like B<getopt_long>(), but \\(aq-\\(aq as well as "
9568 "\"--\" can indicate a long option.  If an option that starts with "
9569 "\\(aq-\\(aq (not \"--\") doesn't match a long option, but does match a short "
9570 "option, it is parsed as a short option instead."
9571 msgstr ""
9572
9573 #. type: Plain text
9574 #: build/C/man3/getopt.3:292
9575 msgid ""
9576 "If an option was successfully found, then B<getopt>()  returns the option "
9577 "character.  If all command-line options have been parsed, then B<getopt>()  "
9578 "returns -1.  If B<getopt>()  encounters an option character that was not in "
9579 "I<optstring>, then \\(aq?\\(aq is returned.  If B<getopt>()  encounters an "
9580 "option with a missing argument, then the return value depends on the first "
9581 "character in I<optstring>: if it is \\(aq:\\(aq, then \\(aq:\\(aq is "
9582 "returned; otherwise \\(aq?\\(aq is returned."
9583 msgstr ""
9584
9585 #. type: Plain text
9586 #: build/C/man3/getopt.3:304
9587 msgid ""
9588 "B<getopt_long>()  and B<getopt_long_only>()  also return the option "
9589 "character when a short option is recognized.  For a long option, they return "
9590 "I<val> if I<flag> is NULL, and 0 otherwise.  Error and -1 returns are the "
9591 "same as for B<getopt>(), plus \\(aq?\\(aq for an ambiguous match or an "
9592 "extraneous parameter."
9593 msgstr ""
9594
9595 #. type: SH
9596 #: build/C/man3/getopt.3:304
9597 #, no-wrap
9598 msgid "ENVIRONMENT"
9599 msgstr ""
9600
9601 #. type: TP
9602 #: build/C/man3/getopt.3:305
9603 #, no-wrap
9604 msgid "B<POSIXLY_CORRECT>"
9605 msgstr ""
9606
9607 #. type: Plain text
9608 #: build/C/man3/getopt.3:309
9609 msgid ""
9610 "If this is set, then option processing stops as soon as a nonoption argument "
9611 "is encountered."
9612 msgstr ""
9613
9614 #. type: TP
9615 #: build/C/man3/getopt.3:309
9616 #, no-wrap
9617 msgid "B<_E<lt>PIDE<gt>_GNU_nonoption_argv_flags_>"
9618 msgstr ""
9619
9620 #. type: Plain text
9621 #: build/C/man3/getopt.3:318
9622 msgid ""
9623 "This variable was used by B<bash>(1)  2.0 to communicate to glibc which "
9624 "arguments are the results of wildcard expansion and so should not be "
9625 "considered as options.  This behavior was removed in B<bash>(1)  version "
9626 "2.01, but the support remains in glibc."
9627 msgstr ""
9628
9629 #. type: TP
9630 #: build/C/man3/getopt.3:319
9631 #, no-wrap
9632 msgid "B<getopt>():"
9633 msgstr ""
9634
9635 #. type: Plain text
9636 #: build/C/man3/getopt.3:329
9637 msgid ""
9638 "POSIX.2 and POSIX.1-2001, provided the environment variable "
9639 "B<POSIXLY_CORRECT> is set.  Otherwise, the elements of I<argv> aren't really "
9640 "const, because we permute them.  We pretend they're const in the prototype "
9641 "to be compatible with other systems."
9642 msgstr ""
9643
9644 #. type: Plain text
9645 #: build/C/man3/getopt.3:333
9646 msgid "The use of \\(aq+\\(aq and \\(aq-\\(aq in I<optstring> is a GNU extension."
9647 msgstr ""
9648
9649 #. type: Plain text
9650 #: build/C/man3/getopt.3:347
9651 msgid ""
9652 "On some older implementations, B<getopt>()  was declared in "
9653 "I<E<lt>stdio.hE<gt>>.  SUSv1 permitted the declaration to appear in either "
9654 "I<E<lt>unistd.hE<gt>> or I<E<lt>stdio.hE<gt>>.  POSIX.1-2001 marked the use "
9655 "of I<E<lt>stdio.hE<gt>> for this purpose as LEGACY.  POSIX.1-2001 does not "
9656 "allow the declaration to appear in I<E<lt>stdio.hE<gt>>."
9657 msgstr ""
9658
9659 #. type: TP
9660 #: build/C/man3/getopt.3:347
9661 #, no-wrap
9662 msgid "B<getopt_long>() and B<getopt_long_only>():"
9663 msgstr ""
9664
9665 #. type: Plain text
9666 #: build/C/man3/getopt.3:369
9667 msgid ""
9668 "A program that scans multiple argument vectors, or rescans the same vector "
9669 "more than once, and wants to make use of GNU extensions such as \\(aq+\\(aq "
9670 "and \\(aq-\\(aq at the start of I<optstring>, or changes the value of "
9671 "B<POSIXLY_CORRECT> between scans, must reinitialize B<getopt>()  by "
9672 "resetting I<optind> to 0, rather than the traditional value of 1.  "
9673 "(Resetting to 0 forces the invocation of an internal initialization routine "
9674 "that rechecks B<POSIXLY_CORRECT> and checks for GNU extensions in "
9675 "I<optstring>.)"
9676 msgstr ""
9677
9678 #. type: Plain text
9679 #: build/C/man3/getopt.3:376
9680 msgid ""
9681 "The POSIX.2 specification of B<getopt>()  has a technical error described in "
9682 "POSIX.2 Interpretation 150.  The GNU implementation (and probably all other "
9683 "implementations) implements the correct behavior rather than that specified."
9684 msgstr ""
9685
9686 #. type: SS
9687 #: build/C/man3/getopt.3:377
9688 #, no-wrap
9689 msgid "getopt()"
9690 msgstr ""
9691
9692 #. type: Plain text
9693 #: build/C/man3/getopt.3:385
9694 msgid ""
9695 "The following trivial example program uses B<getopt>()  to handle two "
9696 "program options: I<-n>, with no associated value; and I<-t val>, which "
9697 "expects an associated value."
9698 msgstr ""
9699
9700 #. type: Plain text
9701 #: build/C/man3/getopt.3:390
9702 #, no-wrap
9703 msgid ""
9704 "#include E<lt>unistd.hE<gt>\n"
9705 "#include E<lt>stdlib.hE<gt>\n"
9706 "#include E<lt>stdio.hE<gt>\n"
9707 msgstr ""
9708
9709 #. type: Plain text
9710 #: build/C/man3/getopt.3:396
9711 #, no-wrap
9712 msgid ""
9713 "int\n"
9714 "main(int argc, char *argv[])\n"
9715 "{\n"
9716 "    int flags, opt;\n"
9717 "    int nsecs, tfnd;\n"
9718 msgstr ""
9719
9720 #. type: Plain text
9721 #: build/C/man3/getopt.3:415
9722 #, no-wrap
9723 msgid ""
9724 "    nsecs = 0;\n"
9725 "    tfnd = 0;\n"
9726 "    flags = 0;\n"
9727 "    while ((opt = getopt(argc, argv, \"nt:\")) != -1) {\n"
9728 "        switch (opt) {\n"
9729 "        case \\(aqn\\(aq:\n"
9730 "            flags = 1;\n"
9731 "            break;\n"
9732 "        case \\(aqt\\(aq:\n"
9733 "            nsecs = atoi(optarg);\n"
9734 "            tfnd = 1;\n"
9735 "            break;\n"
9736 "        default: /* \\(aq?\\(aq */\n"
9737 "            fprintf(stderr, \"Usage: %s [-t nsecs] [-n] name\\en\",\n"
9738 "                    argv[0]);\n"
9739 "            exit(EXIT_FAILURE);\n"
9740 "        }\n"
9741 "    }\n"
9742 msgstr ""
9743
9744 #. type: Plain text
9745 #: build/C/man3/getopt.3:418
9746 #, no-wrap
9747 msgid ""
9748 "    printf(\"flags=%d; tfnd=%d; nsecs=%d; optind=%d\\en\",\n"
9749 "            flags, tfnd, nsecs, optind);\n"
9750 msgstr ""
9751
9752 #. type: Plain text
9753 #: build/C/man3/getopt.3:423
9754 #, no-wrap
9755 msgid ""
9756 "    if (optind E<gt>= argc) {\n"
9757 "        fprintf(stderr, \"Expected argument after options\\en\");\n"
9758 "        exit(EXIT_FAILURE);\n"
9759 "    }\n"
9760 msgstr ""
9761
9762 #. type: Plain text
9763 #: build/C/man3/getopt.3:425
9764 #, no-wrap
9765 msgid "    printf(\"name argument = %s\\en\", argv[optind]);\n"
9766 msgstr ""
9767
9768 #. type: Plain text
9769 #: build/C/man3/getopt.3:427
9770 #, no-wrap
9771 msgid "    /* Other code omitted */\n"
9772 msgstr ""
9773
9774 #. type: SS
9775 #: build/C/man3/getopt.3:431
9776 #, no-wrap
9777 msgid "getopt_long()"
9778 msgstr ""
9779
9780 #. type: Plain text
9781 #: build/C/man3/getopt.3:435
9782 msgid ""
9783 "The following example program illustrates the use of B<getopt_long>()  with "
9784 "most of its features."
9785 msgstr ""
9786
9787 #. type: Plain text
9788 #: build/C/man3/getopt.3:440
9789 #, no-wrap
9790 msgid ""
9791 "#include E<lt>stdio.hE<gt>     /* for printf */\n"
9792 "#include E<lt>stdlib.hE<gt>    /* for exit */\n"
9793 "#include E<lt>getopt.hE<gt>\n"
9794 msgstr ""
9795
9796 #. type: Plain text
9797 #: build/C/man3/getopt.3:446
9798 #, no-wrap
9799 msgid ""
9800 "int\n"
9801 "main(int argc, char **argv)\n"
9802 "{\n"
9803 "    int c;\n"
9804 "    int digit_optind = 0;\n"
9805 msgstr ""
9806
9807 #. type: Plain text
9808 #: build/C/man3/getopt.3:459
9809 #, no-wrap
9810 msgid ""
9811 "    while (1) {\n"
9812 "        int this_option_optind = optind ? optind : 1;\n"
9813 "        int option_index = 0;\n"
9814 "        static struct option long_options[] = {\n"
9815 "            {\"add\",     required_argument, 0,  0 },\n"
9816 "            {\"append\",  no_argument,       0,  0 },\n"
9817 "            {\"delete\",  required_argument, 0,  0 },\n"
9818 "            {\"verbose\", no_argument,       0,  0 },\n"
9819 "            {\"create\",  required_argument, 0, \\(aqc\\(aq},\n"
9820 "            {\"file\",    required_argument, 0,  0 },\n"
9821 "            {0,         0,                 0,  0 }\n"
9822 "        };\n"
9823 msgstr ""
9824
9825 #. type: Plain text
9826 #: build/C/man3/getopt.3:464
9827 #, no-wrap
9828 msgid ""
9829 "        c = getopt_long(argc, argv, \"abc:d:012\",\n"
9830 "                 long_options, &option_index);\n"
9831 "        if (c == -1)\n"
9832 "            break;\n"
9833 msgstr ""
9834
9835 #. type: Plain text
9836 #: build/C/man3/getopt.3:472
9837 #, no-wrap
9838 msgid ""
9839 "        switch (c) {\n"
9840 "        case 0:\n"
9841 "            printf(\"option %s\", long_options[option_index].name);\n"
9842 "            if (optarg)\n"
9843 "                printf(\" with arg %s\", optarg);\n"
9844 "            printf(\"\\en\");\n"
9845 "            break;\n"
9846 msgstr ""
9847
9848 #. type: Plain text
9849 #: build/C/man3/getopt.3:481
9850 #, no-wrap
9851 msgid ""
9852 "        case \\(aq0\\(aq:\n"
9853 "        case \\(aq1\\(aq:\n"
9854 "        case \\(aq2\\(aq:\n"
9855 "            if (digit_optind != 0 && digit_optind != this_option_optind)\n"
9856 "              printf(\"digits occur in two different "
9857 "argv-elements.\\en\");\n"
9858 "            digit_optind = this_option_optind;\n"
9859 "            printf(\"option %c\\en\", c);\n"
9860 "            break;\n"
9861 msgstr ""
9862
9863 #. type: Plain text
9864 #: build/C/man3/getopt.3:485
9865 #, no-wrap
9866 msgid ""
9867 "        case \\(aqa\\(aq:\n"
9868 "            printf(\"option a\\en\");\n"
9869 "            break;\n"
9870 msgstr ""
9871
9872 #. type: Plain text
9873 #: build/C/man3/getopt.3:489
9874 #, no-wrap
9875 msgid ""
9876 "        case \\(aqb\\(aq:\n"
9877 "            printf(\"option b\\en\");\n"
9878 "            break;\n"
9879 msgstr ""
9880
9881 #. type: Plain text
9882 #: build/C/man3/getopt.3:493
9883 #, no-wrap
9884 msgid ""
9885 "        case \\(aqc\\(aq:\n"
9886 "            printf(\"option c with value \\(aq%s\\(aq\\en\", optarg);\n"
9887 "            break;\n"
9888 msgstr ""
9889
9890 #. type: Plain text
9891 #: build/C/man3/getopt.3:497
9892 #, no-wrap
9893 msgid ""
9894 "        case \\(aqd\\(aq:\n"
9895 "            printf(\"option d with value \\(aq%s\\(aq\\en\", optarg);\n"
9896 "            break;\n"
9897 msgstr ""
9898
9899 #. type: Plain text
9900 #: build/C/man3/getopt.3:500
9901 #, no-wrap
9902 msgid ""
9903 "        case \\(aq?\\(aq:\n"
9904 "            break;\n"
9905 msgstr ""
9906
9907 #. type: Plain text
9908 #: build/C/man3/getopt.3:505
9909 #, no-wrap
9910 msgid ""
9911 "        default:\n"
9912 "            printf(\"?? getopt returned character code 0%o ??\\en\", c);\n"
9913 "        }\n"
9914 "    }\n"
9915 msgstr ""
9916
9917 #. type: Plain text
9918 #: build/C/man3/getopt.3:512
9919 #, no-wrap
9920 msgid ""
9921 "    if (optind E<lt> argc) {\n"
9922 "        printf(\"non-option ARGV-elements: \");\n"
9923 "        while (optind E<lt> argc)\n"
9924 "            printf(\"%s \", argv[optind++]);\n"
9925 "        printf(\"\\en\");\n"
9926 "    }\n"
9927 msgstr ""
9928
9929 #. type: Plain text
9930 #: build/C/man3/getopt.3:517
9931 msgid "B<getsubopt>(3)"
9932 msgstr ""
9933
9934 #. type: TH
9935 #: build/C/man2/getpagesize.2:25
9936 #, no-wrap
9937 msgid "GETPAGESIZE"
9938 msgstr ""
9939
9940 #. type: Plain text
9941 #: build/C/man2/getpagesize.2:28
9942 msgid "getpagesize - get memory page size"
9943 msgstr ""
9944
9945 #. type: Plain text
9946 #: build/C/man2/getpagesize.2:32
9947 msgid "B<int getpagesize(void);>"
9948 msgstr ""
9949
9950 #. type: Plain text
9951 #: build/C/man2/getpagesize.2:39
9952 msgid "B<getpagesize>():"
9953 msgstr ""
9954
9955 #.  .SH HISTORY
9956 #.  This call first appeared in 4.2BSD.
9957 #. type: Plain text
9958 #: build/C/man2/getpagesize.2:64
9959 msgid ""
9960 "The function B<getpagesize>()  returns the number of bytes in a memory page, "
9961 "where \"page\" is a fixed-length block, the unit for memory allocation and "
9962 "file mapping performed by B<mmap>(2)."
9963 msgstr ""
9964
9965 #. type: Plain text
9966 #: build/C/man2/getpagesize.2:71
9967 msgid ""
9968 "SVr4, 4.4BSD, SUSv2.  In SUSv2 the B<getpagesize>()  call is labeled LEGACY, "
9969 "and in POSIX.1-2001 it has been dropped; HP-UX does not have this call."
9970 msgstr ""
9971
9972 #. type: Plain text
9973 #: build/C/man2/getpagesize.2:76
9974 msgid ""
9975 "Portable applications should employ I<sysconf(_SC_PAGESIZE)> instead of "
9976 "B<getpagesize>():"
9977 msgstr ""
9978
9979 #. type: Plain text
9980 #: build/C/man2/getpagesize.2:81
9981 #, no-wrap
9982 msgid ""
9983 "#include E<lt>unistd.hE<gt>\n"
9984 "long sz = sysconf(_SC_PAGESIZE);\n"
9985 msgstr ""
9986
9987 #. type: Plain text
9988 #: build/C/man2/getpagesize.2:88
9989 msgid "(Most systems allow the synonym B<_SC_PAGE_SIZE> for B<_SC_PAGESIZE>.)"
9990 msgstr ""
9991
9992 #. type: Plain text
9993 #: build/C/man2/getpagesize.2:108
9994 msgid ""
9995 "Whether B<getpagesize>()  is present as a Linux system call depends on the "
9996 "architecture.  If it is, it returns the kernel symbol B<PAGE_SIZE>, whose "
9997 "value depends on the architecture and machine model.  Generally, one uses "
9998 "binaries that are dependent on the architecture but not on the machine "
9999 "model, in order to have a single binary distribution per architecture.  This "
10000 "means that a user program should not find B<PAGE_SIZE> at compile time from "
10001 "a header file, but use an actual system call, at least for those "
10002 "architectures (like sun4) where this dependency exists.  Here glibc 2.0 "
10003 "fails because its B<getpagesize>()  returns a statically derived value, and "
10004 "does not use a system call.  Things are OK in glibc 2.1."
10005 msgstr ""
10006
10007 #. type: Plain text
10008 #: build/C/man2/getpagesize.2:110
10009 msgid "B<mmap>(2), B<sysconf>(3)"
10010 msgstr ""
10011
10012 #. type: TH
10013 #: build/C/man2/gettid.2:26
10014 #, no-wrap
10015 msgid "GETTID"
10016 msgstr ""
10017
10018 #. type: TH
10019 #: build/C/man2/gettid.2:26
10020 #, no-wrap
10021 msgid "2014-02-11"
10022 msgstr ""
10023
10024 #. type: Plain text
10025 #: build/C/man2/gettid.2:29
10026 msgid "gettid - get thread identification"
10027 msgstr ""
10028
10029 #. type: Plain text
10030 #: build/C/man2/gettid.2:32
10031 #, no-wrap
10032 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
10033 msgstr ""
10034
10035 #. type: Plain text
10036 #: build/C/man2/gettid.2:34
10037 #, no-wrap
10038 msgid "B<pid_t gettid(void);>\n"
10039 msgstr ""
10040
10041 #. type: Plain text
10042 #: build/C/man2/gettid.2:50
10043 msgid ""
10044 "B<gettid>()  returns the caller's thread ID (TID).  In a single-threaded "
10045 "process, the thread ID is equal to the process ID (PID, as returned by "
10046 "B<getpid>(2)).  In a multithreaded process, all threads have the same PID, "
10047 "but each one has a unique TID.  For further details, see the discussion of "
10048 "B<CLONE_THREAD> in B<clone>(2)."
10049 msgstr ""
10050
10051 #. type: Plain text
10052 #: build/C/man2/gettid.2:52
10053 msgid "On success, returns the thread ID of the calling process."
10054 msgstr ""
10055
10056 #. type: Plain text
10057 #: build/C/man2/gettid.2:54
10058 msgid "This call is always successful."
10059 msgstr ""
10060
10061 #. type: Plain text
10062 #: build/C/man2/gettid.2:58
10063 msgid "The B<gettid>()  system call first appeared on Linux in kernel 2.4.11."
10064 msgstr ""
10065
10066 #. type: Plain text
10067 #: build/C/man2/gettid.2:62
10068 msgid ""
10069 "B<gettid>()  is Linux-specific and should not be used in programs that are "
10070 "intended to be portable."
10071 msgstr ""
10072
10073 #.  FIXME . See http://sourceware.org/bugzilla/show_bug.cgi?id=6399
10074 #.  "gettid() should have a wrapper"
10075 #. type: Plain text
10076 #: build/C/man2/gettid.2:67
10077 msgid ""
10078 "Glibc does not provide a wrapper for this system call; call it using "
10079 "B<syscall>(2)."
10080 msgstr ""
10081
10082 #. type: Plain text
10083 #: build/C/man2/gettid.2:71
10084 msgid ""
10085 "The thread ID returned by this call is not the same thing as a POSIX thread "
10086 "ID (i.e., the opaque value returned by B<pthread_self>(3))."
10087 msgstr ""
10088
10089 #.  .BR kcmp (2),
10090 #.  .BR move_pages (2),
10091 #.  .BR migrate_pages (2),
10092 #.  .BR process_vm_readv (2),
10093 #.  .BR ptrace (2),
10094 #. type: Plain text
10095 #: build/C/man2/gettid.2:89
10096 msgid ""
10097 "B<capget>(2), B<clone>(2), B<fcntl>(2), B<fork>(2), B<get_robust_list>(2), "
10098 "B<getpid>(2), B<ioprio_set>(2), B<perf_event_open>(2), "
10099 "B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
10100 "B<tgkill>(2), B<timer_create>(2)"
10101 msgstr ""
10102
10103 #. type: TH
10104 #: build/C/man3/getumask.3:28
10105 #, no-wrap
10106 msgid "GETUMASK"
10107 msgstr ""
10108
10109 #. type: TH
10110 #: build/C/man3/getumask.3:28
10111 #, no-wrap
10112 msgid "2010-09-10"
10113 msgstr ""
10114
10115 #. type: Plain text
10116 #: build/C/man3/getumask.3:31
10117 msgid "getumask - get file creation mask"
10118 msgstr ""
10119
10120 #. type: Plain text
10121 #: build/C/man3/getumask.3:35 build/C/man2/truncate.2:50 build/C/man2/umask.2:39 build/C/man2/vfork.2:33
10122 msgid "B<#include E<lt>sys/types.hE<gt>>"
10123 msgstr ""
10124
10125 #. type: Plain text
10126 #: build/C/man3/getumask.3:37 build/C/man2/umask.2:41
10127 msgid "B<#include E<lt>sys/stat.hE<gt>>"
10128 msgstr ""
10129
10130 #. type: Plain text
10131 #: build/C/man3/getumask.3:39
10132 msgid "B<mode_t getumask(void);>"
10133 msgstr ""
10134
10135 #. type: Plain text
10136 #: build/C/man3/getumask.3:42
10137 msgid "This function returns the current file creation mask.  It is equivalent to"
10138 msgstr ""
10139
10140 #. type: Plain text
10141 #: build/C/man3/getumask.3:51
10142 #, no-wrap
10143 msgid ""
10144 "mode_t getumask(void)\n"
10145 "{\n"
10146 "    mode_t mask = umask( 0 );\n"
10147 "    umask(mask);\n"
10148 "    return mask;\n"
10149 "}\n"
10150 msgstr ""
10151
10152 #. type: Plain text
10153 #: build/C/man3/getumask.3:58
10154 msgid ""
10155 "except that it is documented to be thread-safe (that is, shares a lock with "
10156 "the B<umask>(2)  library call)."
10157 msgstr ""
10158
10159 #. type: Plain text
10160 #: build/C/man3/getumask.3:60
10161 msgid "This is a vaporware GNU extension."
10162 msgstr ""
10163
10164 #. type: Plain text
10165 #: build/C/man3/getumask.3:63
10166 msgid ""
10167 "This function is documented but not implemented yet in glibc, as at version "
10168 "2.9."
10169 msgstr ""
10170
10171 #. type: Plain text
10172 #: build/C/man3/getumask.3:64
10173 msgid "B<umask>(2)"
10174 msgstr ""
10175
10176 #. type: TH
10177 #: build/C/man3/getusershell.3:30
10178 #, no-wrap
10179 msgid "GETUSERSHELL"
10180 msgstr ""
10181
10182 #. type: TH
10183 #: build/C/man3/getusershell.3:30 build/C/man2/pread.2:25
10184 #, no-wrap
10185 msgid "2013-06-21"
10186 msgstr ""
10187
10188 #. type: Plain text
10189 #: build/C/man3/getusershell.3:33
10190 msgid "getusershell, setusershell, endusershell - get permitted user shells"
10191 msgstr ""
10192
10193 #. type: Plain text
10194 #: build/C/man3/getusershell.3:38
10195 #, no-wrap
10196 msgid "B<char *getusershell(void);>\n"
10197 msgstr ""
10198
10199 #. type: Plain text
10200 #: build/C/man3/getusershell.3:40
10201 #, no-wrap
10202 msgid "B<void setusershell(void);>\n"
10203 msgstr ""
10204
10205 #. type: Plain text
10206 #: build/C/man3/getusershell.3:42
10207 #, no-wrap
10208 msgid "B<void endusershell(void);>\n"
10209 msgstr ""
10210
10211 #. type: Plain text
10212 #: build/C/man3/getusershell.3:53
10213 msgid "B<getusershell>(), B<setusershell>(), B<endusershell>():"
10214 msgstr ""
10215
10216 #. type: Plain text
10217 #: build/C/man3/getusershell.3:75
10218 msgid ""
10219 "The B<getusershell>()  function returns the next line from the file "
10220 "I</etc/shells>, opening the file if necessary.  The line should contain the "
10221 "pathname of a valid user shell.  If I</etc/shells> does not exist or is "
10222 "unreadable, B<getusershell>()  behaves as if I</bin/sh> and I</bin/csh> were "
10223 "listed in the file."
10224 msgstr ""
10225
10226 #. type: Plain text
10227 #: build/C/man3/getusershell.3:80
10228 msgid "The B<setusershell>()  function rewinds I</etc/shells>."
10229 msgstr ""
10230
10231 #. type: Plain text
10232 #: build/C/man3/getusershell.3:85
10233 msgid "The B<endusershell>()  function closes I</etc/shells>."
10234 msgstr ""
10235
10236 #. type: Plain text
10237 #: build/C/man3/getusershell.3:89
10238 msgid "The B<getusershell>()  function returns NULL on end-of-file."
10239 msgstr ""
10240
10241 #. type: Plain text
10242 #: build/C/man3/getusershell.3:92
10243 #, no-wrap
10244 msgid "/etc/shells\n"
10245 msgstr ""
10246
10247 #. type: Plain text
10248 #: build/C/man3/getusershell.3:101
10249 msgid ""
10250 "The B<getusershell>(), B<setusershell>()  and B<endusershell>()  functions "
10251 "are not thread-safe."
10252 msgstr ""
10253
10254 #. type: Plain text
10255 #: build/C/man3/getusershell.3:103
10256 msgid "4.3BSD."
10257 msgstr ""
10258
10259 #. type: Plain text
10260 #: build/C/man3/getusershell.3:104
10261 msgid "B<shells>(5)"
10262 msgstr ""
10263
10264 #. type: TH
10265 #: build/C/man2/idle.2:32
10266 #, no-wrap
10267 msgid "IDLE"
10268 msgstr ""
10269
10270 #. type: TH
10271 #: build/C/man2/idle.2:32 build/C/man5/shells.5:28
10272 #, no-wrap
10273 msgid "2012-12-31"
10274 msgstr ""
10275
10276 #. type: Plain text
10277 #: build/C/man2/idle.2:35
10278 msgid "idle - make process 0 idle"
10279 msgstr ""
10280
10281 #. type: Plain text
10282 #: build/C/man2/idle.2:39
10283 msgid "B<int idle(void);>"
10284 msgstr ""
10285
10286 #. type: Plain text
10287 #: build/C/man2/idle.2:46
10288 msgid ""
10289 "B<idle>()  is an internal system call used during bootstrap.  It marks the "
10290 "process's pages as swappable, lowers its priority, and enters the main "
10291 "scheduling loop.  B<idle>()  never returns."
10292 msgstr ""
10293
10294 #. type: Plain text
10295 #: build/C/man2/idle.2:52
10296 msgid ""
10297 "Only process 0 may call B<idle>().  Any user process, even a process with "
10298 "superuser permission, will receive B<EPERM>."
10299 msgstr ""
10300
10301 #. type: Plain text
10302 #: build/C/man2/idle.2:55
10303 msgid ""
10304 "B<idle>()  never returns for process 0, and always returns -1 for a user "
10305 "process."
10306 msgstr ""
10307
10308 #. type: Plain text
10309 #: build/C/man2/idle.2:59 build/C/man2/setup.2:60
10310 msgid "Always, for a user process."
10311 msgstr ""
10312
10313 #. type: Plain text
10314 #: build/C/man2/idle.2:61
10315 msgid "Since Linux 2.3.13, this system call does not exist anymore."
10316 msgstr ""
10317
10318 #. type: Plain text
10319 #: build/C/man2/idle.2:63 build/C/man2/sysinfo.2:90
10320 msgid ""
10321 "This function is Linux-specific, and should not be used in programs intended "
10322 "to be portable."
10323 msgstr ""
10324
10325 #. type: TH
10326 #: build/C/man2/ioctl.2:41
10327 #, no-wrap
10328 msgid "IOCTL"
10329 msgstr ""
10330
10331 #. type: Plain text
10332 #: build/C/man2/ioctl.2:44
10333 msgid "ioctl - control device"
10334 msgstr ""
10335
10336 #. type: Plain text
10337 #: build/C/man2/ioctl.2:46
10338 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
10339 msgstr ""
10340
10341 #.  POSIX says 'request' is int, but glibc has the above
10342 #.  See https://bugzilla.kernel.org/show_bug.cgi?id=42705
10343 #. type: Plain text
10344 #: build/C/man2/ioctl.2:50
10345 msgid "B<int ioctl(int >I<fd>B<, unsigned long >I<request>B<, ...);>"
10346 msgstr ""
10347
10348 #. type: Plain text
10349 #: build/C/man2/ioctl.2:61
10350 msgid ""
10351 "The B<ioctl>()  function manipulates the underlying device parameters of "
10352 "special files.  In particular, many operating characteristics of character "
10353 "special files (e.g., terminals) may be controlled with B<ioctl>()  "
10354 "requests.  The argument I<fd> must be an open file descriptor."
10355 msgstr ""
10356
10357 #. type: Plain text
10358 #: build/C/man2/ioctl.2:69
10359 msgid ""
10360 "The second argument is a device-dependent request code.  The third argument "
10361 "is an untyped pointer to memory.  It's traditionally B<char *>I<argp> (from "
10362 "the days before B<void *> was valid C), and will be so named for this "
10363 "discussion."
10364 msgstr ""
10365
10366 #. type: Plain text
10367 #: build/C/man2/ioctl.2:85
10368 msgid ""
10369 "An B<ioctl>()  I<request> has encoded in it whether the argument is an I<in> "
10370 "parameter or I<out> parameter, and the size of the argument I<argp> in "
10371 "bytes.  Macros and defines used in specifying an B<ioctl>()  I<request> are "
10372 "located in the file I<E<lt>sys/ioctl.hE<gt>>."
10373 msgstr ""
10374
10375 #. type: Plain text
10376 #: build/C/man2/ioctl.2:94
10377 msgid ""
10378 "Usually, on success zero is returned.  A few B<ioctl>()  requests use the "
10379 "return value as an output parameter and return a nonnegative value on "
10380 "success.  On error, -1 is returned, and I<errno> is set appropriately."
10381 msgstr ""
10382
10383 #. type: Plain text
10384 #: build/C/man2/ioctl.2:99 build/C/man2/truncate.2:192
10385 msgid "I<fd> is not a valid descriptor."
10386 msgstr ""
10387
10388 #. type: Plain text
10389 #: build/C/man2/ioctl.2:103
10390 msgid "I<argp> references an inaccessible memory area."
10391 msgstr ""
10392
10393 #. type: Plain text
10394 #: build/C/man2/ioctl.2:109
10395 msgid "I<request> or I<argp> is not valid."
10396 msgstr ""
10397
10398 #. type: Plain text
10399 #: build/C/man2/ioctl.2:113
10400 msgid "I<fd> is not associated with a character special device."
10401 msgstr ""
10402
10403 #. type: Plain text
10404 #: build/C/man2/ioctl.2:119
10405 msgid ""
10406 "The specified request does not apply to the kind of object that the "
10407 "descriptor I<fd> references."
10408 msgstr ""
10409
10410 #. type: Plain text
10411 #: build/C/man2/ioctl.2:134
10412 msgid ""
10413 "No single standard.  Arguments, returns, and semantics of B<ioctl>()  vary "
10414 "according to the device driver in question (the call is used as a catch-all "
10415 "for operations that don't cleanly fit the UNIX stream I/O model).  See "
10416 "B<ioctl_list>(2)  for a list of many of the known B<ioctl>()  calls.  The "
10417 "B<ioctl>()  function call appeared in Version 7 AT&T UNIX."
10418 msgstr ""
10419
10420 #. type: Plain text
10421 #: build/C/man2/ioctl.2:142
10422 msgid ""
10423 "In order to use this call, one needs an open file descriptor.  Often the "
10424 "B<open>(2)  call has unwanted side effects, that can be avoided under Linux "
10425 "by giving it the B<O_NONBLOCK> flag."
10426 msgstr ""
10427
10428 #.  .BR mt (4),
10429 #. type: Plain text
10430 #: build/C/man2/ioctl.2:149
10431 msgid "B<execve>(2), B<fcntl>(2), B<ioctl_list>(2), B<open>(2), B<sd>(4), B<tty>(4)"
10432 msgstr ""
10433
10434 #. type: TH
10435 #: build/C/man2/ioctl_list.2:30
10436 #, no-wrap
10437 msgid "IOCTL_LIST"
10438 msgstr ""
10439
10440 #. type: TH
10441 #: build/C/man2/ioctl_list.2:30
10442 #, no-wrap
10443 msgid "2013-09-17"
10444 msgstr ""
10445
10446 #. type: Plain text
10447 #: build/C/man2/ioctl_list.2:33
10448 msgid "ioctl_list - list of ioctl calls in Linux/i386 kernel"
10449 msgstr ""
10450
10451 #. type: Plain text
10452 #: build/C/man2/ioctl_list.2:40
10453 msgid ""
10454 "This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel "
10455 "1.3.27.  It contains 421 ioctls from "
10456 "I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>.  For each ioctl, its numerical "
10457 "value, its name, and its argument type are given."
10458 msgstr ""
10459
10460 #. type: Plain text
10461 #: build/C/man2/ioctl_list.2:48
10462 msgid ""
10463 "An argument type of I<const struct foo\\ *> means the argument is input to "
10464 "the kernel.  I<struct foo\\ *> means the kernel outputs the argument.  If "
10465 "the kernel uses the argument for both input and output, this is marked with "
10466 "I<//\\ I-O>."
10467 msgstr ""
10468
10469 #. type: Plain text
10470 #: build/C/man2/ioctl_list.2:53
10471 msgid ""
10472 "Some ioctls take more arguments or return more values than a single "
10473 "structure.  These are marked I<//\\ MORE> and documented further in a "
10474 "separate section."
10475 msgstr ""
10476
10477 #. type: Plain text
10478 #: build/C/man2/ioctl_list.2:55
10479 msgid "This list is very incomplete."
10480 msgstr ""
10481
10482 #. type: SS
10483 #: build/C/man2/ioctl_list.2:55
10484 #, no-wrap
10485 msgid "ioctl structure"
10486 msgstr ""
10487
10488 #.  added two sections - aeb
10489 #. type: Plain text
10490 #: build/C/man2/ioctl_list.2:60
10491 msgid ""
10492 "Ioctl command values are 32-bit constants.  In principle these constants are "
10493 "completely arbitrary, but people have tried to build some structure into "
10494 "them."
10495 msgstr ""
10496
10497 #. type: Plain text
10498 #: build/C/man2/ioctl_list.2:79
10499 msgid ""
10500 "The old Linux situation was that of mostly 16-bit constants, where the last "
10501 "byte is a serial number, and the preceding byte(s) give a type indicating "
10502 "the driver.  Sometimes the major number was used: 0x03 for the B<HDIO_*> "
10503 "ioctls, 0x06 for the B<LP*> ioctls.  And sometimes one or more ASCII letters "
10504 "were used.  For example, B<TCGETS> has value 0x00005401, with 0x54 = "
10505 "\\(aqT\\(aq indicating the terminal driver, and B<CYGETTIMEOUT> has value "
10506 "0x00435906, with 0x43 0x59 = \\(aqC\\(aq \\(aqY\\(aq indicating the cyclades "
10507 "driver."
10508 msgstr ""
10509
10510 #. type: Plain text
10511 #: build/C/man2/ioctl_list.2:87
10512 msgid ""
10513 "Later (0.98p5) some more information was built into the number.  One has 2 "
10514 "direction bits (00: none, 01: write, 10: read, 11: read/write)  followed by "
10515 "14 size bits (giving the size of the argument), followed by an 8-bit type "
10516 "(collecting the ioctls in groups for a common purpose or a common driver), "
10517 "and an 8-bit serial number."
10518 msgstr ""
10519
10520 #. type: Plain text
10521 #: build/C/man2/ioctl_list.2:98
10522 msgid ""
10523 "The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and "
10524 "are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>.  They use "
10525 "I<sizeof(size)> so that size is a misnomer here: this third argument is a "
10526 "data type."
10527 msgstr ""
10528
10529 #. type: Plain text
10530 #: build/C/man2/ioctl_list.2:103
10531 msgid ""
10532 "Note that the size bits are very unreliable: in lots of cases they are "
10533 "wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or "
10534 "because of legacy values."
10535 msgstr ""
10536
10537 #. type: Plain text
10538 #: build/C/man2/ioctl_list.2:107
10539 msgid ""
10540 "Thus, it seems that the new structure only gave disadvantages: it does not "
10541 "help in checking, but it causes varying values for the various "
10542 "architectures."
10543 msgstr ""
10544
10545 #. type: Plain text
10546 #: build/C/man2/ioctl_list.2:113
10547 msgid ""
10548 "Decent ioctls return 0 on success and -1 on error, while any output value is "
10549 "stored via the argument.  However, quite a few ioctls in fact return an "
10550 "output value.  This is not yet indicated below."
10551 msgstr ""
10552
10553 #. type: Plain text
10554 #: build/C/man2/ioctl_list.2:115
10555 msgid "// Main table."
10556 msgstr ""
10557
10558 #. type: Plain text
10559 #: build/C/man2/ioctl_list.2:117
10560 msgid "// E<lt>include/asm-i386/socket.hE<gt>"
10561 msgstr ""
10562
10563 #. type: tbl table
10564 #: build/C/man2/ioctl_list.2:119
10565 #, no-wrap
10566 msgid "0x00008901\tFIOSETOWN\tconst int *\n"
10567 msgstr ""
10568
10569 #. type: tbl table
10570 #: build/C/man2/ioctl_list.2:120
10571 #, no-wrap
10572 msgid "0x00008902\tSIOCSPGRP\tconst int *\n"
10573 msgstr ""
10574
10575 #. type: tbl table
10576 #: build/C/man2/ioctl_list.2:121
10577 #, no-wrap
10578 msgid "0x00008903\tFIOGETOWN\tint *\n"
10579 msgstr ""
10580
10581 #. type: tbl table
10582 #: build/C/man2/ioctl_list.2:122
10583 #, no-wrap
10584 msgid "0x00008904\tSIOCGPGRP\tint *\n"
10585 msgstr ""
10586
10587 #. type: tbl table
10588 #: build/C/man2/ioctl_list.2:123
10589 #, no-wrap
10590 msgid "0x00008905\tSIOCATMAR\tint *\n"
10591 msgstr ""
10592
10593 #. type: tbl table
10594 #: build/C/man2/ioctl_list.2:124
10595 #, no-wrap
10596 msgid "0x00008906\tSIOCGSTAMP\ttimeval *\n"
10597 msgstr ""
10598
10599 #. type: Plain text
10600 #: build/C/man2/ioctl_list.2:128
10601 msgid "// E<lt>include/asm-i386/termios.hE<gt>"
10602 msgstr ""
10603
10604 #. type: tbl table
10605 #: build/C/man2/ioctl_list.2:130
10606 #, no-wrap
10607 msgid "0x00005401\tTCGETS\tstruct termios *\n"
10608 msgstr ""
10609
10610 #. type: tbl table
10611 #: build/C/man2/ioctl_list.2:131
10612 #, no-wrap
10613 msgid "0x00005402\tTCSETS\tconst struct termios *\n"
10614 msgstr ""
10615
10616 #. type: tbl table
10617 #: build/C/man2/ioctl_list.2:132
10618 #, no-wrap
10619 msgid "0x00005403\tTCSETSW\tconst struct termios *\n"
10620 msgstr ""
10621
10622 #. type: tbl table
10623 #: build/C/man2/ioctl_list.2:133
10624 #, no-wrap
10625 msgid "0x00005404\tTCSETSF\tconst struct termios *\n"
10626 msgstr ""
10627
10628 #. type: tbl table
10629 #: build/C/man2/ioctl_list.2:134
10630 #, no-wrap
10631 msgid "0x00005405\tTCGETA\tstruct termio *\n"
10632 msgstr ""
10633
10634 #. type: tbl table
10635 #: build/C/man2/ioctl_list.2:135
10636 #, no-wrap
10637 msgid "0x00005406\tTCSETA\tconst struct termio *\n"
10638 msgstr ""
10639
10640 #. type: tbl table
10641 #: build/C/man2/ioctl_list.2:136
10642 #, no-wrap
10643 msgid "0x00005407\tTCSETAW\tconst struct termio *\n"
10644 msgstr ""
10645
10646 #. type: tbl table
10647 #: build/C/man2/ioctl_list.2:137
10648 #, no-wrap
10649 msgid "0x00005408\tTCSETAF\tconst struct termio *\n"
10650 msgstr ""
10651
10652 #. type: tbl table
10653 #: build/C/man2/ioctl_list.2:138
10654 #, no-wrap
10655 msgid "0x00005409\tTCSBRK\tint\n"
10656 msgstr ""
10657
10658 #. type: tbl table
10659 #: build/C/man2/ioctl_list.2:139
10660 #, no-wrap
10661 msgid "0x0000540A\tTCXONC\tint\n"
10662 msgstr ""
10663
10664 #. type: tbl table
10665 #: build/C/man2/ioctl_list.2:140
10666 #, no-wrap
10667 msgid "0x0000540B\tTCFLSH\tint\n"
10668 msgstr ""
10669
10670 #. type: tbl table
10671 #: build/C/man2/ioctl_list.2:141
10672 #, no-wrap
10673 msgid "0x0000540C\tTIOCEXCL\tvoid\n"
10674 msgstr ""
10675
10676 #. type: tbl table
10677 #: build/C/man2/ioctl_list.2:142
10678 #, no-wrap
10679 msgid "0x0000540D\tTIOCNXCL\tvoid\n"
10680 msgstr ""
10681
10682 #. type: tbl table
10683 #: build/C/man2/ioctl_list.2:143
10684 #, no-wrap
10685 msgid "0x0000540E\tTIOCSCTTY\tint\n"
10686 msgstr ""
10687
10688 #. type: tbl table
10689 #: build/C/man2/ioctl_list.2:144
10690 #, no-wrap
10691 msgid "0x0000540F\tTIOCGPGRP\tpid_t *\n"
10692 msgstr ""
10693
10694 #. type: tbl table
10695 #: build/C/man2/ioctl_list.2:145
10696 #, no-wrap
10697 msgid "0x00005410\tTIOCSPGRP\tconst pid_t *\n"
10698 msgstr ""
10699
10700 #. type: tbl table
10701 #: build/C/man2/ioctl_list.2:146
10702 #, no-wrap
10703 msgid "0x00005411\tTIOCOUTQ\tint *\n"
10704 msgstr ""
10705
10706 #. type: tbl table
10707 #: build/C/man2/ioctl_list.2:147
10708 #, no-wrap
10709 msgid "0x00005412\tTIOCSTI\tconst char *\n"
10710 msgstr ""
10711
10712 #. type: tbl table
10713 #: build/C/man2/ioctl_list.2:148
10714 #, no-wrap
10715 msgid "0x00005413\tTIOCGWINSZ\tstruct winsize *\n"
10716 msgstr ""
10717
10718 #. type: tbl table
10719 #: build/C/man2/ioctl_list.2:149
10720 #, no-wrap
10721 msgid "0x00005414\tTIOCSWINSZ\tconst struct winsize *\n"
10722 msgstr ""
10723
10724 #. type: tbl table
10725 #: build/C/man2/ioctl_list.2:150
10726 #, no-wrap
10727 msgid "0x00005415\tTIOCMGET\tint *\n"
10728 msgstr ""
10729
10730 #. type: tbl table
10731 #: build/C/man2/ioctl_list.2:151
10732 #, no-wrap
10733 msgid "0x00005416\tTIOCMBIS\tconst int *\n"
10734 msgstr ""
10735
10736 #. type: tbl table
10737 #: build/C/man2/ioctl_list.2:152
10738 #, no-wrap
10739 msgid "0x00005417\tTIOCMBIC\tconst int *\n"
10740 msgstr ""
10741
10742 #. type: tbl table
10743 #: build/C/man2/ioctl_list.2:153
10744 #, no-wrap
10745 msgid "0x00005418\tTIOCMSET\tconst int *\n"
10746 msgstr ""
10747
10748 #. type: tbl table
10749 #: build/C/man2/ioctl_list.2:154
10750 #, no-wrap
10751 msgid "0x00005419\tTIOCGSOFTCAR\tint *\n"
10752 msgstr ""
10753
10754 #. type: tbl table
10755 #: build/C/man2/ioctl_list.2:155
10756 #, no-wrap
10757 msgid "0x0000541A\tTIOCSSOFTCAR\tconst int *\n"
10758 msgstr ""
10759
10760 #. type: tbl table
10761 #: build/C/man2/ioctl_list.2:156
10762 #, no-wrap
10763 msgid "0x0000541B\tFIONREAD\tint *\n"
10764 msgstr ""
10765
10766 #. type: tbl table
10767 #: build/C/man2/ioctl_list.2:157
10768 #, no-wrap
10769 msgid "0x0000541B\tTIOCINQ\tint *\n"
10770 msgstr ""
10771
10772 #. type: tbl table
10773 #: build/C/man2/ioctl_list.2:158
10774 #, no-wrap
10775 msgid "0x0000541C\tTIOCLINUX\tconst char *\t// MORE\n"
10776 msgstr ""
10777
10778 #. type: tbl table
10779 #: build/C/man2/ioctl_list.2:159
10780 #, no-wrap
10781 msgid "0x0000541D\tTIOCCONS\tvoid\n"
10782 msgstr ""
10783
10784 #. type: tbl table
10785 #: build/C/man2/ioctl_list.2:160
10786 #, no-wrap
10787 msgid "0x0000541E\tTIOCGSERIAL\tstruct serial_struct *\n"
10788 msgstr ""
10789
10790 #. type: tbl table
10791 #: build/C/man2/ioctl_list.2:161
10792 #, no-wrap
10793 msgid "0x0000541F\tTIOCSSERIAL\tconst struct serial_struct *\n"
10794 msgstr ""
10795
10796 #. type: tbl table
10797 #: build/C/man2/ioctl_list.2:162
10798 #, no-wrap
10799 msgid "0x00005420\tTIOCPKT\tconst int *\n"
10800 msgstr ""
10801
10802 #. type: tbl table
10803 #: build/C/man2/ioctl_list.2:163
10804 #, no-wrap
10805 msgid "0x00005421\tFIONBIO\tconst int *\n"
10806 msgstr ""
10807
10808 #. type: tbl table
10809 #: build/C/man2/ioctl_list.2:164
10810 #, no-wrap
10811 msgid "0x00005422\tTIOCNOTTY\tvoid\n"
10812 msgstr ""
10813
10814 #. type: tbl table
10815 #: build/C/man2/ioctl_list.2:165
10816 #, no-wrap
10817 msgid "0x00005423\tTIOCSETD\tconst int *\n"
10818 msgstr ""
10819
10820 #. type: tbl table
10821 #: build/C/man2/ioctl_list.2:166
10822 #, no-wrap
10823 msgid "0x00005424\tTIOCGETD\tint *\n"
10824 msgstr ""
10825
10826 #. type: tbl table
10827 #: build/C/man2/ioctl_list.2:167
10828 #, no-wrap
10829 msgid "0x00005425\tTCSBRKP\tint\n"
10830 msgstr ""
10831
10832 #. type: tbl table
10833 #: build/C/man2/ioctl_list.2:168
10834 #, no-wrap
10835 msgid "0x00005426\tTIOCTTYGSTRUCT\tstruct tty_struct *\n"
10836 msgstr ""
10837
10838 #. type: tbl table
10839 #: build/C/man2/ioctl_list.2:169
10840 #, no-wrap
10841 msgid "0x00005450\tFIONCLEX\tvoid\n"
10842 msgstr ""
10843
10844 #. type: tbl table
10845 #: build/C/man2/ioctl_list.2:170
10846 #, no-wrap
10847 msgid "0x00005451\tFIOCLEX\tvoid\n"
10848 msgstr ""
10849
10850 #. type: tbl table
10851 #: build/C/man2/ioctl_list.2:171
10852 #, no-wrap
10853 msgid "0x00005452\tFIOASYNC\tconst int *\n"
10854 msgstr ""
10855
10856 #. type: tbl table
10857 #: build/C/man2/ioctl_list.2:172
10858 #, no-wrap
10859 msgid "0x00005453\tTIOCSERCONFIG\tvoid\n"
10860 msgstr ""
10861
10862 #. type: tbl table
10863 #: build/C/man2/ioctl_list.2:173
10864 #, no-wrap
10865 msgid "0x00005454\tTIOCSERGWILD\tint *\n"
10866 msgstr ""
10867
10868 #. type: tbl table
10869 #: build/C/man2/ioctl_list.2:174
10870 #, no-wrap
10871 msgid "0x00005455\tTIOCSERSWILD\tconst int *\n"
10872 msgstr ""
10873
10874 #. type: tbl table
10875 #: build/C/man2/ioctl_list.2:175
10876 #, no-wrap
10877 msgid "0x00005456\tTIOCGLCKTRMIOS\tstruct termios *\n"
10878 msgstr ""
10879
10880 #. type: tbl table
10881 #: build/C/man2/ioctl_list.2:176
10882 #, no-wrap
10883 msgid "0x00005457\tTIOCSLCKTRMIOS\tconst struct termios *\n"
10884 msgstr ""
10885
10886 #. type: tbl table
10887 #: build/C/man2/ioctl_list.2:177
10888 #, no-wrap
10889 msgid "0x00005458\tTIOCSERGSTRUCT\tstruct async_struct *\n"
10890 msgstr ""
10891
10892 #. type: tbl table
10893 #: build/C/man2/ioctl_list.2:178
10894 #, no-wrap
10895 msgid "0x00005459\tTIOCSERGETLSR\tint *\n"
10896 msgstr ""
10897
10898 #. type: tbl table
10899 #: build/C/man2/ioctl_list.2:185
10900 #, no-wrap
10901 msgid "0x0000545A\tTIOCSERGETMULTI\tstruct serial_multiport_struct *\n"
10902 msgstr ""
10903
10904 #. type: tbl table
10905 #: build/C/man2/ioctl_list.2:186
10906 #, no-wrap
10907 msgid "0x0000545B\tTIOCSERSETMULTI\tconst struct serial_multiport_struct *\n"
10908 msgstr ""
10909
10910 #. type: Plain text
10911 #: build/C/man2/ioctl_list.2:190
10912 msgid "// E<lt>include/linux/ax25.hE<gt>"
10913 msgstr ""
10914
10915 #. type: tbl table
10916 #: build/C/man2/ioctl_list.2:192
10917 #, no-wrap
10918 msgid "0x000089E0\tSIOCAX25GETUID\tconst struct sockaddr_ax25 *\n"
10919 msgstr ""
10920
10921 #. type: tbl table
10922 #: build/C/man2/ioctl_list.2:193
10923 #, no-wrap
10924 msgid "0x000089E1\tSIOCAX25ADDUID\tconst struct sockaddr_ax25 *\n"
10925 msgstr ""
10926
10927 #. type: tbl table
10928 #: build/C/man2/ioctl_list.2:194
10929 #, no-wrap
10930 msgid "0x000089E2\tSIOCAX25DELUID\tconst struct sockaddr_ax25 *\n"
10931 msgstr ""
10932
10933 #. type: tbl table
10934 #: build/C/man2/ioctl_list.2:195
10935 #, no-wrap
10936 msgid "0x000089E3\tSIOCAX25NOUID\tconst int *\n"
10937 msgstr ""
10938
10939 #. type: tbl table
10940 #: build/C/man2/ioctl_list.2:196
10941 #, no-wrap
10942 msgid "0x000089E4\tSIOCAX25DIGCTL\tconst int *\n"
10943 msgstr ""
10944
10945 #. type: tbl table
10946 #: build/C/man2/ioctl_list.2:197
10947 #, no-wrap
10948 msgid "0x000089E5\tSIOCAX25GETPARMS\tstruct ax25_parms_struct *\t// I-O\n"
10949 msgstr ""
10950
10951 #. type: tbl table
10952 #: build/C/man2/ioctl_list.2:201
10953 #, no-wrap
10954 msgid "0x000089E6\tSIOCAX25SETPARMS\tconst struct ax25_parms_struct *\n"
10955 msgstr ""
10956
10957 #. type: Plain text
10958 #: build/C/man2/ioctl_list.2:205
10959 msgid "// E<lt>include/linux/cdk.hE<gt>"
10960 msgstr ""
10961
10962 #. type: tbl table
10963 #: build/C/man2/ioctl_list.2:207
10964 #, no-wrap
10965 msgid "0x00007314\tSTL_BINTR\tvoid\n"
10966 msgstr ""
10967
10968 #. type: tbl table
10969 #: build/C/man2/ioctl_list.2:208
10970 #, no-wrap
10971 msgid "0x00007315\tSTL_BSTART\tvoid\n"
10972 msgstr ""
10973
10974 #. type: tbl table
10975 #: build/C/man2/ioctl_list.2:209
10976 #, no-wrap
10977 msgid "0x00007316\tSTL_BSTOP\tvoid\n"
10978 msgstr ""
10979
10980 #. type: tbl table
10981 #: build/C/man2/ioctl_list.2:210
10982 #, no-wrap
10983 msgid "0x00007317\tSTL_BRESET\tvoid\n"
10984 msgstr ""
10985
10986 #. type: Plain text
10987 #: build/C/man2/ioctl_list.2:214
10988 msgid "// E<lt>include/linux/cdrom.hE<gt>"
10989 msgstr ""
10990
10991 #. type: tbl table
10992 #: build/C/man2/ioctl_list.2:216
10993 #, no-wrap
10994 msgid "0x00005301\tCDROMPAUSE\tvoid\n"
10995 msgstr ""
10996
10997 #. type: tbl table
10998 #: build/C/man2/ioctl_list.2:217
10999 #, no-wrap
11000 msgid "0x00005302\tCDROMRESUME\tvoid\n"
11001 msgstr ""
11002
11003 #. type: tbl table
11004 #: build/C/man2/ioctl_list.2:218
11005 #, no-wrap
11006 msgid "0x00005303\tCDROMPLAYMSF\tconst struct cdrom_msf *\n"
11007 msgstr ""
11008
11009 #. type: tbl table
11010 #: build/C/man2/ioctl_list.2:219
11011 #, no-wrap
11012 msgid "0x00005304\tCDROMPLAYTRKIND\tconst struct cdrom_ti *\n"
11013 msgstr ""
11014
11015 #. type: tbl table
11016 #: build/C/man2/ioctl_list.2:220
11017 #, no-wrap
11018 msgid "0x00005305\tCDROMREADTOCHDR\tstruct cdrom_tochdr *\n"
11019 msgstr ""
11020
11021 #. type: tbl table
11022 #: build/C/man2/ioctl_list.2:224
11023 #, no-wrap
11024 msgid "0x00005306\tCDROMREADTOCENTRY\tstruct cdrom_tocentry *\t// I-O\n"
11025 msgstr ""
11026
11027 #. type: tbl table
11028 #: build/C/man2/ioctl_list.2:228
11029 #, no-wrap
11030 msgid "0x00005307\tCDROMSTOP\tvoid\n"
11031 msgstr ""
11032
11033 #. type: tbl table
11034 #: build/C/man2/ioctl_list.2:229
11035 #, no-wrap
11036 msgid "0x00005308\tCDROMSTART\tvoid\n"
11037 msgstr ""
11038
11039 #. type: tbl table
11040 #: build/C/man2/ioctl_list.2:230
11041 #, no-wrap
11042 msgid "0x00005309\tCDROMEJECT\tvoid\n"
11043 msgstr ""
11044
11045 #. type: tbl table
11046 #: build/C/man2/ioctl_list.2:231
11047 #, no-wrap
11048 msgid "0x0000530A\tCDROMVOLCTRL\tconst struct cdrom_volctrl *\n"
11049 msgstr ""
11050
11051 #. type: tbl table
11052 #: build/C/man2/ioctl_list.2:232
11053 #, no-wrap
11054 msgid "0x0000530B\tCDROMSUBCHNL\tstruct cdrom_subchnl *\t// I-O\n"
11055 msgstr ""
11056
11057 #. type: tbl table
11058 #: build/C/man2/ioctl_list.2:233
11059 #, no-wrap
11060 msgid "0x0000530C\tCDROMREADMODE2\tconst struct cdrom_msf *\t// MORE\n"
11061 msgstr ""
11062
11063 #. type: tbl table
11064 #: build/C/man2/ioctl_list.2:234
11065 #, no-wrap
11066 msgid "0x0000530D\tCDROMREADMODE1\tconst struct cdrom_msf *\t// MORE\n"
11067 msgstr ""
11068
11069 #. type: tbl table
11070 #: build/C/man2/ioctl_list.2:235
11071 #, no-wrap
11072 msgid "0x0000530E\tCDROMREADAUDIO\tconst struct cdrom_read_audio *\t// MORE\n"
11073 msgstr ""
11074
11075 #. type: tbl table
11076 #: build/C/man2/ioctl_list.2:236
11077 #, no-wrap
11078 msgid "0x0000530F\tCDROMEJECT_SW\tint\n"
11079 msgstr ""
11080
11081 #. type: tbl table
11082 #: build/C/man2/ioctl_list.2:240
11083 #, no-wrap
11084 msgid "0x00005310\tCDROMMULTISESSION\tstruct cdrom_multisession *\t// I-O\n"
11085 msgstr ""
11086
11087 #. type: tbl table
11088 #: build/C/man2/ioctl_list.2:244
11089 #, no-wrap
11090 msgid "0x00005311\tCDROM_GET_UPC\tstruct { char [8]; } *\n"
11091 msgstr ""
11092
11093 #. type: tbl table
11094 #: build/C/man2/ioctl_list.2:245
11095 #, no-wrap
11096 msgid "0x00005312\tCDROMRESET\tvoid\n"
11097 msgstr ""
11098
11099 #. type: tbl table
11100 #: build/C/man2/ioctl_list.2:246
11101 #, no-wrap
11102 msgid "0x00005313\tCDROMVOLREAD\tstruct cdrom_volctrl *\n"
11103 msgstr ""
11104
11105 #. type: tbl table
11106 #: build/C/man2/ioctl_list.2:247
11107 #, no-wrap
11108 msgid "0x00005314\tCDROMREADRAW\tconst struct cdrom_msf *\t// MORE\n"
11109 msgstr ""
11110
11111 #. type: tbl table
11112 #: build/C/man2/ioctl_list.2:248
11113 #, no-wrap
11114 msgid "0x00005315\tCDROMREADCOOKED\tconst struct cdrom_msf *\t// MORE\n"
11115 msgstr ""
11116
11117 #. type: tbl table
11118 #: build/C/man2/ioctl_list.2:249
11119 #, no-wrap
11120 msgid "0x00005316\tCDROMSEEK\tconst struct cdrom_msf *\n"
11121 msgstr ""
11122
11123 #. type: Plain text
11124 #: build/C/man2/ioctl_list.2:253
11125 msgid "// E<lt>include/linux/cm206.hE<gt>"
11126 msgstr ""
11127
11128 #. type: tbl table
11129 #: build/C/man2/ioctl_list.2:255
11130 #, no-wrap
11131 msgid "0x00002000\tCM206CTL_GET_STAT\tint\n"
11132 msgstr ""
11133
11134 #. type: tbl table
11135 #: build/C/man2/ioctl_list.2:256
11136 #, no-wrap
11137 msgid "0x00002001\tCM206CTL_GET_LAST_STAT\tint\n"
11138 msgstr ""
11139
11140 #. type: Plain text
11141 #: build/C/man2/ioctl_list.2:260
11142 msgid "// E<lt>include/linux/cyclades.hE<gt>"
11143 msgstr ""
11144
11145 #. type: tbl table
11146 #: build/C/man2/ioctl_list.2:262
11147 #, no-wrap
11148 msgid "0x00435901\tCYGETMON\tstruct cyclades_monitor *\n"
11149 msgstr ""
11150
11151 #. type: tbl table
11152 #: build/C/man2/ioctl_list.2:263
11153 #, no-wrap
11154 msgid "0x00435902\tCYGETTHRESH\tint *\n"
11155 msgstr ""
11156
11157 #. type: tbl table
11158 #: build/C/man2/ioctl_list.2:264
11159 #, no-wrap
11160 msgid "0x00435903\tCYSETTHRESH\tint\n"
11161 msgstr ""
11162
11163 #. type: tbl table
11164 #: build/C/man2/ioctl_list.2:265
11165 #, no-wrap
11166 msgid "0x00435904\tCYGETDEFTHRESH\tint *\n"
11167 msgstr ""
11168
11169 #. type: tbl table
11170 #: build/C/man2/ioctl_list.2:266
11171 #, no-wrap
11172 msgid "0x00435905\tCYSETDEFTHRESH\tint\n"
11173 msgstr ""
11174
11175 #. type: tbl table
11176 #: build/C/man2/ioctl_list.2:267
11177 #, no-wrap
11178 msgid "0x00435906\tCYGETTIMEOUT\tint *\n"
11179 msgstr ""
11180
11181 #. type: tbl table
11182 #: build/C/man2/ioctl_list.2:268
11183 #, no-wrap
11184 msgid "0x00435907\tCYSETTIMEOUT\tint\n"
11185 msgstr ""
11186
11187 #. type: tbl table
11188 #: build/C/man2/ioctl_list.2:269
11189 #, no-wrap
11190 msgid "0x00435908\tCYGETDEFTIMEOUT\tint *\n"
11191 msgstr ""
11192
11193 #. type: tbl table
11194 #: build/C/man2/ioctl_list.2:270
11195 #, no-wrap
11196 msgid "0x00435909\tCYSETDEFTIMEOUT\tint\n"
11197 msgstr ""
11198
11199 #. type: Plain text
11200 #: build/C/man2/ioctl_list.2:274
11201 msgid "// E<lt>include/linux/ext2_fs.hE<gt>"
11202 msgstr ""
11203
11204 #. type: tbl table
11205 #: build/C/man2/ioctl_list.2:276
11206 #, no-wrap
11207 msgid "0x80046601\tEXT2_IOC_GETFLAGS\tint *\n"
11208 msgstr ""
11209
11210 #. type: tbl table
11211 #: build/C/man2/ioctl_list.2:277
11212 #, no-wrap
11213 msgid "0x40046602\tEXT2_IOC_SETFLAGS\tconst int *\n"
11214 msgstr ""
11215
11216 #. type: tbl table
11217 #: build/C/man2/ioctl_list.2:278
11218 #, no-wrap
11219 msgid "0x80047601\tEXT2_IOC_GETVERSION\tint *\n"
11220 msgstr ""
11221
11222 #. type: tbl table
11223 #: build/C/man2/ioctl_list.2:279
11224 #, no-wrap
11225 msgid "0x40047602\tEXT2_IOC_SETVERSION\tconst int *\n"
11226 msgstr ""
11227
11228 #. type: Plain text
11229 #: build/C/man2/ioctl_list.2:283
11230 msgid "// E<lt>include/linux/fd.hE<gt>"
11231 msgstr ""
11232
11233 #. type: tbl table
11234 #: build/C/man2/ioctl_list.2:285
11235 #, no-wrap
11236 msgid "0x00000000\tFDCLRPRM\tvoid\n"
11237 msgstr ""
11238
11239 #. type: tbl table
11240 #: build/C/man2/ioctl_list.2:286
11241 #, no-wrap
11242 msgid "0x00000001\tFDSETPRM\tconst struct floppy_struct *\n"
11243 msgstr ""
11244
11245 #. type: tbl table
11246 #: build/C/man2/ioctl_list.2:287
11247 #, no-wrap
11248 msgid "0x00000002\tFDDEFPRM\tconst struct floppy_struct *\n"
11249 msgstr ""
11250
11251 #. type: tbl table
11252 #: build/C/man2/ioctl_list.2:288
11253 #, no-wrap
11254 msgid "0x00000003\tFDGETPRM\tstruct floppy_struct *\n"
11255 msgstr ""
11256
11257 #. type: tbl table
11258 #: build/C/man2/ioctl_list.2:289
11259 #, no-wrap
11260 msgid "0x00000004\tFDMSGON\tvoid\n"
11261 msgstr ""
11262
11263 #. type: tbl table
11264 #: build/C/man2/ioctl_list.2:290
11265 #, no-wrap
11266 msgid "0x00000005\tFDMSGOFF\tvoid\n"
11267 msgstr ""
11268
11269 #. type: tbl table
11270 #: build/C/man2/ioctl_list.2:291
11271 #, no-wrap
11272 msgid "0x00000006\tFDFMTBEG\tvoid\n"
11273 msgstr ""
11274
11275 #. type: tbl table
11276 #: build/C/man2/ioctl_list.2:292
11277 #, no-wrap
11278 msgid "0x00000007\tFDFMTTRK\tconst struct format_descr *\n"
11279 msgstr ""
11280
11281 #. type: tbl table
11282 #: build/C/man2/ioctl_list.2:293
11283 #, no-wrap
11284 msgid "0x00000008\tFDFMTEND\tvoid\n"
11285 msgstr ""
11286
11287 #. type: tbl table
11288 #: build/C/man2/ioctl_list.2:294
11289 #, no-wrap
11290 msgid "0x0000000A\tFDSETEMSGTRESH\tint\n"
11291 msgstr ""
11292
11293 #. type: tbl table
11294 #: build/C/man2/ioctl_list.2:295
11295 #, no-wrap
11296 msgid "0x0000000B\tFDFLUSH\tvoid\n"
11297 msgstr ""
11298
11299 #. type: tbl table
11300 #: build/C/man2/ioctl_list.2:296
11301 #, no-wrap
11302 msgid "0x0000000C\tFDSETMAXERRS\tconst struct floppy_max_errors *\n"
11303 msgstr ""
11304
11305 #. type: tbl table
11306 #: build/C/man2/ioctl_list.2:297
11307 #, no-wrap
11308 msgid "0x0000000E\tFDGETMAXERRS\tstruct floppy_max_errors *\n"
11309 msgstr ""
11310
11311 #. type: tbl table
11312 #: build/C/man2/ioctl_list.2:298
11313 #, no-wrap
11314 msgid "0x00000010\tFDGETDRVTYP\tstruct { char [16]; } *\n"
11315 msgstr ""
11316
11317 #. type: tbl table
11318 #: build/C/man2/ioctl_list.2:299
11319 #, no-wrap
11320 msgid "0x00000014\tFDSETDRVPRM\tconst struct floppy_drive_params *\n"
11321 msgstr ""
11322
11323 #. type: tbl table
11324 #: build/C/man2/ioctl_list.2:300
11325 #, no-wrap
11326 msgid "0x00000015\tFDGETDRVPRM\tstruct floppy_drive_params *\n"
11327 msgstr ""
11328
11329 #. type: tbl table
11330 #: build/C/man2/ioctl_list.2:301
11331 #, no-wrap
11332 msgid "0x00000016\tFDGETDRVSTAT\tstruct floppy_drive_struct *\n"
11333 msgstr ""
11334
11335 #. type: tbl table
11336 #: build/C/man2/ioctl_list.2:302
11337 #, no-wrap
11338 msgid "0x00000017\tFDPOLLDRVSTAT\tstruct floppy_drive_struct *\n"
11339 msgstr ""
11340
11341 #. type: tbl table
11342 #: build/C/man2/ioctl_list.2:303
11343 #, no-wrap
11344 msgid "0x00000018\tFDRESET\tint\n"
11345 msgstr ""
11346
11347 #. type: tbl table
11348 #: build/C/man2/ioctl_list.2:304
11349 #, no-wrap
11350 msgid "0x00000019\tFDGETFDCSTAT\tstruct floppy_fdc_state *\n"
11351 msgstr ""
11352
11353 #. type: tbl table
11354 #: build/C/man2/ioctl_list.2:305
11355 #, no-wrap
11356 msgid "0x0000001B\tFDWERRORCLR\tvoid\n"
11357 msgstr ""
11358
11359 #. type: tbl table
11360 #: build/C/man2/ioctl_list.2:306
11361 #, no-wrap
11362 msgid "0x0000001C\tFDWERRORGET\tstruct floppy_write_errors *\n"
11363 msgstr ""
11364
11365 #. type: tbl table
11366 #: build/C/man2/ioctl_list.2:310
11367 #, no-wrap
11368 msgid "0x0000001E\tFDRAWCMD\tstruct floppy_raw_cmd *\t// MORE // I-O\n"
11369 msgstr ""
11370
11371 #. type: tbl table
11372 #: build/C/man2/ioctl_list.2:311
11373 #, no-wrap
11374 msgid "0x00000028\tFDTWADDLE\tvoid\n"
11375 msgstr ""
11376
11377 #. type: Plain text
11378 #: build/C/man2/ioctl_list.2:315
11379 msgid "// E<lt>include/linux/fs.hE<gt>"
11380 msgstr ""
11381
11382 #. type: tbl table
11383 #: build/C/man2/ioctl_list.2:317
11384 #, no-wrap
11385 msgid "0x0000125D\tBLKROSET\tconst int *\n"
11386 msgstr ""
11387
11388 #. type: tbl table
11389 #: build/C/man2/ioctl_list.2:318
11390 #, no-wrap
11391 msgid "0x0000125E\tBLKROGET\tint *\n"
11392 msgstr ""
11393
11394 #. type: tbl table
11395 #: build/C/man2/ioctl_list.2:319
11396 #, no-wrap
11397 msgid "0x0000125F\tBLKRRPART\tvoid\n"
11398 msgstr ""
11399
11400 #. type: tbl table
11401 #: build/C/man2/ioctl_list.2:320
11402 #, no-wrap
11403 msgid "0x00001260\tBLKGETSIZE\tunsigned long *\n"
11404 msgstr ""
11405
11406 #. type: tbl table
11407 #: build/C/man2/ioctl_list.2:321
11408 #, no-wrap
11409 msgid "0x00001261\tBLKFLSBUF\tvoid\n"
11410 msgstr ""
11411
11412 #. type: tbl table
11413 #: build/C/man2/ioctl_list.2:322
11414 #, no-wrap
11415 msgid "0x00001262\tBLKRASET\tint\n"
11416 msgstr ""
11417
11418 #. type: tbl table
11419 #: build/C/man2/ioctl_list.2:323
11420 #, no-wrap
11421 msgid "0x00001263\tBLKRAGET\tint *\n"
11422 msgstr ""
11423
11424 #. type: tbl table
11425 #: build/C/man2/ioctl_list.2:324
11426 #, no-wrap
11427 msgid "0x00000001\tFIBMAP\tint *\t// I-O\n"
11428 msgstr ""
11429
11430 #. type: tbl table
11431 #: build/C/man2/ioctl_list.2:325
11432 #, no-wrap
11433 msgid "0x00000002\tFIGETBSZ\tint *\n"
11434 msgstr ""
11435
11436 #. type: Plain text
11437 #: build/C/man2/ioctl_list.2:329
11438 msgid "// E<lt>include/linux/hdreg.hE<gt>"
11439 msgstr ""
11440
11441 #. type: tbl table
11442 #: build/C/man2/ioctl_list.2:331
11443 #, no-wrap
11444 msgid "0x00000301\tHDIO_GETGEO\tstruct hd_geometry *\n"
11445 msgstr ""
11446
11447 #. type: tbl table
11448 #: build/C/man2/ioctl_list.2:332
11449 #, no-wrap
11450 msgid "0x00000302\tHDIO_GET_UNMASKINTR\tint *\n"
11451 msgstr ""
11452
11453 #. type: tbl table
11454 #: build/C/man2/ioctl_list.2:333
11455 #, no-wrap
11456 msgid "0x00000304\tHDIO_GET_MULTCOUNT\tint *\n"
11457 msgstr ""
11458
11459 #. type: tbl table
11460 #: build/C/man2/ioctl_list.2:334
11461 #, no-wrap
11462 msgid "0x00000307\tHDIO_GET_IDENTITY\tstruct hd_driveid *\n"
11463 msgstr ""
11464
11465 #. type: tbl table
11466 #: build/C/man2/ioctl_list.2:335
11467 #, no-wrap
11468 msgid "0x00000308\tHDIO_GET_KEEPSETTINGS\tint *\n"
11469 msgstr ""
11470
11471 #. type: tbl table
11472 #: build/C/man2/ioctl_list.2:336
11473 #, no-wrap
11474 msgid "0x00000309\tHDIO_GET_CHIPSET\tint *\n"
11475 msgstr ""
11476
11477 #. type: tbl table
11478 #: build/C/man2/ioctl_list.2:337
11479 #, no-wrap
11480 msgid "0x0000030A\tHDIO_GET_NOWERR\tint *\n"
11481 msgstr ""
11482
11483 #. type: tbl table
11484 #: build/C/man2/ioctl_list.2:338
11485 #, no-wrap
11486 msgid "0x0000030B\tHDIO_GET_DMA\tint *\n"
11487 msgstr ""
11488
11489 #. type: tbl table
11490 #: build/C/man2/ioctl_list.2:339
11491 #, no-wrap
11492 msgid "0x0000031F\tHDIO_DRIVE_CMD\tint *\t// I-O\n"
11493 msgstr ""
11494
11495 #. type: tbl table
11496 #: build/C/man2/ioctl_list.2:340
11497 #, no-wrap
11498 msgid "0x00000321\tHDIO_SET_MULTCOUNT\tint\n"
11499 msgstr ""
11500
11501 #. type: tbl table
11502 #: build/C/man2/ioctl_list.2:341
11503 #, no-wrap
11504 msgid "0x00000322\tHDIO_SET_UNMASKINTR\tint\n"
11505 msgstr ""
11506
11507 #. type: tbl table
11508 #: build/C/man2/ioctl_list.2:342
11509 #, no-wrap
11510 msgid "0x00000323\tHDIO_SET_KEEPSETTINGS\tint\n"
11511 msgstr ""
11512
11513 #. type: tbl table
11514 #: build/C/man2/ioctl_list.2:343
11515 #, no-wrap
11516 msgid "0x00000324\tHDIO_SET_CHIPSET\tint\n"
11517 msgstr ""
11518
11519 #. type: tbl table
11520 #: build/C/man2/ioctl_list.2:344
11521 #, no-wrap
11522 msgid "0x00000325\tHDIO_SET_NOWERR\tint\n"
11523 msgstr ""
11524
11525 #. type: tbl table
11526 #: build/C/man2/ioctl_list.2:345
11527 #, no-wrap
11528 msgid "0x00000326\tHDIO_SET_DMA\tint\n"
11529 msgstr ""
11530
11531 #. type: Plain text
11532 #: build/C/man2/ioctl_list.2:349
11533 msgid "// E<lt>include/linux/if_eql.hE<gt>"
11534 msgstr ""
11535
11536 #. type: tbl table
11537 #: build/C/man2/ioctl_list.2:351
11538 #, no-wrap
11539 msgid "0x000089F0\tEQL_ENSLAVE\tstruct ifreq *\t// MORE // I-O\n"
11540 msgstr ""
11541
11542 #. type: tbl table
11543 #: build/C/man2/ioctl_list.2:352
11544 #, no-wrap
11545 msgid "0x000089F1\tEQL_EMANCIPATE\tstruct ifreq *\t// MORE // I-O\n"
11546 msgstr ""
11547
11548 #. type: tbl table
11549 #: build/C/man2/ioctl_list.2:353
11550 #, no-wrap
11551 msgid "0x000089F2\tEQL_GETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
11552 msgstr ""
11553
11554 #. type: tbl table
11555 #: build/C/man2/ioctl_list.2:354
11556 #, no-wrap
11557 msgid "0x000089F3\tEQL_SETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
11558 msgstr ""
11559
11560 #. type: tbl table
11561 #: build/C/man2/ioctl_list.2:355
11562 #, no-wrap
11563 msgid "0x000089F4\tEQL_GETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
11564 msgstr ""
11565
11566 #. type: tbl table
11567 #: build/C/man2/ioctl_list.2:356
11568 #, no-wrap
11569 msgid "0x000089F5\tEQL_SETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
11570 msgstr ""
11571
11572 #. type: Plain text
11573 #: build/C/man2/ioctl_list.2:360
11574 msgid "// E<lt>include/linux/if_plip.hE<gt>"
11575 msgstr ""
11576
11577 #. type: tbl table
11578 #: build/C/man2/ioctl_list.2:362
11579 #, no-wrap
11580 msgid "0x000089F0\tSIOCDEVPLIP\tstruct ifreq *\t// I-O\n"
11581 msgstr ""
11582
11583 #. type: Plain text
11584 #: build/C/man2/ioctl_list.2:366
11585 msgid "// E<lt>include/linux/if_ppp.hE<gt>"
11586 msgstr ""
11587
11588 #. type: tbl table
11589 #: build/C/man2/ioctl_list.2:368
11590 #, no-wrap
11591 msgid "0x00005490\tPPPIOCGFLAGS\tint *\n"
11592 msgstr ""
11593
11594 #. type: tbl table
11595 #: build/C/man2/ioctl_list.2:369
11596 #, no-wrap
11597 msgid "0x00005491\tPPPIOCSFLAGS\tconst int *\n"
11598 msgstr ""
11599
11600 #. type: tbl table
11601 #: build/C/man2/ioctl_list.2:370
11602 #, no-wrap
11603 msgid "0x00005492\tPPPIOCGASYNCMAP\tint *\n"
11604 msgstr ""
11605
11606 #. type: tbl table
11607 #: build/C/man2/ioctl_list.2:371
11608 #, no-wrap
11609 msgid "0x00005493\tPPPIOCSASYNCMAP\tconst int *\n"
11610 msgstr ""
11611
11612 #. type: tbl table
11613 #: build/C/man2/ioctl_list.2:372
11614 #, no-wrap
11615 msgid "0x00005494\tPPPIOCGUNIT\tint *\n"
11616 msgstr ""
11617
11618 #. type: tbl table
11619 #: build/C/man2/ioctl_list.2:373
11620 #, no-wrap
11621 msgid "0x00005495\tPPPIOCSINPSIG\tconst int *\n"
11622 msgstr ""
11623
11624 #. type: tbl table
11625 #: build/C/man2/ioctl_list.2:374
11626 #, no-wrap
11627 msgid "0x00005497\tPPPIOCSDEBUG\tconst int *\n"
11628 msgstr ""
11629
11630 #. type: tbl table
11631 #: build/C/man2/ioctl_list.2:375
11632 #, no-wrap
11633 msgid "0x00005498\tPPPIOCGDEBUG\tint *\n"
11634 msgstr ""
11635
11636 #. type: tbl table
11637 #: build/C/man2/ioctl_list.2:376
11638 #, no-wrap
11639 msgid "0x00005499\tPPPIOCGSTAT\tstruct ppp_stats *\n"
11640 msgstr ""
11641
11642 #. type: tbl table
11643 #: build/C/man2/ioctl_list.2:377
11644 #, no-wrap
11645 msgid "0x0000549A\tPPPIOCGTIME\tstruct ppp_ddinfo *\n"
11646 msgstr ""
11647
11648 #. type: tbl table
11649 #: build/C/man2/ioctl_list.2:378
11650 #, no-wrap
11651 msgid "0x0000549B\tPPPIOCGXASYNCMAP\tstruct { int [8]; } *\n"
11652 msgstr ""
11653
11654 #. type: tbl table
11655 #: build/C/man2/ioctl_list.2:379
11656 #, no-wrap
11657 msgid "0x0000549C\tPPPIOCSXASYNCMAP\tconst struct { int [8]; } *\n"
11658 msgstr ""
11659
11660 #. type: tbl table
11661 #: build/C/man2/ioctl_list.2:380
11662 #, no-wrap
11663 msgid "0x0000549D\tPPPIOCSMRU\tconst int *\n"
11664 msgstr ""
11665
11666 #. type: tbl table
11667 #: build/C/man2/ioctl_list.2:381
11668 #, no-wrap
11669 msgid "0x0000549E\tPPPIOCRASYNCMAP\tconst int *\n"
11670 msgstr ""
11671
11672 #. type: tbl table
11673 #: build/C/man2/ioctl_list.2:382
11674 #, no-wrap
11675 msgid "0x0000549F\tPPPIOCSMAXCID\tconst int *\n"
11676 msgstr ""
11677
11678 #. type: Plain text
11679 #: build/C/man2/ioctl_list.2:386
11680 msgid "// E<lt>include/linux/ipx.hE<gt>"
11681 msgstr ""
11682
11683 #. type: tbl table
11684 #: build/C/man2/ioctl_list.2:388
11685 #, no-wrap
11686 msgid "0x000089E0\tSIOCAIPXITFCRT\tconst char *\n"
11687 msgstr ""
11688
11689 #. type: tbl table
11690 #: build/C/man2/ioctl_list.2:389
11691 #, no-wrap
11692 msgid "0x000089E1\tSIOCAIPXPRISLT\tconst char *\n"
11693 msgstr ""
11694
11695 #. type: tbl table
11696 #: build/C/man2/ioctl_list.2:390
11697 #, no-wrap
11698 msgid "0x000089E2\tSIOCIPXCFGDATA\tstruct ipx_config_data *\n"
11699 msgstr ""
11700
11701 #. type: Plain text
11702 #: build/C/man2/ioctl_list.2:394
11703 msgid "// E<lt>include/linux/kd.hE<gt>"
11704 msgstr ""
11705
11706 #. type: tbl table
11707 #: build/C/man2/ioctl_list.2:396
11708 #, no-wrap
11709 msgid "0x00004B60\tGIO_FONT\tstruct { char [8192]; } *\n"
11710 msgstr ""
11711
11712 #. type: tbl table
11713 #: build/C/man2/ioctl_list.2:397
11714 #, no-wrap
11715 msgid "0x00004B61\tPIO_FONT\tconst struct { char [8192]; } *\n"
11716 msgstr ""
11717
11718 #. type: tbl table
11719 #: build/C/man2/ioctl_list.2:401
11720 #, no-wrap
11721 msgid "0x00004B6B\tGIO_FONTX\tstruct console_font_desc *\t// MORE // I-O\n"
11722 msgstr ""
11723
11724 #. type: tbl table
11725 #: build/C/man2/ioctl_list.2:402
11726 #, no-wrap
11727 msgid "0x00004B6C\tPIO_FONTX\tconst struct console_font_desc *\t//MORE\n"
11728 msgstr ""
11729
11730 #. type: tbl table
11731 #: build/C/man2/ioctl_list.2:406
11732 #, no-wrap
11733 msgid "0x00004B70\tGIO_CMAP\tstruct { char [48]; } *\n"
11734 msgstr ""
11735
11736 #. type: tbl table
11737 #: build/C/man2/ioctl_list.2:407
11738 #, no-wrap
11739 msgid "0x00004B71\tPIO_CMAP\tconst struct { char [48]; }\n"
11740 msgstr ""
11741
11742 #. type: tbl table
11743 #: build/C/man2/ioctl_list.2:411
11744 #, no-wrap
11745 msgid "0x00004B2F\tKIOCSOUND\tint\n"
11746 msgstr ""
11747
11748 #. type: tbl table
11749 #: build/C/man2/ioctl_list.2:412
11750 #, no-wrap
11751 msgid "0x00004B30\tKDMKTONE\tint\n"
11752 msgstr ""
11753
11754 #. type: tbl table
11755 #: build/C/man2/ioctl_list.2:413
11756 #, no-wrap
11757 msgid "0x00004B31\tKDGETLED\tchar *\n"
11758 msgstr ""
11759
11760 #. type: tbl table
11761 #: build/C/man2/ioctl_list.2:414
11762 #, no-wrap
11763 msgid "0x00004B32\tKDSETLED\tint\n"
11764 msgstr ""
11765
11766 #. type: tbl table
11767 #: build/C/man2/ioctl_list.2:415
11768 #, no-wrap
11769 msgid "0x00004B33\tKDGKBTYPE\tchar *\n"
11770 msgstr ""
11771
11772 #. type: tbl table
11773 #: build/C/man2/ioctl_list.2:416
11774 #, no-wrap
11775 msgid "0x00004B34\tKDADDIO\tint\t// MORE\n"
11776 msgstr ""
11777
11778 #. type: tbl table
11779 #: build/C/man2/ioctl_list.2:417
11780 #, no-wrap
11781 msgid "0x00004B35\tKDDELIO\tint\t// MORE\n"
11782 msgstr ""
11783
11784 #. type: tbl table
11785 #: build/C/man2/ioctl_list.2:418
11786 #, no-wrap
11787 msgid "0x00004B36\tKDENABIO\tvoid\t// MORE\n"
11788 msgstr ""
11789
11790 #. type: tbl table
11791 #: build/C/man2/ioctl_list.2:419
11792 #, no-wrap
11793 msgid "0x00004B37\tKDDISABIO\tvoid\t// MORE\n"
11794 msgstr ""
11795
11796 #. type: tbl table
11797 #: build/C/man2/ioctl_list.2:420
11798 #, no-wrap
11799 msgid "0x00004B3A\tKDSETMODE\tint\n"
11800 msgstr ""
11801
11802 #. type: tbl table
11803 #: build/C/man2/ioctl_list.2:421
11804 #, no-wrap
11805 msgid "0x00004B3B\tKDGETMODE\tint *\n"
11806 msgstr ""
11807
11808 #. type: tbl table
11809 #: build/C/man2/ioctl_list.2:422
11810 #, no-wrap
11811 msgid "0x00004B3C\tKDMAPDISP\tvoid\t// MORE\n"
11812 msgstr ""
11813
11814 #. type: tbl table
11815 #: build/C/man2/ioctl_list.2:423
11816 #, no-wrap
11817 msgid "0x00004B3D\tKDUNMAPDISP\tvoid\t// MORE\n"
11818 msgstr ""
11819
11820 #. type: tbl table
11821 #: build/C/man2/ioctl_list.2:424
11822 #, no-wrap
11823 msgid "0x00004B40\tGIO_SCRNMAP\tstruct { char [E_TABSZ]; } *\n"
11824 msgstr ""
11825
11826 #. type: tbl table
11827 #: build/C/man2/ioctl_list.2:428
11828 #, no-wrap
11829 msgid "0x00004B41\tPIO_SCRNMAP\tconst struct { char [E_TABSZ]; } *\n"
11830 msgstr ""
11831
11832 #. type: tbl table
11833 #: build/C/man2/ioctl_list.2:429
11834 #, no-wrap
11835 msgid "0x00004B69\tGIO_UNISCRNMAP\tstruct { short [E_TABSZ]; } *\n"
11836 msgstr ""
11837
11838 #. type: tbl table
11839 #: build/C/man2/ioctl_list.2:430
11840 #, no-wrap
11841 msgid "0x00004B6A\tPIO_UNISCRNMAP\tconst struct { short [E_TABSZ]; } *\n"
11842 msgstr ""
11843
11844 #. type: tbl table
11845 #: build/C/man2/ioctl_list.2:434
11846 #, no-wrap
11847 msgid "0x00004B66\tGIO_UNIMAP\tstruct unimapdesc *\t// MORE // I-O\n"
11848 msgstr ""
11849
11850 #. type: tbl table
11851 #: build/C/man2/ioctl_list.2:435
11852 #, no-wrap
11853 msgid "0x00004B67\tPIO_UNIMAP\tconst struct unimapdesc *\t// MORE\n"
11854 msgstr ""
11855
11856 #. type: tbl table
11857 #: build/C/man2/ioctl_list.2:436
11858 #, no-wrap
11859 msgid "0x00004B68\tPIO_UNIMAPCLR\tconst struct unimapinit *\n"
11860 msgstr ""
11861
11862 #. type: tbl table
11863 #: build/C/man2/ioctl_list.2:437
11864 #, no-wrap
11865 msgid "0x00004B44\tKDGKBMODE\tint *\n"
11866 msgstr ""
11867
11868 #. type: tbl table
11869 #: build/C/man2/ioctl_list.2:438
11870 #, no-wrap
11871 msgid "0x00004B45\tKDSKBMODE\tint\n"
11872 msgstr ""
11873
11874 #. type: tbl table
11875 #: build/C/man2/ioctl_list.2:439
11876 #, no-wrap
11877 msgid "0x00004B62\tKDGKBMETA\tint *\n"
11878 msgstr ""
11879
11880 #. type: tbl table
11881 #: build/C/man2/ioctl_list.2:440
11882 #, no-wrap
11883 msgid "0x00004B63\tKDSKBMETA\tint\n"
11884 msgstr ""
11885
11886 #. type: tbl table
11887 #: build/C/man2/ioctl_list.2:441
11888 #, no-wrap
11889 msgid "0x00004B64\tKDGKBLED\tint *\n"
11890 msgstr ""
11891
11892 #. type: tbl table
11893 #: build/C/man2/ioctl_list.2:442
11894 #, no-wrap
11895 msgid "0x00004B65\tKDSKBLED\tint\n"
11896 msgstr ""
11897
11898 #. type: tbl table
11899 #: build/C/man2/ioctl_list.2:443
11900 #, no-wrap
11901 msgid "0x00004B46\tKDGKBENT\tstruct kbentry *\t// I-O\n"
11902 msgstr ""
11903
11904 #. type: tbl table
11905 #: build/C/man2/ioctl_list.2:444
11906 #, no-wrap
11907 msgid "0x00004B47\tKDSKBENT\tconst struct kbentry *\n"
11908 msgstr ""
11909
11910 #. type: tbl table
11911 #: build/C/man2/ioctl_list.2:445
11912 #, no-wrap
11913 msgid "0x00004B48\tKDGKBSENT\tstruct kbsentry *\t// I-O\n"
11914 msgstr ""
11915
11916 #. type: tbl table
11917 #: build/C/man2/ioctl_list.2:446
11918 #, no-wrap
11919 msgid "0x00004B49\tKDSKBSENT\tconst struct kbsentry *\n"
11920 msgstr ""
11921
11922 #. type: tbl table
11923 #: build/C/man2/ioctl_list.2:447
11924 #, no-wrap
11925 msgid "0x00004B4A\tKDGKBDIACR\tstruct kbdiacrs *\n"
11926 msgstr ""
11927
11928 #. type: tbl table
11929 #: build/C/man2/ioctl_list.2:448
11930 #, no-wrap
11931 msgid "0x00004B4B\tKDSKBDIACR\tconst struct kbdiacrs *\n"
11932 msgstr ""
11933
11934 #. type: tbl table
11935 #: build/C/man2/ioctl_list.2:449
11936 #, no-wrap
11937 msgid "0x00004B4C\tKDGETKEYCODE\tstruct kbkeycode *\t// I-O\n"
11938 msgstr ""
11939
11940 #. type: tbl table
11941 #: build/C/man2/ioctl_list.2:450
11942 #, no-wrap
11943 msgid "0x00004B4D\tKDSETKEYCODE\tconst struct kbkeycode *\n"
11944 msgstr ""
11945
11946 #. type: tbl table
11947 #: build/C/man2/ioctl_list.2:451
11948 #, no-wrap
11949 msgid "0x00004B4E\tKDSIGACCEPT\tint\n"
11950 msgstr ""
11951
11952 #. type: Plain text
11953 #: build/C/man2/ioctl_list.2:455
11954 msgid "// E<lt>include/linux/lp.hE<gt>"
11955 msgstr ""
11956
11957 #. type: tbl table
11958 #: build/C/man2/ioctl_list.2:457
11959 #, no-wrap
11960 msgid "0x00000601\tLPCHAR\tint\n"
11961 msgstr ""
11962
11963 #. type: tbl table
11964 #: build/C/man2/ioctl_list.2:458
11965 #, no-wrap
11966 msgid "0x00000602\tLPTIME\tint\n"
11967 msgstr ""
11968
11969 #. type: tbl table
11970 #: build/C/man2/ioctl_list.2:459
11971 #, no-wrap
11972 msgid "0x00000604\tLPABORT\tint\n"
11973 msgstr ""
11974
11975 #. type: tbl table
11976 #: build/C/man2/ioctl_list.2:460
11977 #, no-wrap
11978 msgid "0x00000605\tLPSETIRQ\tint\n"
11979 msgstr ""
11980
11981 #. type: tbl table
11982 #: build/C/man2/ioctl_list.2:461
11983 #, no-wrap
11984 msgid "0x00000606\tLPGETIRQ\tint *\n"
11985 msgstr ""
11986
11987 #. type: tbl table
11988 #: build/C/man2/ioctl_list.2:462
11989 #, no-wrap
11990 msgid "0x00000608\tLPWAIT\tint\n"
11991 msgstr ""
11992
11993 #. type: tbl table
11994 #: build/C/man2/ioctl_list.2:463
11995 #, no-wrap
11996 msgid "0x00000609\tLPCAREFUL\tint\n"
11997 msgstr ""
11998
11999 #. type: tbl table
12000 #: build/C/man2/ioctl_list.2:464
12001 #, no-wrap
12002 msgid "0x0000060A\tLPABORTOPEN\tint\n"
12003 msgstr ""
12004
12005 #. type: tbl table
12006 #: build/C/man2/ioctl_list.2:465
12007 #, no-wrap
12008 msgid "0x0000060B\tLPGETSTATUS\tint *\n"
12009 msgstr ""
12010
12011 #. type: tbl table
12012 #: build/C/man2/ioctl_list.2:466
12013 #, no-wrap
12014 msgid "0x0000060C\tLPRESET\tvoid\n"
12015 msgstr ""
12016
12017 #. type: tbl table
12018 #: build/C/man2/ioctl_list.2:467
12019 #, no-wrap
12020 msgid "0x0000060D\tLPGETSTATS\tstruct lp_stats *\n"
12021 msgstr ""
12022
12023 #. type: Plain text
12024 #: build/C/man2/ioctl_list.2:471
12025 msgid "// E<lt>include/linux/mroute.hE<gt>"
12026 msgstr ""
12027
12028 #. type: tbl table
12029 #: build/C/man2/ioctl_list.2:473
12030 #, no-wrap
12031 msgid "0x000089E0\tSIOCGETVIFCNT\tstruct sioc_vif_req *\t// I-O\n"
12032 msgstr ""
12033
12034 #. type: tbl table
12035 #: build/C/man2/ioctl_list.2:474
12036 #, no-wrap
12037 msgid "0x000089E1\tSIOCGETSGCNT\tstruct sioc_sg_req *\t// I-O\n"
12038 msgstr ""
12039
12040 #. type: Plain text
12041 #: build/C/man2/ioctl_list.2:478
12042 msgid "// E<lt>include/linux/msdos_fs.hE<gt>"
12043 msgstr ""
12044
12045 #. type: tbl table
12046 #: build/C/man2/ioctl_list.2:480
12047 #, no-wrap
12048 msgid "0x82307201\tVFAT_IOCTL_READDIR_BOTH\tstruct dirent [2]\n"
12049 msgstr ""
12050
12051 #. type: tbl table
12052 #: build/C/man2/ioctl_list.2:481
12053 #, no-wrap
12054 msgid "0x82307202\tVFAT_IOCTL_READDIR_SHORT\tstruct dirent [2]\n"
12055 msgstr ""
12056
12057 #. type: tbl table
12058 #: build/C/man2/ioctl_list.2:482
12059 #, no-wrap
12060 msgid "0x80047210\tFAT_IOCTL_GET_ATTRIBUTES\t__u32 *\n"
12061 msgstr ""
12062
12063 #. type: tbl table
12064 #: build/C/man2/ioctl_list.2:483
12065 #, no-wrap
12066 msgid "0x40047211\tFAT_IOCTL_SET_ATTRIBUTES\tconst __u32 *\n"
12067 msgstr ""
12068
12069 #. type: Plain text
12070 #: build/C/man2/ioctl_list.2:487
12071 msgid "// E<lt>include/linux/mtio.hE<gt>"
12072 msgstr ""
12073
12074 #. type: tbl table
12075 #: build/C/man2/ioctl_list.2:489
12076 #, no-wrap
12077 msgid "0x40086D01\tMTIOCTOP\tconst struct mtop *\n"
12078 msgstr ""
12079
12080 #. type: tbl table
12081 #: build/C/man2/ioctl_list.2:490
12082 #, no-wrap
12083 msgid "0x801C6D02\tMTIOCGET\tstruct mtget *\n"
12084 msgstr ""
12085
12086 #. type: tbl table
12087 #: build/C/man2/ioctl_list.2:491
12088 #, no-wrap
12089 msgid "0x80046D03\tMTIOCPOS\tstruct mtpos *\n"
12090 msgstr ""
12091
12092 #. type: tbl table
12093 #: build/C/man2/ioctl_list.2:492
12094 #, no-wrap
12095 msgid "0x80206D04\tMTIOCGETCONFIG\tstruct mtconfiginfo *\n"
12096 msgstr ""
12097
12098 #. type: tbl table
12099 #: build/C/man2/ioctl_list.2:493
12100 #, no-wrap
12101 msgid "0x40206D05\tMTIOCSETCONFIG\tconst struct mtconfiginfo *\n"
12102 msgstr ""
12103
12104 #. type: Plain text
12105 #: build/C/man2/ioctl_list.2:497
12106 msgid "// E<lt>include/linux/netrom.hE<gt>"
12107 msgstr ""
12108
12109 #. type: tbl table
12110 #: build/C/man2/ioctl_list.2:499
12111 #, no-wrap
12112 msgid "0x000089E0\tSIOCNRGETPARMS\tstruct nr_parms_struct *\t// I-O\n"
12113 msgstr ""
12114
12115 #. type: tbl table
12116 #: build/C/man2/ioctl_list.2:500
12117 #, no-wrap
12118 msgid "0x000089E1\tSIOCNRSETPARMS\tconst struct nr_parms_struct *\n"
12119 msgstr ""
12120
12121 #. type: tbl table
12122 #: build/C/man2/ioctl_list.2:501
12123 #, no-wrap
12124 msgid "0x000089E2\tSIOCNRDECOBS\tvoid\n"
12125 msgstr ""
12126
12127 #. type: tbl table
12128 #: build/C/man2/ioctl_list.2:502
12129 #, no-wrap
12130 msgid "0x000089E3\tSIOCNRRTCTL\tconst int *\n"
12131 msgstr ""
12132
12133 #. type: Plain text
12134 #: build/C/man2/ioctl_list.2:506
12135 msgid "// E<lt>include/linux/sbpcd.hE<gt>"
12136 msgstr ""
12137
12138 #. type: tbl table
12139 #: build/C/man2/ioctl_list.2:508
12140 #, no-wrap
12141 msgid "0x00009000\tDDIOCSDBG\tconst int *\n"
12142 msgstr ""
12143
12144 #. type: tbl table
12145 #: build/C/man2/ioctl_list.2:509
12146 #, no-wrap
12147 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tint\n"
12148 msgstr ""
12149
12150 #. type: Plain text
12151 #: build/C/man2/ioctl_list.2:513
12152 msgid "// E<lt>include/linux/scc.hE<gt>"
12153 msgstr ""
12154
12155 #. type: tbl table
12156 #: build/C/man2/ioctl_list.2:515
12157 #, no-wrap
12158 msgid "0x00005470\tTIOCSCCINI\tvoid\n"
12159 msgstr ""
12160
12161 #. type: tbl table
12162 #: build/C/man2/ioctl_list.2:516
12163 #, no-wrap
12164 msgid "0x00005471\tTIOCCHANINI\tconst struct scc_modem *\n"
12165 msgstr ""
12166
12167 #. type: tbl table
12168 #: build/C/man2/ioctl_list.2:517
12169 #, no-wrap
12170 msgid "0x00005472\tTIOCGKISS\tstruct ioctl_command *\t// I-O\n"
12171 msgstr ""
12172
12173 #. type: tbl table
12174 #: build/C/man2/ioctl_list.2:518
12175 #, no-wrap
12176 msgid "0x00005473\tTIOCSKISS\tconst struct ioctl_command *\n"
12177 msgstr ""
12178
12179 #. type: tbl table
12180 #: build/C/man2/ioctl_list.2:519
12181 #, no-wrap
12182 msgid "0x00005474\tTIOCSCCSTAT\tstruct scc_stat *\n"
12183 msgstr ""
12184
12185 #. type: Plain text
12186 #: build/C/man2/ioctl_list.2:523
12187 msgid "// E<lt>include/linux/scsi.hE<gt>"
12188 msgstr ""
12189
12190 #. type: tbl table
12191 #: build/C/man2/ioctl_list.2:525
12192 #, no-wrap
12193 msgid "0x00005382\tSCSI_IOCTL_GET_IDLUN\tstruct { int [2]; } *\n"
12194 msgstr ""
12195
12196 #. type: tbl table
12197 #: build/C/man2/ioctl_list.2:526
12198 #, no-wrap
12199 msgid "0x00005383\tSCSI_IOCTL_TAGGED_ENABLE\tvoid\n"
12200 msgstr ""
12201
12202 #. type: tbl table
12203 #: build/C/man2/ioctl_list.2:527
12204 #, no-wrap
12205 msgid "0x00005384\tSCSI_IOCTL_TAGGED_DISABLE\tvoid\n"
12206 msgstr ""
12207
12208 #. type: tbl table
12209 #: build/C/man2/ioctl_list.2:531
12210 #, no-wrap
12211 msgid "0x00005385\tSCSI_IOCTL_PROBE_HOST\tconst int *\t// MORE\n"
12212 msgstr ""
12213
12214 #. type: Plain text
12215 #: build/C/man2/ioctl_list.2:535
12216 msgid "// E<lt>include/linux/smb_fs.hE<gt>"
12217 msgstr ""
12218
12219 #. type: tbl table
12220 #: build/C/man2/ioctl_list.2:537
12221 #, no-wrap
12222 msgid "0x80027501\tSMB_IOC_GETMOUNTUID\tuid_t *\n"
12223 msgstr ""
12224
12225 #. type: Plain text
12226 #: build/C/man2/ioctl_list.2:541
12227 msgid "// E<lt>include/linux/sockios.hE<gt>"
12228 msgstr ""
12229
12230 #. type: tbl table
12231 #: build/C/man2/ioctl_list.2:543
12232 #, no-wrap
12233 msgid "0x0000890B\tSIOCADDRT\tconst struct rtentry *\t// MORE\n"
12234 msgstr ""
12235
12236 #. type: tbl table
12237 #: build/C/man2/ioctl_list.2:544
12238 #, no-wrap
12239 msgid "0x0000890C\tSIOCDELRT\tconst struct rtentry *\t// MORE\n"
12240 msgstr ""
12241
12242 #. type: tbl table
12243 #: build/C/man2/ioctl_list.2:545
12244 #, no-wrap
12245 msgid "0x00008910\tSIOCGIFNAME\tchar []\n"
12246 msgstr ""
12247
12248 #. type: tbl table
12249 #: build/C/man2/ioctl_list.2:546
12250 #, no-wrap
12251 msgid "0x00008911\tSIOCSIFLINK\tvoid\n"
12252 msgstr ""
12253
12254 #. type: tbl table
12255 #: build/C/man2/ioctl_list.2:547
12256 #, no-wrap
12257 msgid "0x00008912\tSIOCGIFCONF\tstruct ifconf *\t// MORE // I-O\n"
12258 msgstr ""
12259
12260 #. type: tbl table
12261 #: build/C/man2/ioctl_list.2:548
12262 #, no-wrap
12263 msgid "0x00008913\tSIOCGIFFLAGS\tstruct ifreq *\t// I-O\n"
12264 msgstr ""
12265
12266 #. type: tbl table
12267 #: build/C/man2/ioctl_list.2:549
12268 #, no-wrap
12269 msgid "0x00008914\tSIOCSIFFLAGS\tconst struct ifreq *\n"
12270 msgstr ""
12271
12272 #. type: tbl table
12273 #: build/C/man2/ioctl_list.2:550
12274 #, no-wrap
12275 msgid "0x00008915\tSIOCGIFADDR\tstruct ifreq *\t// I-O\n"
12276 msgstr ""
12277
12278 #. type: tbl table
12279 #: build/C/man2/ioctl_list.2:551
12280 #, no-wrap
12281 msgid "0x00008916\tSIOCSIFADDR\tconst struct ifreq *\n"
12282 msgstr ""
12283
12284 #. type: tbl table
12285 #: build/C/man2/ioctl_list.2:552
12286 #, no-wrap
12287 msgid "0x00008917\tSIOCGIFDSTADDR\tstruct ifreq *\t// I-O\n"
12288 msgstr ""
12289
12290 #. type: tbl table
12291 #: build/C/man2/ioctl_list.2:553
12292 #, no-wrap
12293 msgid "0x00008918\tSIOCSIFDSTADDR\tconst struct ifreq *\n"
12294 msgstr ""
12295
12296 #. type: tbl table
12297 #: build/C/man2/ioctl_list.2:554
12298 #, no-wrap
12299 msgid "0x00008919\tSIOCGIFBRDADDR\tstruct ifreq *\t// I-O\n"
12300 msgstr ""
12301
12302 #. type: tbl table
12303 #: build/C/man2/ioctl_list.2:555
12304 #, no-wrap
12305 msgid "0x0000891A\tSIOCSIFBRDADDR\tconst struct ifreq *\n"
12306 msgstr ""
12307
12308 #. type: tbl table
12309 #: build/C/man2/ioctl_list.2:556
12310 #, no-wrap
12311 msgid "0x0000891B\tSIOCGIFNETMASK\tstruct ifreq *\t// I-O\n"
12312 msgstr ""
12313
12314 #. type: tbl table
12315 #: build/C/man2/ioctl_list.2:557
12316 #, no-wrap
12317 msgid "0x0000891C\tSIOCSIFNETMASK\tconst struct ifreq *\n"
12318 msgstr ""
12319
12320 #. type: tbl table
12321 #: build/C/man2/ioctl_list.2:558
12322 #, no-wrap
12323 msgid "0x0000891D\tSIOCGIFMETRIC\tstruct ifreq *\t// I-O\n"
12324 msgstr ""
12325
12326 #. type: tbl table
12327 #: build/C/man2/ioctl_list.2:559
12328 #, no-wrap
12329 msgid "0x0000891E\tSIOCSIFMETRIC\tconst struct ifreq *\n"
12330 msgstr ""
12331
12332 #. type: tbl table
12333 #: build/C/man2/ioctl_list.2:560
12334 #, no-wrap
12335 msgid "0x0000891F\tSIOCGIFMEM\tstruct ifreq *\t// I-O\n"
12336 msgstr ""
12337
12338 #. type: tbl table
12339 #: build/C/man2/ioctl_list.2:561
12340 #, no-wrap
12341 msgid "0x00008920\tSIOCSIFMEM\tconst struct ifreq *\n"
12342 msgstr ""
12343
12344 #. type: tbl table
12345 #: build/C/man2/ioctl_list.2:562
12346 #, no-wrap
12347 msgid "0x00008921\tSIOCGIFMTU\tstruct ifreq *\t// I-O\n"
12348 msgstr ""
12349
12350 #. type: tbl table
12351 #: build/C/man2/ioctl_list.2:563
12352 #, no-wrap
12353 msgid "0x00008922\tSIOCSIFMTU\tconst struct ifreq *\n"
12354 msgstr ""
12355
12356 #. type: tbl table
12357 #: build/C/man2/ioctl_list.2:567
12358 #, no-wrap
12359 msgid "0x00008923\tOLD_SIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
12360 msgstr ""
12361
12362 #. type: tbl table
12363 #: build/C/man2/ioctl_list.2:568
12364 #, no-wrap
12365 msgid "0x00008924\tSIOCSIFHWADDR\tconst struct ifreq *\t// MORE\n"
12366 msgstr ""
12367
12368 #. type: tbl table
12369 #: build/C/man2/ioctl_list.2:569
12370 #, no-wrap
12371 msgid "0x00008925\tSIOCGIFENCAP\tint *\n"
12372 msgstr ""
12373
12374 #. type: tbl table
12375 #: build/C/man2/ioctl_list.2:570
12376 #, no-wrap
12377 msgid "0x00008926\tSIOCSIFENCAP\tconst int *\n"
12378 msgstr ""
12379
12380 #. type: tbl table
12381 #: build/C/man2/ioctl_list.2:571
12382 #, no-wrap
12383 msgid "0x00008927\tSIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
12384 msgstr ""
12385
12386 #. type: tbl table
12387 #: build/C/man2/ioctl_list.2:572
12388 #, no-wrap
12389 msgid "0x00008929\tSIOCGIFSLAVE\tvoid\n"
12390 msgstr ""
12391
12392 #. type: tbl table
12393 #: build/C/man2/ioctl_list.2:573
12394 #, no-wrap
12395 msgid "0x00008930\tSIOCSIFSLAVE\tvoid\n"
12396 msgstr ""
12397
12398 #. type: tbl table
12399 #: build/C/man2/ioctl_list.2:574
12400 #, no-wrap
12401 msgid "0x00008931\tSIOCADDMULTI\tconst struct ifreq *\n"
12402 msgstr ""
12403
12404 #. type: tbl table
12405 #: build/C/man2/ioctl_list.2:575
12406 #, no-wrap
12407 msgid "0x00008932\tSIOCDELMULTI\tconst struct ifreq *\n"
12408 msgstr ""
12409
12410 #. type: tbl table
12411 #: build/C/man2/ioctl_list.2:576
12412 #, no-wrap
12413 msgid "0x00008940\tSIOCADDRTOLD\tvoid\n"
12414 msgstr ""
12415
12416 #. type: tbl table
12417 #: build/C/man2/ioctl_list.2:577
12418 #, no-wrap
12419 msgid "0x00008941\tSIOCDELRTOLD\tvoid\n"
12420 msgstr ""
12421
12422 #. type: tbl table
12423 #: build/C/man2/ioctl_list.2:578
12424 #, no-wrap
12425 msgid "0x00008950\tSIOCDARP\tconst struct arpreq *\n"
12426 msgstr ""
12427
12428 #. type: tbl table
12429 #: build/C/man2/ioctl_list.2:579
12430 #, no-wrap
12431 msgid "0x00008951\tSIOCGARP\tstruct arpreq *\t// I-O\n"
12432 msgstr ""
12433
12434 #. type: tbl table
12435 #: build/C/man2/ioctl_list.2:580
12436 #, no-wrap
12437 msgid "0x00008952\tSIOCSARP\tconst struct arpreq *\n"
12438 msgstr ""
12439
12440 #. type: tbl table
12441 #: build/C/man2/ioctl_list.2:581
12442 #, no-wrap
12443 msgid "0x00008960\tSIOCDRARP\tconst struct arpreq *\n"
12444 msgstr ""
12445
12446 #. type: tbl table
12447 #: build/C/man2/ioctl_list.2:582
12448 #, no-wrap
12449 msgid "0x00008961\tSIOCGRARP\tstruct arpreq *\t// I-O\n"
12450 msgstr ""
12451
12452 #. type: tbl table
12453 #: build/C/man2/ioctl_list.2:583
12454 #, no-wrap
12455 msgid "0x00008962\tSIOCSRARP\tconst struct arpreq *\n"
12456 msgstr ""
12457
12458 #. type: tbl table
12459 #: build/C/man2/ioctl_list.2:584
12460 #, no-wrap
12461 msgid "0x00008970\tSIOCGIFMAP\tstruct ifreq *\t// I-O\n"
12462 msgstr ""
12463
12464 #. type: tbl table
12465 #: build/C/man2/ioctl_list.2:585
12466 #, no-wrap
12467 msgid "0x00008971\tSIOCSIFMAP\tconst struct ifreq *\n"
12468 msgstr ""
12469
12470 #. type: Plain text
12471 #: build/C/man2/ioctl_list.2:589
12472 msgid "// E<lt>include/linux/soundcard.hE<gt>"
12473 msgstr ""
12474
12475 #. type: tbl table
12476 #: build/C/man2/ioctl_list.2:591
12477 #, no-wrap
12478 msgid "0x00005100\tSNDCTL_SEQ_RESET\tvoid\n"
12479 msgstr ""
12480
12481 #. type: tbl table
12482 #: build/C/man2/ioctl_list.2:592
12483 #, no-wrap
12484 msgid "0x00005101\tSNDCTL_SEQ_SYNC\tvoid\n"
12485 msgstr ""
12486
12487 #. type: tbl table
12488 #: build/C/man2/ioctl_list.2:596
12489 #, no-wrap
12490 msgid "0xC08C5102\tSNDCTL_SYNTH_INFO\tstruct synth_info *\t// I-O\n"
12491 msgstr ""
12492
12493 #. type: tbl table
12494 #: build/C/man2/ioctl_list.2:597
12495 #, no-wrap
12496 msgid "0xC0045103\tSNDCTL_SEQ_CTRLRATE\tint *\t// I-O\n"
12497 msgstr ""
12498
12499 #. type: tbl table
12500 #: build/C/man2/ioctl_list.2:598
12501 #, no-wrap
12502 msgid "0x80045104\tSNDCTL_SEQ_GETOUTCOUNT\tint *\n"
12503 msgstr ""
12504
12505 #. type: tbl table
12506 #: build/C/man2/ioctl_list.2:599
12507 #, no-wrap
12508 msgid "0x80045105\tSNDCTL_SEQ_GETINCOUNT\tint *\n"
12509 msgstr ""
12510
12511 #. type: tbl table
12512 #: build/C/man2/ioctl_list.2:600
12513 #, no-wrap
12514 msgid "0x40045106\tSNDCTL_SEQ_PERCMODE\tvoid\n"
12515 msgstr ""
12516
12517 #. type: tbl table
12518 #: build/C/man2/ioctl_list.2:604
12519 #, no-wrap
12520 msgid "0x40285107\tSNDCTL_FM_LOAD_INSTR\tconst struct sbi_instrument *\n"
12521 msgstr ""
12522
12523 #. type: tbl table
12524 #: build/C/man2/ioctl_list.2:608
12525 #, no-wrap
12526 msgid "0x40045108\tSNDCTL_SEQ_TESTMIDI\tconst int *\n"
12527 msgstr ""
12528
12529 #. type: tbl table
12530 #: build/C/man2/ioctl_list.2:609
12531 #, no-wrap
12532 msgid "0x40045109\tSNDCTL_SEQ_RESETSAMPLES\tconst int *\n"
12533 msgstr ""
12534
12535 #. type: tbl table
12536 #: build/C/man2/ioctl_list.2:610
12537 #, no-wrap
12538 msgid "0x8004510A\tSNDCTL_SEQ_NRSYNTHS\tint *\n"
12539 msgstr ""
12540
12541 #. type: tbl table
12542 #: build/C/man2/ioctl_list.2:611
12543 #, no-wrap
12544 msgid "0x8004510B\tSNDCTL_SEQ_NRMIDIS\tint *\n"
12545 msgstr ""
12546
12547 #. type: tbl table
12548 #: build/C/man2/ioctl_list.2:612
12549 #, no-wrap
12550 msgid "0xC074510C\tSNDCTL_MIDI_INFO\tstruct midi_info *\t// I-O\n"
12551 msgstr ""
12552
12553 #. type: tbl table
12554 #: build/C/man2/ioctl_list.2:613
12555 #, no-wrap
12556 msgid "0x4004510D\tSNDCTL_SEQ_THRESHOLD\tconst int *\n"
12557 msgstr ""
12558
12559 #. type: tbl table
12560 #: build/C/man2/ioctl_list.2:614
12561 #, no-wrap
12562 msgid "0xC004510E\tSNDCTL_SYNTH_MEMAVL\tint *\t// I-O\n"
12563 msgstr ""
12564
12565 #. type: tbl table
12566 #: build/C/man2/ioctl_list.2:615
12567 #, no-wrap
12568 msgid "0x4004510F\tSNDCTL_FM_4OP_ENABLE\tconst int *\n"
12569 msgstr ""
12570
12571 #. type: tbl table
12572 #: build/C/man2/ioctl_list.2:616
12573 #, no-wrap
12574 msgid "0xCFB85110\tSNDCTL_PMGR_ACCESS\tstruct patmgr_info *\t// I-O\n"
12575 msgstr ""
12576
12577 #. type: tbl table
12578 #: build/C/man2/ioctl_list.2:617
12579 #, no-wrap
12580 msgid "0x00005111\tSNDCTL_SEQ_PANIC\tvoid\n"
12581 msgstr ""
12582
12583 #. type: tbl table
12584 #: build/C/man2/ioctl_list.2:621
12585 #, no-wrap
12586 msgid "0x40085112\tSNDCTL_SEQ_OUTOFBAND\tconst struct seq_event_rec *\n"
12587 msgstr ""
12588
12589 #. type: tbl table
12590 #: build/C/man2/ioctl_list.2:625
12591 #, no-wrap
12592 msgid "0xC0045401\tSNDCTL_TMR_TIMEBASE\tint *\t// I-O\n"
12593 msgstr ""
12594
12595 #. type: tbl table
12596 #: build/C/man2/ioctl_list.2:626
12597 #, no-wrap
12598 msgid "0x00005402\tSNDCTL_TMR_START\tvoid\n"
12599 msgstr ""
12600
12601 #. type: tbl table
12602 #: build/C/man2/ioctl_list.2:627
12603 #, no-wrap
12604 msgid "0x00005403\tSNDCTL_TMR_STOP\tvoid\n"
12605 msgstr ""
12606
12607 #. type: tbl table
12608 #: build/C/man2/ioctl_list.2:628
12609 #, no-wrap
12610 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tvoid\n"
12611 msgstr ""
12612
12613 #. type: tbl table
12614 #: build/C/man2/ioctl_list.2:629
12615 #, no-wrap
12616 msgid "0xC0045405\tSNDCTL_TMR_TEMPO\tint *\t// I-O\n"
12617 msgstr ""
12618
12619 #. type: tbl table
12620 #: build/C/man2/ioctl_list.2:630
12621 #, no-wrap
12622 msgid "0xC0045406\tSNDCTL_TMR_SOURCE\tint *\t// I-O\n"
12623 msgstr ""
12624
12625 #. type: tbl table
12626 #: build/C/man2/ioctl_list.2:631
12627 #, no-wrap
12628 msgid "0x40045407\tSNDCTL_TMR_METRONOME\tconst int *\n"
12629 msgstr ""
12630
12631 #. type: tbl table
12632 #: build/C/man2/ioctl_list.2:632
12633 #, no-wrap
12634 msgid "0x40045408\tSNDCTL_TMR_SELECT\tint *\t// I-O\n"
12635 msgstr ""
12636
12637 #. type: tbl table
12638 #: build/C/man2/ioctl_list.2:633
12639 #, no-wrap
12640 msgid "0xCFB85001\tSNDCTL_PMGR_IFACE\tstruct patmgr_info *\t// I-O\n"
12641 msgstr ""
12642
12643 #. type: tbl table
12644 #: build/C/man2/ioctl_list.2:634
12645 #, no-wrap
12646 msgid "0xC0046D00\tSNDCTL_MIDI_PRETIME\tint *\t// I-O\n"
12647 msgstr ""
12648
12649 #. type: tbl table
12650 #: build/C/man2/ioctl_list.2:635
12651 #, no-wrap
12652 msgid "0xC0046D01\tSNDCTL_MIDI_MPUMODE\tconst int *\n"
12653 msgstr ""
12654
12655 #. type: tbl table
12656 #: build/C/man2/ioctl_list.2:639
12657 #, no-wrap
12658 msgid "0xC0216D02\tSNDCTL_MIDI_MPUCMD\tstruct mpu_command_rec *\t// I-O\n"
12659 msgstr ""
12660
12661 #. type: tbl table
12662 #: build/C/man2/ioctl_list.2:643
12663 #, no-wrap
12664 msgid "0x00005000\tSNDCTL_DSP_RESET\tvoid\n"
12665 msgstr ""
12666
12667 #. type: tbl table
12668 #: build/C/man2/ioctl_list.2:644
12669 #, no-wrap
12670 msgid "0x00005001\tSNDCTL_DSP_SYNC\tvoid\n"
12671 msgstr ""
12672
12673 #. type: tbl table
12674 #: build/C/man2/ioctl_list.2:645
12675 #, no-wrap
12676 msgid "0xC0045002\tSNDCTL_DSP_SPEED\tint *\t// I-O\n"
12677 msgstr ""
12678
12679 #. type: tbl table
12680 #: build/C/man2/ioctl_list.2:646
12681 #, no-wrap
12682 msgid "0xC0045003\tSNDCTL_DSP_STEREO\tint *\t// I-O\n"
12683 msgstr ""
12684
12685 #. type: tbl table
12686 #: build/C/man2/ioctl_list.2:647
12687 #, no-wrap
12688 msgid "0xC0045004\tSNDCTL_DSP_GETBLKSIZE\tint *\t// I-O\n"
12689 msgstr ""
12690
12691 #. type: tbl table
12692 #: build/C/man2/ioctl_list.2:648
12693 #, no-wrap
12694 msgid "0xC0045006\tSOUND_PCM_WRITE_CHANNELS\tint *\t// I-O\n"
12695 msgstr ""
12696
12697 #. type: tbl table
12698 #: build/C/man2/ioctl_list.2:649
12699 #, no-wrap
12700 msgid "0xC0045007\tSOUND_PCM_WRITE_FILTER\tint *\t// I-O\n"
12701 msgstr ""
12702
12703 #. type: tbl table
12704 #: build/C/man2/ioctl_list.2:650
12705 #, no-wrap
12706 msgid "0x00005008\tSNDCTL_DSP_POST\tvoid\n"
12707 msgstr ""
12708
12709 #. type: tbl table
12710 #: build/C/man2/ioctl_list.2:651
12711 #, no-wrap
12712 msgid "0xC0045009\tSNDCTL_DSP_SUBDIVIDE\tint *\t// I-O\n"
12713 msgstr ""
12714
12715 #. type: tbl table
12716 #: build/C/man2/ioctl_list.2:652
12717 #, no-wrap
12718 msgid "0xC004500A\tSNDCTL_DSP_SETFRAGMENT\tint *\t// I-O\n"
12719 msgstr ""
12720
12721 #. type: tbl table
12722 #: build/C/man2/ioctl_list.2:653
12723 #, no-wrap
12724 msgid "0x8004500B\tSNDCTL_DSP_GETFMTS\tint *\n"
12725 msgstr ""
12726
12727 #. type: tbl table
12728 #: build/C/man2/ioctl_list.2:654
12729 #, no-wrap
12730 msgid "0xC0045005\tSNDCTL_DSP_SETFMT\tint *\t// I-O\n"
12731 msgstr ""
12732
12733 #. type: tbl table
12734 #: build/C/man2/ioctl_list.2:658
12735 #, no-wrap
12736 msgid "0x800C500C\tSNDCTL_DSP_GETOSPACE\tstruct audio_buf_info *\n"
12737 msgstr ""
12738
12739 #. type: tbl table
12740 #: build/C/man2/ioctl_list.2:659
12741 #, no-wrap
12742 msgid "0x800C500D\tSNDCTL_DSP_GETISPACE\tstruct audio_buf_info *\n"
12743 msgstr ""
12744
12745 #. type: tbl table
12746 #: build/C/man2/ioctl_list.2:660
12747 #, no-wrap
12748 msgid "0x0000500E\tSNDCTL_DSP_NONBLOCK\tvoid\n"
12749 msgstr ""
12750
12751 #. type: tbl table
12752 #: build/C/man2/ioctl_list.2:661
12753 #, no-wrap
12754 msgid "0x80045002\tSOUND_PCM_READ_RATE\tint *\n"
12755 msgstr ""
12756
12757 #. type: tbl table
12758 #: build/C/man2/ioctl_list.2:662
12759 #, no-wrap
12760 msgid "0x80045006\tSOUND_PCM_READ_CHANNELS\tint *\n"
12761 msgstr ""
12762
12763 #. type: tbl table
12764 #: build/C/man2/ioctl_list.2:663
12765 #, no-wrap
12766 msgid "0x80045005\tSOUND_PCM_READ_BITS\tint *\n"
12767 msgstr ""
12768
12769 #. type: tbl table
12770 #: build/C/man2/ioctl_list.2:664
12771 #, no-wrap
12772 msgid "0x80045007\tSOUND_PCM_READ_FILTER\tint *\n"
12773 msgstr ""
12774
12775 #. type: tbl table
12776 #: build/C/man2/ioctl_list.2:665
12777 #, no-wrap
12778 msgid "0x00004300\tSNDCTL_COPR_RESET\tvoid\n"
12779 msgstr ""
12780
12781 #. type: tbl table
12782 #: build/C/man2/ioctl_list.2:666
12783 #, no-wrap
12784 msgid "0xCFB04301\tSNDCTL_COPR_LOAD\tconst struct copr_buffer *\n"
12785 msgstr ""
12786
12787 #. type: tbl table
12788 #: build/C/man2/ioctl_list.2:670
12789 #, no-wrap
12790 msgid "0xC0144302\tSNDCTL_COPR_RDATA\tstruct copr_debug_buf *\t// I-O\n"
12791 msgstr ""
12792
12793 #. type: tbl table
12794 #: build/C/man2/ioctl_list.2:671
12795 #, no-wrap
12796 msgid "0xC0144303\tSNDCTL_COPR_RCODE\tstruct copr_debug_buf *\t// I-O\n"
12797 msgstr ""
12798
12799 #. type: tbl table
12800 #: build/C/man2/ioctl_list.2:675
12801 #, no-wrap
12802 msgid "0x40144304\tSNDCTL_COPR_WDATA\tconst struct copr_debug_buf *\n"
12803 msgstr ""
12804
12805 #. type: tbl table
12806 #: build/C/man2/ioctl_list.2:676
12807 #, no-wrap
12808 msgid "0x40144305\tSNDCTL_COPR_WCODE\tconst struct copr_debug_buf *\n"
12809 msgstr ""
12810
12811 #. type: tbl table
12812 #: build/C/man2/ioctl_list.2:680
12813 #, no-wrap
12814 msgid "0xC0144306\tSNDCTL_COPR_RUN\tstruct copr_debug_buf *\t// I-O\n"
12815 msgstr ""
12816
12817 #. type: tbl table
12818 #: build/C/man2/ioctl_list.2:681
12819 #, no-wrap
12820 msgid "0xC0144307\tSNDCTL_COPR_HALT\tstruct copr_debug_buf *\t// I-O\n"
12821 msgstr ""
12822
12823 #. type: tbl table
12824 #: build/C/man2/ioctl_list.2:685
12825 #, no-wrap
12826 msgid "0x4FA44308\tSNDCTL_COPR_SENDMSG\tconst struct copr_msg *\n"
12827 msgstr ""
12828
12829 #. type: tbl table
12830 #: build/C/man2/ioctl_list.2:686
12831 #, no-wrap
12832 msgid "0x8FA44309\tSNDCTL_COPR_RCVMSG\tstruct copr_msg *\n"
12833 msgstr ""
12834
12835 #. type: tbl table
12836 #: build/C/man2/ioctl_list.2:687
12837 #, no-wrap
12838 msgid "0x80044D00\tSOUND_MIXER_READ_VOLUME\tint *\n"
12839 msgstr ""
12840
12841 #. type: tbl table
12842 #: build/C/man2/ioctl_list.2:688
12843 #, no-wrap
12844 msgid "0x80044D01\tSOUND_MIXER_READ_BASS\tint *\n"
12845 msgstr ""
12846
12847 #. type: tbl table
12848 #: build/C/man2/ioctl_list.2:689
12849 #, no-wrap
12850 msgid "0x80044D02\tSOUND_MIXER_READ_TREBLE\tint *\n"
12851 msgstr ""
12852
12853 #. type: tbl table
12854 #: build/C/man2/ioctl_list.2:690
12855 #, no-wrap
12856 msgid "0x80044D03\tSOUND_MIXER_READ_SYNTH\tint *\n"
12857 msgstr ""
12858
12859 #. type: tbl table
12860 #: build/C/man2/ioctl_list.2:691
12861 #, no-wrap
12862 msgid "0x80044D04\tSOUND_MIXER_READ_PCM\tint *\n"
12863 msgstr ""
12864
12865 #. type: tbl table
12866 #: build/C/man2/ioctl_list.2:692
12867 #, no-wrap
12868 msgid "0x80044D05\tSOUND_MIXER_READ_SPEAKER\tint *\n"
12869 msgstr ""
12870
12871 #. type: tbl table
12872 #: build/C/man2/ioctl_list.2:693
12873 #, no-wrap
12874 msgid "0x80044D06\tSOUND_MIXER_READ_LINE\tint *\n"
12875 msgstr ""
12876
12877 #. type: tbl table
12878 #: build/C/man2/ioctl_list.2:694
12879 #, no-wrap
12880 msgid "0x80044D07\tSOUND_MIXER_READ_MIC\tint *\n"
12881 msgstr ""
12882
12883 #. type: tbl table
12884 #: build/C/man2/ioctl_list.2:695
12885 #, no-wrap
12886 msgid "0x80044D08\tSOUND_MIXER_READ_CD\tint *\n"
12887 msgstr ""
12888
12889 #. type: tbl table
12890 #: build/C/man2/ioctl_list.2:696
12891 #, no-wrap
12892 msgid "0x80044D09\tSOUND_MIXER_READ_IMIX\tint *\n"
12893 msgstr ""
12894
12895 #. type: tbl table
12896 #: build/C/man2/ioctl_list.2:697
12897 #, no-wrap
12898 msgid "0x80044D0A\tSOUND_MIXER_READ_ALTPCM\tint *\n"
12899 msgstr ""
12900
12901 #. type: tbl table
12902 #: build/C/man2/ioctl_list.2:698
12903 #, no-wrap
12904 msgid "0x80044D0B\tSOUND_MIXER_READ_RECLEV\tint *\n"
12905 msgstr ""
12906
12907 #. type: tbl table
12908 #: build/C/man2/ioctl_list.2:699
12909 #, no-wrap
12910 msgid "0x80044D0C\tSOUND_MIXER_READ_IGAIN\tint *\n"
12911 msgstr ""
12912
12913 #. type: tbl table
12914 #: build/C/man2/ioctl_list.2:700
12915 #, no-wrap
12916 msgid "0x80044D0D\tSOUND_MIXER_READ_OGAIN\tint *\n"
12917 msgstr ""
12918
12919 #. type: tbl table
12920 #: build/C/man2/ioctl_list.2:701
12921 #, no-wrap
12922 msgid "0x80044D0E\tSOUND_MIXER_READ_LINE1\tint *\n"
12923 msgstr ""
12924
12925 #. type: tbl table
12926 #: build/C/man2/ioctl_list.2:702
12927 #, no-wrap
12928 msgid "0x80044D0F\tSOUND_MIXER_READ_LINE2\tint *\n"
12929 msgstr ""
12930
12931 #. type: tbl table
12932 #: build/C/man2/ioctl_list.2:703
12933 #, no-wrap
12934 msgid "0x80044D10\tSOUND_MIXER_READ_LINE3\tint *\n"
12935 msgstr ""
12936
12937 #. type: tbl table
12938 #: build/C/man2/ioctl_list.2:704
12939 #, no-wrap
12940 msgid "0x80044D1C\tSOUND_MIXER_READ_MUTE\tint *\n"
12941 msgstr ""
12942
12943 #. type: tbl table
12944 #: build/C/man2/ioctl_list.2:705
12945 #, no-wrap
12946 msgid "0x80044D1D\tSOUND_MIXER_READ_ENHANCE\tint *\n"
12947 msgstr ""
12948
12949 #. type: tbl table
12950 #: build/C/man2/ioctl_list.2:706
12951 #, no-wrap
12952 msgid "0x80044D1E\tSOUND_MIXER_READ_LOUD\tint *\n"
12953 msgstr ""
12954
12955 #. type: tbl table
12956 #: build/C/man2/ioctl_list.2:707
12957 #, no-wrap
12958 msgid "0x80044DFF\tSOUND_MIXER_READ_RECSRC\tint *\n"
12959 msgstr ""
12960
12961 #. type: tbl table
12962 #: build/C/man2/ioctl_list.2:708
12963 #, no-wrap
12964 msgid "0x80044DFE\tSOUND_MIXER_READ_DEVMASK\tint *\n"
12965 msgstr ""
12966
12967 #. type: tbl table
12968 #: build/C/man2/ioctl_list.2:709
12969 #, no-wrap
12970 msgid "0x80044DFD\tSOUND_MIXER_READ_RECMASK\tint *\n"
12971 msgstr ""
12972
12973 #. type: tbl table
12974 #: build/C/man2/ioctl_list.2:710
12975 #, no-wrap
12976 msgid "0x80044DFB\tSOUND_MIXER_READ_STEREODEVS\tint *\n"
12977 msgstr ""
12978
12979 #. type: tbl table
12980 #: build/C/man2/ioctl_list.2:711
12981 #, no-wrap
12982 msgid "0x80044DFC\tSOUND_MIXER_READ_CAPS\tint *\n"
12983 msgstr ""
12984
12985 #. type: tbl table
12986 #: build/C/man2/ioctl_list.2:715
12987 #, no-wrap
12988 msgid "0xC0044D00\tSOUND_MIXER_WRITE_VOLUME\tint *\t// I-O\n"
12989 msgstr ""
12990
12991 #. type: tbl table
12992 #: build/C/man2/ioctl_list.2:716
12993 #, no-wrap
12994 msgid "0xC0044D01\tSOUND_MIXER_WRITE_BASS\tint *\t// I-O\n"
12995 msgstr ""
12996
12997 #. type: tbl table
12998 #: build/C/man2/ioctl_list.2:717
12999 #, no-wrap
13000 msgid "0xC0044D02\tSOUND_MIXER_WRITE_TREBLE\tint *\t// I-O\n"
13001 msgstr ""
13002
13003 #. type: tbl table
13004 #: build/C/man2/ioctl_list.2:718
13005 #, no-wrap
13006 msgid "0xC0044D03\tSOUND_MIXER_WRITE_SYNTH\tint *\t// I-O\n"
13007 msgstr ""
13008
13009 #. type: tbl table
13010 #: build/C/man2/ioctl_list.2:719
13011 #, no-wrap
13012 msgid "0xC0044D04\tSOUND_MIXER_WRITE_PCM\tint *\t// I-O\n"
13013 msgstr ""
13014
13015 #. type: tbl table
13016 #: build/C/man2/ioctl_list.2:720
13017 #, no-wrap
13018 msgid "0xC0044D05\tSOUND_MIXER_WRITE_SPEAKER\tint *\t// I-O\n"
13019 msgstr ""
13020
13021 #. type: tbl table
13022 #: build/C/man2/ioctl_list.2:721
13023 #, no-wrap
13024 msgid "0xC0044D06\tSOUND_MIXER_WRITE_LINE\tint *\t// I-O\n"
13025 msgstr ""
13026
13027 #. type: tbl table
13028 #: build/C/man2/ioctl_list.2:722
13029 #, no-wrap
13030 msgid "0xC0044D07\tSOUND_MIXER_WRITE_MIC\tint *\t// I-O\n"
13031 msgstr ""
13032
13033 #. type: tbl table
13034 #: build/C/man2/ioctl_list.2:723
13035 #, no-wrap
13036 msgid "0xC0044D08\tSOUND_MIXER_WRITE_CD\tint *\t// I-O\n"
13037 msgstr ""
13038
13039 #. type: tbl table
13040 #: build/C/man2/ioctl_list.2:724
13041 #, no-wrap
13042 msgid "0xC0044D09\tSOUND_MIXER_WRITE_IMIX\tint *\t// I-O\n"
13043 msgstr ""
13044
13045 #. type: tbl table
13046 #: build/C/man2/ioctl_list.2:725
13047 #, no-wrap
13048 msgid "0xC0044D0A\tSOUND_MIXER_WRITE_ALTPCM\tint *\t// I-O\n"
13049 msgstr ""
13050
13051 #. type: tbl table
13052 #: build/C/man2/ioctl_list.2:726
13053 #, no-wrap
13054 msgid "0xC0044D0B\tSOUND_MIXER_WRITE_RECLEV\tint *\t// I-O\n"
13055 msgstr ""
13056
13057 #. type: tbl table
13058 #: build/C/man2/ioctl_list.2:727
13059 #, no-wrap
13060 msgid "0xC0044D0C\tSOUND_MIXER_WRITE_IGAIN\tint *\t// I-O\n"
13061 msgstr ""
13062
13063 #. type: tbl table
13064 #: build/C/man2/ioctl_list.2:728
13065 #, no-wrap
13066 msgid "0xC0044D0D\tSOUND_MIXER_WRITE_OGAIN\tint *\t// I-O\n"
13067 msgstr ""
13068
13069 #. type: tbl table
13070 #: build/C/man2/ioctl_list.2:729
13071 #, no-wrap
13072 msgid "0xC0044D0E\tSOUND_MIXER_WRITE_LINE1\tint *\t// I-O\n"
13073 msgstr ""
13074
13075 #. type: tbl table
13076 #: build/C/man2/ioctl_list.2:730
13077 #, no-wrap
13078 msgid "0xC0044D0F\tSOUND_MIXER_WRITE_LINE2\tint *\t// I-O\n"
13079 msgstr ""
13080
13081 #. type: tbl table
13082 #: build/C/man2/ioctl_list.2:731
13083 #, no-wrap
13084 msgid "0xC0044D10\tSOUND_MIXER_WRITE_LINE3\tint *\t// I-O\n"
13085 msgstr ""
13086
13087 #. type: tbl table
13088 #: build/C/man2/ioctl_list.2:732
13089 #, no-wrap
13090 msgid "0xC0044D1C\tSOUND_MIXER_WRITE_MUTE\tint *\t// I-O\n"
13091 msgstr ""
13092
13093 #. type: tbl table
13094 #: build/C/man2/ioctl_list.2:733
13095 #, no-wrap
13096 msgid "0xC0044D1D\tSOUND_MIXER_WRITE_ENHANCE\tint *\t// I-O\n"
13097 msgstr ""
13098
13099 #. type: tbl table
13100 #: build/C/man2/ioctl_list.2:734
13101 #, no-wrap
13102 msgid "0xC0044D1E\tSOUND_MIXER_WRITE_LOUD\tint *\t// I-O\n"
13103 msgstr ""
13104
13105 #. type: tbl table
13106 #: build/C/man2/ioctl_list.2:735
13107 #, no-wrap
13108 msgid "0xC0044DFF\tSOUND_MIXER_WRITE_RECSRC\tint *\t// I-O\n"
13109 msgstr ""
13110
13111 #. type: Plain text
13112 #: build/C/man2/ioctl_list.2:739
13113 msgid "// E<lt>include/linux/umsdos_fs.hE<gt>"
13114 msgstr ""
13115
13116 #. type: tbl table
13117 #: build/C/man2/ioctl_list.2:741
13118 #, no-wrap
13119 msgid "0x000004D2\tUMSDOS_READDIR_DOS\tstruct umsdos_ioctl *\t// I-O\n"
13120 msgstr ""
13121
13122 #. type: tbl table
13123 #: build/C/man2/ioctl_list.2:742
13124 #, no-wrap
13125 msgid "0x000004D3\tUMSDOS_UNLINK_DOS\tconst struct umsdos_ioctl *\n"
13126 msgstr ""
13127
13128 #. type: tbl table
13129 #: build/C/man2/ioctl_list.2:743
13130 #, no-wrap
13131 msgid "0x000004D4\tUMSDOS_RMDIR_DOS\tconst struct umsdos_ioctl *\n"
13132 msgstr ""
13133
13134 #. type: tbl table
13135 #: build/C/man2/ioctl_list.2:744
13136 #, no-wrap
13137 msgid "0x000004D5\tUMSDOS_STAT_DOS\tstruct umsdos_ioctl *\t// I-O\n"
13138 msgstr ""
13139
13140 #. type: tbl table
13141 #: build/C/man2/ioctl_list.2:745
13142 #, no-wrap
13143 msgid "0x000004D6\tUMSDOS_CREAT_EMD\tconst struct umsdos_ioctl *\n"
13144 msgstr ""
13145
13146 #. type: tbl table
13147 #: build/C/man2/ioctl_list.2:746
13148 #, no-wrap
13149 msgid "0x000004D7\tUMSDOS_UNLINK_EMD\tconst struct umsdos_ioctl *\n"
13150 msgstr ""
13151
13152 #. type: tbl table
13153 #: build/C/man2/ioctl_list.2:747
13154 #, no-wrap
13155 msgid "0x000004D8\tUMSDOS_READDIR_EMD\tstruct umsdos_ioctl *\t// I-O\n"
13156 msgstr ""
13157
13158 #. type: tbl table
13159 #: build/C/man2/ioctl_list.2:748
13160 #, no-wrap
13161 msgid "0x000004D9\tUMSDOS_GETVERSION\tstruct umsdos_ioctl *\n"
13162 msgstr ""
13163
13164 #. type: tbl table
13165 #: build/C/man2/ioctl_list.2:749
13166 #, no-wrap
13167 msgid "0x000004DA\tUMSDOS_INIT_EMD\tvoid\n"
13168 msgstr ""
13169
13170 #. type: tbl table
13171 #: build/C/man2/ioctl_list.2:750
13172 #, no-wrap
13173 msgid "0x000004DB\tUMSDOS_DOS_SETUP\tconst struct umsdos_ioctl *\n"
13174 msgstr ""
13175
13176 #. type: tbl table
13177 #: build/C/man2/ioctl_list.2:751
13178 #, no-wrap
13179 msgid "0x000004DC\tUMSDOS_RENAME_DOS\tconst struct umsdos_ioctl *\n"
13180 msgstr ""
13181
13182 #. type: Plain text
13183 #: build/C/man2/ioctl_list.2:755
13184 msgid "// E<lt>include/linux/vt.hE<gt>"
13185 msgstr ""
13186
13187 #. type: tbl table
13188 #: build/C/man2/ioctl_list.2:757
13189 #, no-wrap
13190 msgid "0x00005600\tVT_OPENQRY\tint *\n"
13191 msgstr ""
13192
13193 #. type: tbl table
13194 #: build/C/man2/ioctl_list.2:758
13195 #, no-wrap
13196 msgid "0x00005601\tVT_GETMODE\tstruct vt_mode *\n"
13197 msgstr ""
13198
13199 #. type: tbl table
13200 #: build/C/man2/ioctl_list.2:759
13201 #, no-wrap
13202 msgid "0x00005602\tVT_SETMODE\tconst struct vt_mode *\n"
13203 msgstr ""
13204
13205 #. type: tbl table
13206 #: build/C/man2/ioctl_list.2:760
13207 #, no-wrap
13208 msgid "0x00005603\tVT_GETSTATE\tstruct vt_stat *\n"
13209 msgstr ""
13210
13211 #. type: tbl table
13212 #: build/C/man2/ioctl_list.2:761
13213 #, no-wrap
13214 msgid "0x00005604\tVT_SENDSIG\tvoid\n"
13215 msgstr ""
13216
13217 #. type: tbl table
13218 #: build/C/man2/ioctl_list.2:762
13219 #, no-wrap
13220 msgid "0x00005605\tVT_RELDISP\tint\n"
13221 msgstr ""
13222
13223 #. type: tbl table
13224 #: build/C/man2/ioctl_list.2:763
13225 #, no-wrap
13226 msgid "0x00005606\tVT_ACTIVATE\tint\n"
13227 msgstr ""
13228
13229 #. type: tbl table
13230 #: build/C/man2/ioctl_list.2:764
13231 #, no-wrap
13232 msgid "0x00005607\tVT_WAITACTIVE\tint\n"
13233 msgstr ""
13234
13235 #. type: tbl table
13236 #: build/C/man2/ioctl_list.2:765
13237 #, no-wrap
13238 msgid "0x00005608\tVT_DISALLOCATE\tint\n"
13239 msgstr ""
13240
13241 #. type: tbl table
13242 #: build/C/man2/ioctl_list.2:766
13243 #, no-wrap
13244 msgid "0x00005609\tVT_RESIZE\tconst struct vt_sizes *\n"
13245 msgstr ""
13246
13247 #. type: tbl table
13248 #: build/C/man2/ioctl_list.2:767
13249 #, no-wrap
13250 msgid "0x0000560A\tVT_RESIZEX\tconst struct vt_consize *\n"
13251 msgstr ""
13252
13253 #. type: Plain text
13254 #: build/C/man2/ioctl_list.2:774
13255 msgid ""
13256 "// More arguments.  Some ioctl's take a pointer to a structure which "
13257 "contains additional pointers.  These are documented here in alphabetical "
13258 "order."
13259 msgstr ""
13260
13261 #. type: Plain text
13262 #: build/C/man2/ioctl_list.2:782
13263 msgid ""
13264 "B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio\\ "
13265 "*>.  The I<buf> field points to an output buffer of length I<nframes\\ * "
13266 "CD_FRAMESIZE_RAW>."
13267 msgstr ""
13268
13269 #. type: Plain text
13270 #: build/C/man2/ioctl_list.2:798
13271 msgid ""
13272 "B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and "
13273 "B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf\\ *>.  They "
13274 "use the same pointer as an output pointer to I<char []>.  The length varies "
13275 "by request.  For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
13276 "Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical "
13277 "value 2048)."
13278 msgstr ""
13279
13280 #. type: Plain text
13281 #: build/C/man2/ioctl_list.2:804
13282 #, no-wrap
13283 msgid ""
13284 "    CDROMREADCOOKED    char [CD_FRAMESIZE]\n"
13285 "    CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]\n"
13286 "    CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]\n"
13287 "    CDROMREADRAW       char [CD_FRAMESIZE_RAW]\n"
13288 msgstr ""
13289
13290 #. type: Plain text
13291 #: build/C/man2/ioctl_list.2:818
13292 msgid ""
13293 "B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, "
13294 "B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq\\ *>.  "
13295 "The I<ifr_data> field is a pointer to another structure as follows:"
13296 msgstr ""
13297
13298 #. type: Plain text
13299 #: build/C/man2/ioctl_list.2:826
13300 #, no-wrap
13301 msgid ""
13302 "    EQL_ENSLAVE         const struct slaving_request *\n"
13303 "    EQL_EMANCIPATE      const struct slaving_request *\n"
13304 "    EQL_GETSLAVECFG     struct slave_config *           // I-O\n"
13305 "    EQL_SETSLAVECFG     const struct slave_config *\n"
13306 "    EQL_GETMASTERCFG    struct master_config *\n"
13307 "    EQL_SETMASTERCFG    const struct master_config *\n"
13308 msgstr ""
13309
13310 #. type: Plain text
13311 #: build/C/man2/ioctl_list.2:843
13312 msgid ""
13313 "B<FDRAWCMD> takes a I<struct floppy raw_cmd\\ *>.  If I<flags & "
13314 "FD_RAW_WRITE> is nonzero, then I<data> points to an input buffer of length "
13315 "I<length>.  If I<flags & FD_RAW_READ> is nonzero, then I<data> points to an "
13316 "output buffer of length I<length>."
13317 msgstr ""
13318
13319 #. type: Plain text
13320 #: build/C/man2/ioctl_list.2:859
13321 msgid ""
13322 "B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc\\ *> or a "
13323 "I<const struct console_font_desc\\ *>, respectively.  I<chardata> points to "
13324 "a buffer of I<char [charcount]>.  This is an output buffer for B<GIO_FONTX> "
13325 "and an input buffer for B<PIO_FONTX>."
13326 msgstr ""
13327
13328 #. type: Plain text
13329 #: build/C/man2/ioctl_list.2:875
13330 msgid ""
13331 "B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc\\ *> or a I<const "
13332 "struct unimapdesc\\ *>, respectively.  I<entries> points to a buffer of "
13333 "I<struct unipair [entry_ct]>.  This is an output buffer for B<GIO_UNIMAP> "
13334 "and an input buffer for B<PIO_UNIMAP>."
13335 msgstr ""
13336
13337 #. type: Plain text
13338 #: build/C/man2/ioctl_list.2:879
13339 msgid ""
13340 "KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O "
13341 "ports.  They are essentially alternate interfaces to 'ioperm'."
13342 msgstr ""
13343
13344 #. type: Plain text
13345 #: build/C/man2/ioctl_list.2:885
13346 msgid ""
13347 "B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O "
13348 "port access.  They are not implemented in the kernel."
13349 msgstr ""
13350
13351 #. type: Plain text
13352 #: build/C/man2/ioctl_list.2:893
13353 msgid ""
13354 "B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int\\ *>, which is a "
13355 "length.  It uses the same pointer as an output pointer to a I<char []> "
13356 "buffer of this length."
13357 msgstr ""
13358
13359 #. type: Plain text
13360 #: build/C/man2/ioctl_list.2:899
13361 msgid ""
13362 "B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on "
13363 "the protocol:"
13364 msgstr ""
13365
13366 #. type: Plain text
13367 #: build/C/man2/ioctl_list.2:904
13368 #, no-wrap
13369 msgid ""
13370 "    Most protocols      const struct rtentry *\n"
13371 "    AX.25               const struct ax25_route *\n"
13372 "    NET/ROM             const struct nr_route_struct *\n"
13373 msgstr ""
13374
13375 #. type: Plain text
13376 #: build/C/man2/ioctl_list.2:915
13377 msgid ""
13378 "B<SIOCGIFCONF> takes a I<struct ifconf\\ *>.  The I<ifc_buf> field points to "
13379 "a buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
13380 "type I<struct ifreq []>."
13381 msgstr ""
13382
13383 #. type: Plain text
13384 #: build/C/man2/ioctl_list.2:918
13385 msgid "B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:"
13386 msgstr ""
13387
13388 #. type: Plain text
13389 #: build/C/man2/ioctl_list.2:922
13390 #, no-wrap
13391 msgid ""
13392 "    Most protocols      const struct ifreq *\n"
13393 "    AX.25               const char [AX25_ADDR_LEN]\n"
13394 msgstr ""
13395
13396 #. type: Plain text
13397 #: build/C/man2/ioctl_list.2:937
13398 msgid ""
13399 "B<TIOCLINUX> takes a I<const char\\ *>.  It uses this to distinguish several "
13400 "independent subcases.  In the table below, I<N + foo> means I<foo> after an "
13401 "N-byte pad.  I<struct selection> is implicitly defined in "
13402 "I<drivers/char/selection.c>"
13403 msgstr ""
13404
13405 #. type: Plain text
13406 #: build/C/man2/ioctl_list.2:946
13407 #, no-wrap
13408 msgid ""
13409 "    TIOCLINUX-2         1 + const struct selection *\n"
13410 "    TIOCLINUX-3         void\n"
13411 "    TIOCLINUX-4         void\n"
13412 "    TIOCLINUX-5         4 + const struct { long [8]; } *\n"
13413 "    TIOCLINUX-6         char *\n"
13414 "    TIOCLINUX-7         char *\n"
13415 "    TIOCLINUX-10        1 + const char *\n"
13416 msgstr ""
13417
13418 #. type: Plain text
13419 #: build/C/man2/ioctl_list.2:949
13420 msgid "// Duplicate ioctls"
13421 msgstr ""
13422
13423 #. type: Plain text
13424 #: build/C/man2/ioctl_list.2:954
13425 msgid ""
13426 "This list does not include ioctls in the range B<SIOCDEVPRIVATE> and "
13427 "B<SIOCPROTOPRIVATE>."
13428 msgstr ""
13429
13430 #. type: tbl table
13431 #: build/C/man2/ioctl_list.2:956
13432 #, no-wrap
13433 msgid "0x00000001\tFDSETPRM\tFIBMAP\n"
13434 msgstr ""
13435
13436 #. type: tbl table
13437 #: build/C/man2/ioctl_list.2:957
13438 #, no-wrap
13439 msgid "0x00000002\tFDDEFPRM\tFIGETBSZ\n"
13440 msgstr ""
13441
13442 #. type: tbl table
13443 #: build/C/man2/ioctl_list.2:958
13444 #, no-wrap
13445 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tSCSI_IOCTL_GET_IDLUN\n"
13446 msgstr ""
13447
13448 #. type: tbl table
13449 #: build/C/man2/ioctl_list.2:959
13450 #, no-wrap
13451 msgid "0x00005402\tSNDCTL_TMR_START\tTCSETS\n"
13452 msgstr ""
13453
13454 #. type: tbl table
13455 #: build/C/man2/ioctl_list.2:960
13456 #, no-wrap
13457 msgid "0x00005403\tSNDCTL_TMR_STOP\tTCSETSW\n"
13458 msgstr ""
13459
13460 #. type: tbl table
13461 #: build/C/man2/ioctl_list.2:961
13462 #, no-wrap
13463 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tTCSETSF\n"
13464 msgstr ""
13465
13466 #. type: Plain text
13467 #: build/C/man2/ioctl_list.2:964
13468 msgid "B<ioctl>(2)"
13469 msgstr ""
13470
13471 #. type: TH
13472 #: build/C/man2/ioperm.2:34
13473 #, no-wrap
13474 msgid "IOPERM"
13475 msgstr ""
13476
13477 #. type: Plain text
13478 #: build/C/man2/ioperm.2:37
13479 msgid "ioperm - set port input/output permissions"
13480 msgstr ""
13481
13482 #. type: Plain text
13483 #: build/C/man2/ioperm.2:40
13484 msgid "B<#include E<lt>sys/io.hE<gt>> /* for glibc */"
13485 msgstr ""
13486
13487 #. type: Plain text
13488 #: build/C/man2/ioperm.2:42
13489 msgid ""
13490 "B<int ioperm(unsigned long >I<from>B<, unsigned long >I<num>B<, int "
13491 ">I<turn_on>B<);>"
13492 msgstr ""
13493
13494 #. type: Plain text
13495 #: build/C/man2/ioperm.2:56
13496 msgid ""
13497 "B<ioperm>()  sets the port access permission bits for the calling thread for "
13498 "I<num> bits starting from port address I<from>.  If I<turn_on> is nonzero, "
13499 "then permission for the specified bits is enabled; otherwise it is "
13500 "disabled.  If I<turn_on> is nonzero, the calling thread must be privileged "
13501 "(B<CAP_SYS_RAWIO>)."
13502 msgstr ""
13503
13504 #. type: Plain text
13505 #: build/C/man2/ioperm.2:65
13506 msgid ""
13507 "Before Linux 2.6.8, only the first 0x3ff I/O ports could be specified in "
13508 "this manner.  For more ports, the B<iopl>(2)  system call had to be used "
13509 "(with a I<level> argument of 3).  Since Linux 2.6.8, 65,536 I/O ports can be "
13510 "specified."
13511 msgstr ""
13512
13513 #. type: Plain text
13514 #: build/C/man2/ioperm.2:75
13515 msgid ""
13516 "Permissions are not inherited by the child created by B<fork>(2); following "
13517 "a B<fork>(2)  the child must turn on those permissions that it needs.  "
13518 "Permissions are preserved across B<execve>(2); this is useful for giving "
13519 "port access permissions to unprivileged programs."
13520 msgstr ""
13521
13522 #. type: Plain text
13523 #: build/C/man2/ioperm.2:79
13524 msgid ""
13525 "This call is mostly for the i386 architecture.  On many other architectures "
13526 "it does not exist or will always return an error."
13527 msgstr ""
13528
13529 #. type: Plain text
13530 #: build/C/man2/ioperm.2:91
13531 msgid "Invalid values for I<from> or I<num>."
13532 msgstr ""
13533
13534 #. type: Plain text
13535 #: build/C/man2/ioperm.2:94
13536 msgid "(on PowerPC) This call is not supported."
13537 msgstr ""
13538
13539 #.  Could not allocate I/O bitmap.
13540 #. type: Plain text
13541 #: build/C/man2/ioperm.2:98
13542 msgid "Out of memory."
13543 msgstr ""
13544
13545 #. type: Plain text
13546 #: build/C/man2/ioperm.2:101
13547 msgid "The calling thread has insufficient privilege."
13548 msgstr ""
13549
13550 #. type: Plain text
13551 #: build/C/man2/ioperm.2:105
13552 msgid ""
13553 "B<ioperm>()  is Linux-specific and should not be used in programs intended "
13554 "to be portable."
13555 msgstr ""
13556
13557 #. type: Plain text
13558 #: build/C/man2/ioperm.2:109
13559 msgid ""
13560 "The I</proc/ioports> file shows the I/O ports that are currently allocated "
13561 "on the system."
13562 msgstr ""
13563
13564 #. type: Plain text
13565 #: build/C/man2/ioperm.2:117
13566 msgid ""
13567 "Glibc has an B<ioperm>()  prototype both in I<E<lt>sys/io.hE<gt>> and in "
13568 "I<E<lt>sys/perm.hE<gt>>.  Avoid the latter, it is available on i386 only."
13569 msgstr ""
13570
13571 #. type: Plain text
13572 #: build/C/man2/ioperm.2:120
13573 msgid "B<iopl>(2), B<outb>(2), B<capabilities>(7)"
13574 msgstr ""
13575
13576 #. type: TH
13577 #: build/C/man3/lockf.3:28
13578 #, no-wrap
13579 msgid "LOCKF"
13580 msgstr ""
13581
13582 #. type: TH
13583 #: build/C/man3/lockf.3:28
13584 #, no-wrap
13585 msgid "2014-06-13"
13586 msgstr ""
13587
13588 #. type: Plain text
13589 #: build/C/man3/lockf.3:31
13590 msgid "lockf - apply, test or remove a POSIX lock on an open file"
13591 msgstr ""
13592
13593 #. type: Plain text
13594 #: build/C/man3/lockf.3:35
13595 msgid "B<int lockf(int >I<fd>B<, int >I<cmd>B<, off_t >I<len>B<);>"
13596 msgstr ""
13597
13598 #. type: Plain text
13599 #: build/C/man3/lockf.3:42
13600 msgid "B<lockf>():"
13601 msgstr ""
13602
13603 #. type: Plain text
13604 #: build/C/man3/lockf.3:46
13605 msgid ""
13606 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
13607 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
13608 msgstr ""
13609
13610 #. type: Plain text
13611 #: build/C/man3/lockf.3:69
13612 msgid ""
13613 "Apply, test or remove a POSIX lock on a section of an open file.  The file "
13614 "is specified by I<fd>, a file descriptor open for writing, the action by "
13615 "I<cmd>, and the section consists of byte positions I<pos>..I<pos>+I<len>-1 "
13616 "if I<len> is positive, and I<pos>-I<len>..I<pos>-1 if I<len> is negative, "
13617 "where I<pos> is the current file position, and if I<len> is zero, the "
13618 "section extends from the current file position to infinity, encompassing the "
13619 "present and future end-of-file positions.  In all cases, the section may "
13620 "extend past current end-of-file."
13621 msgstr ""
13622
13623 #. type: Plain text
13624 #: build/C/man3/lockf.3:84
13625 msgid ""
13626 "On Linux, B<lockf>()  is just an interface on top of B<fcntl>(2)  locking.  "
13627 "Many other systems implement B<lockf>()  in this way, but note that "
13628 "POSIX.1-2001 leaves the relationship between B<lockf>()  and B<fcntl>(2)  "
13629 "locks unspecified.  A portable application should probably avoid mixing "
13630 "calls to these interfaces."
13631 msgstr ""
13632
13633 #. type: Plain text
13634 #: build/C/man3/lockf.3:86
13635 msgid "Valid operations are given below:"
13636 msgstr ""
13637
13638 #. type: TP
13639 #: build/C/man3/lockf.3:86
13640 #, no-wrap
13641 msgid "B<F_LOCK>"
13642 msgstr ""
13643
13644 #. type: Plain text
13645 #: build/C/man3/lockf.3:96
13646 msgid ""
13647 "Set an exclusive lock on the specified section of the file.  If (part of) "
13648 "this section is already locked, the call blocks until the previous lock is "
13649 "released.  If this section overlaps an earlier locked section, both are "
13650 "merged.  File locks are released as soon as the process holding the locks "
13651 "closes some file descriptor for the file.  A child process does not inherit "
13652 "these locks."
13653 msgstr ""
13654
13655 #. type: TP
13656 #: build/C/man3/lockf.3:96
13657 #, no-wrap
13658 msgid "B<F_TLOCK>"
13659 msgstr ""
13660
13661 #. type: Plain text
13662 #: build/C/man3/lockf.3:102
13663 msgid ""
13664 "Same as B<F_LOCK> but the call never blocks and returns an error instead if "
13665 "the file is already locked."
13666 msgstr ""
13667
13668 #. type: TP
13669 #: build/C/man3/lockf.3:102
13670 #, no-wrap
13671 msgid "B<F_ULOCK>"
13672 msgstr ""
13673
13674 #. type: Plain text
13675 #: build/C/man3/lockf.3:106
13676 msgid ""
13677 "Unlock the indicated section of the file.  This may cause a locked section "
13678 "to be split into two locked sections."
13679 msgstr ""
13680
13681 #. type: TP
13682 #: build/C/man3/lockf.3:106
13683 #, no-wrap
13684 msgid "B<F_TEST>"
13685 msgstr ""
13686
13687 #. type: Plain text
13688 #: build/C/man3/lockf.3:116
13689 msgid ""
13690 "Test the lock: return 0 if the specified section is unlocked or locked by "
13691 "this process; return -1, set I<errno> to B<EAGAIN> (B<EACCES> on some other "
13692 "systems), if another process holds a lock."
13693 msgstr ""
13694
13695 #. type: Plain text
13696 #: build/C/man3/lockf.3:130
13697 msgid ""
13698 "The file is locked and B<F_TLOCK> or B<F_TEST> was specified, or the "
13699 "operation is prohibited because the file has been memory-mapped by another "
13700 "process."
13701 msgstr ""
13702
13703 #. type: Plain text
13704 #: build/C/man3/lockf.3:142
13705 msgid ""
13706 "I<fd> is not an open file descriptor; or I<cmd> is B<F_LOCK> or B<F_TLOCK> "
13707 "and I<fd> is not a writable file descriptor."
13708 msgstr ""
13709
13710 #. type: Plain text
13711 #: build/C/man3/lockf.3:147
13712 msgid "The command was B<F_LOCK> and this lock operation would cause a deadlock."
13713 msgstr ""
13714
13715 #. type: Plain text
13716 #: build/C/man3/lockf.3:151
13717 msgid "An invalid operation was specified in I<cmd>."
13718 msgstr ""
13719
13720 #. type: Plain text
13721 #: build/C/man3/lockf.3:154
13722 msgid "Too many segment locks open, lock table is full."
13723 msgstr ""
13724
13725 #. type: Plain text
13726 #: build/C/man3/lockf.3:159
13727 msgid "The B<lockf>()  function is thread-safe."
13728 msgstr ""
13729
13730 #. type: Plain text
13731 #: build/C/man3/lockf.3:161
13732 msgid "SVr4, POSIX.1-2001."
13733 msgstr ""
13734
13735 #. type: Plain text
13736 #: build/C/man3/lockf.3:164
13737 msgid "B<fcntl>(2), B<flock>(2)"
13738 msgstr ""
13739
13740 #. type: Plain text
13741 #: build/C/man3/lockf.3:175
13742 msgid ""
13743 "I<locks.txt> and I<mandatory-locking.txt> in the Linux kernel source "
13744 "directory I<Documentation/filesystems> (on older kernels, these files are "
13745 "directly under the I<Documentation> directory, and I<mandatory-locking.txt> "
13746 "is called I<mandatory.txt>)"
13747 msgstr ""
13748
13749 #. type: TH
13750 #: build/C/man2/mincore.2:34
13751 #, no-wrap
13752 msgid "MINCORE"
13753 msgstr ""
13754
13755 #. type: TH
13756 #: build/C/man2/mincore.2:34
13757 #, no-wrap
13758 msgid "2008-04-22"
13759 msgstr ""
13760
13761 #. type: Plain text
13762 #: build/C/man2/mincore.2:37
13763 msgid "mincore - determine whether pages are resident in memory"
13764 msgstr ""
13765
13766 #. type: Plain text
13767 #: build/C/man2/mincore.2:41
13768 msgid "B<#include E<lt>sys/mman.hE<gt>>"
13769 msgstr ""
13770
13771 #. type: Plain text
13772 #: build/C/man2/mincore.2:43
13773 msgid ""
13774 "B<int mincore(void *>I<addr>B<, size_t >I<length>B<, unsigned char "
13775 "*>I<vec>B<);>"
13776 msgstr ""
13777
13778 #. type: Plain text
13779 #: build/C/man2/mincore.2:51
13780 msgid "B<mincore>(): _BSD_SOURCE || _SVID_SOURCE"
13781 msgstr ""
13782
13783 #. type: Plain text
13784 #: build/C/man2/mincore.2:62
13785 msgid ""
13786 "B<mincore>()  returns a vector that indicates whether pages of the calling "
13787 "process's virtual memory are resident in core (RAM), and so will not cause a "
13788 "disk access (page fault) if referenced.  The kernel returns residency "
13789 "information about the pages starting at the address I<addr>, and continuing "
13790 "for I<length> bytes."
13791 msgstr ""
13792
13793 #. type: Plain text
13794 #: build/C/man2/mincore.2:76
13795 msgid ""
13796 "The I<addr> argument must be a multiple of the system page size.  The "
13797 "I<length> argument need not be a multiple of the page size, but since "
13798 "residency information is returned for whole pages, I<length> is effectively "
13799 "rounded up to the next multiple of the page size.  One may obtain the page "
13800 "size (B<PAGE_SIZE>)  using I<sysconf(_SC_PAGESIZE)>."
13801 msgstr ""
13802
13803 #. type: Plain text
13804 #: build/C/man2/mincore.2:94
13805 msgid ""
13806 "The I<vec> argument must point to an array containing at least "
13807 "I<(length+PAGE_SIZE-1) / PAGE_SIZE> bytes.  On return, the least significant "
13808 "bit of each byte will be set if the corresponding page is currently resident "
13809 "in memory, and be clear otherwise.  (The settings of the other bits in each "
13810 "byte are undefined; these bits are reserved for possible later use.)  Of "
13811 "course the information returned in I<vec> is only a snapshot: pages that are "
13812 "not locked in memory can come and go at any moment, and the contents of "
13813 "I<vec> may already be stale by the time this call returns."
13814 msgstr ""
13815
13816 #. type: Plain text
13817 #: build/C/man2/mincore.2:101
13818 msgid ""
13819 "On success, B<mincore>()  returns zero.  On error, -1 is returned, and "
13820 "I<errno> is set appropriately."
13821 msgstr ""
13822
13823 #. type: Plain text
13824 #: build/C/man2/mincore.2:104
13825 msgid "B<EAGAIN> kernel is temporarily out of resources."
13826 msgstr ""
13827
13828 #. type: Plain text
13829 #: build/C/man2/mincore.2:108
13830 msgid "I<vec> points to an invalid address."
13831 msgstr ""
13832
13833 #. type: Plain text
13834 #: build/C/man2/mincore.2:112
13835 msgid "I<addr> is not a multiple of the page size."
13836 msgstr ""
13837
13838 #. type: Plain text
13839 #: build/C/man2/mincore.2:124
13840 msgid ""
13841 "I<length> is greater than (I<TASK_SIZE> - I<addr>).  (This could occur if a "
13842 "negative value is specified for I<length>, since that value will be "
13843 "interpreted as a large unsigned integer.)  In Linux 2.6.11 and earlier, the "
13844 "error B<EINVAL> was returned for this condition."
13845 msgstr ""
13846
13847 #. type: Plain text
13848 #: build/C/man2/mincore.2:132
13849 msgid "I<addr> to I<addr> + I<length> contained unmapped memory."
13850 msgstr ""
13851
13852 #. type: Plain text
13853 #: build/C/man2/mincore.2:134
13854 msgid "Available since Linux 2.3.99pre1 and glibc 2.2."
13855 msgstr ""
13856
13857 #.  It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8,
13858 #.  AIX 5.1, SunOS 4.1
13859 #.  .SH HISTORY
13860 #.  The
13861 #.  .BR mincore ()
13862 #.  function first appeared in 4.4BSD.
13863 #. type: Plain text
13864 #: build/C/man2/mincore.2:144
13865 msgid ""
13866 "B<mincore>()  is not specified in POSIX.1-2001, and it is not available on "
13867 "all UNIX implementations."
13868 msgstr ""
13869
13870 #.  Linux (up to now, 2.6.5),
13871 #.  .B mincore
13872 #.  does not return correct information for MAP_PRIVATE mappings:
13873 #.  for a MAP_PRIVATE file mapping,
13874 #.  .B mincore
13875 #.  returns the residency of the file pages, rather than any
13876 #.  modified process-private pages that have been copied on write;
13877 #.  for a MAP_PRIVATE mapping of
13878 #.  .IR /dev/zero ,
13879 #.  .B mincore
13880 #.  always reports pages as nonresident;
13881 #.  and for a MAP_PRIVATE, MAP_ANONYMOUS mapping,
13882 #.  .B mincore
13883 #.  always fails with the error
13884 #.  .BR ENOMEM .
13885 #. type: Plain text
13886 #: build/C/man2/mincore.2:166
13887 msgid ""
13888 "Before kernel 2.6.21, B<mincore>()  did not return correct information for "
13889 "B<MAP_PRIVATE> mappings, or for nonlinear mappings (established using "
13890 "B<remap_file_pages>(2))."
13891 msgstr ""
13892
13893 #. type: Plain text
13894 #: build/C/man2/mincore.2:168
13895 msgid "B<mlock>(2), B<mmap>(2)"
13896 msgstr ""
13897
13898 #. type: TH
13899 #: build/C/man2/mkdir.2:11
13900 #, no-wrap
13901 msgid "MKDIR"
13902 msgstr ""
13903
13904 #. type: Plain text
13905 #: build/C/man2/mkdir.2:14
13906 msgid "mkdir, mkdirat - create a directory"
13907 msgstr ""
13908
13909 #.  .B #include <unistd.h>
13910 #. type: Plain text
13911 #: build/C/man2/mkdir.2:19
13912 #, no-wrap
13913 msgid ""
13914 "B<#include E<lt>sys/stat.hE<gt>>\n"
13915 "B<#include E<lt>sys/types.hE<gt>>\n"
13916 msgstr ""
13917
13918 #. type: Plain text
13919 #: build/C/man2/mkdir.2:21
13920 #, no-wrap
13921 msgid "B<int mkdir(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
13922 msgstr ""
13923
13924 #. type: Plain text
13925 #: build/C/man2/mkdir.2:24
13926 #, no-wrap
13927 msgid ""
13928 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
13929 "B<#include E<lt>sys/stat.hE<gt>>\n"
13930 msgstr ""
13931
13932 #. type: Plain text
13933 #: build/C/man2/mkdir.2:26
13934 #, no-wrap
13935 msgid ""
13936 "B<int mkdirat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
13937 ">I<mode>B<);>\n"
13938 msgstr ""
13939
13940 #. type: Plain text
13941 #: build/C/man2/mkdir.2:34
13942 msgid "B<mkdirat>():"
13943 msgstr ""
13944
13945 #. type: Plain text
13946 #: build/C/man2/mkdir.2:51
13947 msgid "B<mkdir>()  attempts to create a directory named I<pathname>."
13948 msgstr ""
13949
13950 #. type: Plain text
13951 #: build/C/man2/mkdir.2:61
13952 msgid ""
13953 "The argument I<mode> specifies the permissions to use.  It is modified by "
13954 "the process's I<umask> in the usual way: the permissions of the created "
13955 "directory are (I<mode> & ~I<umask> & 0777).  Other mode bits of the created "
13956 "directory depend on the operating system.  For Linux, see below."
13957 msgstr ""
13958
13959 #. type: Plain text
13960 #: build/C/man2/mkdir.2:71
13961 msgid ""
13962 "The newly created directory will be owned by the effective user ID of the "
13963 "process.  If the directory containing the file has the set-group-ID bit set, "
13964 "or if the filesystem is mounted with BSD group semantics (I<mount -o "
13965 "bsdgroups> or, synonymously I<mount -o grpid>), the new directory will "
13966 "inherit the group ownership from its parent; otherwise it will be owned by "
13967 "the effective group ID of the process."
13968 msgstr ""
13969
13970 #. type: Plain text
13971 #: build/C/man2/mkdir.2:76
13972 msgid ""
13973 "If the parent directory has the set-group-ID bit set, then so will the newly "
13974 "created directory."
13975 msgstr ""
13976
13977 #. type: SS
13978 #: build/C/man2/mkdir.2:76
13979 #, no-wrap
13980 msgid "mkdirat()"
13981 msgstr ""
13982
13983 #. type: Plain text
13984 #: build/C/man2/mkdir.2:82
13985 msgid ""
13986 "The B<mkdirat>()  system call operates in exactly the same way as "
13987 "B<mkdir>(), except for the differences described here."
13988 msgstr ""
13989
13990 #. type: Plain text
13991 #: build/C/man2/mkdir.2:92
13992 msgid ""
13993 "If the pathname given in I<pathname> is relative, then it is interpreted "
13994 "relative to the directory referred to by the file descriptor I<dirfd> "
13995 "(rather than relative to the current working directory of the calling "
13996 "process, as is done by B<mkdir>()  for a relative pathname)."
13997 msgstr ""
13998
13999 #. type: Plain text
14000 #: build/C/man2/mkdir.2:104
14001 msgid ""
14002 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
14003 "then I<pathname> is interpreted relative to the current working directory of "
14004 "the calling process (like B<mkdir>())."
14005 msgstr ""
14006
14007 #. type: Plain text
14008 #: build/C/man2/mkdir.2:115
14009 msgid "See B<openat>(2)  for an explanation of the need for B<mkdirat>()."
14010 msgstr ""
14011
14012 #. type: Plain text
14013 #: build/C/man2/mkdir.2:122
14014 msgid ""
14015 "B<mkdir>()  and B<mkdirat>()  return zero on success, or -1 if an error "
14016 "occurred (in which case, I<errno> is set appropriately)."
14017 msgstr ""
14018
14019 #. type: Plain text
14020 #: build/C/man2/mkdir.2:131
14021 msgid ""
14022 "The parent directory does not allow write permission to the process, or one "
14023 "of the directories in I<pathname> did not allow search permission.  (See "
14024 "also B<path_resolution>(7).)"
14025 msgstr ""
14026
14027 #. type: TP
14028 #: build/C/man2/mkdir.2:131
14029 #, no-wrap
14030 msgid "B<EDQUOT>"
14031 msgstr ""
14032
14033 #. type: Plain text
14034 #: build/C/man2/mkdir.2:135
14035 msgid ""
14036 "The user's quota of disk blocks or inodes on the filesystem has been "
14037 "exhausted."
14038 msgstr ""
14039
14040 #. type: TP
14041 #: build/C/man2/mkdir.2:135
14042 #, no-wrap
14043 msgid "B<EEXIST>"
14044 msgstr ""
14045
14046 #. type: Plain text
14047 #: build/C/man2/mkdir.2:142
14048 msgid ""
14049 "I<pathname> already exists (not necessarily as a directory).  This includes "
14050 "the case where I<pathname> is a symbolic link, dangling or not."
14051 msgstr ""
14052
14053 #. type: TP
14054 #: build/C/man2/mkdir.2:149
14055 #, no-wrap
14056 msgid "B<EMLINK>"
14057 msgstr ""
14058
14059 #. type: Plain text
14060 #: build/C/man2/mkdir.2:153
14061 msgid "The number of links to the parent directory would exceed B<LINK_MAX>."
14062 msgstr ""
14063
14064 #. type: Plain text
14065 #: build/C/man2/mkdir.2:156
14066 msgid "I<pathname> was too long."
14067 msgstr ""
14068
14069 #. type: Plain text
14070 #: build/C/man2/mkdir.2:161
14071 msgid ""
14072 "A directory component in I<pathname> does not exist or is a dangling "
14073 "symbolic link."
14074 msgstr ""
14075
14076 #. type: TP
14077 #: build/C/man2/mkdir.2:164 build/C/man2/mkdir.2:169
14078 #, no-wrap
14079 msgid "B<ENOSPC>"
14080 msgstr ""
14081
14082 #. type: Plain text
14083 #: build/C/man2/mkdir.2:169
14084 msgid "The device containing I<pathname> has no room for the new directory."
14085 msgstr ""
14086
14087 #. type: Plain text
14088 #: build/C/man2/mkdir.2:173
14089 msgid ""
14090 "The new directory cannot be created because the user's disk quota is "
14091 "exhausted."
14092 msgstr ""
14093
14094 #. type: Plain text
14095 #: build/C/man2/mkdir.2:183
14096 msgid ""
14097 "The filesystem containing I<pathname> does not support the creation of "
14098 "directories."
14099 msgstr ""
14100
14101 #. type: Plain text
14102 #: build/C/man2/mkdir.2:187
14103 msgid "I<pathname> refers to a file on a read-only filesystem."
14104 msgstr ""
14105
14106 #. type: Plain text
14107 #: build/C/man2/mkdir.2:190
14108 msgid "The following additional errors can occur for B<mkdirat>():"
14109 msgstr ""
14110
14111 #. type: Plain text
14112 #: build/C/man2/mkdir.2:204
14113 msgid ""
14114 "B<mkdirat>()  was added to Linux in kernel 2.6.16; library support was added "
14115 "to glibc in version 2.4."
14116 msgstr ""
14117
14118 #.  SVr4 documents additional EIO, EMULTIHOP
14119 #. type: Plain text
14120 #: build/C/man2/mkdir.2:208
14121 msgid "B<mkdir>(): SVr4, BSD, POSIX.1-2001, POSIX.1-2008."
14122 msgstr ""
14123
14124 #. type: Plain text
14125 #: build/C/man2/mkdir.2:211
14126 msgid "B<mkdirat>(): POSIX.1-2008."
14127 msgstr ""
14128
14129 #. type: Plain text
14130 #: build/C/man2/mkdir.2:219
14131 msgid ""
14132 "Under Linux, apart from the permission bits, only the B<S_ISVTX> mode bit is "
14133 "honored.  That is, under Linux the created directory actually gets mode "
14134 "(I<mode> & ~I<umask> & 01777).  See also B<stat>(2)."
14135 msgstr ""
14136
14137 #. type: Plain text
14138 #: build/C/man2/mkdir.2:223
14139 msgid ""
14140 "There are many infelicities in the protocol underlying NFS.  Some of these "
14141 "affect B<mkdir>()."
14142 msgstr ""
14143
14144 #. type: Plain text
14145 #: build/C/man2/mkdir.2:236
14146 msgid ""
14147 "On older kernels where B<mkdirat>()  is unavailable, the glibc wrapper "
14148 "function falls back to the use of B<mkdir>().  When I<pathname> is a "
14149 "relative pathname, glibc constructs a pathname based on the symbolic link in "
14150 "I</proc/self/fd> that corresponds to the I<dirfd> argument."
14151 msgstr ""
14152
14153 #. type: Plain text
14154 #: build/C/man2/mkdir.2:246
14155 msgid ""
14156 "B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mknod>(2), B<mount>(2), "
14157 "B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<path_resolution>(7)"
14158 msgstr ""
14159
14160 #. type: TH
14161 #: build/C/man2/nice.2:31
14162 #, no-wrap
14163 msgid "NICE"
14164 msgstr ""
14165
14166 #. type: TH
14167 #: build/C/man2/nice.2:31
14168 #, no-wrap
14169 msgid "2014-04-28"
14170 msgstr ""
14171
14172 #. type: Plain text
14173 #: build/C/man2/nice.2:34
14174 msgid "nice - change process priority"
14175 msgstr ""
14176
14177 #. type: Plain text
14178 #: build/C/man2/nice.2:38
14179 msgid "B<int nice(int >I<inc>B<);>"
14180 msgstr ""
14181
14182 #. type: Plain text
14183 #: build/C/man2/nice.2:46
14184 msgid "B<nice>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
14185 msgstr ""
14186
14187 #. type: Plain text
14188 #: build/C/man2/nice.2:56
14189 msgid ""
14190 "B<nice>()  adds I<inc> to the nice value for the calling process.  (A higher "
14191 "nice value means a low priority.)  Only the super\\%user may specify a "
14192 "negative increment, or priority increase.  The range for nice values is "
14193 "described in B<getpriority>(2)."
14194 msgstr ""
14195
14196 #. type: Plain text
14197 #: build/C/man2/nice.2:61
14198 msgid ""
14199 "On success, the new nice value is returned (but see NOTES below).  On error, "
14200 "-1 is returned, and I<errno> is set appropriately."
14201 msgstr ""
14202
14203 #. type: Plain text
14204 #: build/C/man2/nice.2:75
14205 msgid ""
14206 "The calling process attempted to increase its priority by supplying a "
14207 "negative I<inc> but has insufficient privileges.  Under Linux, the "
14208 "B<CAP_SYS_NICE> capability is required.  (But see the discussion of the "
14209 "B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)"
14210 msgstr ""
14211
14212 #. type: Plain text
14213 #: build/C/man2/nice.2:82
14214 msgid ""
14215 "SVr4, 4.3BSD, POSIX.1-2001.  However, the Linux and (g)libc (earlier than "
14216 "glibc 2.2.4) return value is nonstandard, see below.  SVr4 documents an "
14217 "additional B<EINVAL> error code."
14218 msgstr ""
14219
14220 #. type: Plain text
14221 #: build/C/man2/nice.2:92
14222 msgid ""
14223 "SUSv2 and POSIX.1-2001 specify that B<nice>()  should return the new nice "
14224 "value.  However, the Linux syscall and the B<nice>()  library function "
14225 "provided in older versions of (g)libc (earlier than glibc 2.2.4) return 0 on "
14226 "success.  The new nice value can be found using B<getpriority>(2)."
14227 msgstr ""
14228
14229 #. type: Plain text
14230 #: build/C/man2/nice.2:105
14231 msgid ""
14232 "Since glibc 2.2.4, B<nice>()  is implemented as a library function that "
14233 "calls B<getpriority>(2)  to obtain the new nice value to be returned to the "
14234 "caller.  With this implementation, a successful call can legitimately return "
14235 "-1.  To reliably detect an error, set I<errno> to 0 before the call, and "
14236 "check its value when B<nice>()  returns -1."
14237 msgstr ""
14238
14239 #. type: Plain text
14240 #: build/C/man2/nice.2:112
14241 msgid ""
14242 "B<nice>(1), B<renice>(1), B<fork>(2), B<getpriority>(2), B<setpriority>(2), "
14243 "B<capabilities>(7), B<sched>(7)"
14244 msgstr ""
14245
14246 #. type: TH
14247 #: build/C/man2/pread.2:25
14248 #, no-wrap
14249 msgid "PREAD"
14250 msgstr ""
14251
14252 #. type: Plain text
14253 #: build/C/man2/pread.2:28
14254 msgid "pread, pwrite - read from or write to a file descriptor at a given offset"
14255 msgstr ""
14256
14257 #. type: Plain text
14258 #: build/C/man2/pread.2:33
14259 msgid ""
14260 "B<ssize_t pread(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<, off_t "
14261 ">I<offset>B<);>"
14262 msgstr ""
14263
14264 #. type: Plain text
14265 #: build/C/man2/pread.2:36
14266 msgid ""
14267 "B<ssize_t pwrite(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<, "
14268 "off_t >I<offset>B<);>"
14269 msgstr ""
14270
14271 #. type: Plain text
14272 #: build/C/man2/pread.2:46
14273 msgid "B<pread>(), B<pwrite>():"
14274 msgstr ""
14275
14276 #. type: Plain text
14277 #: build/C/man2/pread.2:48
14278 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500"
14279 msgstr ""
14280
14281 #. type: Plain text
14282 #: build/C/man2/pread.2:64
14283 msgid ""
14284 "B<pread>()  reads up to I<count> bytes from file descriptor I<fd> at offset "
14285 "I<offset> (from the start of the file) into the buffer starting at I<buf>.  "
14286 "The file offset is not changed."
14287 msgstr ""
14288
14289 #. type: Plain text
14290 #: build/C/man2/pread.2:75
14291 msgid ""
14292 "B<pwrite>()  writes up to I<count> bytes from the buffer starting at I<buf> "
14293 "to the file descriptor I<fd> at offset I<offset>.  The file offset is not "
14294 "changed."
14295 msgstr ""
14296
14297 #. type: Plain text
14298 #: build/C/man2/pread.2:79
14299 msgid "The file referenced by I<fd> must be capable of seeking."
14300 msgstr ""
14301
14302 #. type: Plain text
14303 #: build/C/man2/pread.2:89
14304 msgid ""
14305 "On success, the number of bytes read or written is returned (zero indicates "
14306 "that nothing was written, in the case of B<pwrite>(), or end of file, in the "
14307 "case of B<pread>()), or -1 on error, in which case I<errno> is set to "
14308 "indicate the error."
14309 msgstr ""
14310
14311 #. type: Plain text
14312 #: build/C/man2/pread.2:104
14313 msgid ""
14314 "B<pread>()  can fail and set I<errno> to any error specified for B<read>(2)  "
14315 "or B<lseek>(2).  B<pwrite>()  can fail and set I<errno> to any error "
14316 "specified for B<write>(2)  or B<lseek>(2)."
14317 msgstr ""
14318
14319 #. type: Plain text
14320 #: build/C/man2/pread.2:115
14321 msgid ""
14322 "The B<pread>()  and B<pwrite>()  system calls were added to Linux in version "
14323 "2.1.60; the entries in the i386 system call table were added in 2.1.69.  C "
14324 "library support (including emulation using B<lseek>(2)  on older kernels "
14325 "without the system calls) was added in glibc 2.1."
14326 msgstr ""
14327
14328 #. type: Plain text
14329 #: build/C/man2/pread.2:125
14330 msgid ""
14331 "The B<pread>()  and B<pwrite>()  system calls are especially useful in "
14332 "multithreaded applications.  They allow multiple threads to perform I/O on "
14333 "the same file descriptor without being affected by changes to the file "
14334 "offset by other threads."
14335 msgstr ""
14336
14337 #. type: Plain text
14338 #: build/C/man2/pread.2:141
14339 msgid ""
14340 "On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>()  "
14341 "became B<pread64>(), and B<pwrite>()  became B<pwrite64>().  The system call "
14342 "numbers remained the same.  The glibc B<pread>()  and B<pwrite>()  wrapper "
14343 "functions transparently deal with the change."
14344 msgstr ""
14345
14346 #. type: Plain text
14347 #: build/C/man2/pread.2:146 build/C/man2/truncate.2:253
14348 msgid ""
14349 "On some 32-bit architectures, the calling signature for these system calls "
14350 "differ, for the reasons described in B<syscall>(2)."
14351 msgstr ""
14352
14353 #.  FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=43178
14354 #. type: Plain text
14355 #: build/C/man2/pread.2:158
14356 msgid ""
14357 "POSIX requires that opening a file with the B<O_APPEND> flag should have no "
14358 "effect on the location at which B<pwrite>()  writes data.  However, on "
14359 "Linux, if a file is opened with B<O_APPEND>, B<pwrite>()  appends data to "
14360 "the end of the file, regardless of the value of I<offset>."
14361 msgstr ""
14362
14363 #. type: Plain text
14364 #: build/C/man2/pread.2:162
14365 msgid "B<lseek>(2), B<read>(2), B<readv>(2), B<write>(2)"
14366 msgstr ""
14367
14368 #. type: TH
14369 #: build/C/man2/set_thread_area.2:8
14370 #, no-wrap
14371 msgid "SET_THREAD_AREA"
14372 msgstr ""
14373
14374 #. type: Plain text
14375 #: build/C/man2/set_thread_area.2:11
14376 msgid "set_thread_area - set a thread local storage (TLS) area"
14377 msgstr ""
14378
14379 #. type: Plain text
14380 #: build/C/man2/set_thread_area.2:17
14381 msgid "B<int set_thread_area(struct user_desc *>I<u_info>B<);>"
14382 msgstr ""
14383
14384 #. type: Plain text
14385 #: build/C/man2/set_thread_area.2:33
14386 msgid ""
14387 "B<set_thread_area>()  sets an entry in the current thread's thread-local "
14388 "storage (TLS) array.  The TLS array entry set by B<set_thread_area>()  "
14389 "corresponds to the value of I<u_info-E<gt>entry_number> passed in by the "
14390 "user.  If this value is in bounds, B<set_thread_area>()  copies the TLS "
14391 "descriptor pointed to by I<u_info> into the thread's TLS array."
14392 msgstr ""
14393
14394 #. type: Plain text
14395 #: build/C/man2/set_thread_area.2:44
14396 msgid ""
14397 "When B<set_thread_area>()  is passed an I<entry_number> of -1, it uses a "
14398 "free TLS entry.  If B<set_thread_area>()  finds a free TLS entry, the value "
14399 "of I<u_info-E<gt>entry_number> is set upon return to show which entry was "
14400 "changed."
14401 msgstr ""
14402
14403 #. type: Plain text
14404 #: build/C/man2/set_thread_area.2:49
14405 msgid ""
14406 "B<set_thread_area>()  returns 0 on success, and -1 on failure, with I<errno> "
14407 "set appropriately."
14408 msgstr ""
14409
14410 #. type: TP
14411 #: build/C/man2/set_thread_area.2:56
14412 #, no-wrap
14413 msgid "B<ESRCH>"
14414 msgstr ""
14415
14416 #. type: Plain text
14417 #: build/C/man2/set_thread_area.2:59
14418 msgid "A free TLS entry could not be located."
14419 msgstr ""
14420
14421 #. type: Plain text
14422 #: build/C/man2/set_thread_area.2:63
14423 msgid "A version of B<set_thread_area>()  first appeared in Linux 2.5.29."
14424 msgstr ""
14425
14426 #. type: Plain text
14427 #: build/C/man2/set_thread_area.2:67
14428 msgid ""
14429 "B<set_thread_area>()  is Linux-specific and should not be used in programs "
14430 "that are intended to be portable."
14431 msgstr ""
14432
14433 #. type: Plain text
14434 #: build/C/man2/set_thread_area.2:72
14435 msgid ""
14436 "Glibc does not provide a wrapper for this system call, since it is generally "
14437 "intended only for use by threading libraries.  In the unlikely event that "
14438 "you want to call it directly, use B<syscall>(2)."
14439 msgstr ""
14440
14441 #. type: Plain text
14442 #: build/C/man2/set_thread_area.2:73
14443 msgid "B<get_thread_area>(2)"
14444 msgstr ""
14445
14446 #. type: TH
14447 #: build/C/man2/setup.2:34
14448 #, no-wrap
14449 msgid "SETUP"
14450 msgstr ""
14451
14452 #. type: TH
14453 #: build/C/man2/setup.2:34
14454 #, no-wrap
14455 msgid "2008-12-03"
14456 msgstr ""
14457
14458 #. type: Plain text
14459 #: build/C/man2/setup.2:37
14460 msgid "setup - setup devices and filesystems, mount root filesystem"
14461 msgstr ""
14462
14463 #. type: Plain text
14464 #: build/C/man2/setup.2:41
14465 msgid "B<int setup(void);>"
14466 msgstr ""
14467
14468 #. type: Plain text
14469 #: build/C/man2/setup.2:47
14470 msgid ""
14471 "B<setup>()  is called once from within I<linux/init/main.c>.  It calls "
14472 "initialization functions for devices and filesystems configured into the "
14473 "kernel and then mounts the root filesystem."
14474 msgstr ""
14475
14476 #. type: Plain text
14477 #: build/C/man2/setup.2:53
14478 msgid ""
14479 "No user process may call B<setup>().  Any user process, even a process with "
14480 "superuser permission, will receive B<EPERM>."
14481 msgstr ""
14482
14483 #. type: Plain text
14484 #: build/C/man2/setup.2:56
14485 msgid "B<setup>()  always returns -1 for a user process."
14486 msgstr ""
14487
14488 #. type: Plain text
14489 #: build/C/man2/setup.2:62
14490 msgid "Since Linux 2.1.121, no such function exists anymore."
14491 msgstr ""
14492
14493 #. type: Plain text
14494 #: build/C/man2/setup.2:65
14495 msgid ""
14496 "This function is Linux-specific, and should not be used in programs intended "
14497 "to be portable, or indeed in any programs at all."
14498 msgstr ""
14499
14500 #. type: Plain text
14501 #: build/C/man2/setup.2:71
14502 msgid ""
14503 "The calling sequence varied: at some times B<setup>()  has had a single "
14504 "argument I<void\\ *BIOS> and at other times a single argument I<int magic>."
14505 msgstr ""
14506
14507 #. type: TH
14508 #: build/C/man5/shells.5:28
14509 #, no-wrap
14510 msgid "SHELLS"
14511 msgstr ""
14512
14513 #. type: Plain text
14514 #: build/C/man5/shells.5:31
14515 msgid "shells - pathnames of valid login shells"
14516 msgstr ""
14517
14518 #. type: Plain text
14519 #: build/C/man5/shells.5:37
14520 msgid ""
14521 "I</etc/shells> is a text file which contains the full pathnames of valid "
14522 "login shells.  This file is consulted by B<chsh>(1)  and available to be "
14523 "queried by other programs."
14524 msgstr ""
14525
14526 #. type: Plain text
14527 #: build/C/man5/shells.5:43
14528 msgid ""
14529 "Be aware that there are programs which consult this file to find out if a "
14530 "user is a normal user; for example, FTP daemons traditionally disallow "
14531 "access to users with shells not included in this file."
14532 msgstr ""
14533
14534 #. type: Plain text
14535 #: build/C/man5/shells.5:45
14536 msgid "I</etc/shells>"
14537 msgstr ""
14538
14539 #. type: Plain text
14540 #: build/C/man5/shells.5:48
14541 msgid "I</etc/shells> may contain the following paths:"
14542 msgstr ""
14543
14544 #. type: Plain text
14545 #: build/C/man5/shells.5:51
14546 msgid "I</bin/sh>"
14547 msgstr ""
14548
14549 #. type: Plain text
14550 #: build/C/man5/shells.5:53
14551 msgid "I</bin/bash>"
14552 msgstr ""
14553
14554 #. type: Plain text
14555 #: build/C/man5/shells.5:55
14556 msgid "I</bin/csh>"
14557 msgstr ""
14558
14559 #. type: Plain text
14560 #: build/C/man5/shells.5:58
14561 msgid "B<chsh>(1), B<getusershell>(3)"
14562 msgstr ""
14563
14564 #. type: TH
14565 #: build/C/man3/sleep.3:26
14566 #, no-wrap
14567 msgid "SLEEP"
14568 msgstr ""
14569
14570 #. type: TH
14571 #: build/C/man3/sleep.3:26
14572 #, no-wrap
14573 msgid "2010-02-03"
14574 msgstr ""
14575
14576 #. type: Plain text
14577 #: build/C/man3/sleep.3:29
14578 msgid "sleep - sleep for the specified number of seconds"
14579 msgstr ""
14580
14581 #. type: Plain text
14582 #: build/C/man3/sleep.3:34
14583 #, no-wrap
14584 msgid "B<unsigned int sleep(unsigned int >I<seconds>B<);>\n"
14585 msgstr ""
14586
14587 #. type: Plain text
14588 #: build/C/man3/sleep.3:40
14589 msgid ""
14590 "B<sleep>()  makes the calling thread sleep until I<seconds> seconds have "
14591 "elapsed or a signal arrives which is not ignored."
14592 msgstr ""
14593
14594 #. type: Plain text
14595 #: build/C/man3/sleep.3:44
14596 msgid ""
14597 "Zero if the requested time has elapsed, or the number of seconds left to "
14598 "sleep, if the call was interrupted by a signal handler."
14599 msgstr ""
14600
14601 #. type: Plain text
14602 #: build/C/man3/sleep.3:55
14603 msgid ""
14604 "B<sleep>()  may be implemented using B<SIGALRM>; mixing calls to B<alarm>(2)  "
14605 "and B<sleep>()  is a bad idea."
14606 msgstr ""
14607
14608 #. type: Plain text
14609 #: build/C/man3/sleep.3:61
14610 msgid ""
14611 "Using B<longjmp>(3)  from a signal handler or modifying the handling of "
14612 "B<SIGALRM> while sleeping will cause undefined results."
14613 msgstr ""
14614
14615 #. type: Plain text
14616 #: build/C/man3/sleep.3:65
14617 msgid "B<alarm>(2), B<nanosleep>(2), B<signal>(2), B<signal>(7)"
14618 msgstr ""
14619
14620 #. type: TH
14621 #: build/C/man3/swab.3:31
14622 #, no-wrap
14623 msgid "SWAB"
14624 msgstr ""
14625
14626 #. type: TH
14627 #: build/C/man3/swab.3:31
14628 #, no-wrap
14629 msgid "2014-02-25"
14630 msgstr ""
14631
14632 #. type: Plain text
14633 #: build/C/man3/swab.3:34
14634 msgid "swab - swap adjacent bytes"
14635 msgstr ""
14636
14637 #. type: Plain text
14638 #: build/C/man3/swab.3:38
14639 #, no-wrap
14640 msgid ""
14641 "B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
14642 "B<#include E<lt>unistd.hE<gt>>\n"
14643 msgstr ""
14644
14645 #. type: Plain text
14646 #: build/C/man3/swab.3:40
14647 #, no-wrap
14648 msgid "B<void swab(const void *>I<from>B<, void *>I<to>B<, ssize_t >I<n>B<);>\n"
14649 msgstr ""
14650
14651 #. type: Plain text
14652 #: build/C/man3/swab.3:55
14653 msgid ""
14654 "The B<swab>()  function copies I<n> bytes from the array pointed to by "
14655 "I<from> to the array pointed to by I<to>, exchanging adjacent even and odd "
14656 "bytes.  This function is used to exchange data between machines that have "
14657 "different low/high byte ordering."
14658 msgstr ""
14659
14660 #. type: Plain text
14661 #: build/C/man3/swab.3:68
14662 msgid ""
14663 "This function does nothing when I<n> is negative.  When I<n> is positive and "
14664 "odd, it handles I<n-1> bytes as above, and does something unspecified with "
14665 "the last byte.  (In other words, I<n> should be even.)"
14666 msgstr ""
14667
14668 #. type: Plain text
14669 #: build/C/man3/swab.3:72
14670 msgid "The B<swab>()  function returns no value."
14671 msgstr ""
14672
14673 #. type: Plain text
14674 #: build/C/man3/swab.3:77
14675 msgid "The B<swab>()  function is thread-safe."
14676 msgstr ""
14677
14678 #. type: Plain text
14679 #: build/C/man3/swab.3:80
14680 msgid "B<bstring>(3)"
14681 msgstr ""
14682
14683 #. type: TH
14684 #: build/C/man2/swapon.2:42
14685 #, no-wrap
14686 msgid "SWAPON"
14687 msgstr ""
14688
14689 #. type: Plain text
14690 #: build/C/man2/swapon.2:45
14691 msgid "swapon, swapoff - start/stop swapping to file/device"
14692 msgstr ""
14693
14694 #. type: Plain text
14695 #: build/C/man2/swapon.2:49
14696 msgid "B<#include E<lt>sys/swap.hE<gt>>"
14697 msgstr ""
14698
14699 #. type: Plain text
14700 #: build/C/man2/swapon.2:51
14701 msgid "B<int swapon(const char *>I<path>B<, int >I<swapflags>B<);>"
14702 msgstr ""
14703
14704 #. type: Plain text
14705 #: build/C/man2/swapon.2:53
14706 msgid "B<int swapoff(const char *>I<path>B<);>"
14707 msgstr ""
14708
14709 #. type: Plain text
14710 #: build/C/man2/swapon.2:60
14711 msgid ""
14712 "B<swapon>()  sets the swap area to the file or block device specified by "
14713 "I<path>.  B<swapoff>()  stops swapping to the file or block device specified "
14714 "by I<path>."
14715 msgstr ""
14716
14717 #. type: Plain text
14718 #: build/C/man2/swapon.2:70
14719 msgid ""
14720 "If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>()  "
14721 "I<swapflags> argument, the new swap area will have a higher priority than "
14722 "default.  The priority is encoded within I<swapflags> as:"
14723 msgstr ""
14724
14725 #. type: Plain text
14726 #: build/C/man2/swapon.2:73
14727 msgid "I<(prio E<lt>E<lt> SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK>"
14728 msgstr ""
14729
14730 #. type: Plain text
14731 #: build/C/man2/swapon.2:85
14732 msgid ""
14733 "If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>()  "
14734 "I<swapflags> argument, freed swap pages will be discarded before they are "
14735 "reused, if the swap device supports the discard or trim operation.  (This "
14736 "may improve performance on some Solid State Devices, but often it does not.)  "
14737 "See also NOTES."
14738 msgstr ""
14739
14740 #. type: Plain text
14741 #: build/C/man2/swapon.2:89
14742 msgid ""
14743 "These functions may be used only by a privileged process (one having the "
14744 "B<CAP_SYS_ADMIN> capability)."
14745 msgstr ""
14746
14747 #. type: SS
14748 #: build/C/man2/swapon.2:89
14749 #, no-wrap
14750 msgid "Priority"
14751 msgstr ""
14752
14753 #. type: Plain text
14754 #: build/C/man2/swapon.2:94
14755 msgid ""
14756 "Each swap area has a priority, either high or low.  The default priority is "
14757 "low.  Within the low-priority areas, newer areas are even lower priority "
14758 "than older areas."
14759 msgstr ""
14760
14761 #. type: Plain text
14762 #: build/C/man2/swapon.2:100
14763 msgid ""
14764 "All priorities set with I<swapflags> are high-priority, higher than "
14765 "default.  They may have any nonnegative value chosen by the caller.  Higher "
14766 "numbers mean higher priority."
14767 msgstr ""
14768
14769 #. type: Plain text
14770 #: build/C/man2/swapon.2:108
14771 msgid ""
14772 "Swap pages are allocated from areas in priority order, highest priority "
14773 "first.  For areas with different priorities, a higher-priority area is "
14774 "exhausted before using a lower-priority area.  If two or more areas have the "
14775 "same priority, and it is the highest priority available, pages are allocated "
14776 "on a round-robin basis between them."
14777 msgstr ""
14778
14779 #. type: Plain text
14780 #: build/C/man2/swapon.2:111
14781 msgid ""
14782 "As of Linux 1.3.6, the kernel usually follows these rules, but there are "
14783 "exceptions."
14784 msgstr ""
14785
14786 #. type: Plain text
14787 #: build/C/man2/swapon.2:124
14788 msgid ""
14789 "(for B<swapon>())  The specified I<path> is already being used as a swap "
14790 "area."
14791 msgstr ""
14792
14793 #. type: Plain text
14794 #: build/C/man2/swapon.2:129
14795 msgid ""
14796 "The file I<path> exists, but refers neither to a regular file nor to a block "
14797 "device;"
14798 msgstr ""
14799
14800 #. type: Plain text
14801 #: build/C/man2/swapon.2:134
14802 msgid ""
14803 "(B<swapon>())  The indicated path does not contain a valid swap signature or "
14804 "resides on an in-memory filesystem such as tmpfs."
14805 msgstr ""
14806
14807 #. type: TP
14808 #: build/C/man2/swapon.2:134
14809 #, no-wrap
14810 msgid "B<EINVAL> (since Linux 3.4)"
14811 msgstr ""
14812
14813 #. type: Plain text
14814 #: build/C/man2/swapon.2:139
14815 msgid "(B<swapon>())  An invalid flag value was specified in I<flags>."
14816 msgstr ""
14817
14818 #. type: Plain text
14819 #: build/C/man2/swapon.2:144
14820 msgid "(B<swapoff>())  I<path> is not currently a swap area."
14821 msgstr ""
14822
14823 #. type: Plain text
14824 #: build/C/man2/swapon.2:152
14825 msgid "The file I<path> does not exist."
14826 msgstr ""
14827
14828 #. type: Plain text
14829 #: build/C/man2/swapon.2:155
14830 msgid "The system has insufficient memory to start swapping."
14831 msgstr ""
14832
14833 #. type: Plain text
14834 #: build/C/man2/swapon.2:162
14835 msgid ""
14836 "The caller does not have the B<CAP_SYS_ADMIN> capability.  Alternatively, "
14837 "the maximum number of swap files are already in use; see NOTES below."
14838 msgstr ""
14839
14840 #. type: Plain text
14841 #: build/C/man2/swapon.2:168
14842 msgid ""
14843 "These functions are Linux-specific and should not be used in programs "
14844 "intended to be portable.  The second I<swapflags> argument was introduced in "
14845 "Linux 1.3.2."
14846 msgstr ""
14847
14848 #. type: Plain text
14849 #: build/C/man2/swapon.2:171
14850 msgid "The partition or path must be prepared with B<mkswap>(8)."
14851 msgstr ""
14852
14853 #. type: Plain text
14854 #: build/C/man2/swapon.2:191
14855 msgid ""
14856 "There is an upper limit on the number of swap files that may be used, "
14857 "defined by the kernel constant B<MAX_SWAPFILES>.  Before kernel 2.4.10, "
14858 "B<MAX_SWAPFILES> has the value 8; since kernel 2.4.10, it has the value 32.  "
14859 "Since kernel 2.6.18, the limit is decreased by 2 (thus: 30)  if the kernel "
14860 "is built with the B<CONFIG_MIGRATION> option (which reserves two swap table "
14861 "entries for the page migration features of B<mbind>(2)  and "
14862 "B<migrate_pages>(2)).  Since kernel 2.6.32, the limit is further decreased "
14863 "by 1 if the kernel is built with the B<CONFIG_MEMORY_FAILURE> option."
14864 msgstr ""
14865
14866 #.  To be precise: 2.6.35.5
14867 #. type: Plain text
14868 #: build/C/man2/swapon.2:202
14869 msgid ""
14870 "Discard of swap pages was introduced in kernel 2.6.29, then made conditional "
14871 "on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the "
14872 "entire swap area when B<swapon>()  is called, even if that flag bit is not "
14873 "set."
14874 msgstr ""
14875
14876 #. type: Plain text
14877 #: build/C/man2/swapon.2:205
14878 msgid "B<mkswap>(8), B<swapoff>(8), B<swapon>(8)"
14879 msgstr ""
14880
14881 #. type: TH
14882 #: build/C/man2/syscall.2:42
14883 #, no-wrap
14884 msgid "SYSCALL"
14885 msgstr ""
14886
14887 #. type: Plain text
14888 #: build/C/man2/syscall.2:45
14889 msgid "syscall - indirect system call"
14890 msgstr ""
14891
14892 #. type: Plain text
14893 #: build/C/man2/syscall.2:50
14894 #, no-wrap
14895 msgid ""
14896 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
14897 "B<#include E<lt>unistd.hE<gt>>\n"
14898 "B<#include E<lt>sys/syscall.hE<gt>   >/* For SYS_xxx definitions */\n"
14899 msgstr ""
14900
14901 #. type: Plain text
14902 #: build/C/man2/syscall.2:52
14903 #, no-wrap
14904 msgid "B<long syscall(long >I<number>B<, ...);>\n"
14905 msgstr ""
14906
14907 #. type: Plain text
14908 #: build/C/man2/syscall.2:64
14909 msgid ""
14910 "B<syscall>()  is a small library function that invokes the system call whose "
14911 "assembly language interface has the specified I<number> with the specified "
14912 "arguments.  Employing B<syscall>()  is useful, for example, when invoking a "
14913 "system call that has no wrapper function in the C library."
14914 msgstr ""
14915
14916 #. type: Plain text
14917 #: build/C/man2/syscall.2:71
14918 msgid ""
14919 "B<syscall>()  saves CPU registers before making the system call, restores "
14920 "the registers upon return from the system call, and stores any error code "
14921 "returned by the system call in B<errno>(3)  if an error occurs."
14922 msgstr ""
14923
14924 #. type: Plain text
14925 #: build/C/man2/syscall.2:74
14926 msgid ""
14927 "Symbolic constants for system call numbers can be found in the header file "
14928 "I<E<lt>sys/syscall.hE<gt>>."
14929 msgstr ""
14930
14931 #. type: Plain text
14932 #: build/C/man2/syscall.2:80
14933 msgid ""
14934 "The return value is defined by the system call being invoked.  In general, a "
14935 "0 return value indicates success.  A -1 return value indicates an error, and "
14936 "an error code is stored in I<errno>."
14937 msgstr ""
14938
14939 #. type: Plain text
14940 #: build/C/man2/syscall.2:84
14941 msgid "B<syscall>()  first appeared in 4BSD."
14942 msgstr ""
14943
14944 #. type: SS
14945 #: build/C/man2/syscall.2:84
14946 #, no-wrap
14947 msgid "Architecture-specific requirements"
14948 msgstr ""
14949
14950 #. type: Plain text
14951 #: build/C/man2/syscall.2:95
14952 msgid ""
14953 "Each architecture ABI has its own requirements on how system call arguments "
14954 "are passed to the kernel.  For system calls that have a glibc wrapper (e.g., "
14955 "most system calls), glibc handles the details of copying arguments to the "
14956 "right registers in a manner suitable for the architecture.  However, when "
14957 "using B<syscall>()  to make a system call, the caller might need to handle "
14958 "architecture-dependent details; this requirement is most commonly "
14959 "encountered on certain 32-bit architectures."
14960 msgstr ""
14961
14962 #. type: Plain text
14963 #: build/C/man2/syscall.2:106
14964 msgid ""
14965 "For example, on the ARM architecture Embedded ABI (EABI), a 64-bit value "
14966 "(e.g., I<long long>)  must be aligned to an even register pair.  Thus, using "
14967 "B<syscall>()  instead of the wrapper provided by glibc, the B<readahead>()  "
14968 "system call would be invoked as follows on the ARM architecture with the "
14969 "EABI:"
14970 msgstr ""
14971
14972 #. type: Plain text
14973 #: build/C/man2/syscall.2:113
14974 #, no-wrap
14975 msgid ""
14976 "syscall(SYS_readahead, fd, 0,\n"
14977 "        (unsigned int) (offset E<gt>E<gt> 32),\n"
14978 "        (unsigned int) (offset & 0xFFFFFFFF),\n"
14979 "        count);\n"
14980 msgstr ""
14981
14982 #. type: Plain text
14983 #: build/C/man2/syscall.2:127
14984 msgid ""
14985 "Since the offset argument is 64 bits, and the first argument (I<fd>)  is "
14986 "passed in I<r0>, the caller must manually split and align the 64-bit value "
14987 "so that it is passed in the I<r2>/I<r3> register pair.  That means inserting "
14988 "a dummy value into I<r1> (the second argument of 0)."
14989 msgstr ""
14990
14991 #.  Mike Frysinger: this issue ends up forcing MIPS
14992 #.  O32 to take 7 arguments to syscall()
14993 #. type: Plain text
14994 #: build/C/man2/syscall.2:132
14995 msgid ""
14996 "Similar issues can occur on MIPS with the O32 ABI, on PowerPC with the "
14997 "32-bit ABI, and on Xtensa."
14998 msgstr ""
14999
15000 #. type: Plain text
15001 #: build/C/man2/syscall.2:143
15002 msgid ""
15003 "The affected system calls are B<fadvise64_64>(2), B<ftruncate64>(2), "
15004 "B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), "
15005 "B<sync_file_range>(2), and B<truncate64>(2)."
15006 msgstr ""
15007
15008 #. type: SS
15009 #: build/C/man2/syscall.2:143
15010 #, no-wrap
15011 msgid "Architecture calling conventions"
15012 msgstr ""
15013
15014 #. type: Plain text
15015 #: build/C/man2/syscall.2:147
15016 msgid ""
15017 "Every architecture has its own way of invoking and passing arguments to the "
15018 "kernel.  The details for various architectures are listed in the two tables "
15019 "below."
15020 msgstr ""
15021
15022 #. type: Plain text
15023 #: build/C/man2/syscall.2:154
15024 msgid ""
15025 "The first table lists the instruction used to transition to kernel mode, "
15026 "(which might not be the fastest or best way to transition to the kernel, so "
15027 "you might have to refer to B<vdso>(7)), the register used to indicate the "
15028 "system call number, and the register used to return the system call result."
15029 msgstr ""
15030
15031 #. type: tbl table
15032 #: build/C/man2/syscall.2:159
15033 #, no-wrap
15034 msgid "arch/ABI\tinstruction\tsyscall #\tretval\tNotes\n"
15035 msgstr ""
15036
15037 #. type: tbl table
15038 #: build/C/man2/syscall.2:161
15039 #, no-wrap
15040 msgid "arm/OABI\tswi NR\t-\ta1\tNR is syscall #\n"
15041 msgstr ""
15042
15043 #. type: tbl table
15044 #: build/C/man2/syscall.2:162
15045 #, no-wrap
15046 msgid "arm/EABI\tswi 0x0\tr7\tr0\n"
15047 msgstr ""
15048
15049 #. type: tbl table
15050 #: build/C/man2/syscall.2:163
15051 #, no-wrap
15052 msgid "arm64\tsvc #0\tx8\tx0\n"
15053 msgstr ""
15054
15055 #. type: tbl table
15056 #: build/C/man2/syscall.2:164
15057 #, no-wrap
15058 msgid "blackfin\texcpt 0x0\tP0\tR0\n"
15059 msgstr ""
15060
15061 #. type: tbl table
15062 #: build/C/man2/syscall.2:165
15063 #, no-wrap
15064 msgid "i386\tint $0x80\teax\teax\n"
15065 msgstr ""
15066
15067 #. type: tbl table
15068 #: build/C/man2/syscall.2:166
15069 #, no-wrap
15070 msgid "ia64\tbreak 0x100000\tr15\tr8\tSee below\n"
15071 msgstr ""
15072
15073 #. type: tbl table
15074 #: build/C/man2/syscall.2:167
15075 #, no-wrap
15076 msgid "mips\tsyscall\tv0\tv0\tSee below\n"
15077 msgstr ""
15078
15079 #. type: tbl table
15080 #: build/C/man2/syscall.2:168
15081 #, no-wrap
15082 msgid "parisc\tble 0x100(%sr2, %r0)\tr20\tr28\n"
15083 msgstr ""
15084
15085 #. type: tbl table
15086 #: build/C/man2/syscall.2:169
15087 #, no-wrap
15088 msgid "s390\tsvc 0\tr1\tr2\tSee below\n"
15089 msgstr ""
15090
15091 #. type: tbl table
15092 #: build/C/man2/syscall.2:170
15093 #, no-wrap
15094 msgid "s390x\tsvc 0\tr1\tr2\tSee below\n"
15095 msgstr ""
15096
15097 #. type: tbl table
15098 #: build/C/man2/syscall.2:171
15099 #, no-wrap
15100 msgid "sparc/32\tt 0x10\tg1\to0\n"
15101 msgstr ""
15102
15103 #. type: tbl table
15104 #: build/C/man2/syscall.2:172
15105 #, no-wrap
15106 msgid "sparc/64\tt 0x6d\tg1\to0\n"
15107 msgstr ""
15108
15109 #. type: tbl table
15110 #: build/C/man2/syscall.2:173
15111 #, no-wrap
15112 msgid "x86_64\tsyscall\trax\trax\n"
15113 msgstr ""
15114
15115 #. type: Plain text
15116 #: build/C/man2/syscall.2:178
15117 msgid ""
15118 "For s390 and s390x, NR (the system call number)  may be passed directly with "
15119 "\"svc NR\" if it is less than 256."
15120 msgstr ""
15121
15122 #. type: Plain text
15123 #: build/C/man2/syscall.2:186
15124 msgid ""
15125 "On a few architectures, a register is used to indicate simple boolean "
15126 "failure of the system call: ia64 uses I<r10> for this purpose, and mips uses "
15127 "I<a3>."
15128 msgstr ""
15129
15130 #. type: Plain text
15131 #: build/C/man2/syscall.2:192
15132 msgid "The second table shows the registers used to pass the system call arguments."
15133 msgstr ""
15134
15135 #. type: tbl table
15136 #: build/C/man2/syscall.2:197
15137 #, no-wrap
15138 msgid "arch/ABI\targ1\targ2\targ3\targ4\targ5\targ6\targ7\tNotes\n"
15139 msgstr ""
15140
15141 #. type: tbl table
15142 #: build/C/man2/syscall.2:199
15143 #, no-wrap
15144 msgid "arm/OABI\ta1\ta2\ta3\ta4\tv1\tv2\tv3\n"
15145 msgstr ""
15146
15147 #. type: tbl table
15148 #: build/C/man2/syscall.2:200
15149 #, no-wrap
15150 msgid "arm/EABI\tr0\tr1\tr2\tr3\tr4\tr5\tr6\n"
15151 msgstr ""
15152
15153 #. type: tbl table
15154 #: build/C/man2/syscall.2:201
15155 #, no-wrap
15156 msgid "arm64\tx0\tx1\tx2\tx3\tx4\tx5\t-\n"
15157 msgstr ""
15158
15159 #. type: tbl table
15160 #: build/C/man2/syscall.2:202
15161 #, no-wrap
15162 msgid "blackfin\tR0\tR1\tR2\tR3\tR4\tR5\t-\n"
15163 msgstr ""
15164
15165 #. type: tbl table
15166 #: build/C/man2/syscall.2:203
15167 #, no-wrap
15168 msgid "i386\tebx\tecx\tedx\tesi\tedi\tebp\t-\n"
15169 msgstr ""
15170
15171 #. type: tbl table
15172 #: build/C/man2/syscall.2:204
15173 #, no-wrap
15174 msgid "ia64\tout0\tout1\tout2\tout3\tout4\tout5\t-\n"
15175 msgstr ""
15176
15177 #. type: tbl table
15178 #: build/C/man2/syscall.2:205
15179 #, no-wrap
15180 msgid "mips/o32\ta0\ta1\ta2\ta3\t-\t-\t-\tSee below\n"
15181 msgstr ""
15182
15183 #. type: tbl table
15184 #: build/C/man2/syscall.2:206
15185 #, no-wrap
15186 msgid "mips/n32,64\ta0\ta1\ta2\ta3\ta4\ta5\t-\n"
15187 msgstr ""
15188
15189 #. type: tbl table
15190 #: build/C/man2/syscall.2:207
15191 #, no-wrap
15192 msgid "parisc\tr26\tr25\tr24\tr23\tr22\tr21\t-\n"
15193 msgstr ""
15194
15195 #. type: tbl table
15196 #: build/C/man2/syscall.2:208
15197 #, no-wrap
15198 msgid "s390\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
15199 msgstr ""
15200
15201 #. type: tbl table
15202 #: build/C/man2/syscall.2:209
15203 #, no-wrap
15204 msgid "s390x\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
15205 msgstr ""
15206
15207 #. type: tbl table
15208 #: build/C/man2/syscall.2:210
15209 #, no-wrap
15210 msgid "sparc/32\to0\to1\to2\to3\to4\to5\t-\n"
15211 msgstr ""
15212
15213 #. type: tbl table
15214 #: build/C/man2/syscall.2:211
15215 #, no-wrap
15216 msgid "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
15217 msgstr ""
15218
15219 #. type: tbl table
15220 #: build/C/man2/syscall.2:212
15221 #, no-wrap
15222 msgid "x86_64\trdi\trsi\trdx\tr10\tr8\tr9\t-\n"
15223 msgstr ""
15224
15225 #. type: Plain text
15226 #: build/C/man2/syscall.2:217
15227 msgid ""
15228 "The mips/o32 system call convention passes arguments 5 through 8 on the user "
15229 "stack."
15230 msgstr ""
15231
15232 #. type: Plain text
15233 #: build/C/man2/syscall.2:224
15234 msgid ""
15235 "Note that these tables don't cover the entire calling convention\\(emsome "
15236 "architectures may indiscriminately clobber other registers not listed here."
15237 msgstr ""
15238
15239 #. type: Plain text
15240 #: build/C/man2/syscall.2:231
15241 #, no-wrap
15242 msgid ""
15243 "#define _GNU_SOURCE\n"
15244 "#include E<lt>unistd.hE<gt>\n"
15245 "#include E<lt>sys/syscall.hE<gt>\n"
15246 "#include E<lt>sys/types.hE<gt>\n"
15247 "#include E<lt>signal.hE<gt>\n"
15248 msgstr ""
15249
15250 #. type: Plain text
15251 #: build/C/man2/syscall.2:236
15252 #, no-wrap
15253 msgid ""
15254 "int\n"
15255 "main(int argc, char *argv[])\n"
15256 "{\n"
15257 "    pid_t tid;\n"
15258 msgstr ""
15259
15260 #. type: Plain text
15261 #: build/C/man2/syscall.2:240
15262 #, no-wrap
15263 msgid ""
15264 "    tid = syscall(SYS_gettid);\n"
15265 "    tid = syscall(SYS_tgkill, getpid(), tid, SIGHUP);\n"
15266 "}\n"
15267 msgstr ""
15268
15269 #. type: Plain text
15270 #: build/C/man2/syscall.2:246
15271 msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2), B<errno>(3), B<vdso>(7)"
15272 msgstr ""
15273
15274 #. type: TH
15275 #: build/C/man2/syscalls.2:31
15276 #, no-wrap
15277 msgid "SYSCALLS"
15278 msgstr ""
15279
15280 #. type: Plain text
15281 #: build/C/man2/syscalls.2:34
15282 msgid "syscalls - Linux system calls"
15283 msgstr ""
15284
15285 #. type: Plain text
15286 #: build/C/man2/syscalls.2:36
15287 msgid "Linux system calls."
15288 msgstr ""
15289
15290 #. type: Plain text
15291 #: build/C/man2/syscalls.2:39
15292 msgid ""
15293 "The system call is the fundamental interface between an application and the "
15294 "Linux kernel."
15295 msgstr ""
15296
15297 #. type: SS
15298 #: build/C/man2/syscalls.2:39
15299 #, no-wrap
15300 msgid "System calls and library wrapper functions"
15301 msgstr ""
15302
15303 #. type: Plain text
15304 #: build/C/man2/syscalls.2:49
15305 msgid ""
15306 "System calls are generally not invoked directly, but rather via wrapper "
15307 "functions in glibc (or perhaps some other library).  For details of direct "
15308 "invocation of a system call, see B<intro>(2).  Often, but not always, the "
15309 "name of the wrapper function is the same as the name of the system call that "
15310 "it invokes.  For example, glibc contains a function B<truncate>()  which "
15311 "invokes the underlying \"truncate\" system call."
15312 msgstr ""
15313
15314 #. type: Plain text
15315 #: build/C/man2/syscalls.2:67
15316 msgid ""
15317 "Often the glibc wrapper function is quite thin, doing little work other than "
15318 "copying arguments to the right registers before invoking the system call, "
15319 "and then setting I<errno> appropriately after the system call has returned.  "
15320 "(These are the same steps that are performed by B<syscall>(2), which can be "
15321 "used to invoke system calls for which no wrapper function is provided.)  "
15322 "Note: system calls indicate a failure by returning a negative error number "
15323 "to the caller; when this happens, the wrapper function negates the returned "
15324 "error number (to make it positive), copies it to I<errno>, and returns -1 to "
15325 "the caller of the wrapper."
15326 msgstr ""
15327
15328 #. type: Plain text
15329 #: build/C/man2/syscalls.2:79
15330 msgid ""
15331 "Sometimes, however, the wrapper function does some extra work before "
15332 "invoking the system call.  For example, nowadays there are (for reasons "
15333 "described below) two related system calls, B<truncate>(2)  and "
15334 "B<truncate64>(2), and the glibc B<truncate>()  wrapper function checks which "
15335 "of those system calls are provided by the kernel and determines which should "
15336 "be employed."
15337 msgstr ""
15338
15339 #. type: SS
15340 #: build/C/man2/syscalls.2:79
15341 #, no-wrap
15342 msgid "System call list"
15343 msgstr ""
15344
15345 #. type: Plain text
15346 #: build/C/man2/syscalls.2:87
15347 msgid ""
15348 "Below is a list of the Linux system calls.  In the list, the I<Kernel> "
15349 "column indicates the kernel version for those system calls that were new in "
15350 "Linux 2.2, or have appeared since that kernel version.  Note the following "
15351 "points:"
15352 msgstr ""
15353
15354 #. type: Plain text
15355 #: build/C/man2/syscalls.2:90
15356 msgid ""
15357 "Where no kernel version is indicated, the system call appeared in kernel 1.0 "
15358 "or earlier."
15359 msgstr ""
15360
15361 #. type: Plain text
15362 #: build/C/man2/syscalls.2:96
15363 msgid ""
15364 "Where a system call is marked \"1.2\" this means the system call probably "
15365 "appeared in a 1.1.x kernel version, and first appeared in a stable kernel "
15366 "with 1.2.  (Development of the 1.2 kernel was initiated from a branch of "
15367 "kernel 1.0.6 via the 1.1.x unstable kernel series.)"
15368 msgstr ""
15369
15370 #.  Was kernel 2.0 started from a branch of 1.2.10?
15371 #.  At least from the timestamps of the tarballs of
15372 #.  of 1.2.10 and 1.3.0, that's how it looks, but in
15373 #.  fact the diff doesn't seem very clear, the
15374 #.  1.3.0 .tar.bz is much bigger (2.0 MB) than the
15375 #.  1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
15376 #.  timestamps of some files in 1.3.0 seem to be older
15377 #.  than those in 1.2.10.  All of this suggests
15378 #.  that there might not have been a clean branch point.
15379 #. type: Plain text
15380 #: build/C/man2/syscalls.2:112
15381 msgid ""
15382 "Where a system call is marked \"2.0\" this means the system call probably "
15383 "appeared in a 1.3.x kernel version, and first appeared in a stable kernel "
15384 "with 2.0.  (Development of the 2.0 kernel was initiated from a branch of "
15385 "kernel 1.2.x, somewhere around 1.2.10, via the 1.3.x unstable kernel "
15386 "series.)"
15387 msgstr ""
15388
15389 #. type: Plain text
15390 #: build/C/man2/syscalls.2:118
15391 msgid ""
15392 "Where a system call is marked \"2.2\" this means the system call probably "
15393 "appeared in a 2.1.x kernel version, and first appeared in a stable kernel "
15394 "with 2.2.0.  (Development of the 2.2 kernel was initiated from a branch of "
15395 "kernel 2.0.21 via the 2.1.x unstable kernel series.)"
15396 msgstr ""
15397
15398 #. type: Plain text
15399 #: build/C/man2/syscalls.2:124
15400 msgid ""
15401 "Where a system call is marked \"2.4\" this means the system call probably "
15402 "appeared in a 2.3.x kernel version, and first appeared in a stable kernel "
15403 "with 2.4.0.  (Development of the 2.4 kernel was initiated from a branch of "
15404 "kernel 2.2.8 via the 2.3.x unstable kernel series.)"
15405 msgstr ""
15406
15407 #. type: Plain text
15408 #: build/C/man2/syscalls.2:130
15409 msgid ""
15410 "Where a system call is marked \"2.6\" this means the system call probably "
15411 "appeared in a 2.5.x kernel version, and first appeared in a stable kernel "
15412 "with 2.6.0.  (Development of kernel 2.6 was initiated from a branch of "
15413 "kernel 2.4.15 via the 2.5.x unstable kernel series.)"
15414 msgstr ""
15415
15416 #. type: Plain text
15417 #: build/C/man2/syscalls.2:137
15418 msgid ""
15419 "Starting with kernel 2.6.0, the development model changed, and new system "
15420 "calls may appear in each 2.6.x release.  In this case, the exact version "
15421 "number where the system call appeared is shown.  This convention continues "
15422 "with the 3.x kernel series, which followed on from kernel 2.6.39."
15423 msgstr ""
15424
15425 #. type: Plain text
15426 #: build/C/man2/syscalls.2:145
15427 msgid ""
15428 "In some cases, a system call was added to a stable kernel series after it "
15429 "branched from the previous stable kernel series, and then backported into "
15430 "the earlier stable kernel series.  For example some system calls that "
15431 "appeared in 2.6.x were also backported into a 2.4.x release after 2.4.15.  "
15432 "When this is so, the version where the system call appeared in both of the "
15433 "major kernel series is listed."
15434 msgstr ""
15435
15436 #
15437 #.  Looking at scripts/checksyscalls.sh in the kernel source is
15438 #.  instructive about x86 specifics.
15439 #. type: Plain text
15440 #: build/C/man2/syscalls.2:152
15441 msgid ""
15442 "The list of system calls that are available as at kernel 3.15 (or in a few "
15443 "cases only on older kernels) is as follows:"
15444 msgstr ""
15445
15446 #. type: tbl table
15447 #: build/C/man2/syscalls.2:157
15448 #, no-wrap
15449 msgid "B<System call>\tB<Kernel>\tB<Notes>\n"
15450 msgstr ""
15451
15452 #. type: tbl table
15453 #: build/C/man2/syscalls.2:159
15454 #, no-wrap
15455 msgid "B<_llseek>(2)\t1.2\n"
15456 msgstr ""
15457
15458 #. type: tbl table
15459 #: build/C/man2/syscalls.2:160
15460 #, no-wrap
15461 msgid "B<_newselect>(2)\t2.0\n"
15462 msgstr ""
15463
15464 #. type: tbl table
15465 #: build/C/man2/syscalls.2:161
15466 #, no-wrap
15467 msgid "B<_sysctl>(2)\t2.0\n"
15468 msgstr ""
15469
15470 #. type: tbl table
15471 #: build/C/man2/syscalls.2:162
15472 #, no-wrap
15473 msgid "B<accept>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15474 msgstr ""
15475
15476 #. type: tbl table
15477 #: build/C/man2/syscalls.2:163
15478 #, no-wrap
15479 msgid "B<accept4>(2)\t2.6.28\n"
15480 msgstr ""
15481
15482 #. type: tbl table
15483 #: build/C/man2/syscalls.2:164
15484 #, no-wrap
15485 msgid "B<access>(2)\t1.0\n"
15486 msgstr ""
15487
15488 #. type: tbl table
15489 #: build/C/man2/syscalls.2:165
15490 #, no-wrap
15491 msgid "B<acct>(2)\t1.0\n"
15492 msgstr ""
15493
15494 #. type: tbl table
15495 #: build/C/man2/syscalls.2:166
15496 #, no-wrap
15497 msgid "B<add_key>(2)\t2.6.11\n"
15498 msgstr ""
15499
15500 #. type: tbl table
15501 #: build/C/man2/syscalls.2:167
15502 #, no-wrap
15503 msgid "B<adjtimex>(2)\t1.0\n"
15504 msgstr ""
15505
15506 #. type: tbl table
15507 #: build/C/man2/syscalls.2:168
15508 #, no-wrap
15509 msgid "B<alarm>(2)\t1.0\n"
15510 msgstr ""
15511
15512 #. type: tbl table
15513 #: build/C/man2/syscalls.2:169
15514 #, no-wrap
15515 msgid "B<alloc_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
15516 msgstr ""
15517
15518 #. type: tbl table
15519 #: build/C/man2/syscalls.2:170
15520 #, no-wrap
15521 msgid "B<bdflush>(2)\t1.2\tT{\n"
15522 msgstr ""
15523
15524 #. type: tbl table
15525 #: build/C/man2/syscalls.2:171
15526 #, no-wrap
15527 msgid "Deprecated (does nothing)\n"
15528 msgstr ""
15529
15530 #. type: tbl table
15531 #: 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
15532 #, no-wrap
15533 msgid ".br\n"
15534 msgstr ""
15535
15536 #. type: tbl table
15537 #: build/C/man2/syscalls.2:173
15538 #, no-wrap
15539 msgid "since 2.6\n"
15540 msgstr ""
15541
15542 #. type: tbl table
15543 #: 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
15544 #, no-wrap
15545 msgid "T}\n"
15546 msgstr ""
15547
15548 #. type: tbl table
15549 #: build/C/man2/syscalls.2:175
15550 #, no-wrap
15551 msgid "B<bind>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15552 msgstr ""
15553
15554 #. type: tbl table
15555 #: build/C/man2/syscalls.2:176
15556 #, no-wrap
15557 msgid "B<bpf>(2)\t3.18\n"
15558 msgstr ""
15559
15560 #. type: tbl table
15561 #: build/C/man2/syscalls.2:177
15562 #, no-wrap
15563 msgid "B<brk>(2)\t1.0\n"
15564 msgstr ""
15565
15566 #. type: tbl table
15567 #: build/C/man2/syscalls.2:178
15568 #, no-wrap
15569 msgid "B<cacheflush>(2)\t1.2\tNot on x86\n"
15570 msgstr ""
15571
15572 #. type: tbl table
15573 #: build/C/man2/syscalls.2:179
15574 #, no-wrap
15575 msgid "B<capget>(2)\t2.2\n"
15576 msgstr ""
15577
15578 #. type: tbl table
15579 #: build/C/man2/syscalls.2:180
15580 #, no-wrap
15581 msgid "B<capset>(2)\t2.2\n"
15582 msgstr ""
15583
15584 #. type: tbl table
15585 #: build/C/man2/syscalls.2:181
15586 #, no-wrap
15587 msgid "B<chdir>(2)\t1.0\n"
15588 msgstr ""
15589
15590 #. type: tbl table
15591 #: build/C/man2/syscalls.2:182
15592 #, no-wrap
15593 msgid "B<chmod>(2)\t1.0\n"
15594 msgstr ""
15595
15596 #. type: tbl table
15597 #: build/C/man2/syscalls.2:183
15598 #, no-wrap
15599 msgid "B<chown>(2)\t2.2\tT{\n"
15600 msgstr ""
15601
15602 #. type: tbl table
15603 #: build/C/man2/syscalls.2:184 build/C/man2/syscalls.2:319
15604 #, no-wrap
15605 msgid "See B<chown>(2) for\n"
15606 msgstr ""
15607
15608 #. type: tbl table
15609 #: build/C/man2/syscalls.2:186 build/C/man2/syscalls.2:321
15610 #, no-wrap
15611 msgid "version details\n"
15612 msgstr ""
15613
15614 #. type: tbl table
15615 #: build/C/man2/syscalls.2:188
15616 #, no-wrap
15617 msgid "B<chown32>(2)\t2.4\n"
15618 msgstr ""
15619
15620 #. type: tbl table
15621 #: build/C/man2/syscalls.2:189
15622 #, no-wrap
15623 msgid "B<chroot>(2)\t1.0\n"
15624 msgstr ""
15625
15626 #. type: tbl table
15627 #: build/C/man2/syscalls.2:190
15628 #, no-wrap
15629 msgid "B<clock_adjtime>(2)\t2.6.39\n"
15630 msgstr ""
15631
15632 #. type: tbl table
15633 #: build/C/man2/syscalls.2:191
15634 #, no-wrap
15635 msgid "B<clock_getres>(2)\t2.6\n"
15636 msgstr ""
15637
15638 #. type: tbl table
15639 #: build/C/man2/syscalls.2:192
15640 #, no-wrap
15641 msgid "B<clock_gettime>(2)\t2.6\n"
15642 msgstr ""
15643
15644 #. type: tbl table
15645 #: build/C/man2/syscalls.2:193
15646 #, no-wrap
15647 msgid "B<clock_nanosleep>(2)\t2.6\n"
15648 msgstr ""
15649
15650 #. type: tbl table
15651 #: build/C/man2/syscalls.2:194
15652 #, no-wrap
15653 msgid "B<clock_settime>(2)\t2.6\n"
15654 msgstr ""
15655
15656 #. type: tbl table
15657 #: build/C/man2/syscalls.2:195
15658 #, no-wrap
15659 msgid "B<clone>(2)\t1.0\n"
15660 msgstr ""
15661
15662 #. type: tbl table
15663 #: build/C/man2/syscalls.2:196
15664 #, no-wrap
15665 msgid "B<close>(2)\t1.0\n"
15666 msgstr ""
15667
15668 #. type: tbl table
15669 #: build/C/man2/syscalls.2:197
15670 #, no-wrap
15671 msgid "B<connect>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15672 msgstr ""
15673
15674 #. type: tbl table
15675 #: build/C/man2/syscalls.2:198
15676 #, no-wrap
15677 msgid "B<creat>(2)\t1.0\n"
15678 msgstr ""
15679
15680 #. type: tbl table
15681 #: build/C/man2/syscalls.2:199
15682 #, no-wrap
15683 msgid "B<create_module>(2)\t1.0\tRemoved in 2.6\n"
15684 msgstr ""
15685
15686 #. type: tbl table
15687 #: build/C/man2/syscalls.2:200
15688 #, no-wrap
15689 msgid "B<delete_module>(2)\t1.0\n"
15690 msgstr ""
15691
15692 #. type: tbl table
15693 #: build/C/man2/syscalls.2:201
15694 #, no-wrap
15695 msgid "B<dup>(2)\t1.0\n"
15696 msgstr ""
15697
15698 #. type: tbl table
15699 #: build/C/man2/syscalls.2:202
15700 #, no-wrap
15701 msgid "B<dup2>(2)\t1.0\n"
15702 msgstr ""
15703
15704 #. type: tbl table
15705 #: build/C/man2/syscalls.2:203
15706 #, no-wrap
15707 msgid "B<dup3>(2)\t2.6.27\n"
15708 msgstr ""
15709
15710 #. type: tbl table
15711 #: build/C/man2/syscalls.2:204
15712 #, no-wrap
15713 msgid "B<epoll_create>(2)\t2.6\n"
15714 msgstr ""
15715
15716 #. type: tbl table
15717 #: build/C/man2/syscalls.2:205
15718 #, no-wrap
15719 msgid "B<epoll_create1>(2)\t2.6.27\n"
15720 msgstr ""
15721
15722 #. type: tbl table
15723 #: build/C/man2/syscalls.2:206
15724 #, no-wrap
15725 msgid "B<epoll_ctl>(2)\t2.6\n"
15726 msgstr ""
15727
15728 #. type: tbl table
15729 #: build/C/man2/syscalls.2:207
15730 #, no-wrap
15731 msgid "B<epoll_pwait>(2)\t2.6.19\n"
15732 msgstr ""
15733
15734 #. type: tbl table
15735 #: build/C/man2/syscalls.2:208
15736 #, no-wrap
15737 msgid "B<epoll_wait>(2)\t2.6\n"
15738 msgstr ""
15739
15740 #. type: tbl table
15741 #: build/C/man2/syscalls.2:209
15742 #, no-wrap
15743 msgid "B<eventfd>(2)\t2.6.22\n"
15744 msgstr ""
15745
15746 #. type: tbl table
15747 #: build/C/man2/syscalls.2:210
15748 #, no-wrap
15749 msgid "B<eventfd2>(2)\t2.6.27\n"
15750 msgstr ""
15751
15752 #. type: tbl table
15753 #: build/C/man2/syscalls.2:211
15754 #, no-wrap
15755 msgid "B<execve>(2)\t1.0\n"
15756 msgstr ""
15757
15758 #. type: tbl table
15759 #: build/C/man2/syscalls.2:212
15760 #, no-wrap
15761 msgid "B<execveat>(2)\t3.19\n"
15762 msgstr ""
15763
15764 #. type: tbl table
15765 #: build/C/man2/syscalls.2:213
15766 #, no-wrap
15767 msgid "B<exit>(2)\t1.0\n"
15768 msgstr ""
15769
15770 #. type: tbl table
15771 #: build/C/man2/syscalls.2:214
15772 #, no-wrap
15773 msgid "B<exit_group>(2)\t2.6\n"
15774 msgstr ""
15775
15776 #. type: tbl table
15777 #: build/C/man2/syscalls.2:215
15778 #, no-wrap
15779 msgid "B<faccessat>(2)\t2.6.16\n"
15780 msgstr ""
15781
15782 #. type: tbl table
15783 #: build/C/man2/syscalls.2:216
15784 #, no-wrap
15785 msgid "B<fadvise64>(2)\t2.6\n"
15786 msgstr ""
15787
15788 #.  Implements \fBposix_fadvise\fP(2)
15789 #. type: tbl table
15790 #: build/C/man2/syscalls.2:218
15791 #, no-wrap
15792 msgid "B<fadvise64_64>(2)\t2.6\n"
15793 msgstr ""
15794
15795 #. type: tbl table
15796 #: build/C/man2/syscalls.2:219
15797 #, no-wrap
15798 msgid "B<fallocate>(2)\t2.6.23\n"
15799 msgstr ""
15800
15801 #. type: tbl table
15802 #: build/C/man2/syscalls.2:220
15803 #, no-wrap
15804 msgid "B<fanotify_init>(2)\t2.6.37\n"
15805 msgstr ""
15806
15807 #. type: tbl table
15808 #: build/C/man2/syscalls.2:221
15809 #, no-wrap
15810 msgid "B<fanotify_mark>(2)\t2.6.37\n"
15811 msgstr ""
15812
15813 #.  The fanotify calls were added in Linux 2.6.36,
15814 #.  but disabled while the API was finalized.
15815 #. type: tbl table
15816 #: build/C/man2/syscalls.2:224
15817 #, no-wrap
15818 msgid "B<fchdir>(2)\t1.0\n"
15819 msgstr ""
15820
15821 #. type: tbl table
15822 #: build/C/man2/syscalls.2:225
15823 #, no-wrap
15824 msgid "B<fchmod>(2)\t1.0\n"
15825 msgstr ""
15826
15827 #. type: tbl table
15828 #: build/C/man2/syscalls.2:226
15829 #, no-wrap
15830 msgid "B<fchmodat>(2)\t2.6.16\n"
15831 msgstr ""
15832
15833 #. type: tbl table
15834 #: build/C/man2/syscalls.2:227
15835 #, no-wrap
15836 msgid "B<fchown>(2)\t1.0\n"
15837 msgstr ""
15838
15839 #. type: tbl table
15840 #: build/C/man2/syscalls.2:228
15841 #, no-wrap
15842 msgid "B<fchown32>(2)\t2.4\n"
15843 msgstr ""
15844
15845 #. type: tbl table
15846 #: build/C/man2/syscalls.2:229
15847 #, no-wrap
15848 msgid "B<fchownat>(2)\t2.6.16\n"
15849 msgstr ""
15850
15851 #. type: tbl table
15852 #: build/C/man2/syscalls.2:230
15853 #, no-wrap
15854 msgid "B<fcntl>(2)\t1.0\n"
15855 msgstr ""
15856
15857 #. type: tbl table
15858 #: build/C/man2/syscalls.2:231
15859 #, no-wrap
15860 msgid "B<fcntl64>(2)\t2.4\n"
15861 msgstr ""
15862
15863 #. type: tbl table
15864 #: build/C/man2/syscalls.2:232
15865 #, no-wrap
15866 msgid "B<fdatasync>(2)\t2.0\n"
15867 msgstr ""
15868
15869 #. type: tbl table
15870 #: build/C/man2/syscalls.2:233
15871 #, no-wrap
15872 msgid "B<fgetxattr>(2)\t2.6; 2.4.18\n"
15873 msgstr ""
15874
15875 #. type: tbl table
15876 #: build/C/man2/syscalls.2:234
15877 #, no-wrap
15878 msgid "B<finit_module>(2)\t3.8\n"
15879 msgstr ""
15880
15881 #. type: tbl table
15882 #: build/C/man2/syscalls.2:235
15883 #, no-wrap
15884 msgid "B<flistxattr>(2)\t2.6; 2.4.18\n"
15885 msgstr ""
15886
15887 #. type: tbl table
15888 #: build/C/man2/syscalls.2:236
15889 #, no-wrap
15890 msgid "B<flock>(2)\t2.0\n"
15891 msgstr ""
15892
15893 #. type: tbl table
15894 #: build/C/man2/syscalls.2:237
15895 #, no-wrap
15896 msgid "B<fork>(2)\t1.0\n"
15897 msgstr ""
15898
15899 #. type: tbl table
15900 #: build/C/man2/syscalls.2:238
15901 #, no-wrap
15902 msgid "B<free_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
15903 msgstr ""
15904
15905 #. type: tbl table
15906 #: build/C/man2/syscalls.2:239
15907 #, no-wrap
15908 msgid "B<fremovexattr>(2)\t2.6; 2.4.18\n"
15909 msgstr ""
15910
15911 #. type: tbl table
15912 #: build/C/man2/syscalls.2:240
15913 #, no-wrap
15914 msgid "B<fsetxattr>(2)\t2.6; 2.4.18\n"
15915 msgstr ""
15916
15917 #. type: tbl table
15918 #: build/C/man2/syscalls.2:241
15919 #, no-wrap
15920 msgid "B<fstat>(2)\t1.0\n"
15921 msgstr ""
15922
15923 #. type: tbl table
15924 #: build/C/man2/syscalls.2:242
15925 #, no-wrap
15926 msgid "B<fstat64>(2)\t2.4\n"
15927 msgstr ""
15928
15929 #. type: tbl table
15930 #: build/C/man2/syscalls.2:243
15931 #, no-wrap
15932 msgid "B<fstatat64>(2)\t2.6.16\n"
15933 msgstr ""
15934
15935 #. type: tbl table
15936 #: build/C/man2/syscalls.2:244
15937 #, no-wrap
15938 msgid "B<fstatfs>(2)\t1.0\n"
15939 msgstr ""
15940
15941 #. type: tbl table
15942 #: build/C/man2/syscalls.2:245
15943 #, no-wrap
15944 msgid "B<fstatfs64>(2)\t2.6\n"
15945 msgstr ""
15946
15947 #. type: tbl table
15948 #: build/C/man2/syscalls.2:246
15949 #, no-wrap
15950 msgid "B<fsync>(2)\t1.0\n"
15951 msgstr ""
15952
15953 #. type: tbl table
15954 #: build/C/man2/syscalls.2:247
15955 #, no-wrap
15956 msgid "B<ftruncate>(2)\t1.0\n"
15957 msgstr ""
15958
15959 #. type: tbl table
15960 #: build/C/man2/syscalls.2:248
15961 #, no-wrap
15962 msgid "B<ftruncate64>(2)\t2.4\n"
15963 msgstr ""
15964
15965 #. type: tbl table
15966 #: build/C/man2/syscalls.2:249
15967 #, no-wrap
15968 msgid "B<futex>(2)\t2.6\n"
15969 msgstr ""
15970
15971 #. type: tbl table
15972 #: build/C/man2/syscalls.2:250
15973 #, no-wrap
15974 msgid "B<futimesat>(2)\t2.6.16\n"
15975 msgstr ""
15976
15977 #. type: tbl table
15978 #: build/C/man2/syscalls.2:251
15979 #, no-wrap
15980 msgid "B<get_kernel_syms>(2)\t1.0\tRemoved in 2.6\n"
15981 msgstr ""
15982
15983 #. type: tbl table
15984 #: build/C/man2/syscalls.2:252
15985 #, no-wrap
15986 msgid "B<get_mempolicy>(2)\t2.6.6\n"
15987 msgstr ""
15988
15989 #. type: tbl table
15990 #: build/C/man2/syscalls.2:253
15991 #, no-wrap
15992 msgid "B<get_robust_list>(2)\t2.6.17\n"
15993 msgstr ""
15994
15995 #. type: tbl table
15996 #: build/C/man2/syscalls.2:254
15997 #, no-wrap
15998 msgid "B<get_thread_area>(2)\t2.6\n"
15999 msgstr ""
16000
16001 #. type: tbl table
16002 #: build/C/man2/syscalls.2:255
16003 #, no-wrap
16004 msgid "B<getcpu>(2)\t2.6.19\n"
16005 msgstr ""
16006
16007 #. type: tbl table
16008 #: build/C/man2/syscalls.2:256
16009 #, no-wrap
16010 msgid "B<getcwd>(2)\t2.2\n"
16011 msgstr ""
16012
16013 #. type: tbl table
16014 #: build/C/man2/syscalls.2:257
16015 #, no-wrap
16016 msgid "B<getdents>(2)\t2.0\n"
16017 msgstr ""
16018
16019 #. type: tbl table
16020 #: build/C/man2/syscalls.2:258
16021 #, no-wrap
16022 msgid "B<getdents64>(2)\t2.4\n"
16023 msgstr ""
16024
16025 #. type: tbl table
16026 #: build/C/man2/syscalls.2:259
16027 #, no-wrap
16028 msgid "B<getegid>(2)\t1.0\n"
16029 msgstr ""
16030
16031 #. type: tbl table
16032 #: build/C/man2/syscalls.2:260
16033 #, no-wrap
16034 msgid "B<getegid32>(2)\t2.4\n"
16035 msgstr ""
16036
16037 #. type: tbl table
16038 #: build/C/man2/syscalls.2:261
16039 #, no-wrap
16040 msgid "B<geteuid>(2)\t1.0\n"
16041 msgstr ""
16042
16043 #. type: tbl table
16044 #: build/C/man2/syscalls.2:262
16045 #, no-wrap
16046 msgid "B<geteuid32>(2)\t2.4\n"
16047 msgstr ""
16048
16049 #. type: tbl table
16050 #: build/C/man2/syscalls.2:263
16051 #, no-wrap
16052 msgid "B<getgid>(2)\t1.0\n"
16053 msgstr ""
16054
16055 #. type: tbl table
16056 #: build/C/man2/syscalls.2:264
16057 #, no-wrap
16058 msgid "B<getgid32>(2)\t2.4\n"
16059 msgstr ""
16060
16061 #. type: tbl table
16062 #: build/C/man2/syscalls.2:265
16063 #, no-wrap
16064 msgid "B<getgroups>(2)\t1.0\n"
16065 msgstr ""
16066
16067 #. type: tbl table
16068 #: build/C/man2/syscalls.2:266
16069 #, no-wrap
16070 msgid "B<getgroups32>(2)\t2.4\n"
16071 msgstr ""
16072
16073 #. type: tbl table
16074 #: build/C/man2/syscalls.2:267
16075 #, no-wrap
16076 msgid "B<getitimer>(2)\t1.0\n"
16077 msgstr ""
16078
16079 #. type: tbl table
16080 #: build/C/man2/syscalls.2:268
16081 #, no-wrap
16082 msgid "B<getpeername>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16083 msgstr ""
16084
16085 #. type: tbl table
16086 #: build/C/man2/syscalls.2:269
16087 #, no-wrap
16088 msgid "B<getpagesize>(2)\t2.0\tNot on x86\n"
16089 msgstr ""
16090
16091 #. type: tbl table
16092 #: build/C/man2/syscalls.2:270
16093 #, no-wrap
16094 msgid "B<getpgid>(2)\t1.0\n"
16095 msgstr ""
16096
16097 #. type: tbl table
16098 #: build/C/man2/syscalls.2:271
16099 #, no-wrap
16100 msgid "B<getpgrp>(2)\t1.0\n"
16101 msgstr ""
16102
16103 #. type: tbl table
16104 #: build/C/man2/syscalls.2:272
16105 #, no-wrap
16106 msgid "B<getpid>(2)\t1.0\n"
16107 msgstr ""
16108
16109 #. type: tbl table
16110 #: build/C/man2/syscalls.2:273
16111 #, no-wrap
16112 msgid "B<getppid>(2)\t1.0\n"
16113 msgstr ""
16114
16115 #. type: tbl table
16116 #: build/C/man2/syscalls.2:274
16117 #, no-wrap
16118 msgid "B<getpriority>(2)\t1.0\n"
16119 msgstr ""
16120
16121 #. type: tbl table
16122 #: build/C/man2/syscalls.2:275
16123 #, no-wrap
16124 msgid "B<getrandom>(2)\t3.17\n"
16125 msgstr ""
16126
16127 #. type: tbl table
16128 #: build/C/man2/syscalls.2:276
16129 #, no-wrap
16130 msgid "B<getresgid>(2)\t2.2\n"
16131 msgstr ""
16132
16133 #. type: tbl table
16134 #: build/C/man2/syscalls.2:277
16135 #, no-wrap
16136 msgid "B<getresgid32>(2)\t2.4\n"
16137 msgstr ""
16138
16139 #. type: tbl table
16140 #: build/C/man2/syscalls.2:278
16141 #, no-wrap
16142 msgid "B<getresuid>(2)\t2.2\n"
16143 msgstr ""
16144
16145 #. type: tbl table
16146 #: build/C/man2/syscalls.2:279
16147 #, no-wrap
16148 msgid "B<getresuid32>(2)\t2.4\n"
16149 msgstr ""
16150
16151 #. type: tbl table
16152 #: build/C/man2/syscalls.2:280
16153 #, no-wrap
16154 msgid "B<getrlimit>(2)\t1.0\n"
16155 msgstr ""
16156
16157 #. type: tbl table
16158 #: build/C/man2/syscalls.2:281
16159 #, no-wrap
16160 msgid "B<getrusage>(2)\t1.0\n"
16161 msgstr ""
16162
16163 #. type: tbl table
16164 #: build/C/man2/syscalls.2:282
16165 #, no-wrap
16166 msgid "B<getsid>(2)\t2.0\n"
16167 msgstr ""
16168
16169 #. type: tbl table
16170 #: build/C/man2/syscalls.2:283
16171 #, no-wrap
16172 msgid "B<getsockname>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16173 msgstr ""
16174
16175 #. type: tbl table
16176 #: build/C/man2/syscalls.2:284
16177 #, no-wrap
16178 msgid "B<getsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16179 msgstr ""
16180
16181 #. type: tbl table
16182 #: build/C/man2/syscalls.2:285
16183 #, no-wrap
16184 msgid "B<gettid>(2)\t2.4.11\n"
16185 msgstr ""
16186
16187 #. type: tbl table
16188 #: build/C/man2/syscalls.2:286
16189 #, no-wrap
16190 msgid "B<gettimeofday>(2)\t1.0\n"
16191 msgstr ""
16192
16193 #. type: tbl table
16194 #: build/C/man2/syscalls.2:287
16195 #, no-wrap
16196 msgid "B<getuid>(2)\t1.0\n"
16197 msgstr ""
16198
16199 #. type: tbl table
16200 #: build/C/man2/syscalls.2:288
16201 #, no-wrap
16202 msgid "B<getuid32>(2)\t2.4\n"
16203 msgstr ""
16204
16205 #.  \fBgetunwind\fP(2)  2.4.8   ia64; DEPRECATED
16206 #. type: tbl table
16207 #: build/C/man2/syscalls.2:290
16208 #, no-wrap
16209 msgid "B<getxattr>(2)\t2.6; 2.4.18\n"
16210 msgstr ""
16211
16212 #. type: tbl table
16213 #: build/C/man2/syscalls.2:291
16214 #, no-wrap
16215 msgid "B<init_module>(2)\t1.0\n"
16216 msgstr ""
16217
16218 #. type: tbl table
16219 #: build/C/man2/syscalls.2:292
16220 #, no-wrap
16221 msgid "B<inotify_add_watch>(2)\t2.6.13\n"
16222 msgstr ""
16223
16224 #. type: tbl table
16225 #: build/C/man2/syscalls.2:293
16226 #, no-wrap
16227 msgid "B<inotify_init>(2)\t2.6.13\n"
16228 msgstr ""
16229
16230 #. type: tbl table
16231 #: build/C/man2/syscalls.2:294
16232 #, no-wrap
16233 msgid "B<inotify_init1>(2)\t2.6.27\n"
16234 msgstr ""
16235
16236 #. type: tbl table
16237 #: build/C/man2/syscalls.2:295
16238 #, no-wrap
16239 msgid "B<inotify_rm_watch>(2)\t2.6.13\n"
16240 msgstr ""
16241
16242 #. type: tbl table
16243 #: build/C/man2/syscalls.2:296
16244 #, no-wrap
16245 msgid "B<io_cancel>(2)\t2.6\n"
16246 msgstr ""
16247
16248 #. type: tbl table
16249 #: build/C/man2/syscalls.2:297
16250 #, no-wrap
16251 msgid "B<io_destroy>(2)\t2.6\n"
16252 msgstr ""
16253
16254 #. type: tbl table
16255 #: build/C/man2/syscalls.2:298
16256 #, no-wrap
16257 msgid "B<io_getevents>(2)\t2.6\n"
16258 msgstr ""
16259
16260 #. type: tbl table
16261 #: build/C/man2/syscalls.2:299
16262 #, no-wrap
16263 msgid "B<io_setup>(2)\t2.6\n"
16264 msgstr ""
16265
16266 #. type: tbl table
16267 #: build/C/man2/syscalls.2:300
16268 #, no-wrap
16269 msgid "B<io_submit>(2)\t2.6\n"
16270 msgstr ""
16271
16272 #. type: tbl table
16273 #: build/C/man2/syscalls.2:301
16274 #, no-wrap
16275 msgid "B<ioctl>(2)\t1.0\n"
16276 msgstr ""
16277
16278 #. type: tbl table
16279 #: build/C/man2/syscalls.2:302
16280 #, no-wrap
16281 msgid "B<ioperm>(2)\t1.0\n"
16282 msgstr ""
16283
16284 #. type: tbl table
16285 #: build/C/man2/syscalls.2:303
16286 #, no-wrap
16287 msgid "B<iopl>(2)\t1.0\n"
16288 msgstr ""
16289
16290 #. type: tbl table
16291 #: build/C/man2/syscalls.2:304
16292 #, no-wrap
16293 msgid "B<ioprio_get>(2)\t2.6.13\n"
16294 msgstr ""
16295
16296 #. type: tbl table
16297 #: build/C/man2/syscalls.2:305
16298 #, no-wrap
16299 msgid "B<ioprio_set>(2)\t2.6.13\n"
16300 msgstr ""
16301
16302 #. type: tbl table
16303 #: build/C/man2/syscalls.2:306
16304 #, no-wrap
16305 msgid "B<ipc>(2)\t1.0\n"
16306 msgstr ""
16307
16308 #.  Implements System V IPC calls
16309 #. type: tbl table
16310 #: build/C/man2/syscalls.2:308
16311 #, no-wrap
16312 msgid "B<kcmp>(2)\t3.5\n"
16313 msgstr ""
16314
16315 #. type: tbl table
16316 #: build/C/man2/syscalls.2:309
16317 #, no-wrap
16318 msgid "B<kern_features>(2)\t3.7\tSparc64\n"
16319 msgstr ""
16320
16321 #.  FIXME . document kern_features():
16322 #.  commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb
16323 #. type: tbl table
16324 #: build/C/man2/syscalls.2:312
16325 #, no-wrap
16326 msgid "B<kexec_file_load>(2)\t3.17\n"
16327 msgstr ""
16328
16329 #. type: tbl table
16330 #: build/C/man2/syscalls.2:313
16331 #, no-wrap
16332 msgid "B<kexec_load>(2)\t2.6.13\n"
16333 msgstr ""
16334
16335 #.  The entry in the syscall table was reserved starting in 2.6.7
16336 #.  Was named sys_kexec_load() from 2.6.7 to 2.6.16
16337 #. type: tbl table
16338 #: build/C/man2/syscalls.2:316
16339 #, no-wrap
16340 msgid "B<keyctl>(2)\t2.6.11\n"
16341 msgstr ""
16342
16343 #. type: tbl table
16344 #: build/C/man2/syscalls.2:317
16345 #, no-wrap
16346 msgid "B<kill>(2)\t1.0\n"
16347 msgstr ""
16348
16349 #. type: tbl table
16350 #: build/C/man2/syscalls.2:318
16351 #, no-wrap
16352 msgid "B<lchown>(2)\t1.0\tT{\n"
16353 msgstr ""
16354
16355 #. type: tbl table
16356 #: build/C/man2/syscalls.2:323
16357 #, no-wrap
16358 msgid "B<lchown32>(2)\t2.4\n"
16359 msgstr ""
16360
16361 #. type: tbl table
16362 #: build/C/man2/syscalls.2:324
16363 #, no-wrap
16364 msgid "B<lgetxattr>(2)\t2.6; 2.4.18\n"
16365 msgstr ""
16366
16367 #. type: tbl table
16368 #: build/C/man2/syscalls.2:325
16369 #, no-wrap
16370 msgid "B<link>(2)\t1.0\n"
16371 msgstr ""
16372
16373 #. type: tbl table
16374 #: build/C/man2/syscalls.2:326
16375 #, no-wrap
16376 msgid "B<linkat>(2)\t2.6.16\n"
16377 msgstr ""
16378
16379 #. type: tbl table
16380 #: build/C/man2/syscalls.2:327
16381 #, no-wrap
16382 msgid "B<listen>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16383 msgstr ""
16384
16385 #. type: tbl table
16386 #: build/C/man2/syscalls.2:328
16387 #, no-wrap
16388 msgid "B<listxattr>(2)\t2.6; 2.4.18\n"
16389 msgstr ""
16390
16391 #. type: tbl table
16392 #: build/C/man2/syscalls.2:329
16393 #, no-wrap
16394 msgid "B<llistxattr>(2)\t2.6; 2.4.18\n"
16395 msgstr ""
16396
16397 #. type: tbl table
16398 #: build/C/man2/syscalls.2:330
16399 #, no-wrap
16400 msgid "B<lookup_dcookie>(2)\t2.6\n"
16401 msgstr ""
16402
16403 #. type: tbl table
16404 #: build/C/man2/syscalls.2:331
16405 #, no-wrap
16406 msgid "B<lremovexattr>(2)\t2.6; 2.4.18\n"
16407 msgstr ""
16408
16409 #. type: tbl table
16410 #: build/C/man2/syscalls.2:332
16411 #, no-wrap
16412 msgid "B<lseek>(2)\t1.0\n"
16413 msgstr ""
16414
16415 #. type: tbl table
16416 #: build/C/man2/syscalls.2:333
16417 #, no-wrap
16418 msgid "B<lsetxattr>(2)\t2.6; 2.4.18\n"
16419 msgstr ""
16420
16421 #. type: tbl table
16422 #: build/C/man2/syscalls.2:334
16423 #, no-wrap
16424 msgid "B<lstat>(2)\t1.0\n"
16425 msgstr ""
16426
16427 #. type: tbl table
16428 #: build/C/man2/syscalls.2:335
16429 #, no-wrap
16430 msgid "B<lstat64>(2)\t2.4\n"
16431 msgstr ""
16432
16433 #. type: tbl table
16434 #: build/C/man2/syscalls.2:336
16435 #, no-wrap
16436 msgid "B<madvise>(2)\t2.4\n"
16437 msgstr ""
16438
16439 #. type: tbl table
16440 #: build/C/man2/syscalls.2:337
16441 #, no-wrap
16442 msgid "B<mbind>(2)\t2.6.6\n"
16443 msgstr ""
16444
16445 #.  \fBmemory_ordering\fP(2)    ???     Sparc64
16446 #. type: tbl table
16447 #: build/C/man2/syscalls.2:339
16448 #, no-wrap
16449 msgid "B<memfd_create>(2)\t3.17\n"
16450 msgstr ""
16451
16452 #. type: tbl table
16453 #: build/C/man2/syscalls.2:340
16454 #, no-wrap
16455 msgid "B<migrate_pages>(2)\t2.6.16\n"
16456 msgstr ""
16457
16458 #. type: tbl table
16459 #: build/C/man2/syscalls.2:341
16460 #, no-wrap
16461 msgid "B<mincore>(2)\t2.4\n"
16462 msgstr ""
16463
16464 #. type: tbl table
16465 #: build/C/man2/syscalls.2:342
16466 #, no-wrap
16467 msgid "B<mkdir>(2)\t1.0\n"
16468 msgstr ""
16469
16470 #. type: tbl table
16471 #: build/C/man2/syscalls.2:343
16472 #, no-wrap
16473 msgid "B<mkdirat>(2)\t2.6.16\n"
16474 msgstr ""
16475
16476 #. type: tbl table
16477 #: build/C/man2/syscalls.2:344
16478 #, no-wrap
16479 msgid "B<mknod>(2)\t1.0\n"
16480 msgstr ""
16481
16482 #. type: tbl table
16483 #: build/C/man2/syscalls.2:345
16484 #, no-wrap
16485 msgid "B<mknodat>(2)\t2.6.16\n"
16486 msgstr ""
16487
16488 #. type: tbl table
16489 #: build/C/man2/syscalls.2:346
16490 #, no-wrap
16491 msgid "B<mlock>(2)\t2.0\n"
16492 msgstr ""
16493
16494 #. type: tbl table
16495 #: build/C/man2/syscalls.2:347
16496 #, no-wrap
16497 msgid "B<mlockall>(2)\t2.0\n"
16498 msgstr ""
16499
16500 #. type: tbl table
16501 #: build/C/man2/syscalls.2:348
16502 #, no-wrap
16503 msgid "B<mmap>(2)\t1.0\n"
16504 msgstr ""
16505
16506 #. type: tbl table
16507 #: build/C/man2/syscalls.2:349
16508 #, no-wrap
16509 msgid "B<mmap2>(2)\t2.4\n"
16510 msgstr ""
16511
16512 #. type: tbl table
16513 #: build/C/man2/syscalls.2:350
16514 #, no-wrap
16515 msgid "B<modify_ldt>(2)\t1.0\n"
16516 msgstr ""
16517
16518 #. type: tbl table
16519 #: build/C/man2/syscalls.2:351
16520 #, no-wrap
16521 msgid "B<mount>(2)\t1.0\n"
16522 msgstr ""
16523
16524 #. type: tbl table
16525 #: build/C/man2/syscalls.2:352
16526 #, no-wrap
16527 msgid "B<move_pages>(2)\t2.6.18\n"
16528 msgstr ""
16529
16530 #. type: tbl table
16531 #: build/C/man2/syscalls.2:353
16532 #, no-wrap
16533 msgid "B<mprotect>(2)\t1.0\n"
16534 msgstr ""
16535
16536 #. type: tbl table
16537 #: build/C/man2/syscalls.2:354
16538 #, no-wrap
16539 msgid "B<mq_getsetattr>(2)\t2.6.6\n"
16540 msgstr ""
16541
16542 #.  Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
16543 #. type: tbl table
16544 #: build/C/man2/syscalls.2:356
16545 #, no-wrap
16546 msgid "B<mq_notify>(2)\t2.6.6\n"
16547 msgstr ""
16548
16549 #. type: tbl table
16550 #: build/C/man2/syscalls.2:357
16551 #, no-wrap
16552 msgid "B<mq_open>(2)\t2.6.6\n"
16553 msgstr ""
16554
16555 #. type: tbl table
16556 #: build/C/man2/syscalls.2:358
16557 #, no-wrap
16558 msgid "B<mq_timedreceive>(2)\t2.6.6\n"
16559 msgstr ""
16560
16561 #. type: tbl table
16562 #: build/C/man2/syscalls.2:359
16563 #, no-wrap
16564 msgid "B<mq_timedsend>(2)\t2.6.6\n"
16565 msgstr ""
16566
16567 #. type: tbl table
16568 #: build/C/man2/syscalls.2:360
16569 #, no-wrap
16570 msgid "B<mq_unlink>(2)\t2.6.6\n"
16571 msgstr ""
16572
16573 #. type: tbl table
16574 #: build/C/man2/syscalls.2:361
16575 #, no-wrap
16576 msgid "B<mremap>(2)\t2.0\n"
16577 msgstr ""
16578
16579 #. type: tbl table
16580 #: build/C/man2/syscalls.2:362
16581 #, no-wrap
16582 msgid "B<msgctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16583 msgstr ""
16584
16585 #. type: tbl table
16586 #: build/C/man2/syscalls.2:363
16587 #, no-wrap
16588 msgid "B<msgget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16589 msgstr ""
16590
16591 #. type: tbl table
16592 #: build/C/man2/syscalls.2:364
16593 #, no-wrap
16594 msgid "B<msgrcv>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16595 msgstr ""
16596
16597 #. type: tbl table
16598 #: build/C/man2/syscalls.2:365
16599 #, no-wrap
16600 msgid "B<msgsnd>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16601 msgstr ""
16602
16603 #. type: tbl table
16604 #: build/C/man2/syscalls.2:366
16605 #, no-wrap
16606 msgid "B<msync>(2)\t2.0\n"
16607 msgstr ""
16608
16609 #.  \fBmultiplexer\fP(2)        ??      __NR_multiplexer reserved on
16610 #.              PowerPC, but unimplemented?
16611 #. type: tbl table
16612 #: build/C/man2/syscalls.2:369
16613 #, no-wrap
16614 msgid "B<munlock>(2)\t2.0\n"
16615 msgstr ""
16616
16617 #. type: tbl table
16618 #: build/C/man2/syscalls.2:370
16619 #, no-wrap
16620 msgid "B<munlockall>(2)\t2.0\n"
16621 msgstr ""
16622
16623 #. type: tbl table
16624 #: build/C/man2/syscalls.2:371
16625 #, no-wrap
16626 msgid "B<munmap>(2)\t1.0\n"
16627 msgstr ""
16628
16629 #. type: tbl table
16630 #: build/C/man2/syscalls.2:372
16631 #, no-wrap
16632 msgid "B<name_to_handle_at>(2)\t2.6.39\n"
16633 msgstr ""
16634
16635 #. type: tbl table
16636 #: build/C/man2/syscalls.2:373
16637 #, no-wrap
16638 msgid "B<nanosleep>(2)\t2.0\n"
16639 msgstr ""
16640
16641 #. type: tbl table
16642 #: build/C/man2/syscalls.2:374
16643 #, no-wrap
16644 msgid "B<nfsservctl>(2)\t2.2\tRemoved in 3.1\n"
16645 msgstr ""
16646
16647 #. type: tbl table
16648 #: build/C/man2/syscalls.2:375
16649 #, no-wrap
16650 msgid "B<nice>(2)\t1.0\n"
16651 msgstr ""
16652
16653 #. type: tbl table
16654 #: build/C/man2/syscalls.2:376
16655 #, no-wrap
16656 msgid "B<oldfstat>(2)\t1.0\n"
16657 msgstr ""
16658
16659 #. type: tbl table
16660 #: build/C/man2/syscalls.2:377
16661 #, no-wrap
16662 msgid "B<oldlstat>(2)\t1.0\n"
16663 msgstr ""
16664
16665 #. type: tbl table
16666 #: build/C/man2/syscalls.2:378
16667 #, no-wrap
16668 msgid "B<oldolduname>(2)\t1.0\n"
16669 msgstr ""
16670
16671 #. type: tbl table
16672 #: build/C/man2/syscalls.2:379
16673 #, no-wrap
16674 msgid "B<oldstat>(2)\t1.0\n"
16675 msgstr ""
16676
16677 #. type: tbl table
16678 #: build/C/man2/syscalls.2:380
16679 #, no-wrap
16680 msgid "B<olduname>(2)\t1.0\n"
16681 msgstr ""
16682
16683 #. type: tbl table
16684 #: build/C/man2/syscalls.2:381
16685 #, no-wrap
16686 msgid "B<open>(2)\t1.0\n"
16687 msgstr ""
16688
16689 #. type: tbl table
16690 #: build/C/man2/syscalls.2:382
16691 #, no-wrap
16692 msgid "B<open_by_handle_at>(2)\t2.6.39\n"
16693 msgstr ""
16694
16695 #. type: tbl table
16696 #: build/C/man2/syscalls.2:383
16697 #, no-wrap
16698 msgid "B<openat>(2)\t2.6.16\n"
16699 msgstr ""
16700
16701 #. type: tbl table
16702 #: build/C/man2/syscalls.2:384
16703 #, no-wrap
16704 msgid "B<pause>(2)\t1.0\n"
16705 msgstr ""
16706
16707 #. type: tbl table
16708 #: build/C/man2/syscalls.2:385
16709 #, no-wrap
16710 msgid "B<pciconfig_iobase>(2)\t2.2.15; 2.4\tNot on x86\n"
16711 msgstr ""
16712
16713 #.  Alpha, PowerPC, ARM; not x86
16714 #. type: tbl table
16715 #: build/C/man2/syscalls.2:387
16716 #, no-wrap
16717 msgid "B<pciconfig_read>(2)\t2.0.26; 2.2\tNot on x86\n"
16718 msgstr ""
16719
16720 #.  , PowerPC, ARM; not x86
16721 #. type: tbl table
16722 #: build/C/man2/syscalls.2:389
16723 #, no-wrap
16724 msgid "B<pciconfig_write>(2)\t2.0.26; 2.2\tNot on x86\n"
16725 msgstr ""
16726
16727 #.  , PowerPC, ARM; not x86
16728 #. type: tbl table
16729 #: build/C/man2/syscalls.2:391
16730 #, no-wrap
16731 msgid "B<perf_event_open>(2)\t2.6.31\tT{\n"
16732 msgstr ""
16733
16734 #. type: tbl table
16735 #: build/C/man2/syscalls.2:392
16736 #, no-wrap
16737 msgid "Was perf_counter_open() in\n"
16738 msgstr ""
16739
16740 #. type: tbl table
16741 #: build/C/man2/syscalls.2:394
16742 #, no-wrap
16743 msgid "2.6.31; renamed in 2.6.32\n"
16744 msgstr ""
16745
16746 #. type: tbl table
16747 #: build/C/man2/syscalls.2:396
16748 #, no-wrap
16749 msgid "B<personality>(2)\t1.2\n"
16750 msgstr ""
16751
16752 #. type: tbl table
16753 #: build/C/man2/syscalls.2:397
16754 #, no-wrap
16755 msgid "B<perfctr>(2)\t2.2\tSparc; removed in 2.6.34\n"
16756 msgstr ""
16757
16758 #.      commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr()
16759 #. type: tbl table
16760 #: build/C/man2/syscalls.2:399
16761 #, no-wrap
16762 msgid "B<perfmonctl>(2)\t2.4\tia64\n"
16763 msgstr ""
16764
16765 #. type: tbl table
16766 #: build/C/man2/syscalls.2:400
16767 #, no-wrap
16768 msgid "B<pipe>(2)\t1.0\n"
16769 msgstr ""
16770
16771 #. type: tbl table
16772 #: build/C/man2/syscalls.2:401
16773 #, no-wrap
16774 msgid "B<pipe2>(2)\t2.6.27\n"
16775 msgstr ""
16776
16777 #. type: tbl table
16778 #: build/C/man2/syscalls.2:402
16779 #, no-wrap
16780 msgid "B<pivot_root>(2)\t2.4\n"
16781 msgstr ""
16782
16783 #. type: tbl table
16784 #: build/C/man2/syscalls.2:403
16785 #, no-wrap
16786 msgid "B<poll>(2)\t2.0.36; 2.2\n"
16787 msgstr ""
16788
16789 #. type: tbl table
16790 #: build/C/man2/syscalls.2:404
16791 #, no-wrap
16792 msgid "B<ppc_rtas>(2)\t2.6.2\tPowerPC only\n"
16793 msgstr ""
16794
16795 #. type: tbl table
16796 #: build/C/man2/syscalls.2:405
16797 #, no-wrap
16798 msgid "B<ppoll>(2)\t2.6.16\n"
16799 msgstr ""
16800
16801 #. type: tbl table
16802 #: build/C/man2/syscalls.2:406
16803 #, no-wrap
16804 msgid "B<prctl>(2)\t2.2\n"
16805 msgstr ""
16806
16807 #. type: tbl table
16808 #: build/C/man2/syscalls.2:407
16809 #, no-wrap
16810 msgid "B<pread64>(2)\t\tT{\n"
16811 msgstr ""
16812
16813 #. type: tbl table
16814 #: build/C/man2/syscalls.2:408
16815 #, no-wrap
16816 msgid "Added as \"pread\" in 2.2;\n"
16817 msgstr ""
16818
16819 #. type: tbl table
16820 #: build/C/man2/syscalls.2:410
16821 #, no-wrap
16822 msgid "renamed \"pread64\" in 2.6\n"
16823 msgstr ""
16824
16825 #. type: tbl table
16826 #: build/C/man2/syscalls.2:412
16827 #, no-wrap
16828 msgid "B<preadv>(2)\t2.6.30\n"
16829 msgstr ""
16830
16831 #. type: tbl table
16832 #: build/C/man2/syscalls.2:413
16833 #, no-wrap
16834 msgid "B<prlimit>(2)\t2.6.36\n"
16835 msgstr ""
16836
16837 #. type: tbl table
16838 #: build/C/man2/syscalls.2:414
16839 #, no-wrap
16840 msgid "B<prlimit64>(2)\t2.6.36\n"
16841 msgstr ""
16842
16843 #. type: tbl table
16844 #: build/C/man2/syscalls.2:415
16845 #, no-wrap
16846 msgid "B<process_vm_readv>(2)\t3.2\n"
16847 msgstr ""
16848
16849 #. type: tbl table
16850 #: build/C/man2/syscalls.2:416
16851 #, no-wrap
16852 msgid "B<process_vm_writev>(2)\t3.2\n"
16853 msgstr ""
16854
16855 #. type: tbl table
16856 #: build/C/man2/syscalls.2:417
16857 #, no-wrap
16858 msgid "B<pselect6>(2)\t2.6.16\n"
16859 msgstr ""
16860
16861 #.  Implements \fBpselect\fP(2)
16862 #. type: tbl table
16863 #: build/C/man2/syscalls.2:419
16864 #, no-wrap
16865 msgid "B<ptrace>(2)\t1.0\n"
16866 msgstr ""
16867
16868 #. type: tbl table
16869 #: build/C/man2/syscalls.2:420
16870 #, no-wrap
16871 msgid "B<pwrite64>(2)\t\tT{\n"
16872 msgstr ""
16873
16874 #. type: tbl table
16875 #: build/C/man2/syscalls.2:421
16876 #, no-wrap
16877 msgid "Added as \"pwrite\" in 2.2;\n"
16878 msgstr ""
16879
16880 #. type: tbl table
16881 #: build/C/man2/syscalls.2:423
16882 #, no-wrap
16883 msgid "renamed \"pwrite64\" in 2.6\n"
16884 msgstr ""
16885
16886 #. type: tbl table
16887 #: build/C/man2/syscalls.2:425
16888 #, no-wrap
16889 msgid "B<pwritev>(2)\t2.6.30\n"
16890 msgstr ""
16891
16892 #. type: tbl table
16893 #: build/C/man2/syscalls.2:426
16894 #, no-wrap
16895 msgid "B<query_module>(2)\t2.2\tRemoved in 2.6\n"
16896 msgstr ""
16897
16898 #. type: tbl table
16899 #: build/C/man2/syscalls.2:427
16900 #, no-wrap
16901 msgid "B<quotactl>(2)\t1.0\n"
16902 msgstr ""
16903
16904 #. type: tbl table
16905 #: build/C/man2/syscalls.2:428
16906 #, no-wrap
16907 msgid "B<read>(2)\t1.0\n"
16908 msgstr ""
16909
16910 #. type: tbl table
16911 #: build/C/man2/syscalls.2:429
16912 #, no-wrap
16913 msgid "B<readahead>(2)\t2.4.13\n"
16914 msgstr ""
16915
16916 #. type: tbl table
16917 #: build/C/man2/syscalls.2:430
16918 #, no-wrap
16919 msgid "B<readdir>(2)\t1.0\n"
16920 msgstr ""
16921
16922 #.  Supersedes \fBgetdents\fP(2)
16923 #. type: tbl table
16924 #: build/C/man2/syscalls.2:432
16925 #, no-wrap
16926 msgid "B<readlink>(2)\t1.0\n"
16927 msgstr ""
16928
16929 #. type: tbl table
16930 #: build/C/man2/syscalls.2:433
16931 #, no-wrap
16932 msgid "B<readlinkat>(2)\t2.6.16\n"
16933 msgstr ""
16934
16935 #. type: tbl table
16936 #: build/C/man2/syscalls.2:434
16937 #, no-wrap
16938 msgid "B<readv>(2)\t2.0\n"
16939 msgstr ""
16940
16941 #. type: tbl table
16942 #: build/C/man2/syscalls.2:435
16943 #, no-wrap
16944 msgid "B<reboot>(2)\t1.0\n"
16945 msgstr ""
16946
16947 #. type: tbl table
16948 #: build/C/man2/syscalls.2:436
16949 #, no-wrap
16950 msgid "B<recv>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16951 msgstr ""
16952
16953 #. type: tbl table
16954 #: build/C/man2/syscalls.2:437
16955 #, no-wrap
16956 msgid "B<recvfrom>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16957 msgstr ""
16958
16959 #. type: tbl table
16960 #: build/C/man2/syscalls.2:438
16961 #, no-wrap
16962 msgid "B<recvmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16963 msgstr ""
16964
16965 #. type: tbl table
16966 #: build/C/man2/syscalls.2:439
16967 #, no-wrap
16968 msgid "B<recvmmsg>(2)\t2.6.33\n"
16969 msgstr ""
16970
16971 #. type: tbl table
16972 #: build/C/man2/syscalls.2:440
16973 #, no-wrap
16974 msgid "B<remap_file_pages>(2)\t2.6\tDeprecated since 3.16\n"
16975 msgstr ""
16976
16977 #. type: tbl table
16978 #: build/C/man2/syscalls.2:441
16979 #, no-wrap
16980 msgid "B<removexattr>(2)\t2.6; 2.4.18\n"
16981 msgstr ""
16982
16983 #. type: tbl table
16984 #: build/C/man2/syscalls.2:442
16985 #, no-wrap
16986 msgid "B<rename>(2)\t1.0\n"
16987 msgstr ""
16988
16989 #. type: tbl table
16990 #: build/C/man2/syscalls.2:443
16991 #, no-wrap
16992 msgid "B<renameat>(2)\t2.6.16\n"
16993 msgstr ""
16994
16995 #. type: tbl table
16996 #: build/C/man2/syscalls.2:444
16997 #, no-wrap
16998 msgid "B<renameat2>(2)\t3.15\n"
16999 msgstr ""
17000
17001 #. type: tbl table
17002 #: build/C/man2/syscalls.2:445
17003 #, no-wrap
17004 msgid "B<request_key>(2)\t2.6.11\n"
17005 msgstr ""
17006
17007 #. type: tbl table
17008 #: build/C/man2/syscalls.2:446
17009 #, no-wrap
17010 msgid "B<restart_syscall>(2)\t2.6\n"
17011 msgstr ""
17012
17013 #. type: tbl table
17014 #: build/C/man2/syscalls.2:447
17015 #, no-wrap
17016 msgid "B<rmdir>(2)\t1.0\n"
17017 msgstr ""
17018
17019 #. type: tbl table
17020 #: build/C/man2/syscalls.2:448
17021 #, no-wrap
17022 msgid "B<rt_sigaction>(2)\t2.2\n"
17023 msgstr ""
17024
17025 #. type: tbl table
17026 #: build/C/man2/syscalls.2:449
17027 #, no-wrap
17028 msgid "B<rt_sigpending>(2)\t2.2\n"
17029 msgstr ""
17030
17031 #. type: tbl table
17032 #: build/C/man2/syscalls.2:450
17033 #, no-wrap
17034 msgid "B<rt_sigprocmask>(2)\t2.2\n"
17035 msgstr ""
17036
17037 #. type: tbl table
17038 #: build/C/man2/syscalls.2:451
17039 #, no-wrap
17040 msgid "B<rt_sigqueueinfo>(2)\t2.2\n"
17041 msgstr ""
17042
17043 #. type: tbl table
17044 #: build/C/man2/syscalls.2:452
17045 #, no-wrap
17046 msgid "B<rt_sigreturn>(2)\t2.2\n"
17047 msgstr ""
17048
17049 #. type: tbl table
17050 #: build/C/man2/syscalls.2:453
17051 #, no-wrap
17052 msgid "B<rt_sigsuspend>(2)\t2.2\n"
17053 msgstr ""
17054
17055 #. type: tbl table
17056 #: build/C/man2/syscalls.2:454
17057 #, no-wrap
17058 msgid "B<rt_sigtimedwait>(2)\t2.2\n"
17059 msgstr ""
17060
17061 #. type: tbl table
17062 #: build/C/man2/syscalls.2:455
17063 #, no-wrap
17064 msgid "B<rt_tgsigqueueinfo>(2)\t2.6.31\n"
17065 msgstr ""
17066
17067 #. type: tbl table
17068 #: build/C/man2/syscalls.2:456
17069 #, no-wrap
17070 msgid "B<s390_runtime_instr>(2)\t3.7\ts390 only\n"
17071 msgstr ""
17072
17073 #. type: tbl table
17074 #: build/C/man2/syscalls.2:457
17075 #, no-wrap
17076 msgid "B<s390_pci_mmio_read>(2)\t3.19\ts390 only\n"
17077 msgstr ""
17078
17079 #. type: tbl table
17080 #: build/C/man2/syscalls.2:458
17081 #, no-wrap
17082 msgid "B<s390_pci_mmio_write>(2)\t3.19\ts390 only\n"
17083 msgstr ""
17084
17085 #. type: tbl table
17086 #: build/C/man2/syscalls.2:459
17087 #, no-wrap
17088 msgid "B<sched_get_priority_max>(2)\t2.0\n"
17089 msgstr ""
17090
17091 #. type: tbl table
17092 #: build/C/man2/syscalls.2:460
17093 #, no-wrap
17094 msgid "B<sched_get_priority_min>(2)\t2.0\n"
17095 msgstr ""
17096
17097 #. type: tbl table
17098 #: build/C/man2/syscalls.2:461
17099 #, no-wrap
17100 msgid "B<sched_getaffinity>(2)\t2.6\n"
17101 msgstr ""
17102
17103 #. type: tbl table
17104 #: build/C/man2/syscalls.2:462
17105 #, no-wrap
17106 msgid "B<sched_getattr>(2)\t3.14\n"
17107 msgstr ""
17108
17109 #. type: tbl table
17110 #: build/C/man2/syscalls.2:463
17111 #, no-wrap
17112 msgid "B<sched_getparam>(2)\t2.0\n"
17113 msgstr ""
17114
17115 #. type: tbl table
17116 #: build/C/man2/syscalls.2:464
17117 #, no-wrap
17118 msgid "B<sched_getscheduler>(2)\t2.0\n"
17119 msgstr ""
17120
17121 #. type: tbl table
17122 #: build/C/man2/syscalls.2:465
17123 #, no-wrap
17124 msgid "B<sched_rr_get_interval>(2)\t2.0\n"
17125 msgstr ""
17126
17127 #. type: tbl table
17128 #: build/C/man2/syscalls.2:466
17129 #, no-wrap
17130 msgid "B<sched_setaffinity>(2)\t2.6\n"
17131 msgstr ""
17132
17133 #. type: tbl table
17134 #: build/C/man2/syscalls.2:467
17135 #, no-wrap
17136 msgid "B<sched_setattr>(2)\t3.14\n"
17137 msgstr ""
17138
17139 #. type: tbl table
17140 #: build/C/man2/syscalls.2:468
17141 #, no-wrap
17142 msgid "B<sched_setparam>(2)\t2.0\n"
17143 msgstr ""
17144
17145 #. type: tbl table
17146 #: build/C/man2/syscalls.2:469
17147 #, no-wrap
17148 msgid "B<sched_setscheduler>(2)\t2.0\n"
17149 msgstr ""
17150
17151 #. type: tbl table
17152 #: build/C/man2/syscalls.2:470
17153 #, no-wrap
17154 msgid "B<sched_yield>(2)\t2.0\n"
17155 msgstr ""
17156
17157 #. type: tbl table
17158 #: build/C/man2/syscalls.2:471
17159 #, no-wrap
17160 msgid "B<seccomp>(2)\t3.17\n"
17161 msgstr ""
17162
17163 #. type: tbl table
17164 #: build/C/man2/syscalls.2:472
17165 #, no-wrap
17166 msgid "B<select>(2)\t1.0\n"
17167 msgstr ""
17168
17169 #. type: tbl table
17170 #: build/C/man2/syscalls.2:473
17171 #, no-wrap
17172 msgid "B<semctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17173 msgstr ""
17174
17175 #. type: tbl table
17176 #: build/C/man2/syscalls.2:474
17177 #, no-wrap
17178 msgid "B<semget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17179 msgstr ""
17180
17181 #. type: tbl table
17182 #: build/C/man2/syscalls.2:475
17183 #, no-wrap
17184 msgid "B<semop>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17185 msgstr ""
17186
17187 #. type: tbl table
17188 #: build/C/man2/syscalls.2:476
17189 #, no-wrap
17190 msgid "B<semtimedop>(2)\t2.6; 2.4.22\n"
17191 msgstr ""
17192
17193 #. type: tbl table
17194 #: build/C/man2/syscalls.2:477
17195 #, no-wrap
17196 msgid "B<send>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17197 msgstr ""
17198
17199 #. type: tbl table
17200 #: build/C/man2/syscalls.2:478
17201 #, no-wrap
17202 msgid "B<sendfile>(2)\t2.2\n"
17203 msgstr ""
17204
17205 #. type: tbl table
17206 #: build/C/man2/syscalls.2:479
17207 #, no-wrap
17208 msgid "B<sendfile64>(2)\t2.6; 2.4.19\n"
17209 msgstr ""
17210
17211 #. type: tbl table
17212 #: build/C/man2/syscalls.2:480
17213 #, no-wrap
17214 msgid "B<sendmmsg>(2)\t3.0\n"
17215 msgstr ""
17216
17217 #. type: tbl table
17218 #: build/C/man2/syscalls.2:481
17219 #, no-wrap
17220 msgid "B<sendmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17221 msgstr ""
17222
17223 #. type: tbl table
17224 #: build/C/man2/syscalls.2:482
17225 #, no-wrap
17226 msgid "B<sendto>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17227 msgstr ""
17228
17229 #. type: tbl table
17230 #: build/C/man2/syscalls.2:483
17231 #, no-wrap
17232 msgid "B<set_mempolicy>(2)\t2.6.6\n"
17233 msgstr ""
17234
17235 #. type: tbl table
17236 #: build/C/man2/syscalls.2:484
17237 #, no-wrap
17238 msgid "B<set_robust_list>(2)\t2.6.17\n"
17239 msgstr ""
17240
17241 #. type: tbl table
17242 #: build/C/man2/syscalls.2:485
17243 #, no-wrap
17244 msgid "B<set_thread_area>(2)\t2.6\n"
17245 msgstr ""
17246
17247 #. type: tbl table
17248 #: build/C/man2/syscalls.2:486
17249 #, no-wrap
17250 msgid "B<set_tid_address>(2)\t2.6\n"
17251 msgstr ""
17252
17253 #.  See http://lkml.org/lkml/2005/8/1/83
17254 #.  "[PATCH] remove sys_set_zone_reclaim()"
17255 #. type: tbl table
17256 #: build/C/man2/syscalls.2:489
17257 #, no-wrap
17258 msgid "B<setdomainname>(2)\t1.0\n"
17259 msgstr ""
17260
17261 #. type: tbl table
17262 #: build/C/man2/syscalls.2:490
17263 #, no-wrap
17264 msgid "B<setfsgid>(2)\t1.2\n"
17265 msgstr ""
17266
17267 #. type: tbl table
17268 #: build/C/man2/syscalls.2:491
17269 #, no-wrap
17270 msgid "B<setfsgid32>(2)\t2.4\n"
17271 msgstr ""
17272
17273 #. type: tbl table
17274 #: build/C/man2/syscalls.2:492
17275 #, no-wrap
17276 msgid "B<setfsuid>(2)\t1.2\n"
17277 msgstr ""
17278
17279 #. type: tbl table
17280 #: build/C/man2/syscalls.2:493
17281 #, no-wrap
17282 msgid "B<setfsuid32>(2)\t2.4\n"
17283 msgstr ""
17284
17285 #. type: tbl table
17286 #: build/C/man2/syscalls.2:494
17287 #, no-wrap
17288 msgid "B<setgid>(2)\t1.0\n"
17289 msgstr ""
17290
17291 #. type: tbl table
17292 #: build/C/man2/syscalls.2:495
17293 #, no-wrap
17294 msgid "B<setgid32>(2)\t2.4\n"
17295 msgstr ""
17296
17297 #. type: tbl table
17298 #: build/C/man2/syscalls.2:496
17299 #, no-wrap
17300 msgid "B<setgroups>(2)\t1.0\n"
17301 msgstr ""
17302
17303 #. type: tbl table
17304 #: build/C/man2/syscalls.2:497
17305 #, no-wrap
17306 msgid "B<setgroups32>(2)\t2.4\n"
17307 msgstr ""
17308
17309 #. type: tbl table
17310 #: build/C/man2/syscalls.2:498
17311 #, no-wrap
17312 msgid "B<sethostname>(2)\t1.0\n"
17313 msgstr ""
17314
17315 #. type: tbl table
17316 #: build/C/man2/syscalls.2:499
17317 #, no-wrap
17318 msgid "B<setitimer>(2)\t1.0\n"
17319 msgstr ""
17320
17321 #. type: tbl table
17322 #: build/C/man2/syscalls.2:500
17323 #, no-wrap
17324 msgid "B<setns>(2)\t3.0\n"
17325 msgstr ""
17326
17327 #. type: tbl table
17328 #: build/C/man2/syscalls.2:501
17329 #, no-wrap
17330 msgid "B<setpgid>(2)\t1.0\n"
17331 msgstr ""
17332
17333 #. type: tbl table
17334 #: build/C/man2/syscalls.2:502
17335 #, no-wrap
17336 msgid "B<setpriority>(2)\t1.0\n"
17337 msgstr ""
17338
17339 #. type: tbl table
17340 #: build/C/man2/syscalls.2:503
17341 #, no-wrap
17342 msgid "B<setregid>(2)\t1.0\n"
17343 msgstr ""
17344
17345 #. type: tbl table
17346 #: build/C/man2/syscalls.2:504
17347 #, no-wrap
17348 msgid "B<setregid32>(2)\t2.4\n"
17349 msgstr ""
17350
17351 #. type: tbl table
17352 #: build/C/man2/syscalls.2:505
17353 #, no-wrap
17354 msgid "B<setresgid>(2)\t2.2\n"
17355 msgstr ""
17356
17357 #. type: tbl table
17358 #: build/C/man2/syscalls.2:506
17359 #, no-wrap
17360 msgid "B<setresgid32>(2)\t2.4\n"
17361 msgstr ""
17362
17363 #. type: tbl table
17364 #: build/C/man2/syscalls.2:507
17365 #, no-wrap
17366 msgid "B<setresuid>(2)\t2.2\n"
17367 msgstr ""
17368
17369 #. type: tbl table
17370 #: build/C/man2/syscalls.2:508
17371 #, no-wrap
17372 msgid "B<setresuid32>(2)\t2.4\n"
17373 msgstr ""
17374
17375 #. type: tbl table
17376 #: build/C/man2/syscalls.2:509
17377 #, no-wrap
17378 msgid "B<setreuid>(2)\t1.0\n"
17379 msgstr ""
17380
17381 #. type: tbl table
17382 #: build/C/man2/syscalls.2:510
17383 #, no-wrap
17384 msgid "B<setreuid32>(2)\t2.4\n"
17385 msgstr ""
17386
17387 #. type: tbl table
17388 #: build/C/man2/syscalls.2:511
17389 #, no-wrap
17390 msgid "B<setrlimit>(2)\t1.0\n"
17391 msgstr ""
17392
17393 #. type: tbl table
17394 #: build/C/man2/syscalls.2:512
17395 #, no-wrap
17396 msgid "B<setsid>(2)\t1.0\n"
17397 msgstr ""
17398
17399 #. type: tbl table
17400 #: build/C/man2/syscalls.2:513
17401 #, no-wrap
17402 msgid "B<setsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17403 msgstr ""
17404
17405 #. type: tbl table
17406 #: build/C/man2/syscalls.2:514
17407 #, no-wrap
17408 msgid "B<settimeofday>(2)\t1.0\n"
17409 msgstr ""
17410
17411 #. type: tbl table
17412 #: build/C/man2/syscalls.2:515
17413 #, no-wrap
17414 msgid "B<setuid>(2)\t1.0\n"
17415 msgstr ""
17416
17417 #. type: tbl table
17418 #: build/C/man2/syscalls.2:516
17419 #, no-wrap
17420 msgid "B<setuid32>(2)\t2.4\n"
17421 msgstr ""
17422
17423 #. type: tbl table
17424 #: build/C/man2/syscalls.2:517
17425 #, no-wrap
17426 msgid "B<setup>(2)\t1.0\tRemoved in 2.2\n"
17427 msgstr ""
17428
17429 #. type: tbl table
17430 #: build/C/man2/syscalls.2:518
17431 #, no-wrap
17432 msgid "B<setxattr>(2)\t2.6; 2.4.18\n"
17433 msgstr ""
17434
17435 #. type: tbl table
17436 #: build/C/man2/syscalls.2:519
17437 #, no-wrap
17438 msgid "B<sgetmask>(2)\t1.0\n"
17439 msgstr ""
17440
17441 #. type: tbl table
17442 #: build/C/man2/syscalls.2:520
17443 #, no-wrap
17444 msgid "B<shmat>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17445 msgstr ""
17446
17447 #. type: tbl table
17448 #: build/C/man2/syscalls.2:521
17449 #, no-wrap
17450 msgid "B<shmctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17451 msgstr ""
17452
17453 #. type: tbl table
17454 #: build/C/man2/syscalls.2:522
17455 #, no-wrap
17456 msgid "B<shmdt>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17457 msgstr ""
17458
17459 #. type: tbl table
17460 #: build/C/man2/syscalls.2:523
17461 #, no-wrap
17462 msgid "B<shmget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17463 msgstr ""
17464
17465 #. type: tbl table
17466 #: build/C/man2/syscalls.2:524
17467 #, no-wrap
17468 msgid "B<shutdown>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17469 msgstr ""
17470
17471 #. type: tbl table
17472 #: build/C/man2/syscalls.2:525
17473 #, no-wrap
17474 msgid "B<sigaction>(2)\t1.0\n"
17475 msgstr ""
17476
17477 #. type: tbl table
17478 #: build/C/man2/syscalls.2:526
17479 #, no-wrap
17480 msgid "B<sigaltstack>(2)\t2.2\n"
17481 msgstr ""
17482
17483 #. type: tbl table
17484 #: build/C/man2/syscalls.2:527
17485 #, no-wrap
17486 msgid "B<signal>(2)\t1.0\n"
17487 msgstr ""
17488
17489 #. type: tbl table
17490 #: build/C/man2/syscalls.2:528
17491 #, no-wrap
17492 msgid "B<signalfd>(2)\t2.6.22\n"
17493 msgstr ""
17494
17495 #. type: tbl table
17496 #: build/C/man2/syscalls.2:529
17497 #, no-wrap
17498 msgid "B<signalfd4>(2)\t2.6.27\n"
17499 msgstr ""
17500
17501 #. type: tbl table
17502 #: build/C/man2/syscalls.2:530
17503 #, no-wrap
17504 msgid "B<sigpending>(2)\t1.0\n"
17505 msgstr ""
17506
17507 #. type: tbl table
17508 #: build/C/man2/syscalls.2:531
17509 #, no-wrap
17510 msgid "B<sigprocmask>(2)\t1.0\n"
17511 msgstr ""
17512
17513 #. type: tbl table
17514 #: build/C/man2/syscalls.2:532
17515 #, no-wrap
17516 msgid "B<sigreturn>(2)\t1.0\n"
17517 msgstr ""
17518
17519 #. type: tbl table
17520 #: build/C/man2/syscalls.2:533
17521 #, no-wrap
17522 msgid "B<sigsuspend>(2)\t1.0\n"
17523 msgstr ""
17524
17525 #. type: tbl table
17526 #: build/C/man2/syscalls.2:534
17527 #, no-wrap
17528 msgid "B<socket>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17529 msgstr ""
17530
17531 #. type: tbl table
17532 #: build/C/man2/syscalls.2:535
17533 #, no-wrap
17534 msgid "B<socketcall>(2)\t1.0\n"
17535 msgstr ""
17536
17537 #.  Implements BSD socket calls
17538 #. type: tbl table
17539 #: build/C/man2/syscalls.2:537
17540 #, no-wrap
17541 msgid "B<socketpair>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17542 msgstr ""
17543
17544 #. type: tbl table
17545 #: build/C/man2/syscalls.2:538
17546 #, no-wrap
17547 msgid "B<splice>(2)\t2.6.17\n"
17548 msgstr ""
17549
17550 #. type: tbl table
17551 #: build/C/man2/syscalls.2:539
17552 #, no-wrap
17553 msgid "B<spu_create>(2)\t2.6.16\tPowerPC only\n"
17554 msgstr ""
17555
17556 #. type: tbl table
17557 #: build/C/man2/syscalls.2:540
17558 #, no-wrap
17559 msgid "B<spu_run>(2)\t2.6.16\tPowerPC only\n"
17560 msgstr ""
17561
17562 #. type: tbl table
17563 #: build/C/man2/syscalls.2:541
17564 #, no-wrap
17565 msgid "B<ssetmask>(2)\t1.0\n"
17566 msgstr ""
17567
17568 #. type: tbl table
17569 #: build/C/man2/syscalls.2:542
17570 #, no-wrap
17571 msgid "B<stat>(2)\t1.0\n"
17572 msgstr ""
17573
17574 #. type: tbl table
17575 #: build/C/man2/syscalls.2:543
17576 #, no-wrap
17577 msgid "B<stat64>(2)\t2.4\n"
17578 msgstr ""
17579
17580 #. type: tbl table
17581 #: build/C/man2/syscalls.2:544
17582 #, no-wrap
17583 msgid "B<statfs>(2)\t1.0\n"
17584 msgstr ""
17585
17586 #. type: tbl table
17587 #: build/C/man2/syscalls.2:545
17588 #, no-wrap
17589 msgid "B<statfs64>(2)\t2.6\n"
17590 msgstr ""
17591
17592 #. type: tbl table
17593 #: build/C/man2/syscalls.2:546
17594 #, no-wrap
17595 msgid "B<stime>(2)\t1.0\n"
17596 msgstr ""
17597
17598 #. type: tbl table
17599 #: build/C/man2/syscalls.2:547
17600 #, no-wrap
17601 msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC only\n"
17602 msgstr ""
17603
17604 #. type: tbl table
17605 #: build/C/man2/syscalls.2:548
17606 #, no-wrap
17607 msgid "B<swapoff>(2)\t1.0\n"
17608 msgstr ""
17609
17610 #. type: tbl table
17611 #: build/C/man2/syscalls.2:549
17612 #, no-wrap
17613 msgid "B<swapon>(2)\t1.0\n"
17614 msgstr ""
17615
17616 #. type: tbl table
17617 #: build/C/man2/syscalls.2:550
17618 #, no-wrap
17619 msgid "B<symlink>(2)\t1.0\n"
17620 msgstr ""
17621
17622 #. type: tbl table
17623 #: build/C/man2/syscalls.2:551
17624 #, no-wrap
17625 msgid "B<symlinkat>(2)\t2.6.16\n"
17626 msgstr ""
17627
17628 #. type: tbl table
17629 #: build/C/man2/syscalls.2:552
17630 #, no-wrap
17631 msgid "B<sync>(2)\t1.0\n"
17632 msgstr ""
17633
17634 #. type: tbl table
17635 #: build/C/man2/syscalls.2:553
17636 #, no-wrap
17637 msgid "B<sync_file_range>(2)\t2.6.17\n"
17638 msgstr ""
17639
17640 #. type: tbl table
17641 #: build/C/man2/syscalls.2:554
17642 #, no-wrap
17643 msgid "B<sync_file_range2>(2)\t2.6.22\n"
17644 msgstr ""
17645
17646 #.  PowerPC, ARM, tile
17647 #.  First appeared on ARM, as arm_sync_file_range(), but later renamed
17648 #.  \fBsys_debug_setcontext\fP(2)       ???     PowerPC if CONFIG_PPC32
17649 #. type: tbl table
17650 #: build/C/man2/syscalls.2:558
17651 #, no-wrap
17652 msgid "B<syncfs>(2)\t2.6.39\n"
17653 msgstr ""
17654
17655 #. type: tbl table
17656 #: build/C/man2/syscalls.2:559
17657 #, no-wrap
17658 msgid "B<sysfs>(2)\t1.2\n"
17659 msgstr ""
17660
17661 #. type: tbl table
17662 #: build/C/man2/syscalls.2:560
17663 #, no-wrap
17664 msgid "B<sysinfo>(2)\t1.0\n"
17665 msgstr ""
17666
17667 #. type: tbl table
17668 #: build/C/man2/syscalls.2:561
17669 #, no-wrap
17670 msgid "B<syslog>(2)\t1.0\n"
17671 msgstr ""
17672
17673 #.  glibc interface is \fBklogctl\fP(3)
17674 #. type: tbl table
17675 #: build/C/man2/syscalls.2:563
17676 #, no-wrap
17677 msgid "B<tee>(2)\t2.6.17\n"
17678 msgstr ""
17679
17680 #. type: tbl table
17681 #: build/C/man2/syscalls.2:564
17682 #, no-wrap
17683 msgid "B<tgkill>(2)\t2.6\n"
17684 msgstr ""
17685
17686 #. type: tbl table
17687 #: build/C/man2/syscalls.2:565
17688 #, no-wrap
17689 msgid "B<time>(2)\t1.0\n"
17690 msgstr ""
17691
17692 #. type: tbl table
17693 #: build/C/man2/syscalls.2:566
17694 #, no-wrap
17695 msgid "B<timer_create>(2)\t2.6\n"
17696 msgstr ""
17697
17698 #. type: tbl table
17699 #: build/C/man2/syscalls.2:567
17700 #, no-wrap
17701 msgid "B<timer_delete>(2)\t2.6\n"
17702 msgstr ""
17703
17704 #. type: tbl table
17705 #: build/C/man2/syscalls.2:568
17706 #, no-wrap
17707 msgid "B<timer_getoverrun>(2)\t2.6\n"
17708 msgstr ""
17709
17710 #. type: tbl table
17711 #: build/C/man2/syscalls.2:569
17712 #, no-wrap
17713 msgid "B<timer_gettime>(2)\t2.6\n"
17714 msgstr ""
17715
17716 #. type: tbl table
17717 #: build/C/man2/syscalls.2:570
17718 #, no-wrap
17719 msgid "B<timer_settime>(2)\t2.6\n"
17720 msgstr ""
17721
17722 #. type: tbl table
17723 #: build/C/man2/syscalls.2:571
17724 #, no-wrap
17725 msgid "B<timerfd_create>(2)\t2.6.25\n"
17726 msgstr ""
17727
17728 #. type: tbl table
17729 #: build/C/man2/syscalls.2:572
17730 #, no-wrap
17731 msgid "B<timerfd_gettime>(2)\t2.6.25\n"
17732 msgstr ""
17733
17734 #. type: tbl table
17735 #: build/C/man2/syscalls.2:573
17736 #, no-wrap
17737 msgid "B<timerfd_settime>(2)\t2.6.25\n"
17738 msgstr ""
17739
17740 #. type: tbl table
17741 #: build/C/man2/syscalls.2:574
17742 #, no-wrap
17743 msgid "B<times>(2)\t1.0\n"
17744 msgstr ""
17745
17746 #. type: tbl table
17747 #: build/C/man2/syscalls.2:575
17748 #, no-wrap
17749 msgid "B<tkill>(2)\t2.6; 2.4.22\n"
17750 msgstr ""
17751
17752 #. type: tbl table
17753 #: build/C/man2/syscalls.2:576
17754 #, no-wrap
17755 msgid "B<truncate>(2)\t1.0\n"
17756 msgstr ""
17757
17758 #. type: tbl table
17759 #: build/C/man2/syscalls.2:577
17760 #, no-wrap
17761 msgid "B<truncate64>(2)\t2.4\n"
17762 msgstr ""
17763
17764 #. type: tbl table
17765 #: build/C/man2/syscalls.2:578
17766 #, no-wrap
17767 msgid "B<ugetrlimit>(2)\t2.4\n"
17768 msgstr ""
17769
17770 #. type: tbl table
17771 #: build/C/man2/syscalls.2:579
17772 #, no-wrap
17773 msgid "B<umask>(2)\t1.0\n"
17774 msgstr ""
17775
17776 #. type: tbl table
17777 #: build/C/man2/syscalls.2:580
17778 #, no-wrap
17779 msgid "B<umount>(2)\t1.0\n"
17780 msgstr ""
17781
17782 #.  sys_oldumount() -- __NR_umount
17783 #. type: tbl table
17784 #: build/C/man2/syscalls.2:582
17785 #, no-wrap
17786 msgid "B<umount2>(2)\t2.2\n"
17787 msgstr ""
17788
17789 #.  sys_umount() -- __NR_umount2
17790 #. type: tbl table
17791 #: build/C/man2/syscalls.2:584
17792 #, no-wrap
17793 msgid "B<uname>(2)\t1.0\n"
17794 msgstr ""
17795
17796 #. type: tbl table
17797 #: build/C/man2/syscalls.2:585
17798 #, no-wrap
17799 msgid "B<unlink>(2)\t1.0\n"
17800 msgstr ""
17801
17802 #. type: tbl table
17803 #: build/C/man2/syscalls.2:586
17804 #, no-wrap
17805 msgid "B<unlinkat>(2)\t2.6.16\n"
17806 msgstr ""
17807
17808 #. type: tbl table
17809 #: build/C/man2/syscalls.2:587
17810 #, no-wrap
17811 msgid "B<unshare>(2)\t2.6.16\n"
17812 msgstr ""
17813
17814 #. type: tbl table
17815 #: build/C/man2/syscalls.2:588
17816 #, no-wrap
17817 msgid "B<uselib>(2)\t1.0\n"
17818 msgstr ""
17819
17820 #. type: tbl table
17821 #: build/C/man2/syscalls.2:589
17822 #, no-wrap
17823 msgid "B<ustat>(2)\t1.0\n"
17824 msgstr ""
17825
17826 #. type: tbl table
17827 #: build/C/man2/syscalls.2:590
17828 #, no-wrap
17829 msgid "B<utime>(2)\t1.0\n"
17830 msgstr ""
17831
17832 #. type: tbl table
17833 #: build/C/man2/syscalls.2:591
17834 #, no-wrap
17835 msgid "B<utimensat>(2)\t2.6.22\n"
17836 msgstr ""
17837
17838 #. type: tbl table
17839 #: build/C/man2/syscalls.2:592
17840 #, no-wrap
17841 msgid "B<utimes>(2)\t2.2\n"
17842 msgstr ""
17843
17844 #. type: tbl table
17845 #: build/C/man2/syscalls.2:593
17846 #, no-wrap
17847 msgid "B<utrap_install>(2)\t2.2\tSparc only\n"
17848 msgstr ""
17849
17850 #.  FIXME . document utrap_install()
17851 #.  There's a man page for Solaris 5.11
17852 #. type: tbl table
17853 #: build/C/man2/syscalls.2:596
17854 #, no-wrap
17855 msgid "B<vfork>(2)\t2.2\n"
17856 msgstr ""
17857
17858 #. type: tbl table
17859 #: build/C/man2/syscalls.2:597
17860 #, no-wrap
17861 msgid "B<vhangup>(2)\t1.0\n"
17862 msgstr ""
17863
17864 #. type: tbl table
17865 #: build/C/man2/syscalls.2:598
17866 #, no-wrap
17867 msgid "B<vm86old>(2)\t1.0\tT{\n"
17868 msgstr ""
17869
17870 #. type: tbl table
17871 #: build/C/man2/syscalls.2:599
17872 #, no-wrap
17873 msgid "Was \"vm86\"; renamed in\n"
17874 msgstr ""
17875
17876 #. type: tbl table
17877 #: build/C/man2/syscalls.2:600
17878 #, no-wrap
17879 msgid "2.0.28/2.2\n"
17880 msgstr ""
17881
17882 #. type: tbl table
17883 #: build/C/man2/syscalls.2:602
17884 #, no-wrap
17885 msgid "B<vm86>(2)\t2.0.28; 2.2\n"
17886 msgstr ""
17887
17888 #. type: tbl table
17889 #: build/C/man2/syscalls.2:603
17890 #, no-wrap
17891 msgid "B<vmsplice>(2)\t2.6.17\n"
17892 msgstr ""
17893
17894 #. type: tbl table
17895 #: build/C/man2/syscalls.2:604
17896 #, no-wrap
17897 msgid "B<wait4>(2)\t1.0\n"
17898 msgstr ""
17899
17900 #. type: tbl table
17901 #: build/C/man2/syscalls.2:605
17902 #, no-wrap
17903 msgid "B<waitid>(2)\t2.6.10\n"
17904 msgstr ""
17905
17906 #. type: tbl table
17907 #: build/C/man2/syscalls.2:606
17908 #, no-wrap
17909 msgid "B<waitpid>(2)\t1.0\n"
17910 msgstr ""
17911
17912 #. type: tbl table
17913 #: build/C/man2/syscalls.2:607
17914 #, no-wrap
17915 msgid "B<write>(2)\t1.0\n"
17916 msgstr ""
17917
17918 #. type: tbl table
17919 #: build/C/man2/syscalls.2:608
17920 #, no-wrap
17921 msgid "B<writev>(2)\t2.0\n"
17922 msgstr ""
17923
17924 #. type: Plain text
17925 #: build/C/man2/syscalls.2:617
17926 msgid ""
17927 "On many platforms, including x86-32, socket calls are all multiplexed (via "
17928 "glibc wrapper functions) through B<socketcall>(2)  and similarly System\\ V "
17929 "IPC calls are multiplexed through B<ipc>(2)."
17930 msgstr ""
17931
17932 #.  __NR_afs_syscall is 53 on Linux 2.6.22/i386
17933 #.  __NR_break is 17 on Linux 2.6.22/i386
17934 #.  __NR_ftime is 35 on Linux 2.6.22/i386
17935 #.  __NR_getpmsg is 188 on Linux 2.6.22/i386
17936 #.  __NR_gtty is 32 on Linux 2.6.22/i386
17937 #.  __NR_idle is 112 on Linux 2.6.22/i386
17938 #.  __NR_lock is 53 on Linux 2.6.22/i386
17939 #.  __NR_madvise1 is 219 on Linux 2.6.22/i386
17940 #.  __NR_mpx is 66 on Linux 2.6.22/i386
17941 #.  Slot has been reused
17942 #.  __NR_prof is 44 on Linux 2.6.22/i386
17943 #.  __NR_profil is 98 on Linux 2.6.22/i386
17944 #.  __NR_putpmsg is 189 on Linux 2.6.22/i386
17945 #.  __NR_security is 223 on Linux 2.4/i386
17946 #.  __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
17947 #.  on a couple of 2.6 architectures
17948 #.  __NR_stty is 31 on Linux 2.6.22/i386
17949 #.  The security call is for future use.
17950 #.  __NR_tuxcall is 184 on x86_64, also on PPC and alpha
17951 #.  __NR_ulimit is 58 on Linux 2.6.22/i386
17952 #.  __NR_vserver is 273 on Linux 2.6.22/i386
17953 #. type: Plain text
17954 #: build/C/man2/syscalls.2:662
17955 msgid ""
17956 "Although slots are reserved for them in the system call table, the following "
17957 "system calls are not implemented in the standard kernel: B<afs_syscall>(2), "
17958 "B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), "
17959 "B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), "
17960 "B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and "
17961 "B<vserver>(2)  (see also B<unimplemented>(2)).  However, B<ftime>(3), "
17962 "B<profil>(3), and B<ulimit>(3)  exist as library routines.  The slot for "
17963 "B<phys>(2)  is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2)  "
17964 "will never be implemented.  The B<getpmsg>(2)  and B<putpmsg>(2)  calls are "
17965 "for kernels patched to support STREAMS, and may never be in the standard "
17966 "kernel."
17967 msgstr ""
17968
17969 #. type: Plain text
17970 #: build/C/man2/syscalls.2:667
17971 msgid ""
17972 "There was briefly B<set_zone_reclaim>(2), added in Linux 2.6.13, and removed "
17973 "in 2.6.16; this system call was never available to user space."
17974 msgstr ""
17975
17976 #. type: Plain text
17977 #: build/C/man2/syscalls.2:684
17978 msgid ""
17979 "Roughly speaking, the code belonging to the system call with number __NR_xxx "
17980 "defined in I</usr/include/asm/unistd.h> can be found in the Linux kernel "
17981 "source in the routine I<sys_xxx>().  (The dispatch table for i386 can be "
17982 "found in I</usr/src/linux/arch/i386/kernel/entry.S>.)  There are many "
17983 "exceptions, however, mostly because older system calls were superseded by "
17984 "newer ones, and this has been treated somewhat unsystematically.  On "
17985 "platforms with proprietary operating-system emulation, such as parisc, "
17986 "sparc, sparc64, and alpha, there are many additional system calls; mips64 "
17987 "also contains a full set of 32-bit system calls."
17988 msgstr ""
17989
17990 #. type: Plain text
17991 #: build/C/man2/syscalls.2:703
17992 msgid ""
17993 "Over time, changes to the interfaces of some system calls have been "
17994 "necessary.  One reason for such changes was the need to increase the size of "
17995 "structures or scalar values passed to the system call.  Because of these "
17996 "changes, there are now various groups of related system calls (e.g., "
17997 "B<truncate>(2)  and B<truncate64>(2))  which perform similar tasks, but "
17998 "which vary in details such as the size of their arguments.  (As noted "
17999 "earlier, applications are generally unaware of this: the glibc wrapper "
18000 "functions do some work to ensure that the right system call is invoked, and "
18001 "that ABI compatibility is preserved for old binaries.)  Examples of systems "
18002 "calls that exist in multiple versions are the following:"
18003 msgstr ""
18004
18005 #.  e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
18006 #.  The stat system calls deal with three different data structures,
18007 #.  defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
18008 #. type: Plain text
18009 #: build/C/man2/syscalls.2:724
18010 msgid ""
18011 "By now there are three different versions of B<stat>(2): I<sys_stat>()  "
18012 "(slot I<__NR_oldstat>), I<sys_newstat>()  (slot I<__NR_stat>), and "
18013 "I<sys_stat64>()  (slot I<__NR_stat64>), with the last being the most "
18014 "current.  A similar story applies for B<lstat>(2)  and B<fstat>(2)."
18015 msgstr ""
18016
18017 #. type: Plain text
18018 #: build/C/man2/syscalls.2:735
18019 msgid ""
18020 "Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and "
18021 "I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>()  and "
18022 "I<sys_newuname>()."
18023 msgstr ""
18024
18025 #. type: Plain text
18026 #: build/C/man2/syscalls.2:742
18027 msgid ""
18028 "In Linux 2.0, a new version of B<vm86>(2)  appeared, with the old and the "
18029 "new kernel routines being named I<sys_vm86old>()  and I<sys_vm86>()."
18030 msgstr ""
18031
18032 #. type: Plain text
18033 #: build/C/man2/syscalls.2:753
18034 msgid ""
18035 "In Linux 2.4, a new version of B<getrlimit>(2)  appeared, with the old and "
18036 "the new kernel routines being named I<sys_old_getrlimit>()  (slot "
18037 "I<__NR_getrlimit>)  and I<sys_getrlimit>()  (slot I<__NR_ugetrlimit>)."
18038 msgstr ""
18039
18040 #.  64-bit off_t changes: ftruncate64, *stat64,
18041 #.  fcntl64 (because of the flock structure), getdents64, *statfs64
18042 #. type: Plain text
18043 #: build/C/man2/syscalls.2:765
18044 msgid ""
18045 "Linux 2.4 increased the size of user and group IDs from 16 to 32 bits.  To "
18046 "support this change, a range of system calls were added (e.g., "
18047 "B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), "
18048 "superseding earlier calls of the same name without the \"32\" suffix."
18049 msgstr ""
18050
18051 #. type: Plain text
18052 #: build/C/man2/syscalls.2:782
18053 msgid ""
18054 "Linux 2.4 added support for applications on 32-bit architectures to access "
18055 "large files (i.e., files for which the sizes and file offsets can't be "
18056 "represented in 32 bits.)  To support this change, replacements were required "
18057 "for system calls that deal with file offsets and sizes.  Thus the following "
18058 "system calls were added: B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), "
18059 "B<stat64>(2), B<statfs64>(2), and their analogs that work with file "
18060 "descriptors or symbolic links.  These system calls supersede the older "
18061 "system calls which, except in the case of the \"stat\" calls, have the same "
18062 "name without the \"64\" suffix."
18063 msgstr ""
18064
18065 #. type: Plain text
18066 #: build/C/man2/syscalls.2:786
18067 msgid ""
18068 "On newer platforms that only have 64-bit file access and 32-bit uids (e.g., "
18069 "alpha, ia64, s390x) there are no *64 or *32 calls.  Where the *64 and *32 "
18070 "calls exist, the other versions are obsolete."
18071 msgstr ""
18072
18073 #. type: Plain text
18074 #: build/C/man2/syscalls.2:794
18075 msgid ""
18076 "The I<rt_sig*> calls were added in kernel 2.2 to support the addition of "
18077 "real-time signals (see B<signal>(7)).  These system calls supersede the "
18078 "older system calls of the same name without the \"rt_\" prefix."
18079 msgstr ""
18080
18081 #.  (used by libc 6)
18082 #.  .PP
18083 #.  Two system call numbers,
18084 #.  .IR __NR__llseek
18085 #.  and
18086 #.  .IR __NR__sysctl
18087 #.  have an additional underscore absent in
18088 #.  .IR sys_llseek ()
18089 #.  and
18090 #.  .IR sys_sysctl ().
18091 #
18092 #.  In kernel 2.1.81,
18093 #.  .BR lchown (2)
18094 #.  and
18095 #.  .BR chown (2)
18096 #.  were swapped; that is,
18097 #.  .BR lchown (2)
18098 #.  was added with the semantics that were then current for
18099 #.  .BR chown (2),
18100 #.  and the semantics of the latter call were changed to what
18101 #.  they are today.
18102 #. type: Plain text
18103 #: build/C/man2/syscalls.2:844
18104 msgid ""
18105 "The B<select>(2)  and B<mmap>(2)  system calls use five or more arguments, "
18106 "which caused problems in the way argument passing on the i386 used to be set "
18107 "up.  Thus, while other architectures have I<sys_select>()  and I<sys_mmap>()  "
18108 "corresponding to I<__NR_select> and I<__NR_mmap>, on i386 one finds "
18109 "I<old_select>()  and I<old_mmap>()  (routines that use a pointer to a "
18110 "argument block) instead.  These days passing five arguments is not a problem "
18111 "any more, and there is a I<__NR__newselect> that corresponds directly to "
18112 "I<sys_select>()  and similarly I<__NR_mmap2>."
18113 msgstr ""
18114
18115 #. type: Plain text
18116 #: build/C/man2/syscalls.2:850
18117 msgid ""
18118 "B<intro>(2), B<syscall>(2), B<unimplemented>(2), B<errno>(3), B<libc>(7), "
18119 "B<vdso>(7)"
18120 msgstr ""
18121
18122 #. type: TH
18123 #: build/C/man3/sysconf.3:27
18124 #, no-wrap
18125 msgid "SYSCONF"
18126 msgstr ""
18127
18128 #. type: Plain text
18129 #: build/C/man3/sysconf.3:30
18130 msgid "sysconf - get configuration information at run time"
18131 msgstr ""
18132
18133 #. type: Plain text
18134 #: build/C/man3/sysconf.3:35
18135 #, no-wrap
18136 msgid "B<long sysconf(int >I<name>B<);>\n"
18137 msgstr ""
18138
18139 #. type: Plain text
18140 #: build/C/man3/sysconf.3:40
18141 msgid ""
18142 "POSIX allows an application to test at compile or run time whether certain "
18143 "options are supported, or what the value is of certain configurable "
18144 "constants or limits."
18145 msgstr ""
18146
18147 #. type: Plain text
18148 #: build/C/man3/sysconf.3:46
18149 msgid ""
18150 "At compile time this is done by including I<E<lt>unistd.hE<gt>> and/or "
18151 "I<E<lt>limits.hE<gt>> and testing the value of certain macros."
18152 msgstr ""
18153
18154 #. type: Plain text
18155 #: build/C/man3/sysconf.3:56
18156 msgid ""
18157 "At run time, one can ask for numerical values using the present function "
18158 "B<sysconf>().  One can ask for numerical values that may depend on the "
18159 "filesystem a file is in using the calls B<fpathconf>(3)  and "
18160 "B<pathconf>(3).  One can ask for string values using B<confstr>(3)."
18161 msgstr ""
18162
18163 #.  except that sysconf(_SC_OPEN_MAX) may change answer after a call
18164 #.  to setrlimit( ) which changes the RLIMIT_NOFILE soft limit
18165 #. type: Plain text
18166 #: build/C/man3/sysconf.3:61
18167 msgid ""
18168 "The values obtained from these functions are system configuration "
18169 "constants.  They do not change during the lifetime of a process."
18170 msgstr ""
18171
18172 #.  and 999 to indicate support for options no longer present in the latest
18173 #.  standard. (?)
18174 #. type: Plain text
18175 #: build/C/man3/sysconf.3:84
18176 msgid ""
18177 "For options, typically, there is a constant B<_POSIX_FOO> that may be "
18178 "defined in I<E<lt>unistd.hE<gt>>.  If it is undefined, one should ask at run "
18179 "time.  If it is defined to -1, then the option is not supported.  If it is "
18180 "defined to 0, then relevant functions and headers exist, but one has to ask "
18181 "at run time what degree of support is available.  If it is defined to a "
18182 "value other than -1 or 0, then the option is supported.  Usually the value "
18183 "(such as 200112L) indicates the year and month of the POSIX revision "
18184 "describing the option.  Glibc uses the value 1 to indicate support as long "
18185 "as the POSIX revision has not been published yet.  The B<sysconf>()  "
18186 "argument will be B<_SC_FOO>.  For a list of options, see B<posixoptions>(7)."
18187 msgstr ""
18188
18189 #. type: Plain text
18190 #: build/C/man3/sysconf.3:104
18191 msgid ""
18192 "For variables or limits, typically, there is a constant B<_FOO>, maybe "
18193 "defined in I<E<lt>limits.hE<gt>>, or B<_POSIX_FOO>, maybe defined in "
18194 "I<E<lt>unistd.hE<gt>>.  The constant will not be defined if the limit is "
18195 "unspecified.  If the constant is defined, it gives a guaranteed value, and a "
18196 "greater value might actually be supported.  If an application wants to take "
18197 "advantage of values which may change between systems, a call to B<sysconf>()  "
18198 "can be made.  The B<sysconf>()  argument will be B<_SC_FOO>."
18199 msgstr ""
18200
18201 #. type: SS
18202 #: build/C/man3/sysconf.3:104
18203 #, no-wrap
18204 msgid "POSIX.1 variables"
18205 msgstr ""
18206
18207 #. type: Plain text
18208 #: build/C/man3/sysconf.3:109
18209 msgid ""
18210 "We give the name of the variable, the name of the B<sysconf>()  argument "
18211 "used to inquire about its value, and a short description."
18212 msgstr ""
18213
18214 #.  [for the moment: only the things that are unconditionally present]
18215 #.  .TP
18216 #.  .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX
18217 #.  (if _POSIX_ASYNCHRONOUS_IO)
18218 #.  Maximum number of I/O operations in a single list I/O call.
18219 #.  Must not be less than _POSIX_AIO_LISTIO_MAX.
18220 #.  .TP
18221 #.  .BR AIO_MAX " - " _SC_AIO_MAX
18222 #.  (if _POSIX_ASYNCHRONOUS_IO)
18223 #.  Maximum number of outstanding asynchronous I/O operations.
18224 #.  Must not be less than _POSIX_AIO_MAX.
18225 #.  .TP
18226 #.  .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX
18227 #.  (if _POSIX_ASYNCHRONOUS_IO)
18228 #.  The maximum amount by which a process can decrease its
18229 #.  asynchronous I/O priority level from its own scheduling priority.
18230 #.  Must be nonnegative.
18231 #. type: Plain text
18232 #: build/C/man3/sysconf.3:128
18233 msgid "First, the POSIX.1 compatible values."
18234 msgstr ""
18235
18236 #. type: TP
18237 #: build/C/man3/sysconf.3:128
18238 #, no-wrap
18239 msgid "B<ARG_MAX> - B<_SC_ARG_MAX>"
18240 msgstr ""
18241
18242 #. type: Plain text
18243 #: build/C/man3/sysconf.3:136
18244 msgid ""
18245 "The maximum length of the arguments to the B<exec>(3)  family of functions.  "
18246 "Must not be less than B<_POSIX_ARG_MAX> (4096)."
18247 msgstr ""
18248
18249 #. type: TP
18250 #: build/C/man3/sysconf.3:136
18251 #, no-wrap
18252 msgid "B<CHILD_MAX> - B<_SC_CHILD_MAX>"
18253 msgstr ""
18254
18255 #. type: Plain text
18256 #: build/C/man3/sysconf.3:142
18257 msgid ""
18258 "The maximum number of simultaneous processes per user ID.  Must not be less "
18259 "than B<_POSIX_CHILD_MAX> (25)."
18260 msgstr ""
18261
18262 #. type: TP
18263 #: build/C/man3/sysconf.3:142
18264 #, no-wrap
18265 msgid "B<HOST_NAME_MAX> - B<_SC_HOST_NAME_MAX>"
18266 msgstr ""
18267
18268 #. type: Plain text
18269 #: build/C/man3/sysconf.3:150
18270 msgid ""
18271 "Maximum length of a hostname, not including the terminating null byte, as "
18272 "returned by B<gethostname>(2).  Must not be less than "
18273 "B<_POSIX_HOST_NAME_MAX> (255)."
18274 msgstr ""
18275
18276 #. type: TP
18277 #: build/C/man3/sysconf.3:150
18278 #, no-wrap
18279 msgid "B<LOGIN_NAME_MAX> - B<_SC_LOGIN_NAME_MAX>"
18280 msgstr ""
18281
18282 #. type: Plain text
18283 #: build/C/man3/sysconf.3:156
18284 msgid ""
18285 "Maximum length of a login name, including the terminating null byte.  Must "
18286 "not be less than B<_POSIX_LOGIN_NAME_MAX> (9)."
18287 msgstr ""
18288
18289 #. type: TP
18290 #: build/C/man3/sysconf.3:156
18291 #, no-wrap
18292 msgid "B<NGROUPS_MAX> - B<_SC_NGROUPS_MAX>"
18293 msgstr ""
18294
18295 #. type: Plain text
18296 #: build/C/man3/sysconf.3:159
18297 msgid "Maximum number of supplementary group IDs."
18298 msgstr ""
18299
18300 #. type: TP
18301 #: build/C/man3/sysconf.3:159
18302 #, no-wrap
18303 msgid "clock ticks - B<_SC_CLK_TCK>"
18304 msgstr ""
18305
18306 #. type: Plain text
18307 #: build/C/man3/sysconf.3:168
18308 msgid ""
18309 "The number of clock ticks per second.  The corresponding variable is "
18310 "obsolete.  It was of course called B<CLK_TCK>.  (Note: the macro "
18311 "B<CLOCKS_PER_SEC> does not give information: it must equal 1000000.)"
18312 msgstr ""
18313
18314 #. type: TP
18315 #: build/C/man3/sysconf.3:168
18316 #, no-wrap
18317 msgid "B<OPEN_MAX> - B<_SC_OPEN_MAX>"
18318 msgstr ""
18319
18320 #. type: Plain text
18321 #: build/C/man3/sysconf.3:174
18322 msgid ""
18323 "The maximum number of files that a process can have open at any time.  Must "
18324 "not be less than B<_POSIX_OPEN_MAX> (20)."
18325 msgstr ""
18326
18327 #. type: TP
18328 #: build/C/man3/sysconf.3:174
18329 #, no-wrap
18330 msgid "B<PAGESIZE> - B<_SC_PAGESIZE>"
18331 msgstr ""
18332
18333 #. type: Plain text
18334 #: build/C/man3/sysconf.3:179
18335 msgid ""
18336 "Size of a page in bytes.  Must not be less than 1.  (Some systems use "
18337 "PAGE_SIZE instead.)"
18338 msgstr ""
18339
18340 #. type: TP
18341 #: build/C/man3/sysconf.3:179 build/C/man3/sysconf.3:266
18342 #, no-wrap
18343 msgid "B<RE_DUP_MAX> - B<_SC_RE_DUP_MAX>"
18344 msgstr ""
18345
18346 #. type: Plain text
18347 #: build/C/man3/sysconf.3:188
18348 msgid ""
18349 "The number of repeated occurrences of a BRE permitted by B<regexec>(3)  and "
18350 "B<regcomp>(3).  Must not be less than B<_POSIX2_RE_DUP_MAX> (255)."
18351 msgstr ""
18352
18353 #. type: TP
18354 #: build/C/man3/sysconf.3:188
18355 #, no-wrap
18356 msgid "B<STREAM_MAX> - B<_SC_STREAM_MAX>"
18357 msgstr ""
18358
18359 #. type: Plain text
18360 #: build/C/man3/sysconf.3:197
18361 msgid ""
18362 "The maximum number of streams that a process can have open at any time.  If "
18363 "defined, it has the same value as the standard C macro B<FOPEN_MAX>.  Must "
18364 "not be less than B<_POSIX_STREAM_MAX> (8)."
18365 msgstr ""
18366
18367 #. type: TP
18368 #: build/C/man3/sysconf.3:197
18369 #, no-wrap
18370 msgid "B<SYMLOOP_MAX> - B<_SC_SYMLOOP_MAX>"
18371 msgstr ""
18372
18373 #. type: Plain text
18374 #: build/C/man3/sysconf.3:205
18375 msgid ""
18376 "The maximum number of symbolic links seen in a pathname before resolution "
18377 "returns B<ELOOP>.  Must not be less than B<_POSIX_SYMLOOP_MAX> (8)."
18378 msgstr ""
18379
18380 #. type: TP
18381 #: build/C/man3/sysconf.3:205
18382 #, no-wrap
18383 msgid "B<TTY_NAME_MAX> - B<_SC_TTY_NAME_MAX>"
18384 msgstr ""
18385
18386 #. type: Plain text
18387 #: build/C/man3/sysconf.3:212
18388 msgid ""
18389 "The maximum length of terminal device name, including the terminating null "
18390 "byte.  Must not be less than B<_POSIX_TTY_NAME_MAX> (9)."
18391 msgstr ""
18392
18393 #. type: TP
18394 #: build/C/man3/sysconf.3:212
18395 #, no-wrap
18396 msgid "B<TZNAME_MAX> - B<_SC_TZNAME_MAX>"
18397 msgstr ""
18398
18399 #. type: Plain text
18400 #: build/C/man3/sysconf.3:218
18401 msgid ""
18402 "The maximum number of bytes in a timezone name.  Must not be less than "
18403 "B<_POSIX_TZNAME_MAX> (6)."
18404 msgstr ""
18405
18406 #. type: TP
18407 #: build/C/man3/sysconf.3:218
18408 #, no-wrap
18409 msgid "B<_POSIX_VERSION> - B<_SC_VERSION>"
18410 msgstr ""
18411
18412 #. type: Plain text
18413 #: build/C/man3/sysconf.3:226
18414 msgid ""
18415 "indicates the year and month the POSIX.1 standard was approved in the format "
18416 "B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision."
18417 msgstr ""
18418
18419 #. type: SS
18420 #: build/C/man3/sysconf.3:226
18421 #, no-wrap
18422 msgid "POSIX.2 variables"
18423 msgstr ""
18424
18425 #. type: Plain text
18426 #: build/C/man3/sysconf.3:228
18427 msgid "Next, the POSIX.2 values, giving limits for utilities."
18428 msgstr ""
18429
18430 #. type: TP
18431 #: build/C/man3/sysconf.3:228
18432 #, no-wrap
18433 msgid "B<BC_BASE_MAX> - B<_SC_BC_BASE_MAX>"
18434 msgstr ""
18435
18436 #. type: Plain text
18437 #: build/C/man3/sysconf.3:235
18438 msgid "indicates the maximum I<obase> value accepted by the B<bc>(1)  utility."
18439 msgstr ""
18440
18441 #. type: TP
18442 #: build/C/man3/sysconf.3:235
18443 #, no-wrap
18444 msgid "B<BC_DIM_MAX> - B<_SC_BC_DIM_MAX>"
18445 msgstr ""
18446
18447 #. type: Plain text
18448 #: build/C/man3/sysconf.3:239
18449 msgid "indicates the maximum value of elements permitted in an array by B<bc>(1)."
18450 msgstr ""
18451
18452 #. type: TP
18453 #: build/C/man3/sysconf.3:239
18454 #, no-wrap
18455 msgid "B<BC_SCALE_MAX> - B<_SC_BC_SCALE_MAX>"
18456 msgstr ""
18457
18458 #. type: Plain text
18459 #: build/C/man3/sysconf.3:245
18460 msgid "indicates the maximum I<scale> value allowed by B<bc>(1)."
18461 msgstr ""
18462
18463 #. type: TP
18464 #: build/C/man3/sysconf.3:245
18465 #, no-wrap
18466 msgid "B<BC_STRING_MAX> - B<_SC_BC_STRING_MAX>"
18467 msgstr ""
18468
18469 #. type: Plain text
18470 #: build/C/man3/sysconf.3:249
18471 msgid "indicates the maximum length of a string accepted by B<bc>(1)."
18472 msgstr ""
18473
18474 #. type: TP
18475 #: build/C/man3/sysconf.3:249
18476 #, no-wrap
18477 msgid "B<COLL_WEIGHTS_MAX> - B<_SC_COLL_WEIGHTS_MAX>"
18478 msgstr ""
18479
18480 #. type: Plain text
18481 #: build/C/man3/sysconf.3:255
18482 msgid ""
18483 "indicates the maximum numbers of weights that can be assigned to an entry of "
18484 "the B<LC_COLLATE order> keyword in the locale definition file,"
18485 msgstr ""
18486
18487 #. type: TP
18488 #: build/C/man3/sysconf.3:255
18489 #, no-wrap
18490 msgid "B<EXPR_NEST_MAX> - B<_SC_EXPR_NEST_MAX>"
18491 msgstr ""
18492
18493 #. type: Plain text
18494 #: build/C/man3/sysconf.3:260
18495 msgid ""
18496 "is the maximum number of expressions which can be nested within parentheses "
18497 "by B<expr>(1)."
18498 msgstr ""
18499
18500 #. type: TP
18501 #: build/C/man3/sysconf.3:260
18502 #, no-wrap
18503 msgid "B<LINE_MAX> - B<_SC_LINE_MAX>"
18504 msgstr ""
18505
18506 #. type: Plain text
18507 #: build/C/man3/sysconf.3:266
18508 msgid ""
18509 "The maximum length of a utility's input line, either from standard input or "
18510 "from a file.  This includes space for a trailing newline."
18511 msgstr ""
18512
18513 #. type: Plain text
18514 #: build/C/man3/sysconf.3:272
18515 msgid ""
18516 "The maximum number of repeated occurrences of a regular expression when the "
18517 "interval notation B<\\e{m,n\\e}> is used."
18518 msgstr ""
18519
18520 #. type: TP
18521 #: build/C/man3/sysconf.3:272
18522 #, no-wrap
18523 msgid "B<POSIX2_VERSION> - B<_SC_2_VERSION>"
18524 msgstr ""
18525
18526 #. type: Plain text
18527 #: build/C/man3/sysconf.3:276
18528 msgid "indicates the version of the POSIX.2 standard in the format of YYYYMML."
18529 msgstr ""
18530
18531 #. type: TP
18532 #: build/C/man3/sysconf.3:276
18533 #, no-wrap
18534 msgid "B<POSIX2_C_DEV> - B<_SC_2_C_DEV>"
18535 msgstr ""
18536
18537 #. type: Plain text
18538 #: build/C/man3/sysconf.3:280
18539 msgid ""
18540 "indicates whether the POSIX.2 C language development facilities are "
18541 "supported."
18542 msgstr ""
18543
18544 #. type: TP
18545 #: build/C/man3/sysconf.3:280
18546 #, no-wrap
18547 msgid "B<POSIX2_FORT_DEV> - B<_SC_2_FORT_DEV>"
18548 msgstr ""
18549
18550 #. type: Plain text
18551 #: build/C/man3/sysconf.3:284
18552 msgid "indicates whether the POSIX.2 FORTRAN development utilities are supported."
18553 msgstr ""
18554
18555 #. type: TP
18556 #: build/C/man3/sysconf.3:284
18557 #, no-wrap
18558 msgid "B<POSIX2_FORT_RUN> - B<_SC_2_FORT_RUN>"
18559 msgstr ""
18560
18561 #. type: Plain text
18562 #: build/C/man3/sysconf.3:287
18563 msgid "indicates whether the POSIX.2 FORTRAN run-time utilities are supported."
18564 msgstr ""
18565
18566 #. type: TP
18567 #: build/C/man3/sysconf.3:287
18568 #, no-wrap
18569 msgid "B<_POSIX2_LOCALEDEF> - B<_SC_2_LOCALEDEF>"
18570 msgstr ""
18571
18572 #. type: Plain text
18573 #: build/C/man3/sysconf.3:292
18574 msgid ""
18575 "indicates whether the POSIX.2 creation of locates via B<localedef>(1)  is "
18576 "supported."
18577 msgstr ""
18578
18579 #. type: TP
18580 #: build/C/man3/sysconf.3:292
18581 #, no-wrap
18582 msgid "B<POSIX2_SW_DEV> - B<_SC_2_SW_DEV>"
18583 msgstr ""
18584
18585 #. type: Plain text
18586 #: build/C/man3/sysconf.3:296
18587 msgid ""
18588 "indicates whether the POSIX.2 software development utilities option is "
18589 "supported."
18590 msgstr ""
18591
18592 #. type: Plain text
18593 #: build/C/man3/sysconf.3:298
18594 msgid "These values also exist, but may not be standard."
18595 msgstr ""
18596
18597 #. type: TP
18598 #: build/C/man3/sysconf.3:298
18599 #, no-wrap
18600 msgid " - B<_SC_PHYS_PAGES>"
18601 msgstr ""
18602
18603 #. type: Plain text
18604 #: build/C/man3/sysconf.3:305
18605 msgid ""
18606 "The number of pages of physical memory.  Note that it is possible for the "
18607 "product of this value and the value of B<_SC_PAGESIZE> to overflow."
18608 msgstr ""
18609
18610 #. type: TP
18611 #: build/C/man3/sysconf.3:305
18612 #, no-wrap
18613 msgid " - B<_SC_AVPHYS_PAGES>"
18614 msgstr ""
18615
18616 #. type: Plain text
18617 #: build/C/man3/sysconf.3:308
18618 msgid "The number of currently available pages of physical memory."
18619 msgstr ""
18620
18621 #. type: TP
18622 #: build/C/man3/sysconf.3:308
18623 #, no-wrap
18624 msgid " - B<_SC_NPROCESSORS_CONF>"
18625 msgstr ""
18626
18627 #. type: Plain text
18628 #: build/C/man3/sysconf.3:311
18629 msgid "The number of processors configured."
18630 msgstr ""
18631
18632 #. type: TP
18633 #: build/C/man3/sysconf.3:311
18634 #, no-wrap
18635 msgid " - B<_SC_NPROCESSORS_ONLN>"
18636 msgstr ""
18637
18638 #. type: Plain text
18639 #: build/C/man3/sysconf.3:314
18640 msgid "The number of processors currently online (available)."
18641 msgstr ""
18642
18643 #. type: Plain text
18644 #: build/C/man3/sysconf.3:327
18645 msgid ""
18646 "If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>.  "
18647 "Otherwise, the value returned is the value of the system resource and "
18648 "I<errno> is not changed.  In the case of options, a positive value is "
18649 "returned if a queried option is available, and -1 if it is not.  In the case "
18650 "of limits, -1 means that there is no definite limit."
18651 msgstr ""
18652
18653 #. type: Plain text
18654 #: build/C/man3/sysconf.3:335
18655 msgid ""
18656 "It is difficult to use B<ARG_MAX> because it is not specified how much of "
18657 "the argument space for B<exec>(3)  is consumed by the user's environment "
18658 "variables."
18659 msgstr ""
18660
18661 #. type: Plain text
18662 #: build/C/man3/sysconf.3:346
18663 msgid ""
18664 "B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<confstr>(3), "
18665 "B<fpathconf>(3), B<pathconf>(3), B<posixoptions>(7)"
18666 msgstr ""
18667
18668 #. type: TH
18669 #: build/C/man2/sysctl.2:30
18670 #, no-wrap
18671 msgid "SYSCTL"
18672 msgstr ""
18673
18674 #. type: TH
18675 #: build/C/man2/sysctl.2:30
18676 #, no-wrap
18677 msgid "2012-12-22"
18678 msgstr ""
18679
18680 #. type: Plain text
18681 #: build/C/man2/sysctl.2:33
18682 msgid "sysctl - read/write system parameters"
18683 msgstr ""
18684
18685 #. type: Plain text
18686 #: build/C/man2/sysctl.2:38
18687 #, no-wrap
18688 msgid "B<#include E<lt>linux/sysctl.hE<gt>>\n"
18689 msgstr ""
18690
18691 #. type: Plain text
18692 #: build/C/man2/sysctl.2:40
18693 #, no-wrap
18694 msgid "B<int _sysctl(struct __sysctl_args *>I<args>B<);>\n"
18695 msgstr ""
18696
18697 #. type: Plain text
18698 #: build/C/man2/sysctl.2:47
18699 msgid "B<Do not use this system call!> See NOTES."
18700 msgstr ""
18701
18702 #. type: Plain text
18703 #: build/C/man2/sysctl.2:54
18704 msgid ""
18705 "The B<_sysctl>()  call reads and/or writes kernel parameters.  For example, "
18706 "the hostname, or the maximum number of open files.  The argument has the "
18707 "form"
18708 msgstr ""
18709
18710 #. type: Plain text
18711 #: build/C/man2/sysctl.2:66
18712 #, no-wrap
18713 msgid ""
18714 "struct __sysctl_args {\n"
18715 "    int    *name;    /* integer vector describing variable */\n"
18716 "    int     nlen;    /* length of this vector */\n"
18717 "    void   *oldval;  /* 0 or address where to store old value */\n"
18718 "    size_t *oldlenp; /* available room for old value,\n"
18719 "                        overwritten by actual size of old value */\n"
18720 "    void   *newval;  /* 0 or address of new value */\n"
18721 "    size_t  newlen;  /* size of new value */\n"
18722 "};\n"
18723 msgstr ""
18724
18725 #. type: Plain text
18726 #: build/C/man2/sysctl.2:74
18727 msgid ""
18728 "This call does a search in a tree structure, possibly resembling a directory "
18729 "tree under I</proc/sys>, and if the requested item is found calls some "
18730 "appropriate routine to read or modify the value."
18731 msgstr ""
18732
18733 #. type: Plain text
18734 #: build/C/man2/sysctl.2:81
18735 msgid ""
18736 "Upon successful completion, B<_sysctl>()  returns 0.  Otherwise, a value of "
18737 "-1 is returned and I<errno> is set to indicate the error."
18738 msgstr ""
18739
18740 #. type: Plain text
18741 #: build/C/man2/sysctl.2:88
18742 msgid ""
18743 "The invocation asked for the previous value by setting I<oldval> non-NULL, "
18744 "but allowed zero room in I<oldlenp>."
18745 msgstr ""
18746
18747 #. type: Plain text
18748 #: build/C/man2/sysctl.2:92
18749 msgid "I<name> was not found."
18750 msgstr ""
18751
18752 #. type: TP
18753 #: build/C/man2/sysctl.2:92
18754 #, no-wrap
18755 msgid "B<EACCES>, B<EPERM>"
18756 msgstr ""
18757
18758 #. type: Plain text
18759 #: build/C/man2/sysctl.2:100
18760 msgid ""
18761 "No search permission for one of the encountered \"directories\", or no read "
18762 "permission where I<oldval> was nonzero, or no write permission where "
18763 "I<newval> was nonzero."
18764 msgstr ""
18765
18766 #. type: Plain text
18767 #: build/C/man2/sysctl.2:114
18768 msgid ""
18769 "This call is Linux-specific, and should not be used in programs intended to "
18770 "be portable.  A B<sysctl>()  call has been present in Linux since version "
18771 "1.3.57.  It originated in 4.4BSD.  Only Linux has the I</proc/sys> mirror, "
18772 "and the object naming schemes differ between Linux and 4.4BSD, but the "
18773 "declaration of the B<sysctl>()  function is the same in both."
18774 msgstr ""
18775
18776 #.  See http://lwn.net/Articles/247243/
18777 #.  Though comments in suggest that it is needed by old glibc binaries,
18778 #.  so maybe it's not going away.
18779 #. type: Plain text
18780 #: build/C/man2/sysctl.2:131
18781 msgid ""
18782 "Glibc does not provide a wrapper for this system call; call it using "
18783 "B<syscall>(2).  Or rather...  I<don't> call it: use of this system call has "
18784 "long been discouraged, and it is so unloved that B<it is likely to disappear "
18785 "in a future kernel version>.  Since Linux 2.6.24, uses of this system call "
18786 "result in warnings in the kernel log.  Remove it from your programs now; use "
18787 "the I</proc/sys> interface instead."
18788 msgstr ""
18789
18790 #. type: Plain text
18791 #: build/C/man2/sysctl.2:135
18792 msgid ""
18793 "This system call is available only if the kernel was configured with the "
18794 "B<CONFIG_SYSCTL_SYSCALL> option."
18795 msgstr ""
18796
18797 #. type: Plain text
18798 #: build/C/man2/sysctl.2:138
18799 msgid ""
18800 "The object names vary between kernel versions, making this system call "
18801 "worthless for applications."
18802 msgstr ""
18803
18804 #. type: Plain text
18805 #: build/C/man2/sysctl.2:140
18806 msgid "Not all available objects are properly documented."
18807 msgstr ""
18808
18809 #. type: Plain text
18810 #: build/C/man2/sysctl.2:143
18811 msgid ""
18812 "It is not yet possible to change operating system by writing to "
18813 "I</proc/sys/kernel/ostype>."
18814 msgstr ""
18815
18816 #. type: Plain text
18817 #: build/C/man2/sysctl.2:152
18818 #, no-wrap
18819 msgid ""
18820 "#define _GNU_SOURCE\n"
18821 "#include E<lt>unistd.hE<gt>\n"
18822 "#include E<lt>sys/syscall.hE<gt>\n"
18823 "#include E<lt>string.hE<gt>\n"
18824 "#include E<lt>stdio.hE<gt>\n"
18825 "#include E<lt>stdlib.hE<gt>\n"
18826 "#include E<lt>linux/sysctl.hE<gt>\n"
18827 msgstr ""
18828
18829 #. type: Plain text
18830 #: build/C/man2/sysctl.2:154
18831 #, no-wrap
18832 msgid "int _sysctl(struct __sysctl_args *args );\n"
18833 msgstr ""
18834
18835 #. type: Plain text
18836 #: build/C/man2/sysctl.2:156
18837 #, no-wrap
18838 msgid "#define OSNAMESZ 100\n"
18839 msgstr ""
18840
18841 #. type: Plain text
18842 #: build/C/man2/sysctl.2:164
18843 #, no-wrap
18844 msgid ""
18845 "int\n"
18846 "main(void)\n"
18847 "{\n"
18848 "    struct __sysctl_args args;\n"
18849 "    char osname[OSNAMESZ];\n"
18850 "    size_t osnamelth;\n"
18851 "    int name[] = { CTL_KERN, KERN_OSTYPE };\n"
18852 msgstr ""
18853
18854 #. type: Plain text
18855 #: build/C/man2/sysctl.2:170
18856 #, no-wrap
18857 msgid ""
18858 "    memset(&args, 0, sizeof(struct __sysctl_args));\n"
18859 "    args.name = name;\n"
18860 "    args.nlen = sizeof(name)/sizeof(name[0]);\n"
18861 "    args.oldval = osname;\n"
18862 "    args.oldlenp = &osnamelth;\n"
18863 msgstr ""
18864
18865 #. type: Plain text
18866 #: build/C/man2/sysctl.2:172
18867 #, no-wrap
18868 msgid "    osnamelth = sizeof(osname);\n"
18869 msgstr ""
18870
18871 #. type: Plain text
18872 #: build/C/man2/sysctl.2:180
18873 #, no-wrap
18874 msgid ""
18875 "    if (syscall(SYS__sysctl, &args) == -1) {\n"
18876 "        perror(\"_sysctl\");\n"
18877 "        exit(EXIT_FAILURE);\n"
18878 "    }\n"
18879 "    printf(\"This machine is running %*s\\en\", osnamelth, osname);\n"
18880 "    exit(EXIT_SUCCESS);\n"
18881 "}\n"
18882 msgstr ""
18883
18884 #. type: Plain text
18885 #: build/C/man2/sysctl.2:182 build/C/man2/sysinfo.2:91
18886 msgid "B<proc>(5)"
18887 msgstr ""
18888
18889 #. type: TH
18890 #: build/C/man2/sysinfo.2:14
18891 #, no-wrap
18892 msgid "SYSINFO"
18893 msgstr ""
18894
18895 #. type: Plain text
18896 #: build/C/man2/sysinfo.2:17
18897 msgid "sysinfo - returns information on overall system statistics"
18898 msgstr ""
18899
18900 #. type: Plain text
18901 #: build/C/man2/sysinfo.2:21
18902 msgid "B<int sysinfo(struct sysinfo *>I<info>B<);>"
18903 msgstr ""
18904
18905 #. type: Plain text
18906 #: build/C/man2/sysinfo.2:25
18907 msgid ""
18908 "Until Linux 2.3.16, B<sysinfo>()  used to return information in the "
18909 "following structure:"
18910 msgstr ""
18911
18912 #. type: Plain text
18913 #: build/C/man2/sysinfo.2:40
18914 #, no-wrap
18915 msgid ""
18916 "struct sysinfo {\n"
18917 "    long uptime;             /* Seconds since boot */\n"
18918 "    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
18919 "    unsigned long totalram;  /* Total usable main memory size */\n"
18920 "    unsigned long freeram;   /* Available memory size */\n"
18921 "    unsigned long sharedram; /* Amount of shared memory */\n"
18922 "    unsigned long bufferram; /* Memory used by buffers */\n"
18923 "    unsigned long totalswap; /* Total swap space size */\n"
18924 "    unsigned long freeswap;  /* swap space still available */\n"
18925 "    unsigned short procs;    /* Number of current processes */\n"
18926 "    char _f[22];             /* Pads structure to 64 bytes */\n"
18927 "};\n"
18928 msgstr ""
18929
18930 #. type: Plain text
18931 #: build/C/man2/sysinfo.2:44
18932 msgid "and the sizes were given in bytes."
18933 msgstr ""
18934
18935 #. type: Plain text
18936 #: build/C/man2/sysinfo.2:47
18937 msgid "Since Linux 2.3.23 (i386), 2.3.48 (all architectures) the structure is:"
18938 msgstr ""
18939
18940 #. type: Plain text
18941 #: build/C/man2/sysinfo.2:65
18942 #, no-wrap
18943 msgid ""
18944 "struct sysinfo {\n"
18945 "    long uptime;             /* Seconds since boot */\n"
18946 "    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
18947 "    unsigned long totalram;  /* Total usable main memory size */\n"
18948 "    unsigned long freeram;   /* Available memory size */\n"
18949 "    unsigned long sharedram; /* Amount of shared memory */\n"
18950 "    unsigned long bufferram; /* Memory used by buffers */\n"
18951 "    unsigned long totalswap; /* Total swap space size */\n"
18952 "    unsigned long freeswap;  /* swap space still available */\n"
18953 "    unsigned short procs;    /* Number of current processes */\n"
18954 "    unsigned long totalhigh; /* Total high memory size */\n"
18955 "    unsigned long freehigh;  /* Available high memory size */\n"
18956 "    unsigned int mem_unit;   /* Memory unit size in bytes */\n"
18957 "    char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding to 64 bytes */\n"
18958 "};\n"
18959 msgstr ""
18960
18961 #. type: Plain text
18962 #: build/C/man2/sysinfo.2:69
18963 msgid "and the sizes are given as multiples of I<mem_unit> bytes."
18964 msgstr ""
18965
18966 #. type: Plain text
18967 #: build/C/man2/sysinfo.2:74
18968 msgid ""
18969 "B<sysinfo>()  provides a simple way of getting overall system statistics.  "
18970 "This is more portable than reading I</dev/kmem>."
18971 msgstr ""
18972
18973 #. type: Plain text
18974 #: build/C/man2/sysinfo.2:83
18975 msgid "pointer to I<struct\\ sysinfo> is invalid"
18976 msgstr ""
18977
18978 #. type: Plain text
18979 #: build/C/man2/sysinfo.2:87
18980 msgid "The Linux kernel has a B<sysinfo>()  system call since 0.98.pl6."
18981 msgstr ""
18982
18983 #. type: TH
18984 #: build/C/man3/tcgetpgrp.3:25
18985 #, no-wrap
18986 msgid "TCGETPGRP"
18987 msgstr ""
18988
18989 #. type: TH
18990 #: build/C/man3/tcgetpgrp.3:25
18991 #, no-wrap
18992 msgid "2014-01-13"
18993 msgstr ""
18994
18995 #. type: Plain text
18996 #: build/C/man3/tcgetpgrp.3:28
18997 msgid "tcgetpgrp, tcsetpgrp - get and set terminal foreground process group"
18998 msgstr ""
18999
19000 #. type: Plain text
19001 #: build/C/man3/tcgetpgrp.3:32
19002 msgid "B<pid_t tcgetpgrp(int >I<fd>B<);>"
19003 msgstr ""
19004
19005 #. type: Plain text
19006 #: build/C/man3/tcgetpgrp.3:34
19007 msgid "B<int tcsetpgrp(int >I<fd>B<, pid_t >I<pgrp>B<);>"
19008 msgstr ""
19009
19010 #.  The process itself may be a background process.
19011 #. type: Plain text
19012 #: build/C/man3/tcgetpgrp.3:42
19013 msgid ""
19014 "The function B<tcgetpgrp>()  returns the process group ID of the foreground "
19015 "process group on the terminal associated to I<fd>, which must be the "
19016 "controlling terminal of the calling process."
19017 msgstr ""
19018
19019 #. type: Plain text
19020 #: build/C/man3/tcgetpgrp.3:55
19021 msgid ""
19022 "The function B<tcsetpgrp>()  makes the process group with process group ID "
19023 "I<pgrp> the foreground process group on the terminal associated to I<fd>, "
19024 "which must be the controlling terminal of the calling process, and still be "
19025 "associated with its session.  Moreover, I<pgrp> must be a (nonempty) process "
19026 "group belonging to the same session as the calling process."
19027 msgstr ""
19028
19029 #. type: Plain text
19030 #: build/C/man3/tcgetpgrp.3:64
19031 msgid ""
19032 "If B<tcsetpgrp>()  is called by a member of a background process group in "
19033 "its session, and the calling process is not blocking or ignoring B<SIGTTOU>, "
19034 "a B<SIGTTOU> signal is sent to all members of this background process group."
19035 msgstr ""
19036
19037 #. type: Plain text
19038 #: build/C/man3/tcgetpgrp.3:79
19039 msgid ""
19040 "When I<fd> refers to the controlling terminal of the calling process, the "
19041 "function B<tcgetpgrp>()  will return the foreground process group ID of that "
19042 "terminal if there is one, and some value larger than 1 that is not presently "
19043 "a process group ID otherwise.  When I<fd> does not refer to the controlling "
19044 "terminal of the calling process, -1 is returned, and I<errno> is set "
19045 "appropriately."
19046 msgstr ""
19047
19048 #. type: Plain text
19049 #: build/C/man3/tcgetpgrp.3:86
19050 msgid ""
19051 "When successful, B<tcsetpgrp>()  returns 0.  Otherwise, it returns -1, and "
19052 "I<errno> is set appropriately."
19053 msgstr ""
19054
19055 #. type: Plain text
19056 #: build/C/man3/tcgetpgrp.3:95
19057 msgid "I<pgrp> has an unsupported value."
19058 msgstr ""
19059
19060 #. type: Plain text
19061 #: build/C/man3/tcgetpgrp.3:104
19062 msgid ""
19063 "The calling process does not have a controlling terminal, or it has one but "
19064 "it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling "
19065 "terminal is no longer associated with the session of the calling process."
19066 msgstr ""
19067
19068 #. type: Plain text
19069 #: build/C/man3/tcgetpgrp.3:109
19070 msgid ""
19071 "I<pgrp> has a supported value, but is not the process group ID of a process "
19072 "in the same session as the calling process."
19073 msgstr ""
19074
19075 #. type: Plain text
19076 #: build/C/man3/tcgetpgrp.3:116
19077 msgid "The B<tcgetpgrp>()  and B<tcsetpgrp>()  functions are thread-safe."
19078 msgstr ""
19079
19080 #. type: Plain text
19081 #: build/C/man3/tcgetpgrp.3:124
19082 msgid ""
19083 "These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> "
19084 "ioctls."
19085 msgstr ""
19086
19087 #. type: SS
19088 #: build/C/man3/tcgetpgrp.3:124 build/C/man2/vfork.2:234
19089 #, no-wrap
19090 msgid "History"
19091 msgstr ""
19092
19093 #. type: Plain text
19094 #: build/C/man3/tcgetpgrp.3:127
19095 msgid "The ioctls appeared in 4.2BSD.  The functions are POSIX inventions."
19096 msgstr ""
19097
19098 #. type: Plain text
19099 #: build/C/man3/tcgetpgrp.3:130
19100 msgid "B<setpgid>(2), B<setsid>(2), B<credentials>(7)"
19101 msgstr ""
19102
19103 #. type: TH
19104 #: build/C/man2/truncate.2:43
19105 #, no-wrap
19106 msgid "TRUNCATE"
19107 msgstr ""
19108
19109 #. type: TH
19110 #: build/C/man2/truncate.2:43
19111 #, no-wrap
19112 msgid "2013-04-01"
19113 msgstr ""
19114
19115 #. type: Plain text
19116 #: build/C/man2/truncate.2:46
19117 msgid "truncate, ftruncate - truncate a file to a specified length"
19118 msgstr ""
19119
19120 #. type: Plain text
19121 #: build/C/man2/truncate.2:52
19122 msgid "B<int truncate(const char *>I<path>B<, off_t >I<length>B<);>"
19123 msgstr ""
19124
19125 #. type: Plain text
19126 #: build/C/man2/truncate.2:54
19127 msgid "B<int ftruncate(int >I<fd>B<, off_t >I<length>B<);>"
19128 msgstr ""
19129
19130 #. type: Plain text
19131 #: build/C/man2/truncate.2:63
19132 msgid "B<truncate>():"
19133 msgstr ""
19134
19135 #. type: Plain text
19136 #: build/C/man2/truncate.2:71
19137 msgid "B<ftruncate>():"
19138 msgstr ""
19139
19140 #. type: Plain text
19141 #: build/C/man2/truncate.2:76
19142 msgid "|| /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
19143 msgstr ""
19144
19145 #. type: Plain text
19146 #: build/C/man2/truncate.2:91
19147 msgid ""
19148 "The B<truncate>()  and B<ftruncate>()  functions cause the regular file "
19149 "named by I<path> or referenced by I<fd> to be truncated to a size of "
19150 "precisely I<length> bytes."
19151 msgstr ""
19152
19153 #. type: Plain text
19154 #: build/C/man2/truncate.2:95
19155 msgid ""
19156 "If the file previously was larger than this size, the extra data is lost.  "
19157 "If the file previously was shorter, it is extended, and the extended part "
19158 "reads as null bytes (\\(aq\\e0\\(aq)."
19159 msgstr ""
19160
19161 #. type: Plain text
19162 #: build/C/man2/truncate.2:97
19163 msgid "The file offset is not changed."
19164 msgstr ""
19165
19166 #. type: Plain text
19167 #: build/C/man2/truncate.2:104
19168 msgid ""
19169 "If the size changed, then the st_ctime and st_mtime fields (respectively, "
19170 "time of last status change and time of last modification; see B<stat>(2))  "
19171 "for the file are updated, and the set-user-ID and set-group-ID permission "
19172 "bits may be cleared."
19173 msgstr ""
19174
19175 #. type: Plain text
19176 #: build/C/man2/truncate.2:110
19177 msgid ""
19178 "With B<ftruncate>(), the file must be open for writing; with B<truncate>(), "
19179 "the file must be writable."
19180 msgstr ""
19181
19182 #. type: Plain text
19183 #: build/C/man2/truncate.2:118
19184 msgid "For B<truncate>():"
19185 msgstr ""
19186
19187 #. type: Plain text
19188 #: build/C/man2/truncate.2:124
19189 msgid ""
19190 "Search permission is denied for a component of the path prefix, or the named "
19191 "file is not writable by the user.  (See also B<path_resolution>(7).)"
19192 msgstr ""
19193
19194 #. type: Plain text
19195 #: build/C/man2/truncate.2:129
19196 msgid "The argument I<path> points outside the process's allocated address space."
19197 msgstr ""
19198
19199 #. type: TP
19200 #: build/C/man2/truncate.2:129
19201 #, no-wrap
19202 msgid "B<EFBIG>"
19203 msgstr ""
19204
19205 #. type: Plain text
19206 #: build/C/man2/truncate.2:134
19207 msgid "The argument I<length> is larger than the maximum file size. (XSI)"
19208 msgstr ""
19209
19210 #. type: Plain text
19211 #: build/C/man2/truncate.2:141
19212 msgid ""
19213 "While blocked waiting to complete, the call was interrupted by a signal "
19214 "handler; see B<fcntl>(2)  and B<signal>(7)."
19215 msgstr ""
19216
19217 #. type: Plain text
19218 #: build/C/man2/truncate.2:146
19219 msgid "The argument I<length> is negative or larger than the maximum file size."
19220 msgstr ""
19221
19222 #. type: Plain text
19223 #: build/C/man2/truncate.2:149
19224 msgid "An I/O error occurred updating the inode."
19225 msgstr ""
19226
19227 #. type: Plain text
19228 #: build/C/man2/truncate.2:152
19229 msgid "The named file is a directory."
19230 msgstr ""
19231
19232 #. type: Plain text
19233 #: build/C/man2/truncate.2:155
19234 msgid "Too many symbolic links were encountered in translating the pathname."
19235 msgstr ""
19236
19237 #. type: Plain text
19238 #: build/C/man2/truncate.2:159
19239 msgid ""
19240 "A component of a pathname exceeded 255 characters, or an entire pathname "
19241 "exceeded 1023 characters."
19242 msgstr ""
19243
19244 #. type: Plain text
19245 #: build/C/man2/truncate.2:162
19246 msgid "The named file does not exist."
19247 msgstr ""
19248
19249 #.  This happens for at least MSDOS and VFAT filesystems
19250 #.  on kernel 2.6.13
19251 #. type: Plain text
19252 #: build/C/man2/truncate.2:171
19253 msgid ""
19254 "The underlying filesystem does not support extending a file beyond its "
19255 "current size."
19256 msgstr ""
19257
19258 #. type: Plain text
19259 #: build/C/man2/truncate.2:175
19260 msgid "The operation was prevented by a file seal; see B<fcntl>(2)."
19261 msgstr ""
19262
19263 #. type: Plain text
19264 #: build/C/man2/truncate.2:181
19265 msgid "The file is a pure procedure (shared text) file that is being executed."
19266 msgstr ""
19267
19268 #. type: Plain text
19269 #: build/C/man2/truncate.2:188
19270 msgid ""
19271 "For B<ftruncate>()  the same errors apply, but instead of things that can be "
19272 "wrong with I<path>, we now have things that can be wrong with the file "
19273 "descriptor, I<fd>:"
19274 msgstr ""
19275
19276 #. type: TP
19277 #: build/C/man2/truncate.2:192
19278 #, no-wrap
19279 msgid "B<EBADF> or B<EINVAL>"
19280 msgstr ""
19281
19282 #. type: Plain text
19283 #: build/C/man2/truncate.2:196
19284 msgid "I<fd> is not open for writing."
19285 msgstr ""
19286
19287 #. type: Plain text
19288 #: build/C/man2/truncate.2:200
19289 msgid "I<fd> does not reference a regular file."
19290 msgstr ""
19291
19292 #.  POSIX.1-1996 has
19293 #.  .BR ftruncate ().
19294 #.  POSIX.1-2001 also has
19295 #.  .BR truncate (),
19296 #.  as an XSI extension.
19297 #.  .LP
19298 #.  SVr4 documents additional
19299 #.  .BR truncate ()
19300 #.  error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK.  SVr4 documents for
19301 #.  .BR ftruncate ()
19302 #.  an additional EAGAIN error condition.
19303 #. type: Plain text
19304 #: build/C/man2/truncate.2:213
19305 msgid "4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD)."
19306 msgstr ""
19307
19308 #.  At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
19309 #. type: Plain text
19310 #: build/C/man2/truncate.2:234
19311 msgid ""
19312 "The details in DESCRIPTION are for XSI-compliant systems.  For "
19313 "non-XSI-compliant systems, the POSIX standard allows two behaviors for "
19314 "B<ftruncate>()  when I<length> exceeds the file length (note that "
19315 "B<truncate>()  is not specified at all in such an environment): either "
19316 "returning an error, or extending the file.  Like most UNIX implementations, "
19317 "Linux follows the XSI requirement when dealing with native filesystems.  "
19318 "However, some nonnative filesystems do not permit B<truncate>()  and "
19319 "B<ftruncate>()  to be used to extend a file beyond its current length: a "
19320 "notable example on Linux is VFAT."
19321 msgstr ""
19322
19323 #. type: Plain text
19324 #: build/C/man2/truncate.2:248
19325 msgid ""
19326 "The original Linux B<truncate>()  and B<ftruncate>()  system calls were not "
19327 "designed to handle large file offsets.  Consequently, Linux 2.4 added "
19328 "B<truncate64>()  and B<ftruncate64>()  system calls that handle large "
19329 "files.  However, these details can be ignored by applications using glibc, "
19330 "whose wrapper functions transparently employ the more recent system calls "
19331 "where they are available."
19332 msgstr ""
19333
19334 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12037
19335 #. type: Plain text
19336 #: build/C/man2/truncate.2:261
19337 msgid ""
19338 "A header file bug in glibc 2.12 meant that the minimum value of "
19339 "B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>()  was "
19340 "200809L instead of 200112L.  This has been fixed in later glibc versions."
19341 msgstr ""
19342
19343 #. type: Plain text
19344 #: build/C/man2/truncate.2:264
19345 msgid "B<open>(2), B<stat>(2), B<path_resolution>(7)"
19346 msgstr ""
19347
19348 #. type: TH
19349 #: build/C/man3/ualarm.3:24
19350 #, no-wrap
19351 msgid "UALARM"
19352 msgstr ""
19353
19354 #. type: TH
19355 #: build/C/man3/ualarm.3:24
19356 #, no-wrap
19357 msgid "2013-12-23"
19358 msgstr ""
19359
19360 #. type: Plain text
19361 #: build/C/man3/ualarm.3:27
19362 msgid "ualarm - schedule signal after given number of microseconds"
19363 msgstr ""
19364
19365 #. type: Plain text
19366 #: build/C/man3/ualarm.3:32
19367 #, no-wrap
19368 msgid "B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<interval>B<);>\n"
19369 msgstr ""
19370
19371 #. type: Plain text
19372 #: build/C/man3/ualarm.3:40
19373 msgid "B<ualarm>():"
19374 msgstr ""
19375
19376 #. type: Plain text
19377 #: build/C/man3/ualarm.3:69
19378 msgid ""
19379 "The B<ualarm>()  function causes the signal B<SIGALRM> to be sent to the "
19380 "invoking process after (not less than)  I<usecs> microseconds.  The delay "
19381 "may be lengthened slightly by any system activity or by the time spent "
19382 "processing the call or by the granularity of system timers."
19383 msgstr ""
19384
19385 #. type: Plain text
19386 #: build/C/man3/ualarm.3:73
19387 msgid "Unless caught or ignored, the B<SIGALRM> signal will terminate the process."
19388 msgstr ""
19389
19390 #. type: Plain text
19391 #: build/C/man3/ualarm.3:81
19392 msgid ""
19393 "If the I<interval> argument is nonzero, further B<SIGALRM> signals will be "
19394 "sent every I<interval> microseconds after the first."
19395 msgstr ""
19396
19397 #. type: Plain text
19398 #: build/C/man3/ualarm.3:84
19399 msgid ""
19400 "This function returns the number of microseconds remaining for any alarm "
19401 "that was previously set, or 0 if no alarm was pending."
19402 msgstr ""
19403
19404 #. type: Plain text
19405 #: build/C/man3/ualarm.3:88
19406 msgid "Interrupted by a signal."
19407 msgstr ""
19408
19409 #. type: Plain text
19410 #: build/C/man3/ualarm.3:92
19411 msgid ""
19412 "I<usecs> or I<interval> is not smaller than 1000000.  (On systems where that "
19413 "is considered an error.)"
19414 msgstr ""
19415
19416 #. type: Plain text
19417 #: build/C/man3/ualarm.3:97
19418 msgid "The B<ualarm>()  function is thread-safe."
19419 msgstr ""
19420
19421 #. type: Plain text
19422 #: build/C/man3/ualarm.3:105
19423 msgid ""
19424 "4.3BSD, POSIX.1-2001.  POSIX.1-2001 marks B<ualarm>()  as obsolete.  "
19425 "POSIX.1-2008 removes the specification of B<ualarm>().  4.3BSD, SUSv2, and "
19426 "POSIX do not define any errors."
19427 msgstr ""
19428
19429 #.  This case is not documented in HP-US, Solar, FreeBSD, NetBSD, or OpenBSD!
19430 #. type: Plain text
19431 #: build/C/man3/ualarm.3:112
19432 msgid ""
19433 "POSIX.1-2001 does not specify what happens if the I<usecs> argument is 0.  "
19434 "On Linux (and probably most other systems), the effect is to cancel any "
19435 "pending alarm."
19436 msgstr ""
19437
19438 #. type: Plain text
19439 #: build/C/man3/ualarm.3:125
19440 msgid ""
19441 "The type I<useconds_t> is an unsigned integer type capable of holding "
19442 "integers in the range [0,1000000].  On the original BSD implementation, and "
19443 "in glibc before version 2.1, the arguments to B<ualarm>()  were instead "
19444 "typed as I<unsigned int>.  Programs will be more portable if they never "
19445 "mention I<useconds_t> explicitly."
19446 msgstr ""
19447
19448 #. type: Plain text
19449 #: build/C/man3/ualarm.3:139
19450 msgid ""
19451 "The interaction of this function with other timer functions such as "
19452 "B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), "
19453 "B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), "
19454 "B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3)  is unspecified."
19455 msgstr ""
19456
19457 #. type: Plain text
19458 #: build/C/man3/ualarm.3:147
19459 msgid ""
19460 "This function is obsolete.  Use B<setitimer>(2)  or POSIX interval timers "
19461 "(B<timer_create>(2), etc.)  instead."
19462 msgstr ""
19463
19464 #. type: Plain text
19465 #: build/C/man3/ualarm.3:154
19466 msgid ""
19467 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
19468 "B<setitimer>(2), B<usleep>(3), B<time>(7)"
19469 msgstr ""
19470
19471 #. type: TH
19472 #: build/C/man2/umask.2:34
19473 #, no-wrap
19474 msgid "UMASK"
19475 msgstr ""
19476
19477 #. type: TH
19478 #: build/C/man2/umask.2:34
19479 #, no-wrap
19480 msgid "2008-01-09"
19481 msgstr ""
19482
19483 #. type: Plain text
19484 #: build/C/man2/umask.2:37
19485 msgid "umask - set file mode creation mask"
19486 msgstr ""
19487
19488 #. type: Plain text
19489 #: build/C/man2/umask.2:43
19490 msgid "B<mode_t umask(mode_t >I<mask>B<);>"
19491 msgstr ""
19492
19493 #. type: Plain text
19494 #: build/C/man2/umask.2:50
19495 msgid ""
19496 "B<umask>()  sets the calling process's file mode creation mask (umask) to "
19497 "I<mask> & 0777 (i.e., only the file permission bits of I<mask> are used), "
19498 "and returns the previous value of the mask."
19499 msgstr ""
19500
19501 #.  e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open()
19502 #.  but NOT the System V IPC *get() calls
19503 #. type: Plain text
19504 #: build/C/man2/umask.2:65
19505 msgid ""
19506 "The umask is used by B<open>(2), B<mkdir>(2), and other system calls that "
19507 "create files to modify the permissions placed on newly created files or "
19508 "directories.  Specifically, permissions in the umask are turned off from the "
19509 "I<mode> argument to B<open>(2)  and B<mkdir>(2)."
19510 msgstr ""
19511
19512 #. type: Plain text
19513 #: build/C/man2/umask.2:70
19514 msgid ""
19515 "The constants that should be used to specify I<mask> are described under "
19516 "B<stat>(2)."
19517 msgstr ""
19518
19519 #. type: Plain text
19520 #: build/C/man2/umask.2:79
19521 msgid ""
19522 "The typical default value for the process umask is I<S_IWGRP\\ |\\ S_IWOTH> "
19523 "(octal 022).  In the usual case where the I<mode> argument to B<open>(2)  is "
19524 "specified as:"
19525 msgstr ""
19526
19527 #. type: Plain text
19528 #: build/C/man2/umask.2:82
19529 #, no-wrap
19530 msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\n"
19531 msgstr ""
19532
19533 #. type: Plain text
19534 #: build/C/man2/umask.2:86
19535 msgid ""
19536 "(octal 0666) when creating a new file, the permissions on the resulting file "
19537 "will be:"
19538 msgstr ""
19539
19540 #. type: Plain text
19541 #: build/C/man2/umask.2:89
19542 #, no-wrap
19543 msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n"
19544 msgstr ""
19545
19546 #. type: Plain text
19547 #: build/C/man2/umask.2:92
19548 msgid "(because 0666 & ~022 = 0644; i.e., rw-r--r--)."
19549 msgstr ""
19550
19551 #. type: Plain text
19552 #: build/C/man2/umask.2:95
19553 msgid ""
19554 "This system call always succeeds and the previous value of the mask is "
19555 "returned."
19556 msgstr ""
19557
19558 #. type: Plain text
19559 #: build/C/man2/umask.2:103
19560 msgid ""
19561 "A child process created via B<fork>(2)  inherits its parent's umask.  The "
19562 "umask is left unchanged by B<execve>(2)."
19563 msgstr ""
19564
19565 #. type: Plain text
19566 #: build/C/man2/umask.2:118
19567 msgid ""
19568 "The umask setting also affects the permissions assigned to POSIX IPC objects "
19569 "(B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and "
19570 "UNIX domain sockets (B<unix>(7))  created by the process.  The umask does "
19571 "not affect the permissions assigned to System\\ V IPC objects created by the "
19572 "process (using B<msgget>(2), B<semget>(2), B<shmget>(2))."
19573 msgstr ""
19574
19575 #. type: Plain text
19576 #: build/C/man2/umask.2:123
19577 msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2), B<acl>(5)"
19578 msgstr ""
19579
19580 #. type: TH
19581 #: build/C/man2/uname.2:27
19582 #, no-wrap
19583 msgid "UNAME"
19584 msgstr ""
19585
19586 #. type: Plain text
19587 #: build/C/man2/uname.2:30
19588 msgid "uname - get name and information about current kernel"
19589 msgstr ""
19590
19591 #. type: Plain text
19592 #: build/C/man2/uname.2:32
19593 msgid "B<#include E<lt>sys/utsname.hE<gt>>"
19594 msgstr ""
19595
19596 #. type: Plain text
19597 #: build/C/man2/uname.2:34
19598 msgid "B<int uname(struct utsname *>I<buf>B<);>"
19599 msgstr ""
19600
19601 #. type: Plain text
19602 #: build/C/man2/uname.2:42
19603 msgid ""
19604 "B<uname>()  returns system information in the structure pointed to by "
19605 "I<buf>.  The I<utsname> struct is defined in I<E<lt>sys/utsname.hE<gt>>:"
19606 msgstr ""
19607
19608 #. type: Plain text
19609 #: build/C/man2/uname.2:56
19610 #, no-wrap
19611 msgid ""
19612 "struct utsname {\n"
19613 "    char sysname[];    /* Operating system name (e.g., \"Linux\") */\n"
19614 "    char nodename[];   /* Name within \"some implementation-defined\n"
19615 "                          network\" */\n"
19616 "    char release[];    /* Operating system release (e.g., \"2.6.28\") */\n"
19617 "    char version[];    /* Operating system version */\n"
19618 "    char machine[];    /* Hardware identifier */\n"
19619 "#ifdef _GNU_SOURCE\n"
19620 "    char domainname[]; /* NIS or YP domain name */\n"
19621 "#endif\n"
19622 "};\n"
19623 msgstr ""
19624
19625 #. type: Plain text
19626 #: build/C/man2/uname.2:63
19627 msgid ""
19628 "The length of the arrays in a I<struct utsname> is unspecified (see NOTES); "
19629 "the fields are terminated by a null byte (\\(aq\\e0\\(aq)."
19630 msgstr ""
19631
19632 #. type: Plain text
19633 #: build/C/man2/uname.2:73
19634 msgid "I<buf> is not valid."
19635 msgstr ""
19636
19637 #. type: Plain text
19638 #: build/C/man2/uname.2:78
19639 msgid "SVr4, POSIX.1-2001.  There is no B<uname>()  call in 4.3BSD."
19640 msgstr ""
19641
19642 #. type: Plain text
19643 #: build/C/man2/uname.2:82
19644 msgid "The I<domainname> member (the NIS or YP domain name) is a GNU extension."
19645 msgstr ""
19646
19647 #. type: Plain text
19648 #: build/C/man2/uname.2:98
19649 msgid ""
19650 "This is a system call, and the operating system presumably knows its name, "
19651 "release and version.  It also knows what hardware it runs on.  So, four of "
19652 "the fields of the struct are meaningful.  On the other hand, the field "
19653 "I<nodename> is meaningless: it gives the name of the present machine in some "
19654 "undefined network, but typically machines are in more than one network and "
19655 "have several names.  Moreover, the kernel has no way of knowing about such "
19656 "things, so it has to be told what to answer here.  The same holds for the "
19657 "additional I<domainname> field."
19658 msgstr ""
19659
19660 #. type: Plain text
19661 #: build/C/man2/uname.2:116
19662 msgid ""
19663 "To this end, Linux uses the system calls B<sethostname>(2)  and "
19664 "B<setdomainname>(2).  Note that there is no standard that says that the "
19665 "hostname set by B<sethostname>(2)  is the same string as the I<nodename> "
19666 "field of the struct returned by B<uname>()  (indeed, some systems allow a "
19667 "256-byte hostname and an 8-byte nodename), but this is true on Linux.  The "
19668 "same holds for B<setdomainname>(2)  and the I<domainname> field."
19669 msgstr ""
19670
19671 #. type: Plain text
19672 #: build/C/man2/uname.2:131
19673 msgid ""
19674 "The length of the fields in the struct varies.  Some operating systems or "
19675 "libraries use a hardcoded 9 or 33 or 65 or 257.  Other systems use "
19676 "B<SYS_NMLN> or B<_SYS_NMLN> or B<UTSLEN> or B<_UTSNAME_LENGTH>.  Clearly, it "
19677 "is a bad idea to use any of these constants; just use sizeof(...).  Often "
19678 "257 is chosen in order to have room for an internet hostname."
19679 msgstr ""
19680
19681 #. type: Plain text
19682 #: build/C/man2/uname.2:138
19683 msgid ""
19684 "Part of the utsname information is also accessible via "
19685 "I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, "
19686 "I<domainname>}."
19687 msgstr ""
19688
19689 #.  That was back before Linux 1.0
19690 #.  That was also back before Linux 1.0
19691 #. type: Plain text
19692 #: build/C/man2/uname.2:167
19693 msgid ""
19694 "Over time, increases in the size of the I<utsname> structure have led to "
19695 "three successive versions of B<uname>(): I<sys_olduname>()  (slot "
19696 "I<__NR_oldolduname>), I<sys_uname>()  (slot I<__NR_olduname>), and "
19697 "I<sys_newuname>()  (slot I<__NR_uname)>.  The first one used length 9 for "
19698 "all fields; the second used 65; the third also uses 65 but adds the "
19699 "I<domainname> field.  The glibc B<uname>()  wrapper function hides these "
19700 "details from applications, invoking the most recent version of the system "
19701 "call provided by the kernel."
19702 msgstr ""
19703
19704 #. type: Plain text
19705 #: build/C/man2/uname.2:171
19706 msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2), B<namespaces>(7)"
19707 msgstr ""
19708
19709 #. type: TH
19710 #: build/C/man2/uselib.2:31
19711 #, no-wrap
19712 msgid "USELIB"
19713 msgstr ""
19714
19715 #. type: TH
19716 #: build/C/man2/uselib.2:31
19717 #, no-wrap
19718 msgid "2005-01-09"
19719 msgstr ""
19720
19721 #. type: Plain text
19722 #: build/C/man2/uselib.2:34
19723 msgid "uselib - load shared library"
19724 msgstr ""
19725
19726 #. type: Plain text
19727 #: build/C/man2/uselib.2:38
19728 msgid "B<int uselib(const char *>I<library>B<);>"
19729 msgstr ""
19730
19731 #. type: Plain text
19732 #: build/C/man2/uselib.2:48
19733 msgid ""
19734 "The system call B<uselib>()  serves to load a shared library to be used by "
19735 "the calling process.  It is given a pathname.  The address where to load is "
19736 "found in the library itself.  The library can have any recognized binary "
19737 "format."
19738 msgstr ""
19739
19740 #. type: Plain text
19741 #: build/C/man2/uselib.2:59
19742 msgid ""
19743 "In addition to all of the error codes returned by B<open>(2)  and "
19744 "B<mmap>(2), the following may also be returned:"
19745 msgstr ""
19746
19747 #. type: Plain text
19748 #: build/C/man2/uselib.2:67
19749 msgid ""
19750 "The library specified by I<library> does not have read or execute "
19751 "permission, or the caller does not have search permission for one of the "
19752 "directories in the path prefix.  (See also B<path_resolution>(7).)"
19753 msgstr ""
19754
19755 #. type: Plain text
19756 #: build/C/man2/uselib.2:76
19757 msgid ""
19758 "The file specified by I<library> is not an executable of a known type; for "
19759 "example, it does not have the correct magic numbers."
19760 msgstr ""
19761
19762 #. type: Plain text
19763 #: build/C/man2/uselib.2:80
19764 msgid ""
19765 "B<uselib>()  is Linux-specific, and should not be used in programs intended "
19766 "to be portable."
19767 msgstr ""
19768
19769 #. type: Plain text
19770 #: build/C/man2/uselib.2:85
19771 msgid ""
19772 "B<uselib>()  was used by early libc startup code to load the shared "
19773 "libraries with names found in an array of names in the binary."
19774 msgstr ""
19775
19776 #.  libc 4.3.1f - changelog 1993-03-02
19777 #.  libc 4.3.4 - changelog 1993-04-21
19778 #. type: Plain text
19779 #: build/C/man2/uselib.2:95
19780 msgid ""
19781 "Since libc 4.3.2, startup code tries to prefix these names with "
19782 "\"/usr/lib\", \"/lib\" and \"\" before giving up.  In libc 4.3.4 and later "
19783 "these names are looked for in the directories found in B<LD_LIBRARY_PATH>, "
19784 "and if not found there, prefixes \"/usr/lib\", \"/lib\" and \"/\" are tried."
19785 msgstr ""
19786
19787 #. type: Plain text
19788 #: build/C/man2/uselib.2:100
19789 msgid ""
19790 "From libc 4.4.4 on only the library \"/lib/ld.so\" is loaded, so that this "
19791 "dynamic library can load the remaining libraries needed (again using this "
19792 "call).  This is also the state of affairs in libc5."
19793 msgstr ""
19794
19795 #. type: Plain text
19796 #: build/C/man2/uselib.2:102
19797 msgid "glibc2 does not use this call."
19798 msgstr ""
19799
19800 #. type: Plain text
19801 #: build/C/man2/uselib.2:111
19802 msgid ""
19803 "B<ar>(1), B<gcc>(1), B<ld>(1), B<ldd>(1), B<mmap>(2), B<open>(2), "
19804 "B<dlopen>(3), B<capabilities>(7), B<ld.so>(8)"
19805 msgstr ""
19806
19807 #. type: TH
19808 #: build/C/man3/usleep.3:33
19809 #, no-wrap
19810 msgid "USLEEP"
19811 msgstr ""
19812
19813 #. type: TH
19814 #: build/C/man3/usleep.3:33
19815 #, no-wrap
19816 msgid "2013-12-10"
19817 msgstr ""
19818
19819 #. type: Plain text
19820 #: build/C/man3/usleep.3:36
19821 msgid "usleep - suspend execution for microsecond intervals"
19822 msgstr ""
19823
19824 #. type: Plain text
19825 #: build/C/man3/usleep.3:41
19826 #, no-wrap
19827 msgid "B<int usleep(useconds_t >I<usec>B<);>\n"
19828 msgstr ""
19829
19830 #. type: Plain text
19831 #: build/C/man3/usleep.3:49
19832 msgid "B<usleep>():"
19833 msgstr ""
19834
19835 #. type: Plain text
19836 #: build/C/man3/usleep.3:75
19837 msgid ""
19838 "The B<usleep>()  function suspends execution of the calling thread for (at "
19839 "least) I<usec> microseconds.  The sleep may be lengthened slightly by any "
19840 "system activity or by the time spent processing the call or by the "
19841 "granularity of system timers."
19842 msgstr ""
19843
19844 #. type: Plain text
19845 #: build/C/man3/usleep.3:82
19846 msgid ""
19847 "The B<usleep>()  function returns 0 on success.  On error, -1 is returned, "
19848 "with I<errno> set to indicate the cause of the error."
19849 msgstr ""
19850
19851 #. type: Plain text
19852 #: build/C/man3/usleep.3:87
19853 msgid "Interrupted by a signal; see B<signal>(7)."
19854 msgstr ""
19855
19856 #. type: Plain text
19857 #: build/C/man3/usleep.3:91
19858 msgid ""
19859 "I<usec> is not smaller than 1000000.  (On systems where that is considered "
19860 "an error.)"
19861 msgstr ""
19862
19863 #. type: Plain text
19864 #: build/C/man3/usleep.3:96
19865 msgid "The B<usleep>()  function is thread-safe."
19866 msgstr ""
19867
19868 #. type: Plain text
19869 #: build/C/man3/usleep.3:103
19870 msgid ""
19871 "4.3BSD, POSIX.1-2001.  POSIX.1-2001 declares this function obsolete; use "
19872 "B<nanosleep>(2)  instead.  POSIX.1-2008 removes the specification of "
19873 "B<usleep>()."
19874 msgstr ""
19875
19876 #. type: Plain text
19877 #: build/C/man3/usleep.3:110
19878 msgid ""
19879 "On the original BSD implementation, and in glibc before version 2.2.2, the "
19880 "return type of this function is I<void>.  The POSIX version returns I<int>, "
19881 "and this is also the prototype used since glibc 2.2.2."
19882 msgstr ""
19883
19884 #. type: Plain text
19885 #: build/C/man3/usleep.3:114
19886 msgid "Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001."
19887 msgstr ""
19888
19889 #. type: Plain text
19890 #: build/C/man3/usleep.3:122
19891 msgid ""
19892 "The type I<useconds_t> is an unsigned integer type capable of holding "
19893 "integers in the range [0,1000000].  Programs will be more portable if they "
19894 "never mention this type explicitly.  Use"
19895 msgstr ""
19896
19897 #. type: Plain text
19898 #: build/C/man3/usleep.3:130
19899 #, no-wrap
19900 msgid ""
19901 "#include E<lt>unistd.hE<gt>\n"
19902 "\\&...\n"
19903 "    unsigned int usecs;\n"
19904 "\\&...\n"
19905 "    usleep(usecs);\n"
19906 msgstr ""
19907
19908 #. type: Plain text
19909 #: build/C/man3/usleep.3:147
19910 msgid ""
19911 "The interaction of this function with the B<SIGALRM> signal, and with other "
19912 "timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), "
19913 "B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), "
19914 "B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), "
19915 "B<ualarm>(3)  is unspecified."
19916 msgstr ""
19917
19918 #. type: Plain text
19919 #: build/C/man3/usleep.3:155
19920 msgid ""
19921 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
19922 "B<setitimer>(2), B<sleep>(3), B<ualarm>(3), B<time>(7)"
19923 msgstr ""
19924
19925 #. type: TH
19926 #: build/C/man2/vfork.2:28
19927 #, no-wrap
19928 msgid "VFORK"
19929 msgstr ""
19930
19931 #. type: TH
19932 #: build/C/man2/vfork.2:28
19933 #, no-wrap
19934 msgid "2012-08-05"
19935 msgstr ""
19936
19937 #. type: Plain text
19938 #: build/C/man2/vfork.2:31
19939 msgid "vfork - create a child process and block parent"
19940 msgstr ""
19941
19942 #. type: Plain text
19943 #: build/C/man2/vfork.2:37
19944 msgid "B<pid_t vfork(void);>"
19945 msgstr ""
19946
19947 #. type: Plain text
19948 #: build/C/man2/vfork.2:44
19949 msgid "B<vfork>():"
19950 msgstr ""
19951
19952 #. type: SS
19953 #: build/C/man2/vfork.2:63
19954 #, no-wrap
19955 msgid "Standard description"
19956 msgstr ""
19957
19958 #. type: Plain text
19959 #: build/C/man2/vfork.2:82
19960 msgid ""
19961 "(From POSIX.1)  The B<vfork>()  function has the same effect as B<fork>(2), "
19962 "except that the behavior is undefined if the process created by B<vfork>()  "
19963 "either modifies any data other than a variable of type I<pid_t> used to "
19964 "store the return value from B<vfork>(), or returns from the function in "
19965 "which B<vfork>()  was called, or calls any other function before "
19966 "successfully calling B<_exit>(2)  or one of the B<exec>(3)  family of "
19967 "functions."
19968 msgstr ""
19969
19970 #. type: SS
19971 #: build/C/man2/vfork.2:82
19972 #, no-wrap
19973 msgid "Linux description"
19974 msgstr ""
19975
19976 #. type: Plain text
19977 #: build/C/man2/vfork.2:89
19978 msgid ""
19979 "B<vfork>(), just like B<fork>(2), creates a child process of the calling "
19980 "process.  For details and return value and errors, see B<fork>(2)."
19981 msgstr ""
19982
19983 #. type: Plain text
19984 #: build/C/man2/vfork.2:98
19985 msgid ""
19986 "B<vfork>()  is a special case of B<clone>(2).  It is used to create new "
19987 "processes without copying the page tables of the parent process.  It may be "
19988 "useful in performance-sensitive applications where a child is created which "
19989 "then immediately issues an B<execve>(2)."
19990 msgstr ""
19991
19992 #. type: Plain text
19993 #: build/C/man2/vfork.2:115
19994 msgid ""
19995 "B<vfork>()  differs from B<fork>(2)  in that the calling thread is suspended "
19996 "until the child terminates (either normally, by calling B<_exit>(2), or "
19997 "abnormally, after delivery of a fatal signal), or it makes a call to "
19998 "B<execve>(2).  Until that point, the child shares all memory with its "
19999 "parent, including the stack.  The child must not return from the current "
20000 "function or call B<exit>(3), but may call B<_exit>(2)."
20001 msgstr ""
20002
20003 #. type: Plain text
20004 #: build/C/man2/vfork.2:126
20005 msgid ""
20006 "As with B<fork>(2), the child process created by B<vfork>()  inherits copies "
20007 "of various of the caller's process attributes (e.g., file descriptors, "
20008 "signal dispositions, and current working directory); the B<vfork>()  call "
20009 "differs only in the treatment of the virtual address space, as described "
20010 "above."
20011 msgstr ""
20012
20013 #. type: Plain text
20014 #: build/C/man2/vfork.2:132
20015 msgid ""
20016 "Signals sent to the parent arrive after the child releases the parent's "
20017 "memory (i.e., after the child terminates or calls B<execve>(2))."
20018 msgstr ""
20019
20020 #. type: SS
20021 #: build/C/man2/vfork.2:132
20022 #, no-wrap
20023 msgid "Historic description"
20024 msgstr ""
20025
20026 #. type: Plain text
20027 #: build/C/man2/vfork.2:159
20028 msgid ""
20029 "Under Linux, B<fork>(2)  is implemented using copy-on-write pages, so the "
20030 "only penalty incurred by B<fork>(2)  is the time and memory required to "
20031 "duplicate the parent's page tables, and to create a unique task structure "
20032 "for the child.  However, in the bad old days a B<fork>(2)  would require "
20033 "making a complete copy of the caller's data space, often needlessly, since "
20034 "usually immediately afterward an B<exec>(3)  is done.  Thus, for greater "
20035 "efficiency, BSD introduced the B<vfork>()  system call, which did not fully "
20036 "copy the address space of the parent process, but borrowed the parent's "
20037 "memory and thread of control until a call to B<execve>(2)  or an exit "
20038 "occurred.  The parent process was suspended while the child was using its "
20039 "resources.  The use of B<vfork>()  was tricky: for example, not modifying "
20040 "data in the parent process depended on knowing which variables were held in "
20041 "a register."
20042 msgstr ""
20043
20044 #. type: Plain text
20045 #: build/C/man2/vfork.2:163
20046 msgid ""
20047 "4.3BSD; POSIX.1-2001 (but marked OBSOLETE).  POSIX.1-2008 removes the "
20048 "specification of B<vfork>()."
20049 msgstr ""
20050
20051 #.  In AIXv3.1 vfork is equivalent to fork.
20052 #. type: Plain text
20053 #: build/C/man2/vfork.2:174
20054 msgid ""
20055 "The requirements put on B<vfork>()  by the standards are weaker than those "
20056 "put on B<fork>(2), so an implementation where the two are synonymous is "
20057 "compliant.  In particular, the programmer cannot rely on the parent "
20058 "remaining blocked until the child either terminates or calls B<execve>(2), "
20059 "and cannot rely on any specific behavior with respect to shared memory."
20060 msgstr ""
20061
20062 #. type: Plain text
20063 #: build/C/man2/vfork.2:193
20064 msgid ""
20065 "Some consider the semantics of B<vfork>()  to be an architectural blemish, "
20066 "and the 4.2BSD man page stated: \"This system call will be eliminated when "
20067 "proper system sharing mechanisms are implemented.  Users should not depend "
20068 "on the memory sharing semantics of B<vfork>()  as it will, in that case, be "
20069 "made synonymous to B<fork>(2).\" However, even though modern memory "
20070 "management hardware has decreased the performance difference between "
20071 "B<fork>(2)  and B<vfork>(), there are various reasons why Linux and other "
20072 "systems have retained B<vfork>():"
20073 msgstr ""
20074
20075 #. type: Plain text
20076 #: build/C/man2/vfork.2:197
20077 msgid ""
20078 "Some performance-critical applications require the small performance "
20079 "advantage conferred by B<vfork>()."
20080 msgstr ""
20081
20082 #.  http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
20083 #.  http://developers.sun.com/solaris/articles/subprocess/subprocess.html
20084 #.  http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
20085 #. type: Plain text
20086 #: build/C/man2/vfork.2:213
20087 msgid ""
20088 "B<vfork>()  can be implemented on systems that lack a memory-management unit "
20089 "(MMU), but B<fork>(2)  can't be implemented on such systems.  (POSIX.1-2008 "
20090 "removed B<vfork>()  from the standard; the POSIX rationale for the "
20091 "B<posix_spawn>(3)  function notes that that function, which provides "
20092 "functionality equivalent to B<fork>(2)+B<exec>(3), is designed to be "
20093 "implementable on systems that lack an MMU.)"
20094 msgstr ""
20095
20096 #. type: SS
20097 #: build/C/man2/vfork.2:213
20098 #, no-wrap
20099 msgid "Linux notes"
20100 msgstr ""
20101
20102 #. type: Plain text
20103 #: build/C/man2/vfork.2:224
20104 msgid ""
20105 "Fork handlers established using B<pthread_atfork>(3)  are not called when a "
20106 "multithreaded program employing the NPTL threading library calls "
20107 "B<vfork>().  Fork handlers are called in this case in a program using the "
20108 "LinuxThreads threading library.  (See B<pthreads>(7)  for a description of "
20109 "Linux threading libraries.)"
20110 msgstr ""
20111
20112 #. type: Plain text
20113 #: build/C/man2/vfork.2:232
20114 msgid ""
20115 "A call to B<vfork>()  is equivalent to calling B<clone>(2)  with I<flags> "
20116 "specified as:"
20117 msgstr ""
20118
20119 #. type: Plain text
20120 #: build/C/man2/vfork.2:234
20121 #, no-wrap
20122 msgid "     CLONE_VM | CLONE_VFORK | SIGCHLD\n"
20123 msgstr ""
20124
20125 #.  In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
20126 #.  present, but definitely on its way out'.
20127 #. type: Plain text
20128 #: build/C/man2/vfork.2:252
20129 msgid ""
20130 "The B<vfork>()  system call appeared in 3.0BSD.  In 4.4BSD it was made "
20131 "synonymous to B<fork>(2)  but NetBSD introduced it again, cf.  E<.UR "
20132 "http://www.netbsd.org\\:/Documentation\\:/kernel\\:/vfork.html> E<.UE .> In "
20133 "Linux, it has been equivalent to B<fork>(2)  until 2.2.0-pre6 or so.  Since "
20134 "2.2.0-pre9 (on i386, somewhat later on other architectures) it is an "
20135 "independent system call.  Support was added in glibc 2.0.112."
20136 msgstr ""
20137
20138 #
20139 #.  As far as I can tell, the following is not true in 2.6.19:
20140 #.  Currently (Linux 2.3.25),
20141 #.  .BR strace (1)
20142 #.  cannot follow
20143 #.  .BR vfork ()
20144 #.  and requires a kernel patch.
20145 #. type: Plain text
20146 #: build/C/man2/vfork.2:273
20147 msgid ""
20148 "Details of the signal handling are obscure and differ between systems.  The "
20149 "BSD man page states: \"To avoid a possible deadlock situation, processes "
20150 "that are children in the middle of a B<vfork>()  are never sent B<SIGTTOU> "
20151 "or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input "
20152 "attempts result in an end-of-file indication.\""
20153 msgstr ""
20154
20155 #. type: Plain text
20156 #: build/C/man2/vfork.2:278
20157 msgid "B<clone>(2), B<execve>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
20158 msgstr ""
20159
20160 #. type: TH
20161 #: build/C/man2/vhangup.2:28
20162 #, no-wrap
20163 msgid "VHANGUP"
20164 msgstr ""
20165
20166 #. type: TH
20167 #: build/C/man2/vhangup.2:28
20168 #, no-wrap
20169 msgid "2007-07-26"
20170 msgstr ""
20171
20172 #. type: Plain text
20173 #: build/C/man2/vhangup.2:31
20174 msgid "vhangup - virtually hangup the current terminal"
20175 msgstr ""
20176
20177 #. type: Plain text
20178 #: build/C/man2/vhangup.2:35
20179 msgid "B<int vhangup(void);>"
20180 msgstr ""
20181
20182 #. type: Plain text
20183 #: build/C/man2/vhangup.2:44
20184 msgid "B<vhangup>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
20185 msgstr ""
20186
20187 #. type: Plain text
20188 #: build/C/man2/vhangup.2:50
20189 msgid ""
20190 "B<vhangup>()  simulates a hangup on the current terminal.  This call "
20191 "arranges for other users to have a ``clean'' terminal at login time."
20192 msgstr ""
20193
20194 #. type: Plain text
20195 #: build/C/man2/vhangup.2:63
20196 msgid ""
20197 "The calling process has insufficient privilege to call B<vhangup>(); the "
20198 "B<CAP_SYS_TTY_CONFIG> capability is required."
20199 msgstr ""
20200
20201 #. type: Plain text
20202 #: build/C/man2/vhangup.2:66
20203 msgid ""
20204 "This call is Linux-specific, and should not be used in programs intended to "
20205 "be portable."
20206 msgstr ""
20207
20208 #. type: Plain text
20209 #: build/C/man2/vhangup.2:68
20210 msgid "B<capabilities>(7), B<init>(1)"
20211 msgstr ""
20212
20213 #. type: TH
20214 #: build/C/man2/execveat.2:25
20215 #, no-wrap
20216 msgid "EXECVEAT"
20217 msgstr ""
20218
20219 #. type: TH
20220 #: build/C/man2/execveat.2:25
20221 #, no-wrap
20222 msgid "2015-01-09"
20223 msgstr ""
20224
20225 #. type: Plain text
20226 #: build/C/man2/execveat.2:28
20227 msgid "execveat - execute program relative to a directory file descriptor"
20228 msgstr ""
20229
20230 #. type: Plain text
20231 #: build/C/man2/execveat.2:32
20232 msgid "B<int execveat(int >I<dirfd>B<, const char *>I<pathname>B<,>"
20233 msgstr ""
20234
20235 #. type: Plain text
20236 #: build/C/man2/execveat.2:34
20237 msgid "B< char *const >I<argv>B<[], char *const >I<envp>B<[],>"
20238 msgstr ""
20239
20240 #. type: Plain text
20241 #: build/C/man2/execveat.2:36
20242 msgid "B< int >I<flags>B<);>"
20243 msgstr ""
20244
20245 #.  commit 51f39a1f0cea1cacf8c787f652f26dfee9611874
20246 #. type: Plain text
20247 #: build/C/man2/execveat.2:47
20248 msgid ""
20249 "The B<execveat>()  system call executes the program referred to by the "
20250 "combination of I<dirfd> and I<pathname>.  It operates in exactly the same "
20251 "way as B<execve>(2), except for the differences described in this manual "
20252 "page."
20253 msgstr ""
20254
20255 #. type: Plain text
20256 #: build/C/man2/execveat.2:57
20257 msgid ""
20258 "If the pathname given in I<pathname> is relative, then it is interpreted "
20259 "relative to the directory referred to by the file descriptor I<dirfd> "
20260 "(rather than relative to the current working directory of the calling "
20261 "process, as is done by B<execve>(2)  for a relative pathname)."
20262 msgstr ""
20263
20264 #. type: Plain text
20265 #: build/C/man2/execveat.2:69
20266 msgid ""
20267 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
20268 "then I<pathname> is interpreted relative to the current working directory of "
20269 "the calling process (like B<execve>(2))."
20270 msgstr ""
20271
20272 #. type: Plain text
20273 #: build/C/man2/execveat.2:85
20274 msgid ""
20275 "If I<pathname> is an empty string and the B<AT_EMPTY_PATH> flag is "
20276 "specified, then the file descriptor I<dirfd> specifies the file to be "
20277 "executed (i.e., I<dirfd> refers to an executable file, rather than a "
20278 "directory)."
20279 msgstr ""
20280
20281 #. type: Plain text
20282 #: build/C/man2/execveat.2:89
20283 msgid ""
20284 "The I<flags> argument is a bit mask that can include zero or more of the "
20285 "following flags:"
20286 msgstr ""
20287
20288 #. type: TP
20289 #: build/C/man2/execveat.2:89
20290 #, no-wrap
20291 msgid "B<AT_EMPTY_PATH>"
20292 msgstr ""
20293
20294 #. type: Plain text
20295 #: build/C/man2/execveat.2:99
20296 msgid ""
20297 "If I<pathname> is an empty string, operate on the file referred to by "
20298 "I<dirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> "
20299 "flag)."
20300 msgstr ""
20301
20302 #. type: Plain text
20303 #: build/C/man2/execveat.2:107
20304 msgid ""
20305 "If the file identified by I<dirfd> and a non-NULL I<pathname> is a symbolic "
20306 "link, then the call fails with the error B<ELOOP>."
20307 msgstr ""
20308
20309 #. type: Plain text
20310 #: build/C/man2/execveat.2:114
20311 msgid ""
20312 "On success, B<execveat>()  does not return.  On error, -1 is returned, and "
20313 "I<errno> is set appropriately."
20314 msgstr ""
20315
20316 #. type: Plain text
20317 #: build/C/man2/execveat.2:121
20318 msgid ""
20319 "The same errors that occur for B<execve>(2)  can also occur for "
20320 "B<execveat>().  The following additional errors can occur for B<execveat>():"
20321 msgstr ""
20322
20323 #. type: Plain text
20324 #: build/C/man2/execveat.2:139
20325 msgid ""
20326 "I<flags> includes B<AT_SYMLINK_NOFOLLOW> and the file identified by I<dirfd> "
20327 "and a non-NULL I<pathname> is a symbolic link."
20328 msgstr ""
20329
20330 #. type: Plain text
20331 #: build/C/man2/execveat.2:153
20332 msgid ""
20333 "The program identified by I<dirfd> and I<pathname> requires the use of an "
20334 "interpreter program (such as a script starting with \"#!\"), but the file "
20335 "descriptor I<dirfd> was opened with the B<O_CLOEXEC> flag, with the result "
20336 "that the program file is inaccessible to the launched interpreter.  See "
20337 "BUGS."
20338 msgstr ""
20339
20340 #.  FIXME . check for glibc support in a future release
20341 #. type: Plain text
20342 #: build/C/man2/execveat.2:164
20343 msgid ""
20344 "B<execveat>()  was added to Linux in kernel 3.19.  GNU C library support is "
20345 "pending."
20346 msgstr ""
20347
20348 #. type: Plain text
20349 #: build/C/man2/execveat.2:168
20350 msgid "The B<execveat>()  system call is Linux-specific."
20351 msgstr ""
20352
20353 #. type: Plain text
20354 #: build/C/man2/execveat.2:178
20355 msgid ""
20356 "In addition to the reasons explained in B<openat>(2), the B<execveat>()  "
20357 "system call is also needed to allow B<fexecve>(3)  to be implemented on "
20358 "systems that do not have the I</proc> filesystem mounted."
20359 msgstr ""
20360
20361 #. type: Plain text
20362 #: build/C/man2/execveat.2:201
20363 msgid ""
20364 "When asked to execute a script file, the I<argv[0]> that is passed to the "
20365 "script interpreter is a string of the form I</dev/fd/N> or I</dev/fd/N/P>, "
20366 "where I<N> is the number of the file descriptor passed via the I<dirfd> "
20367 "argument.  A string of the first form occurs when B<AT_EMPTY_PATH> is "
20368 "employed.  A string of the second form occurs when the script is specified "
20369 "via both I<dirfd> and I<pathname>; in this case, I<P> is the value given in "
20370 "I<pathname>."
20371 msgstr ""
20372
20373 #. type: Plain text
20374 #: build/C/man2/execveat.2:209
20375 msgid ""
20376 "For the same reasons described in B<fexecve>(3), the natural idiom when "
20377 "using B<execveat>(2)  is to set the close-on-exec flag on I<dirfd>.  (But "
20378 "see BUGS.)"
20379 msgstr ""
20380
20381 #. type: Plain text
20382 #: build/C/man2/execveat.2:214
20383 msgid ""
20384 "The B<ENOENT> error described above means that it is not possible to set the "
20385 "close-on-exec flag on the file descriptor given to a call of the form:"
20386 msgstr ""
20387
20388 #. type: Plain text
20389 #: build/C/man2/execveat.2:216
20390 #, no-wrap
20391 msgid "    execveat(fd, \"\", argv, envp, AT_EMPTY_PATH);\n"
20392 msgstr ""
20393
20394 #.  For an example, see Michael Kerrisk's 2015-01-10 reply in this LKML
20395 #.  thread (http://thread.gmane.org/gmane.linux.kernel/1836105/focus=20229):
20396 #
20397 #.      Subject: [PATCHv10 man-pages 5/5] execveat.2: initial man page.\"                        for execveat(2
20398 #.      Date: Mon, 24 Nov 2014 11:53:59 +0000
20399 #. type: Plain text
20400 #: build/C/man2/execveat.2:228
20401 msgid ""
20402 "However, the inability to set the close-on-exec flag means that a file "
20403 "descriptor referring to the script leaks through to the script itself.  As "
20404 "well as wasting a file descriptor, this leakage can lead to file-descriptor "
20405 "exhaustion in scenarios where scripts recursively employ B<execveat>()."
20406 msgstr ""
20407
20408 #. type: Plain text
20409 #: build/C/man2/execveat.2:231
20410 msgid "B<execve>(2), B<openat>(2), B<fexecve>(3)"
20411 msgstr ""