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.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-03-22 04:26+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"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man2/_syscall.2:38
26 #: build/C/man2/_syscall.2:38
32 #: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:30 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man2/dup.2:36 build/C/man7/environ.7:33 build/C/man2/execve.2:37 build/C/man2/exit_group.2:23 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:34 build/C/man2/fork.2:39 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:6 build/C/man2/getdomainname.2:29 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:23 build/C/man2/gettid.2:26 build/C/man2/idle.2:32 build/C/man2/ioctl.2:39 build/C/man2/ioctl_list.2:27 build/C/man2/ioperm.2:35 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:9 build/C/man2/nice.2:31 build/C/man2/pread.2:23 build/C/man2/set_thread_area.2:7 build/C/man2/setup.2:34 build/C/man2/swapon.2:37 build/C/man2/syscall.2:38 build/C/man2/syscalls.2:29 build/C/man2/sysctl.2:28 build/C/man2/sysinfo.2:14 build/C/man2/truncate.2:41 build/C/man2/umask.2:34 build/C/man2/uname.2:25 build/C/man2/uselib.2:31 build/C/man2/vfork.2:26 build/C/man2/vhangup.2:27
38 #: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:30 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man3/confstr.3:29 build/C/man3/crypt.3:35 build/C/man3/daemon.3:34 build/C/man3/des_crypt.3:10 build/C/man2/dup.2:36 build/C/man3/encrypt.3:24 build/C/man7/environ.7:33 build/C/man3/euidaccess.3:26 build/C/man3/exec.3:39 build/C/man2/execve.2:37 build/C/man2/exit_group.2:23 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:34 build/C/man2/fork.2:39 build/C/man3/fpathconf.3:24 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:6 build/C/man3/getcwd.3:30 build/C/man2/getdomainname.2:29 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:39 build/C/man2/getpagesize.2:23 build/C/man2/gettid.2:26 build/C/man3/getumask.3:26 build/C/man3/getusershell.3:28 build/C/man2/idle.2:32 build/C/man2/ioctl.2:39 build/C/man2/ioctl_list.2:27 build/C/man2/ioperm.2:35 build/C/man3/lockf.3:22 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:9 build/C/man2/nice.2:31 build/C/man2/pread.2:23 build/C/man2/set_thread_area.2:7 build/C/man2/setup.2:34 build/C/man5/shells.5:27 build/C/man3/sleep.3:24 build/C/man3/swab.3:29 build/C/man2/swapon.2:37 build/C/man2/syscall.2:38 build/C/man2/syscalls.2:29 build/C/man3/sysconf.3:25 build/C/man2/sysctl.2:28 build/C/man2/sysinfo.2:14 build/C/man3/tcgetpgrp.3:23 build/C/man2/truncate.2:41 build/C/man3/ualarm.3:23 build/C/man2/umask.2:34 build/C/man2/uname.2:25 build/C/man2/uselib.2:31 build/C/man3/usleep.3:31 build/C/man2/vfork.2:26 build/C/man2/vhangup.2:27
40 msgid "Linux Programmer's Manual"
44 #: build/C/man2/_syscall.2:39 build/C/man2/access.2:44 build/C/man2/alarm.2:31 build/C/man2/brk.2:31 build/C/man2/chdir.2:34 build/C/man2/chmod.2:32 build/C/man2/chown.2:39 build/C/man2/chroot.2:34 build/C/man2/close.2:36 build/C/man3/confstr.3:30 build/C/man3/crypt.3:36 build/C/man3/daemon.3:35 build/C/man3/des_crypt.3:11 build/C/man2/dup.2:37 build/C/man3/encrypt.3:25 build/C/man7/environ.7:34 build/C/man3/euidaccess.3:27 build/C/man3/exec.3:40 build/C/man2/execve.2:38 build/C/man2/exit_group.2:24 build/C/man2/fcntl.2:62 build/C/man3/fexecve.3:26 build/C/man2/flock.2:35 build/C/man2/fork.2:40 build/C/man3/fpathconf.3:25 build/C/man2/fsync.2:39 build/C/man2/get_thread_area.2:7 build/C/man3/getcwd.3:31 build/C/man2/getdomainname.2:30 build/C/man2/getdtablesize.2:28 build/C/man3/gethostid.3:30 build/C/man2/gethostname.2:33 build/C/man3/getlogin.3:29 build/C/man3/getopt.3:40 build/C/man2/getpagesize.2:24 build/C/man2/gettid.2:27 build/C/man3/getumask.3:27 build/C/man3/getusershell.3:29 build/C/man2/idle.2:33 build/C/man2/ioctl.2:40 build/C/man2/ioctl_list.2:28 build/C/man2/ioperm.2:36 build/C/man3/lockf.3:23 build/C/man2/mincore.2:35 build/C/man2/mkdir.2:10 build/C/man2/nice.2:32 build/C/man2/pread.2:24 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:35 build/C/man5/shells.5:28 build/C/man3/sleep.3:25 build/C/man3/swab.3:30 build/C/man2/swapon.2:38 build/C/man2/syscall.2:39 build/C/man2/syscalls.2:30 build/C/man3/sysconf.3:26 build/C/man2/sysctl.2:29 build/C/man2/sysinfo.2:15 build/C/man3/tcgetpgrp.3:24 build/C/man2/truncate.2:42 build/C/man3/ualarm.3:24 build/C/man2/umask.2:35 build/C/man2/uname.2:26 build/C/man2/uselib.2:32 build/C/man3/usleep.3:32 build/C/man2/vfork.2:27 build/C/man2/vhangup.2:28
50 #: build/C/man2/_syscall.2:41
51 msgid "_syscall - invoking a system call without library support (OBSOLETE)"
55 #: build/C/man2/_syscall.2:41 build/C/man2/access.2:46 build/C/man2/alarm.2:33 build/C/man2/brk.2:33 build/C/man2/chdir.2:36 build/C/man2/chmod.2:34 build/C/man2/chown.2:41 build/C/man2/chroot.2:36 build/C/man2/close.2:38 build/C/man3/confstr.3:32 build/C/man3/crypt.3:38 build/C/man3/daemon.3:37 build/C/man3/des_crypt.3:14 build/C/man2/dup.2:39 build/C/man3/encrypt.3:27 build/C/man7/environ.7:36 build/C/man3/euidaccess.3:29 build/C/man3/exec.3:42 build/C/man2/execve.2:40 build/C/man2/exit_group.2:26 build/C/man2/fcntl.2:64 build/C/man3/fexecve.3:28 build/C/man2/flock.2:37 build/C/man2/fork.2:42 build/C/man3/fpathconf.3:27 build/C/man2/fsync.2:41 build/C/man2/get_thread_area.2:9 build/C/man3/getcwd.3:33 build/C/man2/getdomainname.2:32 build/C/man2/getdtablesize.2:30 build/C/man3/gethostid.3:32 build/C/man2/gethostname.2:35 build/C/man3/getlogin.3:31 build/C/man3/getopt.3:43 build/C/man2/getpagesize.2:26 build/C/man2/gettid.2:29 build/C/man3/getumask.3:29 build/C/man3/getusershell.3:31 build/C/man2/idle.2:35 build/C/man2/ioctl.2:42 build/C/man2/ioperm.2:38 build/C/man3/lockf.3:25 build/C/man2/mincore.2:37 build/C/man2/mkdir.2:12 build/C/man2/nice.2:34 build/C/man2/pread.2:26 build/C/man2/set_thread_area.2:10 build/C/man2/setup.2:37 build/C/man3/sleep.3:27 build/C/man3/swab.3:32 build/C/man2/swapon.2:40 build/C/man2/syscall.2:41 build/C/man2/syscalls.2:32 build/C/man3/sysconf.3:28 build/C/man2/sysctl.2:31 build/C/man2/sysinfo.2:17 build/C/man3/tcgetpgrp.3:26 build/C/man2/truncate.2:44 build/C/man3/ualarm.3:26 build/C/man2/umask.2:37 build/C/man2/uname.2:28 build/C/man2/uselib.2:34 build/C/man3/usleep.3:34 build/C/man2/vfork.2:29 build/C/man2/vhangup.2:30
61 #: build/C/man2/_syscall.2:43 build/C/man2/get_thread_area.2:11 build/C/man2/set_thread_area.2:12
62 msgid "B<#include E<lt>linux/unistd.hE<gt>>"
66 #: build/C/man2/_syscall.2:45
67 msgid "A _syscall macro"
71 #: build/C/man2/_syscall.2:47
72 msgid "desired system call"
76 #: build/C/man2/_syscall.2:47 build/C/man2/access.2:52 build/C/man2/alarm.2:39 build/C/man2/brk.2:65 build/C/man2/chdir.2:59 build/C/man2/chmod.2:57 build/C/man2/chown.2:67 build/C/man2/chroot.2:63 build/C/man2/close.2:44 build/C/man3/confstr.3:46 build/C/man3/crypt.3:55 build/C/man3/daemon.3:49 build/C/man3/des_crypt.3:30 build/C/man2/dup.2:52 build/C/man3/encrypt.3:50 build/C/man7/environ.7:41 build/C/man3/euidaccess.3:37 build/C/man3/exec.3:70 build/C/man2/execve.2:46 build/C/man2/exit_group.2:32 build/C/man2/fcntl.2:71 build/C/man3/fexecve.3:53 build/C/man2/flock.2:41 build/C/man2/fork.2:46 build/C/man3/fpathconf.3:35 build/C/man2/fsync.2:61 build/C/man2/get_thread_area.2:15 build/C/man3/getcwd.3:73 build/C/man2/getdomainname.2:51 build/C/man2/getdtablesize.2:57 build/C/man3/gethostid.3:56 build/C/man2/gethostname.2:63 build/C/man3/getlogin.3:52 build/C/man3/getopt.3:77 build/C/man2/getpagesize.2:53 build/C/man2/gettid.2:35 build/C/man3/getumask.3:37 build/C/man3/getusershell.3:55 build/C/man2/idle.2:39 build/C/man2/ioctl.2:46 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:46 build/C/man3/lockf.3:42 build/C/man2/mincore.2:51 build/C/man2/mkdir.2:20 build/C/man2/nice.2:46 build/C/man2/pread.2:51 build/C/man2/set_thread_area.2:16 build/C/man2/setup.2:41 build/C/man5/shells.5:30 build/C/man3/sleep.3:33 build/C/man3/swab.3:39 build/C/man2/swapon.2:50 build/C/man2/syscall.2:49 build/C/man2/syscalls.2:34 build/C/man3/sysconf.3:34 build/C/man2/sysctl.2:39 build/C/man2/sysinfo.2:21 build/C/man3/tcgetpgrp.3:32 build/C/man2/truncate.2:77 build/C/man3/ualarm.3:57 build/C/man2/umask.2:43 build/C/man2/uname.2:32 build/C/man2/uselib.2:38 build/C/man3/usleep.3:65 build/C/man2/vfork.2:60 build/C/man2/vhangup.2:44
82 #: build/C/man2/_syscall.2:53
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. "
91 #: build/C/man2/_syscall.2:56
92 msgid "_syscallI<X>(I<type>,I<name>,I<type1>,I<arg1>,I<type2>,I<arg2>,...)"
96 #: build/C/man2/_syscall.2:59
101 #: build/C/man2/_syscall.2:62
102 msgid "I<X> is 0\\(en6, which are the number of arguments taken by the system call"
106 #: build/C/man2/_syscall.2:64
107 msgid "I<type> is the return type of the system call"
111 #: build/C/man2/_syscall.2:66
112 msgid "I<name> is the name of the system call"
116 #: build/C/man2/_syscall.2:68
117 msgid "I<typeN> is the Nth argument's type"
121 #: build/C/man2/_syscall.2:70
122 msgid "I<argN> is the name of the Nth argument"
126 #: build/C/man2/_syscall.2:75
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>."
134 #: build/C/man2/_syscall.2:75 build/C/man3/getlogin.3:130 build/C/man3/getusershell.3:79 build/C/man5/shells.5:41
140 #: build/C/man2/_syscall.2:77
141 msgid "I</usr/include/linux/unistd.h>"
145 #: build/C/man2/_syscall.2:77 build/C/man2/access.2:148 build/C/man2/alarm.2:61 build/C/man2/brk.2:115 build/C/man2/chdir.2:125 build/C/man2/chmod.2:218 build/C/man2/chown.2:181 build/C/man2/chroot.2:134 build/C/man2/close.2:84 build/C/man3/confstr.3:125 build/C/man3/crypt.3:162 build/C/man3/daemon.3:88 build/C/man3/des_crypt.3:130 build/C/man2/dup.2:170 build/C/man3/encrypt.3:118 build/C/man3/euidaccess.3:74 build/C/man3/exec.3:197 build/C/man2/execve.2:435 build/C/man2/exit_group.2:41 build/C/man2/fcntl.2:1136 build/C/man3/fexecve.3:94 build/C/man2/flock.2:137 build/C/man2/fork.2:187 build/C/man3/fpathconf.3:152 build/C/man2/fsync.2:126 build/C/man2/get_thread_area.2:41 build/C/man3/getcwd.3:206 build/C/man2/getdomainname.2:110 build/C/man2/getdtablesize.2:69 build/C/man3/gethostid.3:92 build/C/man2/gethostname.2:124 build/C/man3/getlogin.3:138 build/C/man3/getopt.3:316 build/C/man2/getpagesize.2:62 build/C/man2/gettid.2:55 build/C/man3/getumask.3:56 build/C/man3/getusershell.3:83 build/C/man2/idle.2:61 build/C/man2/ioctl.2:115 build/C/man2/ioperm.2:95 build/C/man3/lockf.3:148 build/C/man2/mincore.2:134 build/C/man2/mkdir.2:113 build/C/man2/nice.2:75 build/C/man2/pread.2:113 build/C/man2/set_thread_area.2:59 build/C/man2/setup.2:62 build/C/man3/sleep.3:42 build/C/man3/swab.3:56 build/C/man2/swapon.2:151 build/C/man3/sysconf.3:322 build/C/man2/sysctl.2:95 build/C/man2/sysinfo.2:83 build/C/man3/tcgetpgrp.3:104 build/C/man2/truncate.2:193 build/C/man3/ualarm.3:91 build/C/man2/umask.2:93 build/C/man2/uname.2:71 build/C/man2/uselib.2:76 build/C/man3/usleep.3:84 build/C/man2/vfork.2:157 build/C/man2/vhangup.2:62
147 msgid "CONFORMING TO"
151 #: build/C/man2/_syscall.2:79
152 msgid "The use of these macros is Linux-specific, and deprecated."
156 #: build/C/man2/_syscall.2:79 build/C/man2/access.2:150 build/C/man2/alarm.2:63 build/C/man2/brk.2:123 build/C/man2/chdir.2:127 build/C/man2/chown.2:192 build/C/man2/chroot.2:139 build/C/man2/close.2:87 build/C/man3/crypt.3:167 build/C/man3/daemon.3:94 build/C/man2/dup.2:180 build/C/man3/encrypt.3:129 build/C/man3/euidaccess.3:80 build/C/man3/exec.3:203 build/C/man2/execve.2:443 build/C/man2/exit_group.2:43 build/C/man2/fcntl.2:1186 build/C/man3/fexecve.3:98 build/C/man2/flock.2:146 build/C/man2/fork.2:189 build/C/man3/fpathconf.3:154 build/C/man2/fsync.2:141 build/C/man2/get_thread_area.2:45 build/C/man3/getcwd.3:228 build/C/man2/getdomainname.2:113 build/C/man2/getdtablesize.2:77 build/C/man3/gethostid.3:102 build/C/man2/gethostname.2:130 build/C/man3/getopt.3:348 build/C/man2/getpagesize.2:69 build/C/man2/gettid.2:59 build/C/man3/getumask.3:58 build/C/man2/ioctl.2:130 build/C/man2/ioperm.2:99 build/C/man2/mkdir.2:116 build/C/man2/nice.2:82 build/C/man2/pread.2:115 build/C/man2/set_thread_area.2:63 build/C/man2/setup.2:65 build/C/man2/swapon.2:157 build/C/man2/syscall.2:63 build/C/man2/syscalls.2:594 build/C/man2/sysctl.2:109 build/C/man3/tcgetpgrp.3:106 build/C/man2/truncate.2:206 build/C/man3/ualarm.3:99 build/C/man2/umask.2:95 build/C/man2/uname.2:80 build/C/man2/uselib.2:80 build/C/man3/usleep.3:102 build/C/man2/vfork.2:172
162 #: build/C/man2/_syscall.2:89
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.)"
171 #: build/C/man2/_syscall.2:93
173 "The _syscall() macros I<do not> produce a prototype. You may have to create "
174 "one, especially for C++ users."
178 #: build/C/man2/_syscall.2:105
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 "-B<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 "
189 #. The preferred way to invoke system calls that glibc does not know
192 #. However, this mechanism can only be used if using a libc
193 #. (such as glibc) that supports
196 #. .I <sys/syscall.h>
197 #. header file contains the required SYS_foo definition.
198 #. Otherwise, the use of a _syscall macro is required.
200 #: build/C/man2/_syscall.2:119
202 "When defining a system call, the argument types I<must> be passed by-value "
203 "or by-pointer (for aggregates like structs)."
207 #: build/C/man2/_syscall.2:119 build/C/man2/chown.2:288 build/C/man3/confstr.3:127 build/C/man3/encrypt.3:131 build/C/man2/execve.2:527 build/C/man2/fork.2:220 build/C/man3/getopt.3:374 build/C/man5/shells.5:43 build/C/man2/syscall.2:67 build/C/man2/sysctl.2:129
213 #: build/C/man2/_syscall.2:126
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 "
221 "#include E<lt>linux/kernel.hE<gt> /* for struct sysinfo */\n"
225 #: build/C/man2/_syscall.2:128
227 msgid "_syscall1(int, sysinfo, struct sysinfo *, info);\n"
231 #: build/C/man2/_syscall.2:131
234 "/* Note: if you copy directly from the nroff source, remember to\n"
235 "REMOVE the extra backslashes in the printf statement. */\n"
239 #: build/C/man2/_syscall.2:137
245 " struct sysinfo s_info;\n"
250 #: build/C/man2/_syscall.2:152
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 "
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"
266 " exit(EXIT_SUCCESS);\n"
271 #: build/C/man2/_syscall.2:153
273 msgid "Sample Output"
277 #: build/C/man2/_syscall.2:162
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"
290 #: build/C/man2/_syscall.2:163 build/C/man2/access.2:241 build/C/man2/alarm.2:81 build/C/man2/brk.2:165 build/C/man2/chdir.2:136 build/C/man2/chmod.2:220 build/C/man2/chown.2:336 build/C/man2/chroot.2:151 build/C/man2/close.2:125 build/C/man3/confstr.3:144 build/C/man3/crypt.3:228 build/C/man3/daemon.3:102 build/C/man3/des_crypt.3:133 build/C/man2/dup.2:207 build/C/man3/encrypt.3:155 build/C/man7/environ.7:227 build/C/man3/euidaccess.3:95 build/C/man3/exec.3:239 build/C/man2/execve.2:622 build/C/man2/exit_group.2:47 build/C/man2/fcntl.2:1287 build/C/man3/fexecve.3:106 build/C/man2/flock.2:200 build/C/man2/fork.2:225 build/C/man3/fpathconf.3:163 build/C/man2/fsync.2:163 build/C/man2/get_thread_area.2:49 build/C/man3/getcwd.3:247 build/C/man2/getdomainname.2:127 build/C/man2/getdtablesize.2:90 build/C/man3/gethostid.3:124 build/C/man2/gethostname.2:176 build/C/man3/getlogin.3:193 build/C/man3/getopt.3:512 build/C/man2/getpagesize.2:106 build/C/man2/gettid.2:68 build/C/man3/getumask.3:61 build/C/man3/getusershell.3:85 build/C/man2/ioctl.2:138 build/C/man2/ioctl_list.2:866 build/C/man2/ioperm.2:108 build/C/man3/lockf.3:150 build/C/man2/mincore.2:166 build/C/man2/mkdir.2:128 build/C/man2/nice.2:105 build/C/man2/pread.2:131 build/C/man2/set_thread_area.2:67 build/C/man5/shells.5:52 build/C/man3/sleep.3:59 build/C/man3/swab.3:58 build/C/man2/swapon.2:191 build/C/man2/syscall.2:82 build/C/man2/syscalls.2:817 build/C/man3/sysconf.3:333 build/C/man2/sysctl.2:167 build/C/man2/sysinfo.2:94 build/C/man3/tcgetpgrp.3:115 build/C/man2/truncate.2:249 build/C/man3/ualarm.3:134 build/C/man2/umask.2:116 build/C/man2/uname.2:155 build/C/man2/uselib.2:102 build/C/man3/usleep.3:135 build/C/man2/vfork.2:270 build/C/man2/vhangup.2:65
296 #: build/C/man2/_syscall.2:167
297 msgid "B<intro>(2), B<syscall>(2), B<errno>(3)"
301 #: build/C/man2/_syscall.2:167 build/C/man2/access.2:252 build/C/man2/alarm.2:90 build/C/man2/brk.2:170 build/C/man2/chdir.2:140 build/C/man2/chmod.2:227 build/C/man2/chown.2:342 build/C/man2/chroot.2:154 build/C/man2/close.2:132 build/C/man3/confstr.3:148 build/C/man3/crypt.3:234 build/C/man3/daemon.3:105 build/C/man3/des_crypt.3:137 build/C/man2/dup.2:211 build/C/man3/encrypt.3:160 build/C/man7/environ.7:241 build/C/man3/euidaccess.3:106 build/C/man3/exec.3:246 build/C/man2/execve.2:633 build/C/man2/exit_group.2:49 build/C/man2/fcntl.2:1309 build/C/man3/fexecve.3:108 build/C/man2/flock.2:214 build/C/man2/fork.2:235 build/C/man3/fpathconf.3:168 build/C/man2/fsync.2:172 build/C/man2/get_thread_area.2:52 build/C/man3/getcwd.3:254 build/C/man2/getdomainname.2:131 build/C/man2/getdtablesize.2:95 build/C/man3/gethostid.3:127 build/C/man2/gethostname.2:180 build/C/man3/getlogin.3:197 build/C/man3/getopt.3:514 build/C/man2/getpagesize.2:109 build/C/man2/gettid.2:72 build/C/man3/getumask.3:63 build/C/man3/getusershell.3:87 build/C/man2/idle.2:64 build/C/man2/ioctl.2:146 build/C/man2/ioctl_list.2:868 build/C/man2/ioperm.2:111 build/C/man3/lockf.3:166 build/C/man2/mincore.2:169 build/C/man2/mkdir.2:140 build/C/man2/nice.2:112 build/C/man2/pread.2:136 build/C/man2/set_thread_area.2:69 build/C/man2/setup.2:72 build/C/man5/shells.5:55 build/C/man3/sleep.3:64 build/C/man3/swab.3:60 build/C/man2/swapon.2:195 build/C/man2/syscall.2:86 build/C/man2/syscalls.2:821 build/C/man3/sysconf.3:341 build/C/man2/sysctl.2:169 build/C/man2/sysinfo.2:96 build/C/man3/tcgetpgrp.3:119 build/C/man2/truncate.2:253 build/C/man3/ualarm.3:142 build/C/man2/umask.2:122 build/C/man2/uname.2:159 build/C/man2/uselib.2:112 build/C/man3/usleep.3:144 build/C/man2/vfork.2:276 build/C/man2/vhangup.2:68
307 #: build/C/man2/_syscall.2:174 build/C/man2/access.2:259 build/C/man2/alarm.2:97 build/C/man2/brk.2:177 build/C/man2/chdir.2:147 build/C/man2/chmod.2:234 build/C/man2/chown.2:349 build/C/man2/chroot.2:161 build/C/man2/close.2:139 build/C/man3/confstr.3:155 build/C/man3/crypt.3:241 build/C/man3/daemon.3:112 build/C/man3/des_crypt.3:144 build/C/man2/dup.2:218 build/C/man3/encrypt.3:167 build/C/man7/environ.7:248 build/C/man3/euidaccess.3:113 build/C/man3/exec.3:253 build/C/man2/execve.2:640 build/C/man2/exit_group.2:56 build/C/man2/fcntl.2:1316 build/C/man3/fexecve.3:115 build/C/man2/flock.2:221 build/C/man2/fork.2:242 build/C/man3/fpathconf.3:175 build/C/man2/fsync.2:179 build/C/man2/get_thread_area.2:59 build/C/man3/getcwd.3:261 build/C/man2/getdomainname.2:138 build/C/man2/getdtablesize.2:102 build/C/man3/gethostid.3:134 build/C/man2/gethostname.2:187 build/C/man3/getlogin.3:204 build/C/man3/getopt.3:521 build/C/man2/getpagesize.2:116 build/C/man2/gettid.2:79 build/C/man3/getumask.3:70 build/C/man3/getusershell.3:94 build/C/man2/idle.2:71 build/C/man2/ioctl.2:153 build/C/man2/ioctl_list.2:875 build/C/man2/ioperm.2:118 build/C/man3/lockf.3:173 build/C/man2/mincore.2:176 build/C/man2/mkdir.2:147 build/C/man2/nice.2:119 build/C/man2/pread.2:143 build/C/man2/set_thread_area.2:76 build/C/man2/setup.2:79 build/C/man5/shells.5:62 build/C/man3/sleep.3:71 build/C/man3/swab.3:67 build/C/man2/swapon.2:202 build/C/man2/syscall.2:93 build/C/man2/syscalls.2:828 build/C/man3/sysconf.3:348 build/C/man2/sysctl.2:176 build/C/man2/sysinfo.2:103 build/C/man3/tcgetpgrp.3:126 build/C/man2/truncate.2:260 build/C/man3/ualarm.3:149 build/C/man2/umask.2:129 build/C/man2/uname.2:166 build/C/man2/uselib.2:119 build/C/man3/usleep.3:151 build/C/man2/vfork.2:283 build/C/man2/vhangup.2:75
309 "This page is part of release 3.37 of the Linux I<man-pages> project. A "
310 "description of the project, and information about reporting bugs, can be "
311 "found at http://www.kernel.org/doc/man-pages/."
315 #: build/C/man2/access.2:43
321 #: build/C/man2/access.2:43
327 #: build/C/man2/access.2:46
328 msgid "access - check real user's permissions for a file"
332 #: build/C/man2/access.2:49 build/C/man2/alarm.2:36 build/C/man2/close.2:41 build/C/man3/confstr.3:35 build/C/man3/crypt.3:43 build/C/man2/dup.2:42 build/C/man3/fexecve.3:31 build/C/man3/fpathconf.3:30 build/C/man3/getcwd.3:36 build/C/man3/getopt.3:46 build/C/man3/getusershell.3:34 build/C/man3/sleep.3:30 build/C/man3/sysconf.3:31 build/C/man2/sysctl.2:34 build/C/man3/ualarm.3:29 build/C/man3/usleep.3:37
334 msgid "B<#include E<lt>unistd.hE<gt>>\n"
338 #: build/C/man2/access.2:51
340 msgid "B<int access(const char *>I<pathname>B<, int >I<mode>B<);>\n"
344 #: build/C/man2/access.2:59
346 "B<access>() checks whether the calling process can access the file "
347 "I<pathname>. If I<pathname> is a symbolic link, it is dereferenced."
350 #. F_OK is defined as 0 on every system that I know of.
352 #: build/C/man2/access.2:73
354 "The I<mode> specifies the accessibility check(s) to be performed, and is "
355 "either the value B<F_OK>, or a mask consisting of the bitwise OR of one or "
356 "more of B<R_OK>, B<W_OK>, and B<X_OK>. B<F_OK> tests for the existence of "
357 "the file. B<R_OK>, B<W_OK>, and B<X_OK> test whether the file exists and "
358 "grants read, write, and execute permissions, respectively."
362 #: build/C/man2/access.2:82
364 "The check is done using the calling process's I<real> UID and GID, rather "
365 "than the effective IDs as is done when actually attempting an operation "
366 "(e.g., B<open>(2)) on the file. This allows set-user-ID programs to easily "
367 "determine the invoking user's authority."
371 #: build/C/man2/access.2:88
373 "If the calling process is privileged (i.e., its real UID is zero), then an "
374 "B<X_OK> check is successful for a regular file if execute permission is "
375 "enabled for any of the file owner, group, or other."
379 #: build/C/man2/access.2:88 build/C/man2/alarm.2:56 build/C/man2/brk.2:94 build/C/man2/chdir.2:70 build/C/man2/chmod.2:152 build/C/man2/chown.2:119 build/C/man2/chroot.2:90 build/C/man2/close.2:64 build/C/man3/confstr.3:92 build/C/man3/crypt.3:119 build/C/man3/daemon.3:70 build/C/man3/des_crypt.3:102 build/C/man2/dup.2:120 build/C/man3/encrypt.3:107 build/C/man3/euidaccess.3:59 build/C/man3/exec.3:181 build/C/man2/execve.2:340 build/C/man2/exit_group.2:37 build/C/man2/fcntl.2:1041 build/C/man3/fexecve.3:67 build/C/man2/flock.2:110 build/C/man2/fork.2:160 build/C/man3/fpathconf.3:143 build/C/man2/fsync.2:109 build/C/man2/get_thread_area.2:24 build/C/man3/getcwd.3:154 build/C/man2/getdomainname.2:75 build/C/man2/getdtablesize.2:61 build/C/man3/gethostid.3:71 build/C/man2/gethostname.2:89 build/C/man3/getlogin.3:95 build/C/man3/getopt.3:272 build/C/man2/gettid.2:47 build/C/man3/getusershell.3:75 build/C/man2/idle.2:52 build/C/man2/ioctl.2:81 build/C/man2/ioctl_list.2:103 build/C/man2/ioperm.2:73 build/C/man3/lockf.3:110 build/C/man2/mincore.2:94 build/C/man2/mkdir.2:47 build/C/man2/nice.2:56 build/C/man2/pread.2:77 build/C/man2/set_thread_area.2:40 build/C/man2/setup.2:53 build/C/man3/sleep.3:38 build/C/man3/swab.3:52 build/C/man2/swapon.2:108 build/C/man2/syscall.2:57 build/C/man3/sysconf.3:309 build/C/man2/sysctl.2:69 build/C/man2/sysinfo.2:74 build/C/man3/tcgetpgrp.3:59 build/C/man2/truncate.2:108 build/C/man3/ualarm.3:80 build/C/man2/umask.2:90 build/C/man2/uname.2:61 build/C/man2/uselib.2:48 build/C/man3/usleep.3:73 build/C/man2/vhangup.2:49
385 #: build/C/man2/access.2:96 build/C/man3/euidaccess.3:67
387 "On success (all requested permissions granted), zero is returned. On error "
388 "(at least one bit in I<mode> asked for a permission that is denied, or some "
389 "other error occurred), -1 is returned, and I<errno> is set appropriately."
393 #: build/C/man2/access.2:96 build/C/man2/chdir.2:75 build/C/man2/chmod.2:157 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/close.2:70 build/C/man3/confstr.3:119 build/C/man3/crypt.3:122 build/C/man2/dup.2:126 build/C/man3/encrypt.3:109 build/C/man3/euidaccess.3:67 build/C/man3/exec.3:188 build/C/man2/execve.2:346 build/C/man2/fcntl.2:1074 build/C/man3/fexecve.3:74 build/C/man2/flock.2:115 build/C/man2/fork.2:167 build/C/man2/fsync.2:114 build/C/man2/get_thread_area.2:30 build/C/man3/getcwd.3:170 build/C/man2/getdomainname.2:80 build/C/man2/getdtablesize.2:63 build/C/man3/gethostid.3:81 build/C/man2/gethostname.2:94 build/C/man3/getlogin.3:101 build/C/man2/gettid.2:49 build/C/man2/idle.2:55 build/C/man2/ioctl.2:90 build/C/man2/ioperm.2:78 build/C/man3/lockf.3:115 build/C/man2/mincore.2:101 build/C/man2/mkdir.2:52 build/C/man2/nice.2:61 build/C/man2/pread.2:87 build/C/man2/set_thread_area.2:45 build/C/man2/setup.2:56 build/C/man2/swapon.2:113 build/C/man2/sysctl.2:76 build/C/man2/sysinfo.2:79 build/C/man3/tcgetpgrp.3:81 build/C/man2/truncate.2:113 build/C/man3/ualarm.3:83 build/C/man2/uname.2:66 build/C/man2/uselib.2:53 build/C/man3/usleep.3:75 build/C/man2/vhangup.2:54
399 #: build/C/man2/access.2:99
400 msgid "B<access>() shall fail if:"
404 #: build/C/man2/access.2:99 build/C/man2/chdir.2:81 build/C/man2/chdir.2:117 build/C/man2/chmod.2:162 build/C/man2/chown.2:129 build/C/man2/chroot.2:98 build/C/man2/execve.2:354 build/C/man2/execve.2:361 build/C/man2/execve.2:364 build/C/man2/execve.2:367 build/C/man3/getcwd.3:171 build/C/man3/gethostid.3:84 build/C/man2/mkdir.2:53 build/C/man2/truncate.2:116 build/C/man2/uselib.2:59
410 #: build/C/man2/access.2:106
412 "The requested access would be denied to the file, or search permission is "
413 "denied for one of the directories in the path prefix of I<pathname>. (See "
414 "also B<path_resolution>(7).)"
418 #: build/C/man2/access.2:106 build/C/man2/chdir.2:94 build/C/man2/chmod.2:174 build/C/man2/chown.2:138 build/C/man2/chroot.2:112 build/C/man2/execve.2:388 build/C/man2/mkdir.2:71 build/C/man2/truncate.2:149
424 #: build/C/man2/access.2:110 build/C/man2/mkdir.2:75
425 msgid "Too many symbolic links were encountered in resolving I<pathname>."
429 #: build/C/man2/access.2:110 build/C/man2/chdir.2:98 build/C/man2/chmod.2:178 build/C/man2/chown.2:142 build/C/man2/chroot.2:116 build/C/man2/execve.2:396 build/C/man2/gethostname.2:109 build/C/man2/mkdir.2:79 build/C/man2/truncate.2:152
431 msgid "B<ENAMETOOLONG>"
435 #: build/C/man2/access.2:114
436 msgid "I<pathname> is too long."
440 #: build/C/man2/access.2:114 build/C/man2/chdir.2:102 build/C/man2/chmod.2:182 build/C/man2/chown.2:146 build/C/man2/chown.2:172 build/C/man2/chroot.2:120 build/C/man2/execve.2:403 build/C/man3/getcwd.3:196 build/C/man3/getlogin.3:120 build/C/man2/mkdir.2:82 build/C/man2/swapon.2:136 build/C/man2/truncate.2:156
446 #: build/C/man2/access.2:119
447 msgid "A component of I<pathname> does not exist or is a dangling symbolic link."
451 #: build/C/man2/access.2:119 build/C/man2/chdir.2:108 build/C/man2/chmod.2:188 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:417 build/C/man2/mkdir.2:99 build/C/man2/sysctl.2:83 build/C/man2/truncate.2:159
457 #: build/C/man2/access.2:124 build/C/man2/mkdir.2:104
458 msgid "A component used as a directory in I<pathname> is not, in fact, a directory."
462 #: build/C/man2/access.2:124 build/C/man2/chmod.2:197 build/C/man2/chmod.2:215 build/C/man2/chown.2:159 build/C/man2/chown.2:178 build/C/man2/mkdir.2:109 build/C/man2/truncate.2:168
468 #: build/C/man2/access.2:127
469 msgid "Write permission was requested for a file on a read-only file system."
473 #: build/C/man2/access.2:130
474 msgid "B<access>() may fail if:"
478 #: build/C/man2/access.2:130 build/C/man2/chdir.2:87 build/C/man2/chmod.2:167 build/C/man2/chown.2:134 build/C/man2/chroot.2:105 build/C/man2/execve.2:371 build/C/man2/fcntl.2:1096 build/C/man2/get_thread_area.2:31 build/C/man3/getcwd.3:174 build/C/man2/getdomainname.2:83 build/C/man2/gethostname.2:95 build/C/man2/ioctl.2:95 build/C/man2/mincore.2:104 build/C/man2/mkdir.2:68 build/C/man2/set_thread_area.2:49 build/C/man2/sysctl.2:77 build/C/man2/sysinfo.2:80 build/C/man2/truncate.2:122 build/C/man2/uname.2:67
484 #: build/C/man2/access.2:134 build/C/man2/mkdir.2:71
485 msgid "I<pathname> points outside your accessible address space."
489 #: build/C/man2/access.2:134 build/C/man3/confstr.3:120 build/C/man2/dup.2:151 build/C/man2/execve.2:375 build/C/man2/fcntl.2:1112 build/C/man3/fexecve.3:78 build/C/man2/flock.2:125 build/C/man2/get_thread_area.2:34 build/C/man3/getcwd.3:178 build/C/man2/getdomainname.2:87 build/C/man2/getdomainname.2:99 build/C/man2/gethostname.2:99 build/C/man2/ioctl.2:99 build/C/man2/ioperm.2:79 build/C/man3/lockf.3:141 build/C/man2/mincore.2:108 build/C/man2/set_thread_area.2:46 build/C/man2/swapon.2:121 build/C/man3/tcgetpgrp.3:86 build/C/man2/truncate.2:138 build/C/man2/truncate.2:189 build/C/man3/ualarm.3:87 build/C/man3/usleep.3:80
495 #: build/C/man2/access.2:138
496 msgid "I<mode> was incorrectly specified."
500 #: build/C/man2/access.2:138 build/C/man2/chdir.2:91 build/C/man2/chmod.2:171 build/C/man2/chmod.2:209 build/C/man2/chown.2:169 build/C/man2/chroot.2:109 build/C/man2/close.2:81 build/C/man2/execve.2:379 build/C/man2/fsync.2:119 build/C/man2/ioperm.2:85 build/C/man2/truncate.2:143
506 #: build/C/man2/access.2:141 build/C/man2/chdir.2:94 build/C/man2/chmod.2:174 build/C/man2/chroot.2:112 build/C/man2/close.2:84 build/C/man2/execve.2:382
507 msgid "An I/O error occurred."
511 #: build/C/man2/access.2:141 build/C/man2/chdir.2:105 build/C/man2/chmod.2:185 build/C/man2/chown.2:149 build/C/man2/chroot.2:123 build/C/man2/execve.2:414 build/C/man2/fork.2:183 build/C/man3/getlogin.3:123 build/C/man2/ioperm.2:88 build/C/man2/mincore.2:112 build/C/man2/mincore.2:124 build/C/man2/mkdir.2:87 build/C/man2/swapon.2:141
517 #: build/C/man2/access.2:144 build/C/man2/chdir.2:108 build/C/man2/chmod.2:188 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:417 build/C/man2/mkdir.2:90
518 msgid "Insufficient kernel memory was available."
522 #: build/C/man2/access.2:144 build/C/man2/execve.2:432 build/C/man2/truncate.2:171
528 #: build/C/man2/access.2:148
529 msgid "Write access was requested to an executable which is being executed."
533 #: build/C/man2/access.2:150 build/C/man2/close.2:87 build/C/man2/fork.2:189 build/C/man3/swab.3:58 build/C/man2/umask.2:95
534 msgid "SVr4, 4.3BSD, POSIX.1-2001."
538 #: build/C/man2/access.2:165
540 "B<Warning>: Using B<access>() to check if a user is authorized to, for "
541 "example, open a file before actually doing so using B<open>(2) creates a "
542 "security hole, because the user might exploit the short time interval "
543 "between checking and opening the file to manipulate it. B<For this reason, "
544 "the use of this system call should be avoided>. (In the example just "
545 "described, a safer alternative would be to temporarily switch the process's "
546 "effective user ID to the real ID and then call B<open>(2).)"
550 #: build/C/man2/access.2:172
552 "B<access>() always dereferences symbolic links. If you need to check the "
553 "permissions on a symbolic link, use B<faccessat(2)> with the flag "
554 "B<AT_SYMLINK_NOFOLLOW>."
558 #: build/C/man2/access.2:179
560 "B<access>() returns an error if any of the access types in I<mode> is "
561 "denied, even if some of the other access types in I<mode> are permitted."
564 #. HPU-UX 11 and Tru64 5.1 do this.
566 #: build/C/man2/access.2:186
568 "If the calling process has appropriate privileges (i.e., is superuser), "
569 "POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> "
570 "check even if none of the execute file permission bits are set. Linux does "
575 #: build/C/man2/access.2:194
577 "A file is only accessible if the permissions on each of the directories in "
578 "the path prefix of I<pathname> grant search (i.e., execute) access. If any "
579 "directory is inaccessible, then the B<access>() call will fail, regardless "
580 "of the permissions on the file itself."
584 #: build/C/man2/access.2:202
586 "Only access bits are checked, not the file type or contents. Therefore, if "
587 "a directory is found to be writable, it probably means that files can be "
588 "created in the directory, and not that the directory can be written as a "
589 "file. Similarly, a DOS file may be found to be \"executable,\" but the "
590 "B<execve>(2) call will still fail."
594 #: build/C/man2/access.2:207
596 "B<access>() may not work correctly on NFS file systems with UID mapping "
597 "enabled, because UID mapping is done on the server and hidden from the "
598 "client, which checks permissions."
602 #: build/C/man2/access.2:207 build/C/man7/environ.7:189 build/C/man2/fcntl.2:1229 build/C/man3/gethostid.3:122 build/C/man3/getlogin.3:161 build/C/man3/getopt.3:367 build/C/man2/mincore.2:144 build/C/man3/sleep.3:44 build/C/man3/sysconf.3:324 build/C/man2/sysctl.2:121 build/C/man2/truncate.2:241 build/C/man2/vfork.2:249
607 #. This behavior appears to have been an implementation accident.
609 #: build/C/man2/access.2:230
611 "In kernel 2.4 (and earlier) there is some strangeness in the handling of "
612 "B<X_OK> tests for superuser. If all categories of execute permission are "
613 "disabled for a nondirectory file, then the only B<access>() test that "
614 "returns -1 is when I<mode> is specified as just B<X_OK>; if B<R_OK> or "
615 "B<W_OK> is also specified in I<mode>, then B<access>() returns 0 for such "
616 "files. Early 2.6 kernels (up to and including 2.6.3) also behaved in the "
617 "same way as kernel 2.4."
621 #: build/C/man2/access.2:241
623 "In kernels before 2.6.20, B<access>() ignored the effect of the "
624 "B<MS_NOEXEC> flag if it was used to B<mount>(2) the underlying file "
625 "system. Since kernel 2.6.20, B<access>() honors this flag."
629 #: build/C/man2/access.2:252
631 "B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), B<setgid>(2), "
632 "B<setuid>(2), B<stat>(2), B<euidaccess>(3), B<credentials>(7), "
633 "B<path_resolution>(7)"
637 #: build/C/man2/alarm.2:30
643 #: build/C/man2/alarm.2:30
649 #: build/C/man2/alarm.2:33
650 msgid "alarm - set an alarm clock for delivery of a signal"
654 #: build/C/man2/alarm.2:38
656 msgid "B<unsigned int alarm(unsigned int >I<seconds>B<);>\n"
660 #: build/C/man2/alarm.2:46
662 "B<alarm>() arranges for a B<SIGALRM> signal to be delivered to the calling "
663 "process in I<seconds> seconds."
667 #: build/C/man2/alarm.2:52
668 msgid "If I<seconds> is zero, no new B<alarm>() is scheduled."
672 #: build/C/man2/alarm.2:56
673 msgid "In any event any previously set B<alarm>() is canceled."
677 #: build/C/man2/alarm.2:61
679 "B<alarm>() returns the number of seconds remaining until any previously "
680 "scheduled alarm was due to be delivered, or zero if there was no previously "
685 #: build/C/man2/alarm.2:63
686 msgid "SVr4, POSIX.1-2001, 4.3BSD."
690 #: build/C/man2/alarm.2:69
692 "B<alarm>() and B<setitimer>(2) share the same timer; calls to one will "
693 "interfere with use of the other."
697 #: build/C/man2/alarm.2:78
699 "B<sleep>(3) may be implemented using B<SIGALRM>; mixing calls to B<alarm>() "
700 "and B<sleep>(3) is a bad idea."
704 #: build/C/man2/alarm.2:81
706 "Scheduling delays can, as ever, cause the execution of the process to be "
707 "delayed by an arbitrary amount of time."
711 #: build/C/man2/alarm.2:90
713 "B<gettimeofday>(2), B<pause>(2), B<select>(2), B<setitimer>(2), "
714 "B<sigaction>(2), B<signal>(2), B<sleep>(3), B<time>(7)"
718 #: build/C/man2/brk.2:30
724 #: build/C/man2/brk.2:30 build/C/man2/chroot.2:33 build/C/man3/getcwd.3:30 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man3/ualarm.3:23
730 #: build/C/man2/brk.2:33
731 msgid "brk, sbrk - change data segment size"
735 #: build/C/man2/brk.2:35 build/C/man2/chdir.2:38 build/C/man2/chown.2:43 build/C/man2/chroot.2:38 build/C/man3/daemon.3:39 build/C/man3/encrypt.3:31 build/C/man3/exec.3:44 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/man2/getdtablesize.2:32 build/C/man3/gethostid.3:34 build/C/man2/gethostname.2:37 build/C/man3/getlogin.3:33 build/C/man2/getpagesize.2:28 build/C/man2/idle.2:37 build/C/man3/lockf.3:27 build/C/man2/mincore.2:39 build/C/man2/nice.2:36 build/C/man2/pread.2:28 build/C/man2/setup.2:39 build/C/man2/swapon.2:42 build/C/man3/tcgetpgrp.3:28 build/C/man2/truncate.2:46 build/C/man2/uselib.2:36 build/C/man2/vfork.2:33 build/C/man2/vhangup.2:32
736 msgid "B<#include E<lt>unistd.hE<gt>>"
740 #: build/C/man2/brk.2:37
741 msgid "B<int brk(void *>I<addr>B<);>"
745 #: build/C/man2/brk.2:39
746 msgid "B<void *sbrk(intptr_t >I<increment>B<);>"
750 #: build/C/man2/brk.2:43 build/C/man2/chdir.2:46 build/C/man2/chmod.2:44 build/C/man2/chown.2:53 build/C/man2/chroot.2:44 build/C/man3/confstr.3:42 build/C/man3/daemon.3:45 build/C/man3/exec.3:66 build/C/man3/fexecve.3:38 build/C/man2/fsync.2:51 build/C/man3/getcwd.3:47 build/C/man2/getdomainname.2:42 build/C/man2/getdtablesize.2:38 build/C/man3/gethostid.3:42 build/C/man2/gethostname.2:45 build/C/man3/getlogin.3:45 build/C/man3/getopt.3:67 build/C/man2/getpagesize.2:34 build/C/man3/getusershell.3:45 build/C/man3/lockf.3:33 build/C/man2/mincore.2:47 build/C/man2/nice.2:42 build/C/man2/pread.2:38 build/C/man2/truncate.2:56 build/C/man3/ualarm.3:36 build/C/man3/usleep.3:44 build/C/man2/vfork.2:39 build/C/man2/vhangup.2:38
751 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
755 #: build/C/man2/brk.2:47
756 msgid "B<brk>(), B<sbrk>():"
760 #: build/C/man2/brk.2:50 build/C/man3/getcwd.3:58 build/C/man2/getdtablesize.2:44 build/C/man2/getpagesize.2:40 build/C/man3/ualarm.3:42 build/C/man3/usleep.3:50 build/C/man2/vfork.2:45
762 msgid "Since glibc 2.12:"
766 #: build/C/man2/brk.2:57
769 "_BSD_SOURCE || _SVID_SOURCE ||\n"
770 " (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
771 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
772 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
776 #: build/C/man2/brk.2:62
778 "Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ "
779 "500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
783 #: build/C/man2/brk.2:77
785 "B<brk>() and B<sbrk>() change the location of the I<program break>, which "
786 "defines the end of the process's data segment (i.e., the program break is "
787 "the first location after the end of the uninitialized data segment). "
788 "Increasing the program break has the effect of allocating memory to the "
789 "process; decreasing the break deallocates memory."
793 #: build/C/man2/brk.2:84
795 "B<brk>() sets the end of the data segment to the value specified by "
796 "I<addr>, when that value is reasonable, the system has enough memory, and "
797 "the process does not exceed its maximum data size (see B<setrlimit>(2))."
801 #: build/C/man2/brk.2:94
803 "B<sbrk>() increments the program's data space by I<increment> bytes. "
804 "Calling B<sbrk>() with an I<increment> of 0 can be used to find the current "
805 "location of the program break."
809 #: build/C/man2/brk.2:103
811 "On success, B<brk>() returns zero. On error, -1 is returned, and I<errno> "
812 "is set to B<ENOMEM>. (But see I<Linux Notes> below.)"
816 #: build/C/man2/brk.2:115
818 "On success, B<sbrk>() returns the previous program break. (If the break "
819 "was increased, then this value is a pointer to the start of the newly "
820 "allocated memory). On error, I<(void\\ *)\\ -1> is returned, and I<errno> "
821 "is set to B<ENOMEM>."
828 #. are not defined in the C Standard and are deliberately excluded from the
829 #. POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
831 #: build/C/man2/brk.2:123
832 msgid "4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001."
836 #: build/C/man2/brk.2:132
838 "Avoid using B<brk>() and B<sbrk>(): the B<malloc>(3) memory allocation "
839 "package is the portable and comfortable way of allocating memory."
843 #. \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
844 #. \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
845 #. \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
846 #. \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
847 #. Tru64 5.1, glibc2.2).
849 #: build/C/man2/brk.2:142
851 "Various systems use various types for the argument of B<sbrk>(). Common are "
852 "I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>."
856 #: build/C/man2/brk.2:142 build/C/man2/vfork.2:211
862 #: build/C/man2/brk.2:158
864 "The return value described above for B<brk>() is the behavior provided by "
865 "the glibc wrapper function for the Linux B<brk>() system call. (On most "
866 "other implementations, the return value from B<brk>() is the same; this "
867 "return value was also specified in SUSv2.) However, the actual Linux system "
868 "call returns the new program break on success. On failure, the system call "
869 "returns the current break. The glibc wrapper function does some work (i.e., "
870 "checks whether the new break is less than I<addr>) to provide the 0 and -1 "
871 "return values described above."
875 #: build/C/man2/brk.2:165
877 "On Linux, B<sbrk>() is implemented as a library function that uses the "
878 "B<brk>() system call, and does some internal bookkeeping so that it can "
879 "return the old break value."
883 #: build/C/man2/brk.2:170
884 msgid "B<execve>(2), B<getrlimit>(2), B<end>(3), B<malloc>(3)"
888 #: build/C/man2/chdir.2:33
894 #: build/C/man2/chdir.2:33
900 #: build/C/man2/chdir.2:36
901 msgid "chdir, fchdir - change working directory"
905 #: build/C/man2/chdir.2:40
906 msgid "B<int chdir(const char *>I<path>B<);>"
910 #: build/C/man2/chdir.2:42
911 msgid "B<int fchdir(int >I<fd>B<);>"
915 #: build/C/man2/chdir.2:49
920 #: build/C/man2/chdir.2:54 build/C/man2/chmod.2:53 build/C/man2/chown.2:62 build/C/man3/gethostid.3:50 build/C/man2/truncate.2:64 build/C/man2/truncate.2:72
922 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
923 "_XOPEN_SOURCE_EXTENDED"
927 #: build/C/man2/chdir.2:56 build/C/man2/chmod.2:55 build/C/man2/chown.2:64 build/C/man2/pread.2:48 build/C/man2/truncate.2:66
928 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
932 #: build/C/man2/chdir.2:64
934 "B<chdir>() changes the current working directory of the calling process to "
935 "the directory specified in I<path>."
939 #: build/C/man2/chdir.2:70
941 "B<fchdir>() is identical to B<chdir>(); the only difference is that the "
942 "directory is given as an open file descriptor."
946 #: build/C/man2/chdir.2:75 build/C/man2/chmod.2:157 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/flock.2:115 build/C/man2/getdomainname.2:80 build/C/man2/gethostname.2:94 build/C/man2/ioperm.2:78 build/C/man3/lockf.3:115 build/C/man2/swapon.2:113 build/C/man2/sysinfo.2:79 build/C/man2/truncate.2:113 build/C/man2/uname.2:66 build/C/man2/uselib.2:53 build/C/man2/vhangup.2:54
948 "On success, zero is returned. On error, -1 is returned, and I<errno> is set "
953 #: build/C/man2/chdir.2:81
955 "Depending on the file system, other errors can be returned. The more "
956 "general errors for B<chdir>() are listed below:"
960 #: build/C/man2/chdir.2:87
962 "Search permission is denied for one of the components of I<path>. (See also "
963 "B<path_resolution>(7).)"
967 #: build/C/man2/chdir.2:91 build/C/man2/chmod.2:171 build/C/man2/chown.2:138 build/C/man2/chroot.2:109
968 msgid "I<path> points outside your accessible address space."
972 #: build/C/man2/chdir.2:98 build/C/man2/chmod.2:178 build/C/man2/chown.2:142 build/C/man2/chroot.2:116
973 msgid "Too many symbolic links were encountered in resolving I<path>."
977 #: build/C/man2/chdir.2:102 build/C/man2/chmod.2:182 build/C/man2/chown.2:146 build/C/man2/chroot.2:120
978 msgid "I<path> is too long."
982 #: build/C/man2/chdir.2:105 build/C/man2/chmod.2:185 build/C/man2/chown.2:149 build/C/man2/chroot.2:123
983 msgid "The file does not exist."
987 #: build/C/man2/chdir.2:113 build/C/man2/chroot.2:131
988 msgid "A component of I<path> is not a directory."
992 #: build/C/man2/chdir.2:117
993 msgid "The general errors for B<fchdir>() are listed below:"
997 #: build/C/man2/chdir.2:121
998 msgid "Search permission was denied on the directory open on I<fd>."
1002 #: build/C/man2/chdir.2:121 build/C/man2/chmod.2:204 build/C/man2/chown.2:166 build/C/man2/close.2:71 build/C/man2/dup.2:127 build/C/man2/fcntl.2:1082 build/C/man2/flock.2:116 build/C/man2/fsync.2:115 build/C/man2/ioctl.2:91 build/C/man3/lockf.3:124 build/C/man3/tcgetpgrp.3:82 build/C/man2/truncate.2:181
1008 #: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:86
1009 msgid "I<fd> is not a valid file descriptor."
1013 #: build/C/man2/chdir.2:127
1014 msgid "SVr4, 4.4BSD, POSIX.1-2001."
1018 #: build/C/man2/chdir.2:130
1020 "The current working directory is the starting point for interpreting "
1021 "relative pathnames (those not starting with \\(aq/\\(aq)."
1025 #: build/C/man2/chdir.2:136
1027 "A child process created via B<fork>(2) inherits its parent's current "
1028 "working directory. The current working directory is left unchanged by "
1033 #: build/C/man2/chdir.2:140
1034 msgid "B<chroot>(2), B<getcwd>(3), B<path_resolution>(7)"
1038 #: build/C/man2/chmod.2:31
1044 #: build/C/man2/chmod.2:31 build/C/man2/gethostname.2:32
1050 #: build/C/man2/chmod.2:34
1051 msgid "chmod, fchmod - change permissions of a file"
1055 #: build/C/man2/chmod.2:36 build/C/man3/getumask.3:35 build/C/man2/umask.2:41
1056 msgid "B<#include E<lt>sys/stat.hE<gt>>"
1060 #: build/C/man2/chmod.2:38
1061 msgid "B<int chmod(const char *>I<path>B<, mode_t >I<mode>B<);>"
1065 #: build/C/man2/chmod.2:40
1066 msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>"
1070 #: build/C/man2/chmod.2:49
1071 msgid "B<fchmod>():"
1075 #: build/C/man2/chmod.2:60
1077 "These system calls change the permissions of a file. They differ only in "
1078 "how the file is specified:"
1082 #: build/C/man2/chmod.2:60 build/C/man2/chmod.2:65 build/C/man2/chown.2:70 build/C/man2/chown.2:75 build/C/man2/chown.2:79 build/C/man2/chown.2:233 build/C/man2/chown.2:238 build/C/man2/chown.2:244 build/C/man2/dup.2:62 build/C/man2/dup.2:68 build/C/man2/dup.2:101 build/C/man2/dup.2:110 build/C/man2/execve.2:123 build/C/man2/execve.2:127 build/C/man2/execve.2:130 build/C/man2/execve.2:133 build/C/man2/execve.2:136 build/C/man2/execve.2:139 build/C/man2/execve.2:142 build/C/man2/execve.2:145 build/C/man2/execve.2:148 build/C/man2/execve.2:151 build/C/man2/execve.2:155 build/C/man2/execve.2:159 build/C/man2/execve.2:168 build/C/man2/execve.2:175 build/C/man2/execve.2:180 build/C/man2/execve.2:187 build/C/man2/execve.2:194 build/C/man2/execve.2:198 build/C/man2/execve.2:201 build/C/man2/execve.2:209 build/C/man2/execve.2:213 build/C/man2/execve.2:218 build/C/man2/fork.2:52 build/C/man2/fork.2:56 build/C/man2/fork.2:58 build/C/man2/fork.2:62 build/C/man2/fork.2:68 build/C/man2/fork.2:71 build/C/man2/fork.2:74 build/C/man2/fork.2:77 build/C/man2/fork.2:82 build/C/man2/fork.2:94 build/C/man2/fork.2:101 build/C/man2/fork.2:107 build/C/man2/fork.2:113 build/C/man2/fork.2:120 build/C/man2/fork.2:129 build/C/man2/fork.2:143 build/C/man2/fork.2:152 build/C/man2/syscalls.2:85 build/C/man2/syscalls.2:88 build/C/man2/syscalls.2:94 build/C/man2/syscalls.2:110 build/C/man2/syscalls.2:116 build/C/man2/syscalls.2:122 build/C/man2/syscalls.2:128 build/C/man2/syscalls.2:135 build/C/man2/syscalls.2:596 build/C/man2/syscalls.2:634 build/C/man2/syscalls.2:676 build/C/man2/syscalls.2:697 build/C/man2/syscalls.2:708 build/C/man2/syscalls.2:715 build/C/man2/syscalls.2:726 build/C/man2/syscalls.2:738 build/C/man2/syscalls.2:759 build/C/man2/syscalls.2:767 build/C/man2/vfork.2:191 build/C/man2/vfork.2:195
1088 #: build/C/man2/chmod.2:65
1090 "B<chmod>() changes the permissions of the file specified whose pathname is "
1091 "given in I<path>, which is dereferenced if it is a symbolic link."
1095 #: build/C/man2/chmod.2:69
1097 "B<fchmod>() changes the permissions of the file referred to by the open "
1098 "file descriptor I<fd>."
1102 #: build/C/man2/chmod.2:74
1104 "The new file permissions are specified in I<mode>, which is a bit mask "
1105 "created by ORing together zero or more of the following:"
1109 #: build/C/man2/chmod.2:74
1111 msgid "B<S_ISUID> (04000)"
1115 #: build/C/man2/chmod.2:78
1116 msgid "set-user-ID (set process effective user ID on B<execve>(2))"
1120 #: build/C/man2/chmod.2:78
1122 msgid "B<S_ISGID> (02000)"
1126 #: build/C/man2/chmod.2:88
1128 "set-group-ID (set process effective group ID on B<execve>(2); mandatory "
1129 "locking, as described in B<fcntl>(2); take a new file's group from parent "
1130 "directory, as described in B<chown>(2) and B<mkdir>(2))"
1134 #: build/C/man2/chmod.2:88
1136 msgid "B<S_ISVTX> (01000)"
1140 #: build/C/man2/chmod.2:92
1141 msgid "sticky bit (restricted deletion flag, as described in B<unlink>(2))"
1145 #: build/C/man2/chmod.2:92
1147 msgid "B<S_IRUSR> (00400)"
1151 #: build/C/man2/chmod.2:95
1152 msgid "read by owner"
1156 #: build/C/man2/chmod.2:95
1158 msgid "B<S_IWUSR> (00200)"
1162 #: build/C/man2/chmod.2:98
1163 msgid "write by owner"
1167 #: build/C/man2/chmod.2:98
1169 msgid "B<S_IXUSR> (00100)"
1173 #: build/C/man2/chmod.2:102
1175 "execute/search by owner (\"search\" applies for directories, and means that "
1176 "entries within the directory can be accessed)"
1180 #: build/C/man2/chmod.2:102
1182 msgid "B<S_IRGRP> (00040)"
1186 #: build/C/man2/chmod.2:105
1187 msgid "read by group"
1191 #: build/C/man2/chmod.2:105
1193 msgid "B<S_IWGRP> (00020)"
1197 #: build/C/man2/chmod.2:108
1198 msgid "write by group"
1202 #: build/C/man2/chmod.2:108
1204 msgid "B<S_IXGRP> (00010)"
1208 #: build/C/man2/chmod.2:111
1209 msgid "execute/search by group"
1213 #: build/C/man2/chmod.2:111
1215 msgid "B<S_IROTH> (00004)"
1219 #: build/C/man2/chmod.2:114
1220 msgid "read by others"
1224 #: build/C/man2/chmod.2:114
1226 msgid "B<S_IWOTH> (00002)"
1230 #: build/C/man2/chmod.2:117
1231 msgid "write by others"
1235 #: build/C/man2/chmod.2:117
1237 msgid "B<S_IXOTH> (00001)"
1241 #: build/C/man2/chmod.2:120
1242 msgid "execute/search by others"
1246 #: build/C/man2/chmod.2:125
1248 "The effective UID of the calling process must match the owner of the file, "
1249 "or the process must be privileged (Linux: it must have the B<CAP_FOWNER> "
1254 #: build/C/man2/chmod.2:134
1256 "If the calling process is not privileged (Linux: does not have the "
1257 "B<CAP_FSETID> capability), and the group of the file does not match the "
1258 "effective group ID of the process or one of its supplementary group IDs, the "
1259 "B<S_ISGID> bit will be turned off, but this will not cause an error to be "
1264 #: build/C/man2/chmod.2:146
1266 "As a security measure, depending on the file system, the set-user-ID and "
1267 "set-group-ID execution bits may be turned off if a file is written. (On "
1268 "Linux this occurs if the writing process does not have the B<CAP_FSETID> "
1269 "capability.) On some file systems, only the superuser can set the sticky "
1270 "bit, which may have a special meaning. For the sticky bit, and for "
1271 "set-user-ID and set-group-ID bits on directories, see B<stat>(2)."
1275 #: build/C/man2/chmod.2:152
1277 "On NFS file systems, restricting the permissions will immediately influence "
1278 "already open files, because the access control is done on the server, but "
1279 "open files are maintained by the client. Widening the permissions may be "
1280 "delayed for other clients if attribute caching is enabled on them."
1284 #: build/C/man2/chmod.2:162
1286 "Depending on the file system, other errors can be returned. The more "
1287 "general errors for B<chmod>() are listed below:"
1290 #. Also search permission is required on the final component,
1291 #. maybe just to guarantee that it is a directory?
1293 #: build/C/man2/chmod.2:167 build/C/man2/chown.2:134 build/C/man2/chroot.2:105
1295 "Search permission is denied on a component of the path prefix. (See also "
1296 "B<path_resolution>(7).)"
1300 #: build/C/man2/chmod.2:191 build/C/man2/chown.2:155 build/C/man2/truncate.2:162
1301 msgid "A component of the path prefix is not a directory."
1305 #: build/C/man2/chmod.2:191 build/C/man2/chmod.2:212 build/C/man2/chown.2:155 build/C/man2/chown.2:175 build/C/man2/chroot.2:131 build/C/man2/execve.2:422 build/C/man2/execve.2:428 build/C/man2/fcntl.2:1131 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:92 build/C/man2/mkdir.2:104 build/C/man2/nice.2:62 build/C/man2/setup.2:57 build/C/man2/swapon.2:144 build/C/man2/sysctl.2:87 build/C/man3/tcgetpgrp.3:99 build/C/man2/truncate.2:162 build/C/man2/vhangup.2:55
1311 #: build/C/man2/chmod.2:197
1313 "The effective UID does not match the owner of the file, and the process is "
1314 "not privileged (Linux: it does not have the B<CAP_FOWNER> capability)."
1318 #: build/C/man2/chmod.2:200 build/C/man2/chown.2:162 build/C/man2/truncate.2:171
1319 msgid "The named file resides on a read-only file system."
1323 #: build/C/man2/chmod.2:204
1324 msgid "The general errors for B<fchmod>() are listed below:"
1328 #: build/C/man2/chmod.2:209
1329 msgid "The file descriptor I<fd> is not valid."
1333 #: build/C/man2/chmod.2:212 build/C/man2/chmod.2:215 build/C/man2/chmod.2:218 build/C/man2/chown.2:175 build/C/man2/chown.2:178 build/C/man2/chown.2:181
1338 #: build/C/man2/chmod.2:220 build/C/man2/chown.2:183
1339 msgid "4.4BSD, SVr4, POSIX.1-2001."
1343 #: build/C/man2/chmod.2:227
1345 "B<chown>(2), B<execve>(2), B<fchmodat>(2), B<open>(2), B<stat>(2), "
1346 "B<path_resolution>(7)"
1350 #: build/C/man2/chown.2:38
1356 #: build/C/man2/chown.2:38
1362 #: build/C/man2/chown.2:41
1363 msgid "chown, fchown, lchown - change ownership of a file"
1367 #: build/C/man2/chown.2:45
1368 msgid "B<int chown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
1372 #: build/C/man2/chown.2:47
1373 msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
1377 #: build/C/man2/chown.2:49
1378 msgid "B<int lchown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
1382 #: build/C/man2/chown.2:57
1383 msgid "B<fchown>(), B<lchown>():"
1387 #: build/C/man2/chown.2:70
1389 "These system calls change the owner and group of a file. The differ only in "
1390 "how the file is specified:"
1394 #: build/C/man2/chown.2:75
1396 "B<chown>() changes the ownership of the file specified by I<path>, which is "
1397 "dereferenced if it is a symbolic link."
1401 #: build/C/man2/chown.2:79
1403 "B<fchown>() changes the ownership of the file referred to by the open file "
1408 #: build/C/man2/chown.2:84
1409 msgid "B<lchown>() is like B<chown>(), but does not dereference symbolic links."
1413 #: build/C/man2/chown.2:93
1415 "Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may "
1416 "change the owner of a file. The owner of a file may change the group of the "
1417 "file to any group of which that owner is a member. A privileged process "
1418 "(Linux: with B<CAP_CHOWN>) may change the group arbitrarily."
1422 #: build/C/man2/chown.2:99
1423 msgid "If the I<owner> or I<group> is specified as -1, then that ID is not changed."
1426 #. In Linux 2.0 kernels, superuser was like everyone else
1427 #. In 2.2, up to 2.2.12, these bits were not cleared for superuser.
1428 #. Since 2.2.13, superuser is once more like everyone else.
1430 #: build/C/man2/chown.2:119
1432 "When the owner or group of an executable file are changed by an unprivileged "
1433 "user the B<S_ISUID> and B<S_ISGID> mode bits are cleared. POSIX does not "
1434 "specify whether this also should happen when root does the B<chown>(); the "
1435 "Linux behavior depends on the kernel version. In case of a "
1436 "non-group-executable file (i.e., one for which the B<S_IXGRP> bit is not "
1437 "set) the B<S_ISGID> bit indicates mandatory locking, and is not cleared by a "
1442 #: build/C/man2/chown.2:129
1444 "Depending on the file system, other errors can be returned. The more "
1445 "general errors for B<chown>() are listed below."
1449 #: build/C/man2/chown.2:159
1451 "The calling process did not have the required permissions (see above) to "
1452 "change owner and/or group."
1456 #: build/C/man2/chown.2:166
1457 msgid "The general errors for B<fchown>() are listed below:"
1461 #: build/C/man2/chown.2:169
1462 msgid "The descriptor is not valid."
1466 #: build/C/man2/chown.2:172
1467 msgid "A low-level I/O error occurred while modifying the inode."
1471 #. SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no
1472 #. ENOMEM. POSIX.1 does not document ENOMEM or ELOOP error conditions.
1474 #. SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK
1475 #. error conditions.
1477 #: build/C/man2/chown.2:192
1479 "The 4.4BSD version can only be used by the superuser (that is, ordinary "
1480 "users cannot give away files)."
1484 #: build/C/man2/chown.2:211
1486 "The original Linux B<chown>(), B<fchown>(), and B<lchown>() system calls "
1487 "supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added "
1488 "B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs. The "
1489 "glibc B<chown>(), B<fchown>(), and B<lchown>() wrapper functions "
1490 "transparently deal with the variations across kernel versions."
1494 #: build/C/man2/chown.2:233
1496 "When a new file is created (by, for example, B<open>(2) or B<mkdir>(2)), "
1497 "its owner is made the same as the file system user ID of the creating "
1498 "process. The group of the file depends on a range of factors, including the "
1499 "type of file system, the options used to mount the file system, and whether "
1500 "or not the set-group-ID permission bit is enabled on the parent directory. "
1501 "If the file system supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
1502 "bsdgroups>) and I<-o\\ nogrpid> (or, synonymously I<-o\\ sysvgroups>) "
1503 "B<mount>(8) options, then the rules are as follows:"
1507 #: build/C/man2/chown.2:238
1509 "If the file system is mounted with I<-o\\ grpid>, then the group of a new "
1510 "file is made the same as that of the parent directory."
1514 #: build/C/man2/chown.2:244
1516 "If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1517 "is disabled on the parent directory, then the group of a new file is made "
1518 "the same as the process's file system GID."
1522 #: build/C/man2/chown.2:250
1524 "If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1525 "is enabled on the parent directory, then the group of a new file is made the "
1526 "same as that of the parent directory."
1530 #: build/C/man2/chown.2:260
1532 "As at Linux 2.6.25, the I<-o\\ grpid> and I<-o\\ nogrpid> mount options are "
1533 "supported by ext2, ext3, ext4, and XFS. File systems that don't support "
1534 "these mount options follow the I<-o\\ nogrpid> rules."
1538 #: build/C/man2/chown.2:273
1540 "The B<chown>() semantics are deliberately violated on NFS file systems "
1541 "which have UID mapping enabled. Additionally, the semantics of all system "
1542 "calls which access the file contents are violated, because B<chown>() may "
1543 "cause immediate access revocation on already open files. Client side "
1544 "caching may lead to a delay between the time where ownership have been "
1545 "changed to allow access for a user and the time where the file can actually "
1546 "be accessed by the user on other clients."
1550 #: build/C/man2/chown.2:288
1552 "In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>() "
1553 "did not follow symbolic links. Since Linux 2.1.81, B<chown>() does follow "
1554 "symbolic links, and there is a new system call B<lchown>() that does not "
1555 "follow symbolic links. Since Linux 2.1.86, this new call (that has the same "
1556 "semantics as the old B<chown>()) has got the same syscall number, and "
1557 "B<chown>() got the newly introduced number."
1561 #: build/C/man2/chown.2:297
1563 "The following program changes the ownership of the file named in its second "
1564 "command-line argument to the value specified in its first command-line "
1565 "argument. The new owner can be specified either as a numeric user ID, or as "
1566 "a username (which is converted to a user ID by using B<getpwnam>(3) to "
1567 "perform a lookup in the system password file)."
1571 #: build/C/man2/chown.2:303
1574 "#include E<lt>pwd.hE<gt>\n"
1575 "#include E<lt>stdio.hE<gt>\n"
1576 "#include E<lt>stdlib.hE<gt>\n"
1577 "#include E<lt>unistd.hE<gt>\n"
1581 #: build/C/man2/chown.2:310
1585 "main(int argc, char *argv[])\n"
1588 " struct passwd *pwd;\n"
1593 #: build/C/man2/chown.2:315
1596 " if (argc != 3 || argv[1][0] == \\(aq\\e0\\(aq) {\n"
1597 " fprintf(stderr, \"%s E<lt>ownerE<gt> E<lt>fileE<gt>\\en\", "
1599 " exit(EXIT_FAILURE);\n"
1604 #: build/C/man2/chown.2:317
1606 msgid " uid = strtol(argv[1], &endptr, 10); /* Allow a numeric string */\n"
1610 #: build/C/man2/chown.2:324
1613 " if (*endptr != \\(aq\\e0\\(aq) { /* Was not pure numeric string "
1615 " pwd = getpwnam(argv[1]); /* Try getting UID for username */\n"
1616 " if (pwd == NULL) {\n"
1617 " perror(\"getpwnam\");\n"
1618 " exit(EXIT_FAILURE);\n"
1623 #: build/C/man2/chown.2:327
1626 " uid = pwd-E<gt>pw_uid;\n"
1631 #: build/C/man2/chown.2:332
1634 " if (chown(argv[2], uid, -1) == -1) {\n"
1635 " perror(\"chown\");\n"
1636 " exit(EXIT_FAILURE);\n"
1641 #: build/C/man2/chown.2:335 build/C/man2/execve.2:548 build/C/man3/getopt.3:426 build/C/man3/getopt.3:511
1644 " exit(EXIT_SUCCESS);\n"
1649 #: build/C/man2/chown.2:342
1651 "B<chmod>(2), B<fchownat>(2), B<flock>(2), B<path_resolution>(7), "
1656 #: build/C/man2/chroot.2:33
1662 #: build/C/man2/chroot.2:36
1663 msgid "chroot - change root directory"
1667 #: build/C/man2/chroot.2:40
1668 msgid "B<int chroot(const char *>I<path>B<);>"
1672 #: build/C/man2/chroot.2:47
1673 msgid "B<chroot>():"
1677 #: build/C/man2/chroot.2:50
1679 msgid "Since glibc 2.2.2:"
1683 #: build/C/man2/chroot.2:57
1687 " (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
1688 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
1689 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
1693 #: build/C/man2/chroot.2:60
1694 msgid "Before glibc 2.2.2: none"
1698 #: build/C/man2/chroot.2:69
1700 "B<chroot>() changes the root directory of the calling process to that "
1701 "specified in I<path>. This directory will be used for pathnames beginning "
1702 "with I</>. The root directory is inherited by all children of the calling "
1707 #: build/C/man2/chroot.2:74
1709 "Only a privileged process (Linux: one with the B<CAP_SYS_CHROOT> capability) "
1710 "may call B<chroot>()."
1714 #: build/C/man2/chroot.2:77
1716 "This call changes an ingredient in the pathname resolution process and does "
1721 #: build/C/man2/chroot.2:83
1723 "This call does not change the current working directory, so that after the "
1724 "call \\(aqI<.>\\(aq can be outside the tree rooted at \\(aqI</>\\(aq. In "
1725 "particular, the superuser can escape from a \"chroot jail\" by doing:"
1729 #: build/C/man2/chroot.2:86
1731 msgid " mkdir foo; chroot foo; cd ..\n"
1735 #: build/C/man2/chroot.2:90
1737 "This call does not close open file descriptors, and such file descriptors "
1738 "may allow access to files outside the chroot tree."
1742 #: build/C/man2/chroot.2:98
1744 "Depending on the file system, other errors can be returned. The more "
1745 "general errors are listed below:"
1749 #: build/C/man2/chroot.2:134
1750 msgid "The caller has insufficient privilege."
1753 #. SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions.
1754 #. X/OPEN does not document EIO, ENOMEM or EFAULT error conditions.
1756 #: build/C/man2/chroot.2:139
1758 "SVr4, 4.4BSD, SUSv2 (marked LEGACY). This function is not part of "
1763 #: build/C/man2/chroot.2:145
1765 "A child process created via B<fork>(2) inherits its parent's root "
1766 "directory. The root directory is left unchanged by B<execve>(2)."
1769 #. FIXME . eventually say something about containers,
1770 #. virtual servers, etc.?
1772 #: build/C/man2/chroot.2:151
1773 msgid "FreeBSD has a stronger B<jail>() system call."
1777 #: build/C/man2/chroot.2:154
1778 msgid "B<chdir>(2), B<path_resolution>(7)"
1782 #: build/C/man2/close.2:35
1788 #: build/C/man2/close.2:35
1794 #: build/C/man2/close.2:38
1795 msgid "close - close a file descriptor"
1799 #: build/C/man2/close.2:43
1801 msgid "B<int close(int >I<fd>B<);>\n"
1805 #: build/C/man2/close.2:53
1807 "B<close>() closes a file descriptor, so that it no longer refers to any "
1808 "file and may be reused. Any record locks (see B<fcntl>(2)) held on the "
1809 "file it was associated with, and owned by the process, are removed "
1810 "(regardless of the file descriptor that was used to obtain the lock)."
1814 #: build/C/man2/close.2:64
1816 "If I<fd> is the last file descriptor referring to the underlying open file "
1817 "description (see B<open>(2)), the resources associated with the open file "
1818 "description are freed; if the descriptor was the last reference to a file "
1819 "which has been removed using B<unlink>(2) the file is deleted."
1823 #: build/C/man2/close.2:70
1825 "B<close>() returns zero on success. On error, -1 is returned, and I<errno> "
1826 "is set appropriately."
1830 #: build/C/man2/close.2:75
1831 msgid "I<fd> isn't a valid open file descriptor."
1835 #: build/C/man2/close.2:75 build/C/man2/dup.2:143 build/C/man2/fcntl.2:1100 build/C/man2/flock.2:120 build/C/man2/truncate.2:131 build/C/man3/ualarm.3:84 build/C/man3/usleep.3:76
1841 #: build/C/man2/close.2:81
1842 msgid "The B<close>() call was interrupted by a signal; see B<signal>(7)."
1846 #: build/C/man2/close.2:101
1848 "Not checking the return value of B<close>() is a common but nevertheless "
1849 "serious programming error. It is quite possible that errors on a previous "
1850 "B<write>(2) operation are first reported at the final B<close>(). Not "
1851 "checking the return value when closing the file may lead to silent loss of "
1852 "data. This can especially be observed with NFS and with disk quota."
1856 #: build/C/man2/close.2:110
1858 "A successful close does not guarantee that the data has been successfully "
1859 "saved to disk, as the kernel defers writes. It is not common for a file "
1860 "system to flush the buffers when the stream is closed. If you need to be "
1861 "sure that the data is physically stored use B<fsync>(2). (It will depend on "
1862 "the disk hardware at this point.)"
1865 #. Date: Tue, 4 Sep 2007 13:57:35 +0200
1866 #. From: Fredrik Noring <noring@nocrew.org>
1867 #. One such race involves signals and ERESTARTSYS. If a file descriptor
1868 #. in use by a system call is closed and then reused by e.g. an
1869 #. independent open() in some unrelated thread, before the original system
1870 #. call has restared after ERESTARTSYS, the original system call will
1871 #. later restart with the reused file descriptor. This is most likely a
1872 #. serious programming error.
1874 #: build/C/man2/close.2:125
1876 "It is probably unwise to close file descriptors while they may be in use by "
1877 "system calls in other threads in the same process. Since a file descriptor "
1878 "may be reused, there are some obscure race conditions that may cause "
1879 "unintended side effects."
1883 #: build/C/man2/close.2:132
1885 "B<fcntl>(2), B<fsync>(2), B<open>(2), B<shutdown>(2), B<unlink>(2), "
1890 #: build/C/man3/confstr.3:29
1896 #: build/C/man3/confstr.3:29 build/C/man3/sleep.3:24
1902 #: build/C/man3/confstr.3:29 build/C/man3/daemon.3:34 build/C/man3/exec.3:39 build/C/man3/fpathconf.3:24 build/C/man3/getcwd.3:30 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:39 build/C/man3/getumask.3:26 build/C/man3/getusershell.3:28 build/C/man3/lockf.3:22 build/C/man3/sleep.3:24 build/C/man3/sysconf.3:25 build/C/man3/tcgetpgrp.3:23
1908 #: build/C/man3/confstr.3:32
1909 msgid "confstr - get configuration dependent string variables"
1913 #: build/C/man3/confstr.3:37
1915 msgid "B<size_t confstr(int >I<name>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1919 #: build/C/man3/confstr.3:46
1920 msgid "B<confstr>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
1924 #: build/C/man3/confstr.3:49
1925 msgid "B<confstr>() gets the value of configuration-dependent string variables."
1929 #: build/C/man3/confstr.3:54
1931 "The I<name> argument is the system variable to be queried. The following "
1932 "variables are supported:"
1936 #: build/C/man3/confstr.3:54
1938 msgid "B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)"
1942 #: build/C/man3/confstr.3:58
1944 "A string which identifies the GNU C library version on this system (e.g, "
1949 #: build/C/man3/confstr.3:58
1951 msgid "B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)"
1955 #: build/C/man3/confstr.3:62
1957 "A string which identifies the POSIX implementation supplied by this C "
1958 "library (e.g, \"NPTL 2.3.4\" or \"linuxthreads-0.10\")."
1962 #: build/C/man3/confstr.3:62
1968 #: build/C/man3/confstr.3:68
1970 "A value for the B<PATH> variable which indicates where all the POSIX.2 "
1971 "standard utilities can be found."
1975 #: build/C/man3/confstr.3:84
1977 "If I<buf> is not NULL and I<len> is not zero, B<confstr>() copies the value "
1978 "of the string to I<buf> truncated to I<len - 1> characters if necessary, "
1979 "with a null byte (\\(aq\\e0\\(aq) as terminator. This can be detected by "
1980 "comparing the return value of B<confstr>() against I<len>."
1984 #: build/C/man3/confstr.3:92
1986 "If I<len> is zero and I<buf> is NULL, B<confstr>() just returns the value "
1991 #: build/C/man3/confstr.3:104
1993 "If I<name> is a valid configuration variable, B<confstr>() returns the "
1994 "number of bytes (including the terminating null byte) that would be "
1995 "required to hold the entire value of that variable. This value may be "
1996 "greater than I<len>, which means that the value in I<buf> is truncated."
2000 #: build/C/man3/confstr.3:119
2002 "If I<name> is a valid configuration variable, but that variable does not "
2003 "have a value, then B<confstr>() returns 0. If I<name> does not correspond "
2004 "to a valid configuration variable, B<confstr>() returns 0, and I<errno> is "
2009 #: build/C/man3/confstr.3:125
2010 msgid "If the value of I<name> is invalid."
2014 #: build/C/man3/confstr.3:127 build/C/man3/fpathconf.3:154 build/C/man2/pread.2:115 build/C/man3/sleep.3:44 build/C/man3/sysconf.3:324 build/C/man3/tcgetpgrp.3:106
2015 msgid "POSIX.1-2001."
2019 #: build/C/man3/confstr.3:130
2021 "The following code fragment determines the path where to find the POSIX.2 "
2026 #: build/C/man3/confstr.3:136
2034 #: build/C/man3/confstr.3:142
2037 "n = confstr(_CS_PATH,NULL,(size_t) 0);\n"
2038 "pathbuf = malloc(n);\n"
2039 "if (pathbuf == NULL)\n"
2041 "confstr(_CS_PATH, pathbuf, n);\n"
2045 #: build/C/man3/confstr.3:148
2046 msgid "B<sh>(1), B<exec>(3), B<system>(3)"
2050 #: build/C/man3/crypt.3:35
2056 #: build/C/man3/crypt.3:35 build/C/man2/fcntl.2:61
2062 #: build/C/man3/crypt.3:38
2063 msgid "crypt, crypt_r - password and data encryption"
2067 #: build/C/man3/crypt.3:41
2069 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */\n"
2073 #: build/C/man3/crypt.3:45
2075 msgid "B<char *crypt(const char *>I<key>B<, const char *>I<salt>B<);>\n"
2079 #: build/C/man3/crypt.3:47
2081 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
2085 #: build/C/man3/crypt.3:49
2087 msgid "B<#include E<lt>crypt.hE<gt>>\n"
2091 #: build/C/man3/crypt.3:52
2094 "B<char *crypt_r(const char *>I<key>B<, const char *>I<salt>B<,>\n"
2095 "B< struct crypt_data *>I<data>B<);>\n"
2099 #: build/C/man3/crypt.3:55
2100 msgid "Link with I<-lcrypt>."
2104 #: build/C/man3/crypt.3:61
2106 "B<crypt>() is the password encryption function. It is based on the Data "
2107 "Encryption Standard algorithm with variations intended (among other things) "
2108 "to discourage use of hardware implementations of a key search."
2112 #: build/C/man3/crypt.3:64
2113 msgid "I<key> is a user's typed password."
2117 #: build/C/man3/crypt.3:70
2119 "I<salt> is a two-character string chosen from the set "
2120 "[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>]. This string is used to perturb the "
2121 "algorithm in one of 4096 different ways."
2125 #: build/C/man3/crypt.3:81
2127 "By taking the lowest 7 bits of each of the first eight characters of the "
2128 "I<key>, a 56-bit key is obtained. This 56-bit key is used to encrypt "
2129 "repeatedly a constant string (usually a string consisting of all zeros). "
2130 "The returned value points to the encrypted password, a series of 13 "
2131 "printable ASCII characters (the first two characters represent the salt "
2132 "itself). The return value points to static data whose content is "
2133 "overwritten by each call."
2137 #: build/C/man3/crypt.3:83
2138 msgid "Warning: The key space consists of"
2142 #: build/C/man3/crypt.3:98
2144 "equal 7.2e16 possible values. Exhaustive searches of this key space are "
2145 "possible using massively parallel computers. Software, such as B<crack>(1), "
2146 "is available which will search the portion of this key space that is "
2147 "generally used by humans for passwords. Hence, password selection should, "
2148 "at minimum, avoid common words and names. The use of a B<passwd>(1) "
2149 "program that checks for crackable passwords during the selection process is "
2154 #: build/C/man3/crypt.3:107
2156 "The DES algorithm itself has a few quirks which make the use of the "
2157 "B<crypt>() interface a very poor choice for anything other than password "
2158 "authentication. If you are planning on using the B<crypt>() interface for "
2159 "a cryptography project, don't do it: get a good book on encryption and one "
2160 "of the widely available DES libraries."
2164 #: build/C/man3/crypt.3:119
2166 "B<crypt_r>() is a reentrant version of B<crypt>(). The structure pointed "
2167 "to by I<data> is used to store result data and bookkeeping information. "
2168 "Other than allocating it, the only thing that the caller should do with this "
2169 "structure is to set I<data-E<gt>initialized> to zero before the first call "
2174 #: build/C/man3/crypt.3:122
2176 "On success, a pointer to the encrypted password is returned. On error, NULL "
2181 #: build/C/man3/crypt.3:123 build/C/man3/encrypt.3:114 build/C/man3/fexecve.3:86
2186 #. This level of detail is not necessary in this man page. . .
2188 #. When encrypting a plain text P using DES with the key K results in the
2189 #. encrypted text C, then the complementary plain text P' being encrypted
2190 #. using the complementary key K' will result in the complementary encrypted
2193 #. Weak keys are keys which stay invariant under the DES key transformation.
2194 #. The four known weak keys 0101010101010101, fefefefefefefefe,
2195 #. 1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided.
2197 #. There are six known half weak key pairs, which keys lead to the same
2198 #. encrypted data. Keys which are part of such key clusters should be
2200 #. Sorry, I could not find out what they are.
2203 #. Heavily redundant data causes trouble with DES encryption, when used in the
2209 #. interface should be used only for its intended purpose of password
2210 #. verification, and should not be used as part of a data encryption tool.
2212 #. The first and last three output bits of the fourth S-box can be
2213 #. represented as function of their input bits. Empiric studies have
2214 #. shown that S-boxes partially compute the same output for similar input.
2215 #. It is suspected that this may contain a back door which could allow the
2216 #. NSA to decrypt DES encrypted data.
2218 #. Making encrypted data computed using crypt() publicly available has
2219 #. to be considered insecure for the given reasons.
2221 #: build/C/man3/crypt.3:162
2223 "The B<crypt>() function was not implemented, probably because of "
2224 "U.S.A. export restrictions."
2228 #: build/C/man3/crypt.3:167
2229 msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001. B<crypt_r>() is a GNU extension."
2233 #: build/C/man3/crypt.3:168 build/C/man2/gethostname.2:140
2239 #: build/C/man3/crypt.3:171
2241 "The glibc2 version of this function supports additional encryption "
2246 #: build/C/man3/crypt.3:176
2248 "If I<salt> is a character string starting with the characters \"$I<id>$\" "
2249 "followed by a string terminated by \"$\":"
2253 #: build/C/man3/crypt.3:179
2254 msgid "$I<id>$I<salt>$I<encrypted>"
2258 #: build/C/man3/crypt.3:188
2260 "then instead of using the DES machine, I<id> identifies the encryption "
2261 "method used and this then determines how the rest of the password string is "
2262 "interpreted. The following values of I<id> are supported:"
2266 #: build/C/man3/crypt.3:191
2268 msgid "ID | Method\n"
2272 #: build/C/man3/crypt.3:192
2278 #: build/C/man3/crypt.3:193
2284 #: build/C/man3/crypt.3:194
2286 msgid "2a | Blowfish (not in mainline glibc; added in some\n"
2290 #: build/C/man3/crypt.3:195
2292 msgid " | Linux distributions)\n"
2295 #. openSUSE has Blowfish, but AFAICS, this option is not supported
2296 #. natively by glibc -- mtk, Jul 08
2299 #. glibc doesn't appear to natively support Sun MD5; I don't know
2300 #. if any distros add the support.
2302 #: build/C/man3/crypt.3:202
2304 msgid "5 | SHA-256 (since glibc 2.7)\n"
2308 #: build/C/man3/crypt.3:203
2310 msgid "6 | SHA-512 (since glibc 2.7)\n"
2314 #: build/C/man3/crypt.3:210
2316 "So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and "
2317 "$6$I<salt>$I<encrypted> is an SHA-512 encoded one."
2321 #: build/C/man3/crypt.3:215
2323 "\"I<salt>\" stands for the up to 16 characters following \"$I<id>$\" in the "
2324 "salt. The encrypted part of the password string is the actual computed "
2325 "password. The size of this string is fixed:"
2329 #: build/C/man3/crypt.3:217
2331 msgid "MD5 | 22 characters\n"
2335 #: build/C/man3/crypt.3:218
2337 msgid "SHA-256 | 43 characters\n"
2341 #: build/C/man3/crypt.3:219
2343 msgid "SHA-512 | 86 characters\n"
2347 #: build/C/man3/crypt.3:228
2349 "The characters in \"I<salt>\" and \"I<encrypted>\" are drawn from the set "
2350 "[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>]. In the MD5 and SHA implementations "
2351 "the entire I<key> is significant (instead of only the first 8 bytes in DES)."
2355 #: build/C/man3/crypt.3:234
2356 msgid "B<login>(1), B<passwd>(1), B<encrypt>(3), B<getpass>(3), B<passwd>(5)"
2360 #: build/C/man3/daemon.3:34
2366 #: build/C/man3/daemon.3:34
2372 #: build/C/man3/daemon.3:37
2373 msgid "daemon - run in the background"
2377 #: build/C/man3/daemon.3:41
2378 msgid "B<int daemon(int >I<nochdir>B<, int >I<noclose>B<);>"
2382 #: build/C/man3/daemon.3:49
2383 msgid "B<daemon>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
2387 #: build/C/man3/daemon.3:54
2389 "The B<daemon>() function is for programs wishing to detach themselves from "
2390 "the controlling terminal and run in the background as system daemons."
2394 #: build/C/man3/daemon.3:62
2396 "If I<nochdir> is zero, B<daemon>() changes the calling process's current "
2397 "working directory to the root directory (\"/\"); otherwise, the current "
2398 "working directory is left unchanged."
2402 #: build/C/man3/daemon.3:70
2404 "If I<noclose> is zero, B<daemon>() redirects standard input, standard "
2405 "output and standard error to I</dev/null>; otherwise, no changes are made to "
2406 "these file descriptors."
2409 #. not .IR in order not to underline _
2411 #: build/C/man3/daemon.3:88
2413 "(This function forks, and if the B<fork>(2) succeeds, the parent calls "
2414 "B<_exit>(2), so that further errors are seen by the child only.) On success "
2415 "B<daemon>() returns zero. If an error occurs, B<daemon>() returns -1 and "
2416 "sets I<errno> to any of the errors specified for the B<fork>(2) and "
2421 #: build/C/man3/daemon.3:94
2423 "Not in POSIX.1-2001. A similar function appears on the BSDs. The "
2424 "B<daemon>() function first appeared in 4.4BSD."
2428 #: build/C/man3/daemon.3:102
2430 "The glibc implementation can also return -1 when I</dev/null> exists but is "
2431 "not a character device with the expected major and minor numbers. In this "
2432 "case I<errno> need not be set."
2436 #: build/C/man3/daemon.3:105
2437 msgid "B<fork>(2), B<setsid>(2)"
2441 #: build/C/man3/des_crypt.3:10
2447 #: build/C/man3/des_crypt.3:10
2453 #: build/C/man3/des_crypt.3:14
2455 "des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - fast DES "
2460 #. .B #include <des_crypt.h>
2462 #: build/C/man3/des_crypt.3:19
2464 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2468 #: build/C/man3/des_crypt.3:22
2471 "B<int ecb_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2473 "B< unsigned >I<mode>B<);>\n"
2477 #: build/C/man3/des_crypt.3:25
2480 "B<int cbc_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2482 "B< unsigned >I<mode>B<, char *>I<ivec>B<);>\n"
2486 #: build/C/man3/des_crypt.3:27
2488 msgid "B<void des_setparity(char *>I<key>B<);>\n"
2492 #: build/C/man3/des_crypt.3:29
2494 msgid "B<int DES_FAILED(int >I<status>B<);>\n"
2498 #: build/C/man3/des_crypt.3:59
2500 "B<ecb_crypt>() and B<cbc_crypt>() implement the NBS DES (Data Encryption "
2501 "Standard). These routines are faster and more general purpose than "
2502 "B<crypt>(3). They also are able to utilize DES hardware if it is "
2503 "available. B<ecb_crypt>() encrypts in ECB (Electronic Code Book) mode, "
2504 "which encrypts blocks of data independently. B<cbc_crypt>() encrypts in "
2505 "CBC (Cipher Block Chaining) mode, which chains together successive blocks. "
2506 "CBC mode protects against insertions, deletions and substitutions of "
2507 "blocks. Also, regularities in the clear text will not appear in the cipher "
2512 #: build/C/man3/des_crypt.3:102
2514 "Here is how to use these routines. The first argument, I<key>, is the "
2515 "8-byte encryption key with parity. To set the key's parity, which for DES "
2516 "is in the low bit of each byte, use B<des_setparity>(). The second "
2517 "argument, I<data>, contains the data to be encrypted or decrypted. The "
2518 "third argument, I<datalen>, is the length in bytes of I<data>, which must be "
2519 "a multiple of 8. The fourth argument, I<mode>, is formed by ORing together "
2520 "some things. For the encryption direction OR in either B<DES_ENCRYPT> or "
2521 "B<DES_DECRYPT>. For software versus hardware encryption, OR in either "
2522 "B<DES_HW> or B<DES_SW>. If B<DES_HW> is specified, and there is no "
2523 "hardware, then the encryption is performed in software and the routine "
2524 "returns B<DESERR_NOHWDEVICE>. For B<cbc_crypt>(), the argument I<ivec> is "
2525 "the 8-byte initialization vector for the chaining. It is updated to the "
2526 "next initialization vector upon return."
2530 #: build/C/man3/des_crypt.3:104
2532 msgid "B<DESERR_NONE>"
2536 #: build/C/man3/des_crypt.3:107
2541 #: build/C/man3/des_crypt.3:107
2543 msgid "B<DESERR_NOHWDEVICE>"
2547 #: build/C/man3/des_crypt.3:110
2549 "Encryption succeeded, but done in software instead of the requested "
2554 #: build/C/man3/des_crypt.3:110
2556 msgid "B<DESERR_HWERROR>"
2560 #: build/C/man3/des_crypt.3:113
2561 msgid "An error occurred in the hardware or driver."
2565 #: build/C/man3/des_crypt.3:113
2567 msgid "B<DESERR_BADPARAM>"
2571 #: build/C/man3/des_crypt.3:116
2572 msgid "Bad argument to routine."
2577 #. So far the Sun page
2578 #. Some additions - aeb
2580 #: build/C/man3/des_crypt.3:127
2582 "Given a result status I<stat>, the macro B<DES_FAILED(>I<stat>B<)> is false "
2583 "only for the first two statuses."
2587 #: build/C/man3/des_crypt.3:127 build/C/man2/dup.2:165 build/C/man3/euidaccess.3:70 build/C/man3/exec.3:193 build/C/man2/exit_group.2:39 build/C/man3/fexecve.3:91 build/C/man2/get_thread_area.2:37 build/C/man2/gettid.2:51 build/C/man2/idle.2:59 build/C/man2/mincore.2:132 build/C/man2/pread.2:102 build/C/man2/set_thread_area.2:55 build/C/man2/setup.2:60
2593 #: build/C/man3/des_crypt.3:130
2595 "These routines are present in libc 4.6.27 and later, and in glibc 2.1 and "
2600 #: build/C/man3/des_crypt.3:133
2601 msgid "4.3BSD. Not in POSIX.1-2001."
2605 #: build/C/man3/des_crypt.3:137
2606 msgid "B<des>(1), B<crypt>(3), B<xcrypt>(3)"
2610 #: build/C/man2/dup.2:36
2616 #: build/C/man2/dup.2:36
2622 #: build/C/man2/dup.2:39
2623 msgid "dup, dup2, dup3 - duplicate a file descriptor"
2627 #: build/C/man2/dup.2:45
2630 "B<int dup(int >I<oldfd>B<);>\n"
2631 "B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n"
2635 #: build/C/man2/dup.2:49
2638 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
2639 "B<#include E<lt>fcntl.hE<gt>> /* Obtain O_* constant "
2641 "B<#include E<lt>unistd.hE<gt>>\n"
2645 #: build/C/man2/dup.2:51
2647 msgid "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n"
2651 #: build/C/man2/dup.2:55
2652 msgid "These system calls create a copy of the file descriptor I<oldfd>."
2656 #: build/C/man2/dup.2:58
2657 msgid "B<dup>() uses the lowest-numbered unused descriptor for the new descriptor."
2661 #: build/C/man2/dup.2:62
2663 "B<dup2>() makes I<newfd> be the copy of I<oldfd>, closing I<newfd> first if "
2664 "necessary, but note the following:"
2668 #: build/C/man2/dup.2:68
2670 "If I<oldfd> is not a valid file descriptor, then the call fails, and "
2671 "I<newfd> is not closed."
2675 #: build/C/man2/dup.2:79
2677 "If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
2678 "I<oldfd>, then B<dup2>() does nothing, and returns I<newfd>."
2682 #: build/C/man2/dup.2:88
2684 "After a successful return from one of these system calls, the old and new "
2685 "file descriptors may be used interchangeably. They refer to the same open "
2686 "file description (see B<open>(2)) and thus share file offset and file "
2687 "status flags; for example, if the file offset is modified by using "
2688 "B<lseek>(2) on one of the descriptors, the offset is also changed for the "
2693 #: build/C/man2/dup.2:96
2695 "The two descriptors do not share file descriptor flags (the close-on-exec "
2696 "flag). The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2)) for the "
2697 "duplicate descriptor is off."
2701 #: build/C/man2/dup.2:101
2702 msgid "B<dup3>() is the same as B<dup2>(), except that:"
2706 #: build/C/man2/dup.2:110
2708 "The caller can force the close-on-exec flag to be set for the new file "
2709 "descriptor by specifying B<O_CLOEXEC> in I<flags>. See the description of "
2710 "the same flag in B<open>(2) for reasons why this may be useful."
2713 #. FIXME . To confirm with Al Viro that this was intended, and its rationale
2715 #: build/C/man2/dup.2:120
2716 msgid "If I<oldfd> equals I<newfd>, then B<dup3>() fails with the error B<EINVAL>."
2720 #: build/C/man2/dup.2:126
2722 "On success, these system calls return the new descriptor. On error, -1 is "
2723 "returned, and I<errno> is set appropriately."
2727 #: build/C/man2/dup.2:133
2729 "I<oldfd> isn't an open file descriptor, or I<newfd> is out of the allowed "
2730 "range for file descriptors."
2734 #: build/C/man2/dup.2:133 build/C/man2/swapon.2:114
2740 #: build/C/man2/dup.2:143
2742 "(Linux only) This may be returned by B<dup2>() or B<dup3>() during a race "
2743 "condition with B<open>(2) and B<dup>()."
2747 #: build/C/man2/dup.2:151
2749 "The B<dup2>() or B<dup3>() call was interrupted by a signal; see "
2753 #. FIXME . To confirm with Al Viro that this was intended, and its rationale
2755 #: build/C/man2/dup.2:161
2757 "(B<dup3>()) I<flags> contain an invalid value. Or, I<oldfd> was equal to "
2762 #: build/C/man2/dup.2:161 build/C/man2/execve.2:393 build/C/man2/fcntl.2:1122 build/C/man3/getlogin.3:103
2768 #: build/C/man2/dup.2:165
2770 "The process already has the maximum number of file descriptors open and "
2771 "tried to open a new one."
2775 #: build/C/man2/dup.2:170
2777 "B<dup3>() was added to Linux in version 2.6.27; glibc support is available "
2778 "starting with version 2.9."
2782 #: build/C/man2/dup.2:174
2783 msgid "B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001."
2786 #. SVr4 documents additional
2787 #. EINTR and ENOLINK error conditions. POSIX.1 adds EINTR.
2788 #. The EBUSY return is Linux-specific.
2790 #: build/C/man2/dup.2:180
2791 msgid "B<dup3>() is Linux-specific."
2795 #: build/C/man2/dup.2:194
2797 "The error returned by B<dup2>() is different from that returned by "
2798 "B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range. On some "
2799 "systems B<dup2>() also sometimes returns B<EINVAL> like B<F_DUPFD>."
2803 #: build/C/man2/dup.2:207
2805 "If I<newfd> was open, any errors that would have been reported at "
2806 "B<close>(2) time are lost. A careful programmer will not use B<dup2>() or "
2807 "B<dup3>() without closing I<newfd> first."
2811 #: build/C/man2/dup.2:211
2812 msgid "B<close>(2), B<fcntl>(2), B<open>(2)"
2816 #: build/C/man3/encrypt.3:24
2822 #: build/C/man3/encrypt.3:24
2828 #: build/C/man3/encrypt.3:27
2829 msgid "encrypt, setkey, encrypt_r, setkey_r - encrypt 64-bit messages"
2833 #: build/C/man3/encrypt.3:29 build/C/man3/encrypt.3:35
2834 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
2838 #: build/C/man3/encrypt.3:33
2839 msgid "B<void encrypt(char >I<block>B<[64], int >I<edflag>B<);>"
2843 #: build/C/man3/encrypt.3:37
2844 msgid "B<#include E<lt>stdlib.hE<gt>>"
2848 #: build/C/man3/encrypt.3:39
2849 msgid "B<void setkey(const char *>I<key>B<);>"
2853 #: build/C/man3/encrypt.3:41 build/C/man3/getumask.3:31
2854 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
2858 #: build/C/man3/encrypt.3:43
2859 msgid "B<#include E<lt>crypt.hE<gt>>"
2863 #: build/C/man3/encrypt.3:45
2864 msgid "B<void setkey_r(const char *>I<key>B<, struct crypt_data *>I<data>B<);>"
2868 #: build/C/man3/encrypt.3:48
2870 "B<void encrypt_r(char *>I<block>B<, int >I<edflag>B<, struct crypt_data "
2875 #: build/C/man3/encrypt.3:50
2876 msgid "Each of these requires linking with I<-lcrypt>."
2880 #: build/C/man3/encrypt.3:62
2882 "These functions encrypt and decrypt 64-bit messages. The B<setkey>() "
2883 "function sets the key used by B<encrypt>(). The I<key> argument used here "
2884 "is an array of 64 bytes, each of which has numerical value 1 or 0. The "
2885 "bytes key[n] where n=8*i-1 are ignored, so that the effective key length is "
2890 #: build/C/man3/encrypt.3:74
2892 "The B<encrypt>() function modifies the passed buffer, encoding if I<edflag> "
2893 "is 0, and decoding if 1 is being passed. Like the I<key> argument, also "
2894 "I<block> is a bit vector representation of the actual value that is "
2895 "encoded. The result is returned in that same vector."
2899 #: build/C/man3/encrypt.3:84
2901 "These two functions are not reentrant, that is, the key data is kept in "
2902 "static storage. The functions B<setkey_r>() and B<encrypt_r>() are the "
2903 "reentrant versions. They use the following structure to hold the key data:"
2907 #: build/C/man3/encrypt.3:99
2910 "struct crypt_data {\n"
2911 " char keysched[16 * 8];\n"
2912 " char sb0[32768];\n"
2913 " char sb1[32768];\n"
2914 " char sb2[32768];\n"
2915 " char sb3[32768];\n"
2916 " char crypt_3_buf[14];\n"
2917 " char current_salt[2];\n"
2918 " long int current_saltbits;\n"
2920 " int initialized;\n"
2925 #: build/C/man3/encrypt.3:107
2926 msgid "Before calling B<setkey_r>() set I<data-E<gt>initialized> to zero."
2930 #: build/C/man3/encrypt.3:109
2931 msgid "These functions do not return any value."
2935 #: build/C/man3/encrypt.3:114
2937 "Set I<errno> to zero before calling the above functions. On success, it is "
2942 #: build/C/man3/encrypt.3:118
2944 "The function is not provided. (For example because of former USA export "
2949 #: build/C/man3/encrypt.3:129
2951 "The functions B<encrypt>() and B<setkey>() conform to SVr4, SUSv2, and "
2952 "POSIX.1-2001. The functions B<encrypt_r>() and B<setkey_r>() are GNU "
2957 #: build/C/man3/encrypt.3:131
2958 msgid "In glibc 2.2 these functions use the DES algorithm."
2962 #: build/C/man3/encrypt.3:138
2964 "You need to link with libcrypt to compile this example with glibc. To do "
2965 "useful work the I<key[]> and I<txt[]> arrays must be filled with a useful "
2970 #: build/C/man3/encrypt.3:143
2973 "#define _XOPEN_SOURCE\n"
2974 "#include E<lt>unistd.hE<gt>\n"
2975 "#include E<lt>stdlib.hE<gt>\n"
2979 #: build/C/man3/encrypt.3:149
2985 " char key[64]; /* bit pattern for key */\n"
2986 " char txt[64]; /* bit pattern for messages */\n"
2990 #: build/C/man3/encrypt.3:154
2994 " encrypt(txt, 0); /* encode */\n"
2995 " encrypt(txt, 1); /* decode */\n"
3001 #: build/C/man3/encrypt.3:160
3002 msgid "B<cbc_crypt>(3), B<crypt>(3), B<ecb_crypt>(3),"
3006 #: build/C/man7/environ.7:33
3012 #: build/C/man7/environ.7:33 build/C/man2/flock.2:34
3018 #: build/C/man7/environ.7:36
3019 msgid "environ - user environment"
3023 #: build/C/man7/environ.7:39
3025 msgid "B<extern char **>I<environ>B<;>\n"
3029 #: build/C/man7/environ.7:56
3031 "The variable I<environ> points to an array of pointers to strings called the "
3032 "\"environment\". The last pointer in this array has the value NULL. (This "
3033 "variable must be declared in the user program, but is declared in the header "
3034 "file I<E<lt>unistd.hE<gt>> in case the header files came from libc4 or "
3035 "libc5, and in case they came from glibc and B<_GNU_SOURCE> was defined.) "
3036 "This array of strings is made available to the process by the B<exec>(3) "
3037 "call that started the process."
3041 #: build/C/man7/environ.7:61
3043 "By convention the strings in I<environ> have the form "
3044 "\"I<name>B<=>I<value>\". Common examples are:"
3048 #: build/C/man7/environ.7:61
3054 #: build/C/man7/environ.7:64
3055 msgid "The name of the logged-in user (used by some BSD-derived programs)."
3059 #: build/C/man7/environ.7:64
3065 #: build/C/man7/environ.7:67
3066 msgid "The name of the logged-in user (used by some System-V derived programs)."
3070 #: build/C/man7/environ.7:67
3076 #: build/C/man7/environ.7:73
3078 "A user's login directory, set by B<login>(1) from the password file "
3083 #: build/C/man7/environ.7:73
3089 #: build/C/man7/environ.7:80
3091 "The name of a locale to use for locale categories when not overridden by "
3092 "B<LC_ALL> or more specific environment variables like B<LC_COLLATE>, "
3093 "B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, B<LC_TIME>, cf. "
3098 #: build/C/man7/environ.7:80
3104 #: build/C/man7/environ.7:92
3106 "The sequence of directory prefixes that B<sh>(1) and many other programs "
3107 "apply in searching for a file known by an incomplete pathname. The prefixes "
3108 "are separated by \\(aqB<:>\\(aq. (Similarly one has B<CDPATH> used by some "
3109 "shells to find the target of a change directory command, B<MANPATH> used by "
3110 "B<man>(1) to find manual pages, etc.)"
3114 #: build/C/man7/environ.7:92
3120 #: build/C/man7/environ.7:96
3121 msgid "The current working directory. Set by some shells."
3125 #: build/C/man7/environ.7:96
3131 #: build/C/man7/environ.7:99
3132 msgid "The pathname of the user's login shell."
3136 #: build/C/man7/environ.7:99
3142 #: build/C/man7/environ.7:102
3143 msgid "The terminal type for which output is to be prepared."
3147 #: build/C/man7/environ.7:102
3153 #: build/C/man7/environ.7:105
3154 msgid "The user's preferred utility to display text files."
3158 #: build/C/man7/environ.7:105
3160 msgid "B<EDITOR>/B<VISUAL>"
3165 #. The user's preferred utility to browse URLs. Sequence of colon-separated
3166 #. browser commands. See http://www.catb.org/~esr/BROWSER/ .
3168 #: build/C/man7/environ.7:112
3169 msgid "The user's preferred utility to edit text files."
3173 #: build/C/man7/environ.7:127
3175 "Further names may be placed in the environment by the I<export> command and "
3176 "\"name=value\" in B<sh>(1), or by the I<setenv> command if you use "
3177 "B<csh>(1). Arguments may also be placed in the environment at the point of "
3178 "an B<exec>(3). A C program can manipulate its environment using the "
3179 "functions B<getenv>(3), B<putenv>(3), B<setenv>(3), and B<unsetenv>(3)."
3183 #: build/C/man7/environ.7:131
3185 "Note that the behavior of many programs and library routines is influenced "
3186 "by the presence or value of certain environment variables. A random "
3191 #: build/C/man7/environ.7:137
3193 "The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, "
3194 "B<LC_MESSAGES>, etc. influence locale handling, cf. B<locale>(5)."
3198 #: build/C/man7/environ.7:144
3200 "B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3) and "
3201 "other routines, the temporary directory used by B<sort>(1) and other "
3206 #: build/C/man7/environ.7:148
3208 "B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the "
3209 "behavior of the dynamic loader/linker."
3213 #: build/C/man7/environ.7:152
3215 "B<POSIXLY_CORRECT> makes certain programs and library routines follow the "
3216 "prescriptions of POSIX."
3220 #: build/C/man7/environ.7:158
3221 msgid "The behavior of B<malloc>(3) is influenced by B<MALLOC_*> variables."
3225 #: build/C/man7/environ.7:164
3227 "The variable B<HOSTALIASES> gives the name of a file containing aliases to "
3228 "be used with B<gethostbyname>(3)."
3232 #: build/C/man7/environ.7:175
3234 "B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3) and "
3235 "through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), "
3236 "B<strftime>(3). See also B<tzselect>(8)."
3240 #: build/C/man7/environ.7:179
3242 "B<TERMCAP> gives information on how to address a given terminal (or gives "
3243 "the name of a file containing such information)."
3247 #: build/C/man7/environ.7:182
3249 "B<COLUMNS> and B<LINES> tell applications about the window size, possibly "
3250 "overriding the actual size."
3254 #: build/C/man7/environ.7:187
3256 "B<PRINTER> or B<LPDEST> may specify the desired printer to use. See "
3261 #: build/C/man7/environ.7:189
3266 #: build/C/man7/environ.7:194
3268 "Clearly there is a security risk here. Many a system command has been "
3269 "tricked into mischief by a user who specified unusual values for B<IFS> or "
3270 "B<LD_LIBRARY_PATH>."
3274 #: build/C/man7/environ.7:227
3276 "There is also the risk of name space pollution. Programs like I<make> and "
3277 "I<autoconf> allow overriding of default utility names from the environment "
3278 "with similarly named variables in all caps. Thus one uses B<CC> to select "
3279 "the desired C compiler (and similarly B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, "
3280 "B<LEX>, B<RM>, B<YACC>, etc.). However, in some traditional uses such an "
3281 "environment variable gives options for the program instead of a pathname. "
3282 "Thus, one has B<MORE>, B<LESS>, and B<GZIP>. Such usage is considered "
3283 "mistaken, and to be avoided in new programs. The authors of I<gzip> should "
3284 "consider renaming their option to B<GZIP_OPT>."
3288 #: build/C/man7/environ.7:241
3290 "B<bash>(1), B<csh>(1), B<login>(1), B<sh>(1), B<tcsh>(1), B<execve>(2), "
3291 "B<clearenv>(3), B<exec>(3), B<getenv>(3), B<putenv>(3), B<setenv>(3), "
3292 "B<unsetenv>(3), B<locale>(5)"
3296 #: build/C/man3/euidaccess.3:26
3302 #: build/C/man3/euidaccess.3:26 build/C/man3/getopt.3:39
3308 #: build/C/man3/euidaccess.3:29
3309 msgid "euidaccess, eaccess - check effective user's permissions for a file"
3313 #: build/C/man3/euidaccess.3:33
3316 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
3317 "B<#include E<lt>unistd.hE<gt>>\n"
3321 #: build/C/man3/euidaccess.3:36
3324 "B<int euidaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3325 "B<int eaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3329 #: build/C/man3/euidaccess.3:48
3331 "Like B<access>(2), B<euidaccess>() checks permissions and existence of the "
3332 "file identified by its argument I<pathname>. However, whereas B<access>(2), "
3333 "performs checks using the real user and group identifiers of the process, "
3334 "B<euidaccess>() uses the effective identifiers."
3338 #: build/C/man3/euidaccess.3:54
3340 "I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK> and "
3341 "B<F_OK>, with the same meanings as for B<access>(2)."
3345 #: build/C/man3/euidaccess.3:59
3347 "B<eaccess>() is a synonym for B<euidaccess>(), provided for compatibility "
3348 "with some other systems."
3352 #: build/C/man3/euidaccess.3:70
3353 msgid "As for B<access>(2)."
3357 #: build/C/man3/euidaccess.3:74
3358 msgid "The B<eaccess>() function was added to glibc in version 2.4."
3361 #. e.g., FreeBSD 6.1.
3363 #: build/C/man3/euidaccess.3:80
3365 "These functions are nonstandard. Some other systems have an B<eaccess>() "
3370 #: build/C/man3/euidaccess.3:87
3372 "I<Warning>: Using this function to check a process's permissions on a file "
3373 "before performing some operation based on that information leads to race "
3374 "conditions: the file permissions may change between the two steps. "
3375 "Generally, it is safer just to attempt the desired operation and handle any "
3376 "permission error that occurs."
3380 #: build/C/man3/euidaccess.3:95
3382 "This function always dereferences symbolic links. If you need to check the "
3383 "permissions on a symbolic link, use B<faccessat(2)> with the flags "
3384 "B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW>."
3388 #: build/C/man3/euidaccess.3:106
3390 "B<access>(2), B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), "
3391 "B<setgid>(2), B<setuid>(2), B<stat>(2), B<credentials>(7), "
3392 "B<path_resolution>(7)"
3396 #: build/C/man3/exec.3:39
3402 #: build/C/man3/exec.3:39
3408 #: build/C/man3/exec.3:42
3409 msgid "execl, execlp, execle, execv, execvp, execvpe - execute a file"
3413 #: build/C/man3/exec.3:46
3414 msgid "B<extern char **environ;>"
3418 #: build/C/man3/exec.3:48
3419 msgid "B<int execl(const char *>I<path>B<, const char *>I<arg>B<, ...);>"
3423 #: build/C/man3/exec.3:50
3424 msgid "B<int execlp(const char *>I<file>B<, const char *>I<arg>B<, ...);>"
3428 #: build/C/man3/exec.3:52
3429 msgid "B<int execle(const char *>I<path>B<, const char *>I<arg>B<,>"
3433 #: build/C/man3/exec.3:54
3434 msgid "B< ..., char * const >I<envp>B<[]);>"
3438 #: build/C/man3/exec.3:56
3439 msgid "B<int execv(const char *>I<path>B<, char *const >I<argv>B<[]);>"
3443 #: build/C/man3/exec.3:58
3444 msgid "B<int execvp(const char *>I<file>B<, char *const >I<argv>B<[]);>"
3448 #: build/C/man3/exec.3:60
3449 msgid "B<int execvpe(const char *>I<file>B<, char *const >I<argv>B<[],>"
3453 #: build/C/man3/exec.3:62 build/C/man2/execve.2:46
3454 msgid "B< char *const >I<envp>B<[]);>"
3458 #: build/C/man3/exec.3:70
3459 msgid "B<execvpe>(): _GNU_SOURCE"
3463 #: build/C/man3/exec.3:80
3465 "The B<exec>() family of functions replaces the current process image with a "
3466 "new process image. The functions described in this manual page are "
3467 "front-ends for B<execve>(2). (See the manual page for B<execve>(2) for "
3468 "further details about the replacement of the current process image.)"
3472 #: build/C/man3/exec.3:83
3474 "The initial argument for these functions is the name of a file that is to be "
3479 #: build/C/man3/exec.3:105
3481 "The I<const char *arg> and subsequent ellipses in the B<execl>(), "
3482 "B<execlp>(), and B<execle>() functions can be thought of as I<arg0>, "
3483 "I<arg1>, \\&..., I<argn>. Together they describe a list of one or more "
3484 "pointers to null-terminated strings that represent the argument list "
3485 "available to the executed program. The first argument, by convention, "
3486 "should point to the filename associated with the file being executed. The "
3487 "list of arguments I<must> be terminated by a NULL pointer, and, since these "
3488 "are variadic functions, this pointer must be cast I<(char *) NULL>."
3492 #: build/C/man3/exec.3:118
3494 "The B<execv>(), B<execvp>(), and B<execvpe>() functions provide an array of "
3495 "pointers to null-terminated strings that represent the argument list "
3496 "available to the new program. The first argument, by convention, should "
3497 "point to the filename associated with the file being executed. The array of "
3498 "pointers I<must> be terminated by a NULL pointer."
3502 #: build/C/man3/exec.3:135
3504 "The B<execle>() and B<execvpe>() functions allow the caller to specify the "
3505 "environment of the executed program via the argument I<envp>. The I<envp> "
3506 "argument is an array of pointers to null-terminated strings and I<must> be "
3507 "terminated by a NULL pointer. The other functions take the environment for "
3508 "the new process image from the external variable I<environ> in the calling "
3513 #: build/C/man3/exec.3:135
3515 msgid "Special semantics for execlp() and execvp()"
3519 #: build/C/man3/exec.3:155
3521 "The B<execlp>(), B<execvp>(), and B<execvpe>() functions duplicate the "
3522 "actions of the shell in searching for an executable file if the specified "
3523 "filename does not contain a slash (/) character. The file is sought in the "
3524 "colon-separated list of directory pathnames specified in the B<PATH> "
3525 "environment variable. If this variable isn't defined, the path list "
3526 "defaults to the current directory followed by the list of directories "
3527 "returned by I<confstr(_CS_PATH)>. (This B<confstr>(3) call typically "
3528 "returns the value \"/bin:/usr/bin\".)"
3532 #: build/C/man3/exec.3:159
3534 "If the specified filename includes a slash character, then B<PATH> is "
3535 "ignored, and the file at the specified pathname is executed."
3539 #: build/C/man3/exec.3:161
3540 msgid "In addition, certain errors are treated specially."
3544 #: build/C/man3/exec.3:172
3546 "If permission is denied for a file (the attempted B<execve>(2) failed with "
3547 "the error B<EACCES>), these functions will continue searching the rest of "
3548 "the search path. If no other file is found, however, they will return with "
3549 "I<errno> set to B<EACCES>."
3553 #: build/C/man3/exec.3:181
3555 "If the header of a file isn't recognized (the attempted B<execve>(2) failed "
3556 "with the error B<ENOEXEC>), these functions will execute the shell "
3557 "(I</bin/sh>) with the path of the file as its first argument. (If this "
3558 "attempt fails, no further searching is done.)"
3562 #: build/C/man3/exec.3:188
3564 "The B<exec>() functions only return if an error has have occurred. The "
3565 "return value is -1, and I<errno> is set to indicate the error."
3569 #: build/C/man3/exec.3:193
3571 "All of these functions may fail and set I<errno> for any of the errors "
3572 "specified for B<execve>(2)."
3576 #: build/C/man3/exec.3:197
3577 msgid "The B<execvpe>() function first appeared in glibc 2.11."
3581 #: build/C/man3/exec.3:199
3582 msgid "POSIX.1-2001, POSIX.1-2008."
3586 #: build/C/man3/exec.3:203
3587 msgid "The B<execvpe>() function is a GNU extension."
3591 #: build/C/man3/exec.3:213
3593 "On some other systems, the default path (used when the environment does not "
3594 "contain the variable B<PATH>) has the current working directory listed after "
3595 "I</bin> and I</usr/bin>, as an anti-Trojan-horse measure. Linux uses here "
3596 "the traditional \"current directory first\" default path."
3600 #: build/C/man3/exec.3:227
3602 "The behavior of B<execlp>() and B<execvp>() when errors occur while "
3603 "attempting to execute the file is historic practice, but has not "
3604 "traditionally been documented and is not specified by the POSIX standard. "
3605 "BSD (and possibly other systems) do an automatic sleep and retry if "
3606 "B<ETXTBSY> is encountered. Linux treats it as a hard error and returns "
3611 #: build/C/man3/exec.3:239
3613 "Traditionally, the functions B<execlp>() and B<execvp>() ignored all "
3614 "errors except for the ones described above and B<ENOMEM> and B<E2BIG>, upon "
3615 "which they returned. They now return if any error other than the ones "
3616 "described above occurs."
3620 #: build/C/man3/exec.3:246
3622 "B<sh>(1), B<execve>(2), B<fork>(2), B<ptrace>(2), B<fexecve>(3), "
3627 #: build/C/man2/execve.2:37
3633 #: build/C/man2/execve.2:37
3639 #: build/C/man2/execve.2:40
3640 msgid "execve - execute program"
3644 #: build/C/man2/execve.2:44
3645 msgid "B<int execve(const char *>I<filename>B<, char *const >I<argv>B<[], >"
3649 #: build/C/man2/execve.2:51
3651 "B<execve>() executes the program pointed to by I<filename>. I<filename> "
3652 "must be either a binary executable, or a script starting with a line of the "
3657 #: build/C/man2/execve.2:55 build/C/man2/execve.2:252
3659 msgid "B<#!> I<interpreter >[optional-arg]\n"
3663 #: build/C/man2/execve.2:59
3664 msgid "For details of the latter case, see \"Interpreter scripts\" below."
3668 #: build/C/man2/execve.2:68
3670 "I<argv> is an array of argument strings passed to the new program. By "
3671 "convention, the first of these strings should contain the filename "
3672 "associated with the file being executed. I<envp> is an array of strings, "
3673 "conventionally of the form B<key=value>, which are passed as environment to "
3674 "the new program. Both I<argv> and I<envp> must be terminated by a NULL "
3675 "pointer. The argument vector and environment can be accessed by the called "
3676 "program's main function, when it is defined as:"
3680 #: build/C/man2/execve.2:72
3682 msgid "int main(int argc, char *argv[], char *envp[])\n"
3686 #: build/C/man2/execve.2:79
3688 "B<execve>() does not return on success, and the text, data, bss, and stack "
3689 "of the calling process are overwritten by that of the program loaded."
3693 #: build/C/man2/execve.2:83
3695 "If the current program is being ptraced, a B<SIGTRAP> is sent to it after a "
3696 "successful B<execve>()."
3700 #: build/C/man2/execve.2:98
3702 "If the set-user-ID bit is set on the program file pointed to by I<filename>, "
3703 "and the underlying file system is not mounted I<nosuid> (the B<MS_NOSUID> "
3704 "flag for B<mount>(2)), and the calling process is not being ptraced, then "
3705 "the effective user ID of the calling process is changed to that of the owner "
3706 "of the program file. Similarly, when the set-group-ID bit of the program "
3707 "file is set the effective group ID of the calling process is set to the "
3708 "group of the program file."
3712 #: build/C/man2/execve.2:103
3714 "The effective user ID of the process is copied to the saved set-user-ID; "
3715 "similarly, the effective group ID is copied to the saved set-group-ID. This "
3716 "copying takes place after any effective ID changes that occur because of the "
3717 "set-user-ID and set-group-ID permission bits."
3721 #: build/C/man2/execve.2:111
3723 "If the executable is an a.out dynamically linked binary executable "
3724 "containing shared-library stubs, the Linux dynamic linker B<ld.so>(8) is "
3725 "called at the start of execution to bring needed shared libraries into "
3726 "memory and link the executable with them."
3730 #: build/C/man2/execve.2:119
3732 "If the executable is a dynamically linked ELF executable, the interpreter "
3733 "named in the PT_INTERP segment is used to load the needed shared libraries. "
3734 "This interpreter is typically I</lib/ld-linux.so.1> for binaries linked with "
3735 "the Linux libc 5, or I</lib/ld-linux.so.2> for binaries linked with the "
3740 #: build/C/man2/execve.2:123
3742 "All process attributes are preserved during an B<execve>(), except the "
3747 #: build/C/man2/execve.2:127
3749 "The dispositions of any signals that are being caught are reset to the "
3750 "default (B<signal>(7))."
3754 #: build/C/man2/execve.2:130
3755 msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
3759 #: build/C/man2/execve.2:133
3760 msgid "Memory mappings are not preserved (B<mmap>(2))."
3764 #: build/C/man2/execve.2:136
3765 msgid "Attached System V shared memory segments are detached (B<shmat>(2))."
3769 #: build/C/man2/execve.2:139
3770 msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
3774 #: build/C/man2/execve.2:142
3775 msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
3779 #: build/C/man2/execve.2:145
3780 msgid "Any open POSIX named semaphores are closed (B<sem_overview>(7))."
3784 #: build/C/man2/execve.2:148
3785 msgid "POSIX timers are not preserved (B<timer_create>(2))."
3789 #: build/C/man2/execve.2:151
3790 msgid "Any open directory streams are closed (B<opendir>(3))."
3794 #: build/C/man2/execve.2:155
3795 msgid "Memory locks are not preserved (B<mlock>(2), B<mlockall>(2))."
3799 #: build/C/man2/execve.2:159
3800 msgid "Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3))."
3804 #: build/C/man2/execve.2:162
3805 msgid "The floating-point environment is reset to the default (see B<fenv>(3))."
3809 #: build/C/man2/execve.2:168
3811 "The process attributes in the preceding list are all specified in "
3812 "POSIX.1-2001. The following Linux-specific process attributes are also not "
3813 "preserved during an B<execve>():"
3817 #: build/C/man2/execve.2:175
3819 "The B<prctl>(2) B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or "
3820 "set-group ID program is being executed, in which case it is cleared."
3824 #: build/C/man2/execve.2:180
3825 msgid "The B<prctl>(2) B<PR_SET_KEEPCAPS> flag is cleared."
3829 #: build/C/man2/execve.2:187
3831 "The process name, as set by B<prctl>(2) B<PR_SET_NAME> (and displayed by "
3832 "I<ps\\ -o comm>), is reset to the name of the new executable file."
3836 #: build/C/man2/execve.2:192
3837 msgid "The termination signal is reset to B<SIGCHLD> (see B<clone>(2))."
3841 #: build/C/man2/execve.2:194 build/C/man2/fork.2:120
3842 msgid "Note the following further points:"
3846 #: build/C/man2/execve.2:198
3848 "All threads other than the calling thread are destroyed during an "
3849 "B<execve>(). Mutexes, condition variables, and other pthreads objects are "
3854 #: build/C/man2/execve.2:201
3856 "The equivalent of I<setlocale(LC_ALL, \"C\")> is executed at program "
3861 #: build/C/man2/execve.2:209
3863 "POSIX.1-2001 specifies that the dispositions of any signals that are ignored "
3864 "or set to the default are left unchanged. POSIX.1-2001 specifies one "
3865 "exception: if B<SIGCHLD> is being ignored, then an implementation may leave "
3866 "the disposition unchanged or reset it to the default; Linux does the former."
3870 #: build/C/man2/execve.2:213
3872 "Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), "
3877 #: build/C/man2/execve.2:218
3878 msgid "For the handling of capabilities during B<execve>(), see B<capabilities>(7)."
3881 #. On Linux it appears that these file descriptors are
3882 #. always open after an execve(), and it looks like
3883 #. Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
3885 #: build/C/man2/execve.2:245
3887 "By default, file descriptors remain open across an B<execve>(). File "
3888 "descriptors that are marked close-on-exec are closed; see the description of "
3889 "B<FD_CLOEXEC> in B<fcntl>(2). (If a file descriptor is closed, this will "
3890 "cause the release of all record locks obtained on the underlying file by "
3891 "this process. See B<fcntl>(2) for details.) POSIX.1-2001 says that if "
3892 "file descriptors 0, 1, and 2 would otherwise be closed after a successful "
3893 "B<execve>(), and the process would gain privilege because the set-user_ID or "
3894 "set-group_ID permission bit was set on the executed file, then the system "
3895 "may open an unspecified file for each of these file descriptors. As a "
3896 "general principle, no portable program, whether privileged or not, can "
3897 "assume that these three file descriptors will remain closed across an "
3902 #: build/C/man2/execve.2:245
3904 msgid "Interpreter scripts"
3908 #: build/C/man2/execve.2:248
3910 "An interpreter script is a text file that has execute permission enabled and "
3911 "whose first line is of the form:"
3915 #: build/C/man2/execve.2:266
3917 "The I<interpreter> must be a valid pathname for an executable which is not "
3918 "itself a script. If the I<filename> argument of B<execve>() specifies an "
3919 "interpreter script, then I<interpreter> will be invoked with the following "
3924 #: build/C/man2/execve.2:270
3926 msgid "I<interpreter> [optional-arg] I<filename> arg...\n"
3930 #: build/C/man2/execve.2:279
3932 "where I<arg...> is the series of words pointed to by the I<argv> argument of "
3937 #: build/C/man2/execve.2:284
3939 "For portable use, I<optional-arg> should either be absent, or be specified "
3940 "as a single word (i.e., it should not contain white space); see NOTES below."
3944 #: build/C/man2/execve.2:284
3946 msgid "Limits on size of arguments and environment"
3950 #: build/C/man2/execve.2:297
3952 "Most UNIX implementations impose some limit on the total size of the "
3953 "command-line argument (I<argv>) and environment (I<envp>) strings that may "
3954 "be passed to a new program. POSIX.1 allows an implementation to advertise "
3955 "this limit using the B<ARG_MAX> constant (either defined in "
3956 "I<E<lt>limits.hE<gt>> or available at run time using the call "
3957 "I<sysconf(_SC_ARG_MAX)>)."
3961 #: build/C/man2/execve.2:304
3963 "On Linux prior to kernel 2.6.23, the memory used to store the environment "
3964 "and argument strings was limited to 32 pages (defined by the kernel constant "
3965 "B<MAX_ARG_PAGES>). On architectures with a 4-kB page size, this yields a "
3966 "maximum size of 128 kB."
3969 #. For some background on the changes to ARG_MAX in kernels 2.6.23 and
3971 #. http://sourceware.org/bugzilla/show_bug.cgi?id=5786
3972 #. http://bugzilla.kernel.org/show_bug.cgi?id=10095
3973 #. http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101,
3974 #. checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.
3975 #. Ollie: That doesn't include the lists of pointers, though,
3976 #. so the actual usage is a bit higher (1 pointer per argument).
3978 #: build/C/man2/execve.2:340
3980 "On kernel 2.6.23 and later, most architectures support a size limit derived "
3981 "from the soft B<RLIMIT_STACK> resource limit (see B<getrlimit>(2)) that is "
3982 "in force at the time of the B<execve>() call. (Architectures with no "
3983 "memory management unit are excepted: they maintain the limit that was in "
3984 "effect before kernel 2.6.23.) This change allows programs to have a much "
3985 "larger argument and/or environment list. For these architectures, the total "
3986 "size is limited to 1/4 of the allowed stack size. (Imposing the 1/4-limit "
3987 "ensures that the new program always has some stack space.) Since Linux "
3988 "2.6.25, the kernel places a floor of 32 pages on this size limit, so that, "
3989 "even when B<RLIMIT_STACK> is set very low, applications are guaranteed to "
3990 "have at least as much argument and environment space as was provided by "
3991 "Linux 2.6.23 and earlier. (This guarantee was not provided in Linux 2.6.23 "
3992 "and 2.6.24.) Additionally, the limit per string is 32 pages (the kernel "
3993 "constant B<MAX_ARG_STRLEN>), and the maximum number of strings is "
3998 #: build/C/man2/execve.2:346
4000 "On success, B<execve>() does not return, on error -1 is returned, and "
4001 "I<errno> is set appropriately."
4005 #: build/C/man2/execve.2:347
4011 #: build/C/man2/execve.2:354
4013 "The total number of bytes in the environment (I<envp>) and argument list "
4014 "(I<argv>) is too large."
4018 #: build/C/man2/execve.2:361
4020 "Search permission is denied on a component of the path prefix of I<filename> "
4021 "or the name of a script interpreter. (See also B<path_resolution>(7).)"
4025 #: build/C/man2/execve.2:364
4026 msgid "The file or a script interpreter is not a regular file."
4030 #: build/C/man2/execve.2:367
4031 msgid "Execute permission is denied for the file or a script or ELF interpreter."
4035 #: build/C/man2/execve.2:371
4036 msgid "The file system is mounted I<noexec>."
4040 #: build/C/man2/execve.2:375
4041 msgid "I<filename> points outside your accessible address space."
4045 #: build/C/man2/execve.2:379
4047 "An ELF executable had more than one PT_INTERP segment (i.e., tried to name "
4048 "more than one interpreter)."
4052 #: build/C/man2/execve.2:382 build/C/man2/truncate.2:146
4058 #: build/C/man2/execve.2:385
4059 msgid "An ELF interpreter was a directory."
4063 #: build/C/man2/execve.2:385
4069 #: build/C/man2/execve.2:388
4070 msgid "An ELF interpreter was not in a recognized format."
4074 #: build/C/man2/execve.2:393
4076 "Too many symbolic links were encountered in resolving I<filename> or the "
4077 "name of a script or ELF interpreter."
4081 #: build/C/man2/execve.2:396
4082 msgid "The process has the maximum number of files open."
4086 #: build/C/man2/execve.2:400
4087 msgid "I<filename> is too long."
4091 #: build/C/man2/execve.2:400 build/C/man3/getlogin.3:106 build/C/man2/swapon.2:133 build/C/man2/uselib.2:67
4097 #: build/C/man2/execve.2:403 build/C/man2/swapon.2:136 build/C/man2/uselib.2:70
4098 msgid "The system limit on the total number of open files has been reached."
4102 #: build/C/man2/execve.2:409
4104 "The file I<filename> or a script or ELF interpreter does not exist, or a "
4105 "shared library needed for file or interpreter cannot be found."
4109 #: build/C/man2/execve.2:409 build/C/man2/uselib.2:70
4115 #: build/C/man2/execve.2:414
4117 "An executable is not in a recognized format, is for the wrong architecture, "
4118 "or has some other format error that means it cannot be executed."
4122 #: build/C/man2/execve.2:422
4124 "A component of the path prefix of I<filename> or a script or ELF interpreter "
4125 "is not a directory."
4129 #: build/C/man2/execve.2:428
4131 "The file system is mounted I<nosuid>, the user is not the superuser, and the "
4132 "file has the set-user-ID or set-group-ID bit set."
4136 #: build/C/man2/execve.2:432
4138 "The process is being traced, the user is not the superuser and the file has "
4139 "the set-user-ID or set-group-ID bit set."
4143 #: build/C/man2/execve.2:435
4144 msgid "Executable was open for writing by one or more processes."
4147 #. SVr4 documents additional error
4148 #. conditions EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX does not
4149 #. document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL,
4150 #. EISDIR or ELIBBAD error conditions.
4152 #: build/C/man2/execve.2:443
4154 "SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2001 does not document the #! behavior "
4155 "but is otherwise compatible."
4159 #: build/C/man2/execve.2:446
4160 msgid "Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d."
4164 #: build/C/man2/execve.2:448
4165 msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
4169 #: build/C/man2/execve.2:459
4171 "The result of mounting a file system I<nosuid> varies across Linux kernel "
4172 "versions: some will refuse execution of set-user-ID and set-group-ID "
4173 "executables when this would give the user powers she did not have already "
4174 "(and return B<EPERM>), some will just ignore the set-user-ID and "
4175 "set-group-ID bits and B<exec>() successfully."
4179 #: build/C/man2/execve.2:462
4181 "A maximum line length of 127 characters is allowed for the first line in a "
4182 "#! executable shell script."
4186 #. e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
4188 #: build/C/man2/execve.2:481
4190 "The semantics of the I<optional-arg> argument of an interpreter script vary "
4191 "across implementations. On Linux, the entire string following the "
4192 "I<interpreter> name is passed as a single argument to the interpreter, and "
4193 "this string can include white space. However, behavior differs on some "
4194 "other systems. Some systems use the first white space to terminate "
4195 "I<optional-arg>. On some systems, an interpreter script can have multiple "
4196 "arguments, and white spaces in I<optional-arg> are used to delimit the "
4200 #. e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
4201 #. HP-UX 11 is like Linux -- mtk, Apr 2007
4202 #. Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
4203 #. Bug rejected (because fix would constitute an ABI change).
4205 #: build/C/man2/execve.2:496
4207 "On Linux, I<argv> can be specified as NULL, which has the same effect as "
4208 "specifying this argument as a pointer to a list containing a single NULL "
4209 "pointer. B<Do not take advantage of this misfeature!> It is nonstandard and "
4210 "nonportable: on most other UNIX systems doing this will result in an error "
4216 #. Some Linux versions have failed to check permissions on ELF
4217 #. interpreters. This is a security hole, because it allows users to
4218 #. open any file, such as a rewinding tape device, for reading. Some
4219 #. Linux versions have also had other security holes in
4221 #. that could be exploited for denial of service by a suitably crafted
4222 #. ELF binary. There are no known problems with 2.0.34 or 2.2.15.
4224 #: build/C/man2/execve.2:516
4226 "POSIX.1-2001 says that values returned by B<sysconf>(3) should be invariant "
4227 "over the lifetime of a process. However, since Linux 2.6.23, if the "
4228 "B<RLIMIT_STACK> resource limit changes, then the value reported by "
4229 "B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
4230 "for holding command-line arguments and environment variables has changed."
4234 #: build/C/man2/execve.2:516
4240 #: build/C/man2/execve.2:527
4242 "With UNIX V6 the argument list of an B<exec>() call was ended by 0, while "
4243 "the argument list of I<main> was ended by -1. Thus, this argument list was "
4244 "not directly usable in a further B<exec>() call. Since UNIX V7 both are "
4249 #: build/C/man2/execve.2:530
4251 "The following program is designed to be execed by the second program below. "
4252 "It just echoes its command-line one per line."
4256 #: build/C/man2/execve.2:534
4258 msgid "/* myecho.c */\n"
4262 #: build/C/man2/execve.2:537
4265 "#include E<lt>stdio.hE<gt>\n"
4266 "#include E<lt>stdlib.hE<gt>\n"
4270 #: build/C/man2/execve.2:542
4274 "main(int argc, char *argv[])\n"
4280 #: build/C/man2/execve.2:545
4283 " for (j = 0; j E<lt> argc; j++)\n"
4284 " printf(\"argv[%d]: %s\\en\", j, argv[j]);\n"
4288 #: build/C/man2/execve.2:553
4290 "This program can be used to exec the program named in its command-line "
4295 #: build/C/man2/execve.2:557
4297 msgid "/* execve.c */\n"
4301 #: build/C/man2/execve.2:561
4304 "#include E<lt>stdio.hE<gt>\n"
4305 "#include E<lt>stdlib.hE<gt>\n"
4306 "#include E<lt>unistd.hE<gt>\n"
4310 #: build/C/man2/execve.2:567
4314 "main(int argc, char *argv[])\n"
4316 " char *newargv[] = { NULL, \"hello\", \"world\", NULL };\n"
4317 " char *newenviron[] = { NULL };\n"
4321 #: build/C/man2/execve.2:572
4324 " if (argc != 2) {\n"
4325 "\tfprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", argv[0]);\n"
4326 "\texit(EXIT_FAILURE);\n"
4331 #: build/C/man2/execve.2:574
4333 msgid " newargv[0] = argv[1];\n"
4337 #: build/C/man2/execve.2:579
4340 " execve(argv[1], newargv, newenviron);\n"
4341 " perror(\"execve\"); /* execve() only returns on error */\n"
4342 " exit(EXIT_FAILURE);\n"
4347 #: build/C/man2/execve.2:583
4348 msgid "We can use the second program to exec the first as follows:"
4352 #: build/C/man2/execve.2:592
4355 "$B< cc myecho.c -o myecho>\n"
4356 "$B< cc execve.c -o execve>\n"
4357 "$B< ./execve ./myecho>\n"
4358 "argv[0]: ./myecho\n"
4364 #: build/C/man2/execve.2:600
4366 "We can also use these programs to demonstrate the use of a script "
4367 "interpreter. To do this we create a script whose \"interpreter\" is our "
4368 "I<myecho> program:"
4372 #: build/C/man2/execve.2:607
4375 "$B< cat E<gt> script.sh>\n"
4376 "B<#! ./myecho script-arg>\n"
4378 "$B< chmod +x script.sh>\n"
4382 #: build/C/man2/execve.2:611
4383 msgid "We can then use our program to exec the script:"
4387 #: build/C/man2/execve.2:620
4390 "$B< ./execve ./script.sh>\n"
4391 "argv[0]: ./myecho\n"
4392 "argv[1]: script-arg\n"
4393 "argv[2]: ./script.sh\n"
4399 #: build/C/man2/execve.2:633
4401 "B<chmod>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), B<fexecve>(3), "
4402 "B<getopt>(3), B<credentials>(7), B<environ>(7), B<path_resolution>(7), "
4407 #: build/C/man2/exit_group.2:23
4413 #: build/C/man2/exit_group.2:23 build/C/man2/get_thread_area.2:6 build/C/man2/set_thread_area.2:7
4419 #: build/C/man2/exit_group.2:26
4420 msgid "exit_group - exit all threads in a process"
4424 #: build/C/man2/exit_group.2:29
4426 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
4430 #: build/C/man2/exit_group.2:31
4432 msgid "B<void exit_group(int >I<status>B<);>\n"
4436 #: build/C/man2/exit_group.2:37
4438 "This system call is equivalent to B<exit>(2) except that it terminates not "
4439 "only the calling thread, but all threads in the calling process's thread "
4444 #: build/C/man2/exit_group.2:39
4445 msgid "This system call does not return."
4449 #: build/C/man2/exit_group.2:41
4450 msgid "This call is present since Linux 2.5.35."
4454 #: build/C/man2/exit_group.2:43
4455 msgid "This call is Linux-specific."
4459 #: build/C/man2/exit_group.2:47
4461 "Since glibc 2.3, this is the system call invoked when the B<exit>(2) "
4462 "wrapper function is called."
4466 #: build/C/man2/exit_group.2:49
4471 #: build/C/man2/fcntl.2:61
4477 #: build/C/man2/fcntl.2:64
4478 msgid "fcntl - manipulate file descriptor"
4482 #: build/C/man2/fcntl.2:68
4485 "B<#include E<lt>unistd.hE<gt>>\n"
4486 "B<#include E<lt>fcntl.hE<gt>>\n"
4490 #: build/C/man2/fcntl.2:70
4492 msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n"
4496 #: build/C/man2/fcntl.2:77
4498 "B<fcntl>() performs one of the operations described below on the open file "
4499 "descriptor I<fd>. The operation is determined by I<cmd>."
4503 #: build/C/man2/fcntl.2:91
4505 "B<fcntl>() can take an optional third argument. Whether or not this "
4506 "argument is required is determined by I<cmd>. The required argument type is "
4507 "indicated in parentheses after each I<cmd> name (in most cases, the required "
4508 "type is I<long>, and we identify the argument using the name I<arg>), or "
4509 "I<void> is specified if the argument is not required."
4513 #: build/C/man2/fcntl.2:91
4515 msgid "Duplicating a file descriptor"
4519 #: build/C/man2/fcntl.2:92
4521 msgid "B<F_DUPFD> (I<long>)"
4525 #: build/C/man2/fcntl.2:102
4527 "Find the lowest numbered available file descriptor greater than or equal to "
4528 "I<arg> and make it be a copy of I<fd>. This is different from B<dup2>(2), "
4529 "which uses exactly the descriptor specified."
4533 #: build/C/man2/fcntl.2:104
4534 msgid "On success, the new descriptor is returned."
4538 #: build/C/man2/fcntl.2:108
4539 msgid "See B<dup>(2) for further details."
4543 #: build/C/man2/fcntl.2:108
4545 msgid "B<F_DUPFD_CLOEXEC> (I<long>; since Linux 2.6.24)"
4549 #: build/C/man2/fcntl.2:125
4551 "As for B<F_DUPFD>, but additionally set the close-on-exec flag for the "
4552 "duplicate descriptor. Specifying this flag permits a program to avoid an "
4553 "additional B<fcntl>() B<F_SETFD> operation to set the B<FD_CLOEXEC> flag. "
4554 "For an explanation of why this flag is useful, see the description of "
4555 "B<O_CLOEXEC> in B<open>(2)."
4559 #: build/C/man2/fcntl.2:125
4561 msgid "File descriptor flags"
4565 #: build/C/man2/fcntl.2:136
4567 "The following commands manipulate the flags associated with a file "
4568 "descriptor. Currently, only one such flag is defined: B<FD_CLOEXEC>, the "
4569 "close-on-exec flag. If the B<FD_CLOEXEC> bit is 0, the file descriptor will "
4570 "remain open across an B<execve>(2), otherwise it will be closed."
4574 #: build/C/man2/fcntl.2:136
4576 msgid "B<F_GETFD> (I<void>)"
4580 #: build/C/man2/fcntl.2:141
4581 msgid "Read the file descriptor flags; I<arg> is ignored."
4585 #: build/C/man2/fcntl.2:141
4587 msgid "B<F_SETFD> (I<long>)"
4591 #: build/C/man2/fcntl.2:145
4592 msgid "Set the file descriptor flags to the value specified by I<arg>."
4596 #: build/C/man2/fcntl.2:145
4598 msgid "File status flags"
4604 #: build/C/man2/fcntl.2:160
4606 "Each open file description has certain associated status flags, initialized "
4607 "by B<open>(2) and possibly modified by B<fcntl>(). Duplicated file "
4608 "descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer "
4609 "to the same open file description, and thus share the same file status "
4614 #: build/C/man2/fcntl.2:163
4615 msgid "The file status flags and their semantics are described in B<open>(2)."
4619 #: build/C/man2/fcntl.2:163
4621 msgid "B<F_GETFL> (I<void>)"
4625 #: build/C/man2/fcntl.2:168
4626 msgid "Get the file access mode and the file status flags; I<arg> is ignored."
4630 #: build/C/man2/fcntl.2:168
4632 msgid "B<F_SETFL> (I<long>)"
4635 #. FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
4636 #. via fcntl(2), but currently Linux does not permit this
4637 #. See http://bugzilla.kernel.org/show_bug.cgi?id=5994
4639 #: build/C/man2/fcntl.2:191
4641 "Set the file status flags to the value specified by I<arg>. File access "
4642 "mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>) and file creation flags (i.e., "
4643 "B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>) in I<arg> are ignored. On "
4644 "Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, "
4645 "B<O_NOATIME>, and B<O_NONBLOCK> flags."
4649 #: build/C/man2/fcntl.2:191
4651 msgid "Advisory locking"
4655 #: build/C/man2/fcntl.2:199
4657 "B<F_GETLK>, B<F_SETLK> and B<F_SETLKW> are used to acquire, release, and "
4658 "test for the existence of record locks (also known as file-segment or "
4659 "file-region locks). The third argument, I<lock>, is a pointer to a "
4660 "structure that has at least the following fields (in unspecified order)."
4664 #: build/C/man2/fcntl.2:214
4669 " short l_type; /* Type of lock: F_RDLCK,\n"
4670 " F_WRLCK, F_UNLCK */\n"
4671 " short l_whence; /* How to interpret l_start:\n"
4672 " SEEK_SET, SEEK_CUR, SEEK_END */\n"
4673 " off_t l_start; /* Starting offset for lock */\n"
4674 " off_t l_len; /* Number of bytes to lock */\n"
4675 " pid_t l_pid; /* PID of process blocking our lock\n"
4676 " (F_GETLK only) */\n"
4682 #: build/C/man2/fcntl.2:222
4684 "The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify "
4685 "the range of bytes we wish to lock. Bytes past the end of the file may be "
4686 "locked, but not bytes before the start of the file."
4690 #: build/C/man2/fcntl.2:242
4692 "I<l_start> is the starting offset for the lock, and is interpreted relative "
4693 "to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the "
4694 "current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file "
4695 "(if I<l_whence> is B<SEEK_END>). In the final two cases, I<l_start> can be "
4696 "a negative number provided the offset does not lie before the start of the "
4701 #: build/C/man2/fcntl.2:257
4703 "I<l_len> specifies the number of bytes to be locked. If I<l_len> is "
4704 "positive, then the range to be locked covers bytes I<l_start> up to and "
4705 "including I<l_start>+I<l_len>-I<1>. Specifying 0 for I<l_len> has the "
4706 "special meaning: lock all bytes starting at the location specified by "
4707 "I<l_whence> and I<l_start> through to the end of file, no matter how large "
4712 #: build/C/man2/fcntl.2:270
4714 "POSIX.1-2001 allows (but does not require) an implementation to support a "
4715 "negative I<l_len> value; if I<l_len> is negative, the interval described by "
4716 "I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1. "
4717 "This is supported by Linux since kernel versions 2.4.21 and 2.5.49."
4721 #: build/C/man2/fcntl.2:289
4723 "The I<l_type> field can be used to place a read (B<F_RDLCK>) or a write "
4724 "(B<F_WRLCK>) lock on a file. Any number of processes may hold a read lock "
4725 "(shared lock) on a file region, but only one process may hold a write lock "
4726 "(exclusive lock). An exclusive lock excludes all other locks, both shared "
4727 "and exclusive. A single process can hold only one type of lock on a file "
4728 "region; if a new lock is applied to an already-locked region, then the "
4729 "existing lock is converted to the new lock type. (Such conversions may "
4730 "involve splitting, shrinking, or coalescing with an existing lock if the "
4731 "byte range specified by the new lock does not precisely coincide with the "
4732 "range of the existing lock.)"
4736 #: build/C/man2/fcntl.2:289
4738 msgid "B<F_SETLK> (I<struct flock *>)"
4742 #: build/C/man2/fcntl.2:312
4744 "Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>) or release a "
4745 "lock (when I<l_type> is B<F_UNLCK>) on the bytes specified by the "
4746 "I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>. If a conflicting "
4747 "lock is held by another process, this call returns -1 and sets I<errno> to "
4748 "B<EACCES> or B<EAGAIN>."
4752 #: build/C/man2/fcntl.2:312
4754 msgid "B<F_SETLKW> (I<struct flock *>)"
4758 #: build/C/man2/fcntl.2:326
4760 "As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait "
4761 "for that lock to be released. If a signal is caught while waiting, then the "
4762 "call is interrupted and (after the signal handler has returned) returns "
4763 "immediately (with return value -1 and I<errno> set to B<EINTR>; see "
4768 #: build/C/man2/fcntl.2:326
4770 msgid "B<F_GETLK> (I<struct flock *>)"
4774 #: build/C/man2/fcntl.2:350
4776 "On input to this call, I<lock> describes a lock we would like to place on "
4777 "the file. If the lock could be placed, B<fcntl>() does not actually place "
4778 "it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
4779 "other fields of the structure unchanged. If one or more incompatible locks "
4780 "would prevent this lock being placed, then B<fcntl>() returns details about "
4781 "one of these locks in the I<l_type>, I<l_whence>, I<l_start>, and I<l_len> "
4782 "fields of I<lock> and sets I<l_pid> to be the PID of the process holding "
4787 #: build/C/man2/fcntl.2:358
4789 "In order to place a read lock, I<fd> must be open for reading. In order to "
4790 "place a write lock, I<fd> must be open for writing. To place both types of "
4791 "lock, open a file read-write."
4794 #. (Additional file descriptors referring to the same file
4795 #. may have been obtained by calls to
4796 #. .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
4798 #: build/C/man2/fcntl.2:375
4800 "As well as being removed by an explicit B<F_UNLCK>, record locks are "
4801 "automatically released when the process terminates or if it closes I<any> "
4802 "file descriptor referring to a file on which locks are held. This is bad: "
4803 "it means that a process can lose the locks on a file like I</etc/passwd> or "
4804 "I</etc/mtab> when for some reason a library function decides to open, read "
4809 #: build/C/man2/fcntl.2:380
4811 "Record locks are not inherited by a child created via B<fork>(2), but are "
4812 "preserved across an B<execve>(2)."
4816 #: build/C/man2/fcntl.2:389
4818 "Because of the buffering performed by the B<stdio>(3) library, the use of "
4819 "record locking with routines in that package should be avoided; use "
4820 "B<read>(2) and B<write>(2) instead."
4824 #: build/C/man2/fcntl.2:389
4826 msgid "Mandatory locking"
4830 #: build/C/man2/fcntl.2:393
4832 "(Non-POSIX.) The above record locks may be either advisory or mandatory, "
4833 "and are advisory by default."
4837 #: build/C/man2/fcntl.2:396
4839 "Advisory locks are not enforced and are useful only between cooperating "
4844 #: build/C/man2/fcntl.2:415
4846 "Mandatory locks are enforced for all processes. If a process tries to "
4847 "perform an incompatible access (e.g., B<read>(2) or B<write>(2)) on a file "
4848 "region that has an incompatible mandatory lock, then the result depends upon "
4849 "whether the B<O_NONBLOCK> flag is enabled for its open file description. If "
4850 "the B<O_NONBLOCK> flag is not enabled, then system call is blocked until the "
4851 "lock is removed or converted to a mode that is compatible with the access. "
4852 "If the B<O_NONBLOCK> flag is enabled, then the system call fails with the "
4857 #: build/C/man2/fcntl.2:432
4859 "To make use of mandatory locks, mandatory locking must be enabled both on "
4860 "the file system that contains the file to be locked, and on the file "
4861 "itself. Mandatory locking is enabled on a file system using the \"-o mand\" "
4862 "option to B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2). "
4863 "Mandatory locking is enabled on a file by disabling group execute permission "
4864 "on the file and enabling the set-group-ID permission bit (see B<chmod>(1) "
4869 #: build/C/man2/fcntl.2:435
4871 "The Linux implementation of mandatory locking is unreliable. See BUGS "
4876 #: build/C/man2/fcntl.2:435
4878 msgid "Managing signals"
4882 #: build/C/man2/fcntl.2:444
4884 "B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
4885 "B<F_SETSIG> are used to manage I/O availability signals:"
4889 #: build/C/man2/fcntl.2:444
4891 msgid "B<F_GETOWN> (I<void>)"
4895 #: build/C/man2/fcntl.2:457
4897 "Return (as the function result) the process ID or process group currently "
4898 "receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
4899 "I<fd>. Process IDs are returned as positive values; process group IDs are "
4900 "returned as negative values (but see BUGS below). I<arg> is ignored."
4904 #: build/C/man2/fcntl.2:457
4906 msgid "B<F_SETOWN> (I<long>)"
4910 #: build/C/man2/fcntl.2:474
4912 "Set the process ID or process group ID that will receive B<SIGIO> and "
4913 "B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
4914 "I<arg>. A process ID is specified as a positive value; a process group ID "
4915 "is specified as a negative value. Most commonly, the calling process "
4916 "specifies itself as the owner (that is, I<arg> is specified as "
4922 #: build/C/man2/fcntl.2:491
4924 "If you set the B<O_ASYNC> status flag on a file descriptor by using the "
4925 "B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
4926 "or output becomes possible on that file descriptor. B<F_SETSIG> can be used "
4927 "to obtain delivery of a signal other than B<SIGIO>. If this permission "
4928 "check fails, then the signal is silently discarded."
4932 #: build/C/man2/fcntl.2:499
4934 "Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
4935 "subject to the same permissions checks as are described for B<kill>(2), "
4936 "where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
4940 #. The following appears to be rubbish. It doesn't seem to
4941 #. be true according to the kernel source, and I can write
4942 #. a program that gets a terminal-generated SIGIO even though
4943 #. it is not the foreground process group of the terminal.
4946 #. If the file descriptor
4948 #. refers to a terminal device, then SIGIO
4949 #. signals are sent to the foreground process group of the terminal.
4951 #: build/C/man2/fcntl.2:523
4953 "If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
4954 "the recipient of B<SIGURG> signals that are delivered when out-of-band data "
4955 "arrives on that socket. (B<SIGURG> is sent in any situation where "
4956 "B<select>(2) would report the socket as having an \"exceptional "
4961 #: build/C/man2/fcntl.2:526
4962 msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
4965 #. The relevant place in the (2.6) kernel source is the
4966 #. 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
4967 #. send_sigurg()/send_sigurg_to_task() bypasses
4968 #. kill_fasync()/send_sigio()/send_sigio_to_task()
4969 #. to directly call send_group_sig_info()
4970 #. -- MTK, Apr 2005 (kernel 2.6.11)
4972 #: build/C/man2/fcntl.2:566
4974 "If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
4975 "running with a threading library that supports thread groups (e.g., NPTL), "
4976 "then a positive value given to B<F_SETOWN> has a different meaning: instead "
4977 "of being a process ID identifying a whole process, it is a thread ID "
4978 "identifying a specific thread within a process. Consequently, it may be "
4979 "necessary to pass B<F_SETOWN> the result of B<gettid>(2) instead of "
4980 "B<getpid>(2) to get sensible results when B<F_SETSIG> is used. (In current "
4981 "Linux threading implementations, a main thread's thread ID is the same as "
4982 "its process ID. This means that a single-threaded program can equally use "
4983 "B<gettid>(2) or B<getpid>(2) in this scenario.) Note, however, that the "
4984 "statements in this paragraph do not apply to the B<SIGURG> signal generated "
4985 "for out-of-band data on a socket: this signal is always sent to either a "
4986 "process or a process group, depending on the value given to B<F_SETOWN>."
4990 #: build/C/man2/fcntl.2:577
4992 "The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
4993 "restored. From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
4994 "and B<SIGURG> signals at a particular thread."
4998 #: build/C/man2/fcntl.2:577
5000 msgid "B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5004 #: build/C/man2/fcntl.2:586
5006 "Return the current file descriptor owner settings as defined by a previous "
5007 "B<F_SETOWN_EX> operation. The information is returned in the structure "
5008 "pointed to by I<arg>, which has the following form:"
5012 #: build/C/man2/fcntl.2:593
5015 "struct f_owner_ex {\n"
5022 #: build/C/man2/fcntl.2:610
5024 "The I<type> field will have one of the values B<F_OWNER_TID>, "
5025 "B<F_OWNER_PID>, or B<F_OWNER_PGRP>. The I<pid> field is a positive integer "
5026 "representing a thread ID, process ID, or process group ID. See "
5027 "B<F_SETOWN_EX> for more details."
5031 #: build/C/man2/fcntl.2:610
5033 msgid "B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5037 #: build/C/man2/fcntl.2:626
5039 "This operation performs a similar task to B<F_SETOWN>. It allows the caller "
5040 "to direct I/O availability signals to a specific thread, process, or process "
5041 "group. The caller specifies the target of signals via I<arg>, which is a "
5042 "pointer to a I<f_owner_ex> structure. The I<type> field has one of the "
5043 "following values, which define how I<pid> is interpreted:"
5047 #: build/C/man2/fcntl.2:627
5049 msgid "B<F_OWNER_TID>"
5053 #: build/C/man2/fcntl.2:636
5055 "Send the signal to the thread whose thread ID (the value returned by a call "
5056 "to B<clone>(2) or B<gettid>(2)) is specified in I<pid>."
5060 #: build/C/man2/fcntl.2:636
5062 msgid "B<F_OWNER_PID>"
5066 #: build/C/man2/fcntl.2:641
5067 msgid "Send the signal to the process whose ID is specified in I<pid>."
5071 #: build/C/man2/fcntl.2:641
5073 msgid "B<F_OWNER_PGRP>"
5077 #: build/C/man2/fcntl.2:649
5079 "Send the signal to the process group whose ID is specified in I<pid>. (Note "
5080 "that, unlike with B<F_SETOWN>, a process group ID is specified as a positive "
5085 #: build/C/man2/fcntl.2:650
5087 msgid "B<F_GETSIG> (I<void>)"
5091 #: build/C/man2/fcntl.2:665
5093 "Return (as the function result) the signal sent when input or output "
5094 "becomes possible. A value of zero means B<SIGIO> is sent. Any other value "
5095 "(including B<SIGIO>) is the signal sent instead, and in this case "
5096 "additional info is available to the signal handler if installed with "
5097 "B<SA_SIGINFO>. I<arg> is ignored."
5101 #: build/C/man2/fcntl.2:665
5103 msgid "B<F_SETSIG> (I<long>)"
5107 #. The following was true only up until 2.6.11:
5109 #. Additionally, passing a nonzero value to
5111 #. changes the signal recipient from a whole process to a specific thread
5112 #. within a process.
5113 #. See the description of
5115 #. for more details.
5117 #: build/C/man2/fcntl.2:688
5119 "Set the signal sent when input or output becomes possible to the value given "
5120 "in I<arg>. A value of zero means to send the default B<SIGIO> signal. Any "
5121 "other value (including B<SIGIO>) is the signal to send instead, and in this "
5122 "case additional info is available to the signal handler if installed with "
5127 #: build/C/man2/fcntl.2:716
5129 "By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the "
5130 "signal handler (see B<sigaction>(2)), extra information about I/O events is "
5131 "passed to the handler in a I<siginfo_t> structure. If the I<si_code> field "
5132 "indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file "
5133 "descriptor associated with the event. Otherwise, there is no indication "
5134 "which file descriptors are pending, and you should use the usual mechanisms "
5135 "(B<select>(2), B<poll>(2), B<read>(2) with B<O_NONBLOCK> set etc.) to "
5136 "determine which file descriptors are available for I/O."
5140 #: build/C/man2/fcntl.2:725
5142 "By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O "
5143 "events may be queued using the same signal numbers. (Queuing is dependent "
5144 "on available memory). Extra information is available if B<SA_SIGINFO> is "
5145 "set for the signal handler, as above."
5148 #. See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
5150 #: build/C/man2/fcntl.2:738
5152 "Note that Linux imposes a limit on the number of real-time signals that may "
5153 "be queued to a process (see B<getrlimit>(2) and B<signal>(7)) and if this "
5154 "limit is reached, then the kernel reverts to delivering B<SIGIO>, and this "
5155 "signal is delivered to the entire process rather than to a specific thread."
5159 #: build/C/man2/fcntl.2:745
5161 "Using these mechanisms, a program can implement fully asynchronous I/O "
5162 "without using B<select>(2) or B<poll>(2) most of the time."
5166 #: build/C/man2/fcntl.2:761
5168 "The use of B<O_ASYNC>, B<F_GETOWN>, B<F_SETOWN> is specific to BSD and "
5169 "Linux. B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and B<F_SETSIG> are "
5170 "Linux-specific. POSIX has asynchronous I/O and the I<aio_sigevent> "
5171 "structure to achieve similar things; these are also available in Linux as "
5172 "part of the GNU C Library (Glibc)."
5176 #: build/C/man2/fcntl.2:761
5182 #: build/C/man2/fcntl.2:776
5184 "B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) "
5185 "to establish a new lease, and retrieve the current lease, on the open file "
5186 "description referred to by the file descriptor I<fd>. A file lease provides "
5187 "a mechanism whereby the process holding the lease (the \"lease holder\") is "
5188 "notified (via delivery of a signal) when a process (the \"lease breaker\") "
5189 "tries to B<open>(2) or B<truncate>(2) the file referred to by that file "
5194 #: build/C/man2/fcntl.2:776
5196 msgid "B<F_SETLEASE> (I<long>)"
5200 #: build/C/man2/fcntl.2:781
5202 "Set or remove a file lease according to which of the following values is "
5203 "specified in the integer I<arg>:"
5207 #: build/C/man2/fcntl.2:782
5212 #. The following became true in kernel 2.6.10:
5213 #. See the man-pages-2.09 Changelog for further info.
5215 #: build/C/man2/fcntl.2:791
5217 "Take out a read lease. This will cause the calling process to be notified "
5218 "when the file is opened for writing or is truncated. A read lease can only "
5219 "be placed on a file descriptor that is opened read-only."
5223 #: build/C/man2/fcntl.2:791
5229 #: build/C/man2/fcntl.2:798
5231 "Take out a write lease. This will cause the caller to be notified when the "
5232 "file is opened for reading or writing or is truncated. A write lease may be "
5233 "placed on a file only if there are no other open file descriptors for the "
5238 #: build/C/man2/fcntl.2:798
5244 #: build/C/man2/fcntl.2:801
5245 msgid "Remove our lease from the file."
5249 #: build/C/man2/fcntl.2:815
5251 "Leases are associated with an open file description (see B<open>(2)). This "
5252 "means that duplicate file descriptors (created by, for example, B<fork>(2) "
5253 "or B<dup>(2)) refer to the same lease, and this lease may be modified or "
5254 "released using any of these descriptors. Furthermore, the lease is released "
5255 "by either an explicit B<F_UNLCK> operation on any of these duplicate "
5256 "descriptors, or when all such descriptors have been closed."
5260 #: build/C/man2/fcntl.2:822
5262 "Leases may only be taken out on regular files. An unprivileged process may "
5263 "only take out a lease on a file whose UID (owner) matches the file system "
5264 "UID of the process. A process with the B<CAP_LEASE> capability may take out "
5265 "leases on arbitrary files."
5269 #: build/C/man2/fcntl.2:822
5271 msgid "B<F_GETLEASE> (I<void>)"
5275 #: build/C/man2/fcntl.2:831
5277 "Indicates what type of lease is associated with the file descriptor I<fd> by "
5278 "returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, "
5279 "respectively, a read lease , a write lease, or no lease. I<arg> is ignored."
5283 #: build/C/man2/fcntl.2:862
5285 "When a process (the \"lease breaker\") performs an B<open>(2) or "
5286 "B<truncate>(2) that conflicts with a lease established via B<F_SETLEASE>, "
5287 "the system call is blocked by the kernel and the kernel notifies the lease "
5288 "holder by sending it a signal (B<SIGIO> by default). The lease holder "
5289 "should respond to receipt of this signal by doing whatever cleanup is "
5290 "required in preparation for the file to be accessed by another process "
5291 "(e.g., flushing cached buffers) and then either remove or downgrade its "
5292 "lease. A lease is removed by performing an B<F_SETLEASE> command specifying "
5293 "I<arg> as B<F_UNLCK>. If the lease holder currently holds a write lease on "
5294 "the file, and the lease breaker is opening the file for reading, then it is "
5295 "sufficient for the lease holder to downgrade the lease to a read lease. "
5296 "This is done by performing an B<F_SETLEASE> command specifying I<arg> as "
5301 #: build/C/man2/fcntl.2:867
5303 "If the lease holder fails to downgrade or remove the lease within the number "
5304 "of seconds specified in I</proc/sys/fs/lease-break-time> then the kernel "
5305 "forcibly removes or downgrades the lease holder's lease."
5309 #: build/C/man2/fcntl.2:871
5311 "Once the lease has been voluntarily or forcibly removed or downgraded, and "
5312 "assuming the lease breaker has not unblocked its system call, the kernel "
5313 "permits the lease breaker's system call to proceed."
5317 #: build/C/man2/fcntl.2:892
5319 "If the lease breaker's blocked B<open>(2) or B<truncate>(2) is interrupted "
5320 "by a signal handler, then the system call fails with the error B<EINTR>, but "
5321 "the other steps still occur as described above. If the lease breaker is "
5322 "killed by a signal while blocked in B<open>(2) or B<truncate>(2), then the "
5323 "other steps still occur as described above. If the lease breaker specifies "
5324 "the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately "
5325 "fails with the error B<EWOULDBLOCK>, but the other steps still occur as "
5330 #: build/C/man2/fcntl.2:913
5332 "The default signal used to notify the lease holder is B<SIGIO>, but this can "
5333 "be changed using the B<F_SETSIG> command to B<fcntl>(). If a B<F_SETSIG> "
5334 "command is performed (even one specifying B<SIGIO>), and the signal handler "
5335 "is established using B<SA_SIGINFO>, then the handler will receive a "
5336 "I<siginfo_t> structure as its second argument, and the I<si_fd> field of "
5337 "this argument will hold the descriptor of the leased file that has been "
5338 "accessed by another process. (This is useful if the caller holds leases "
5339 "against multiple files)."
5343 #: build/C/man2/fcntl.2:913
5345 msgid "File and directory change notification (dnotify)"
5349 #: build/C/man2/fcntl.2:914
5351 msgid "B<F_NOTIFY> (I<long>)"
5355 #: build/C/man2/fcntl.2:924
5357 "(Linux 2.4 onward) Provide notification when the directory referred to by "
5358 "I<fd> or any of the files that it contains is changed. The events to be "
5359 "notified are specified in I<arg>, which is a bit mask specified by ORing "
5360 "together zero or more of the following bits:"
5364 #: build/C/man2/fcntl.2:927
5366 msgid "B<DN_ACCESS>"
5370 #: build/C/man2/fcntl.2:930
5371 msgid "A file was accessed (read, pread, readv)"
5375 #: build/C/man2/fcntl.2:930
5377 msgid "B<DN_MODIFY>"
5381 #: build/C/man2/fcntl.2:933
5382 msgid "A file was modified (write, pwrite, writev, truncate, ftruncate)."
5386 #: build/C/man2/fcntl.2:933
5388 msgid "B<DN_CREATE>"
5392 #: build/C/man2/fcntl.2:936
5393 msgid "A file was created (open, creat, mknod, mkdir, link, symlink, rename)."
5397 #: build/C/man2/fcntl.2:936
5399 msgid "B<DN_DELETE>"
5403 #: build/C/man2/fcntl.2:939
5404 msgid "A file was unlinked (unlink, rename to another directory, rmdir)."
5408 #: build/C/man2/fcntl.2:939
5410 msgid "B<DN_RENAME>"
5414 #: build/C/man2/fcntl.2:942
5415 msgid "A file was renamed within this directory (rename)."
5419 #: build/C/man2/fcntl.2:942
5421 msgid "B<DN_ATTRIB>"
5425 #: build/C/man2/fcntl.2:945
5426 msgid "The attributes of a file were changed (chown, chmod, utime[s])."
5430 #: build/C/man2/fcntl.2:953
5432 "(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro "
5433 "must be defined before including I<any> header files.)"
5437 #: build/C/man2/fcntl.2:961
5439 "Directory notifications are normally \"one-shot\", and the application must "
5440 "reregister to receive further notifications. Alternatively, if "
5441 "B<DN_MULTISHOT> is included in I<arg>, then notification will remain in "
5442 "effect until explicitly removed."
5445 #. The following does seem a poor API-design choice...
5447 #: build/C/man2/fcntl.2:973
5449 "A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> "
5450 "being added to the set already monitored. To disable notification of all "
5451 "events, make an B<F_NOTIFY> call specifying I<arg> as 0."
5455 #: build/C/man2/fcntl.2:991
5457 "Notification occurs via delivery of a signal. The default signal is "
5458 "B<SIGIO>, but this can be changed using the B<F_SETSIG> command to "
5459 "B<fcntl>(). In the latter case, the signal handler receives a I<siginfo_t> "
5460 "structure as its second argument (if the handler was established using "
5461 "B<SA_SIGINFO>) and the I<si_fd> field of this structure contains the file "
5462 "descriptor which generated the notification (useful when establishing "
5463 "notification on multiple directories)."
5467 #: build/C/man2/fcntl.2:996
5469 "Especially when using B<DN_MULTISHOT>, a real time signal should be used for "
5470 "notification, so that multiple notifications can be queued."
5474 #: build/C/man2/fcntl.2:1005
5476 "B<NOTE:> New applications should use the I<inotify> interface (available "
5477 "since kernel 2.6.13), which provides a much superior interface for obtaining "
5478 "notifications of file system events. See B<inotify>(7)."
5482 #: build/C/man2/fcntl.2:1005
5484 msgid "Changing the capacity of a pipe"
5488 #: build/C/man2/fcntl.2:1006
5490 msgid "B<F_SETPIPE_SZ> (I<long>; since Linux 2.6.35)"
5494 #: build/C/man2/fcntl.2:1037
5496 "Change the capacity of the pipe referred to by I<fd> to be at least I<arg> "
5497 "bytes. An unprivileged process can adjust the pipe capacity to any value "
5498 "between the system page size and the limit defined in "
5499 "I</proc/sys/fs/pipe-size-max> (see B<proc>(5)). Attempts to set the pipe "
5500 "capacity below the page size are silently rounded up to the page size. "
5501 "Attempts by an unprivileged process to set the pipe capacity above the limit "
5502 "in I</proc/sys/fs/pipe-size-max> yield the error B<EPERM>; a privileged "
5503 "process (B<CAP_SYS_RESOURCE>) can override the limit. When allocating the "
5504 "buffer for the pipe, the kernel may use a capacity larger than I<arg>, if "
5505 "that is convenient for the implementation. The B<F_GETPIPE_SZ> operation "
5506 "returns the actual size used. Attempting to set the pipe capacity smaller "
5507 "than the amount of buffer space currently used to store data produces the "
5512 #: build/C/man2/fcntl.2:1037
5514 msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)"
5518 #: build/C/man2/fcntl.2:1041
5520 "Return (as the function result) the capacity of the pipe referred to by "
5525 #: build/C/man2/fcntl.2:1043
5526 msgid "For a successful call, the return value depends on the operation:"
5530 #: build/C/man2/fcntl.2:1043
5536 #: build/C/man2/fcntl.2:1046
5537 msgid "The new descriptor."
5541 #: build/C/man2/fcntl.2:1046
5547 #: build/C/man2/fcntl.2:1049
5548 msgid "Value of file descriptor flags."
5552 #: build/C/man2/fcntl.2:1049
5558 #: build/C/man2/fcntl.2:1052
5559 msgid "Value of file status flags."
5563 #: build/C/man2/fcntl.2:1052
5565 msgid "B<F_GETLEASE>"
5569 #: build/C/man2/fcntl.2:1055
5570 msgid "Type of lease held on file descriptor."
5574 #: build/C/man2/fcntl.2:1055
5580 #: build/C/man2/fcntl.2:1058
5581 msgid "Value of descriptor owner."
5585 #: build/C/man2/fcntl.2:1058
5591 #: build/C/man2/fcntl.2:1064
5593 "Value of signal sent when read or write becomes possible, or zero for "
5594 "traditional B<SIGIO> behavior."
5598 #: build/C/man2/fcntl.2:1064
5600 msgid "B<F_GETPIPE_SZ>"
5604 #: build/C/man2/fcntl.2:1067
5605 msgid "The pipe capacity."
5609 #: build/C/man2/fcntl.2:1067
5611 msgid "All other commands"
5615 #: build/C/man2/fcntl.2:1070
5620 #: build/C/man2/fcntl.2:1074
5621 msgid "On error, -1 is returned, and I<errno> is set appropriately."
5625 #: build/C/man2/fcntl.2:1075 build/C/man3/lockf.3:116
5627 msgid "B<EACCES> or B<EAGAIN>"
5631 #: build/C/man2/fcntl.2:1078
5632 msgid "Operation is prohibited by locks held by other processes."
5636 #: build/C/man2/fcntl.2:1078 build/C/man2/fork.2:168 build/C/man2/fork.2:173
5642 #: build/C/man2/fcntl.2:1082
5644 "The operation is prohibited because the file has been memory-mapped by "
5649 #: build/C/man2/fcntl.2:1091
5651 "I<fd> is not an open file descriptor, or the command was B<F_SETLK> or "
5652 "B<F_SETLKW> and the file descriptor open mode doesn't match with the type of "
5657 #: build/C/man2/fcntl.2:1091 build/C/man3/lockf.3:136
5663 #: build/C/man2/fcntl.2:1096
5665 "It was detected that the specified B<F_SETLKW> command would cause a "
5670 #: build/C/man2/fcntl.2:1100
5671 msgid "I<lock> is outside your accessible address space."
5675 #: build/C/man2/fcntl.2:1112
5677 "For B<F_SETLKW>, the command was interrupted by a signal; see B<signal>(7). "
5678 "For B<F_GETLK> and B<F_SETLK>, the command was interrupted by a signal "
5679 "before the lock was checked or acquired. Most likely when locking a remote "
5680 "file (e.g., locking over NFS), but can sometimes happen locally."
5684 #: build/C/man2/fcntl.2:1122
5686 "For B<F_DUPFD>, I<arg> is negative or is greater than the maximum allowable "
5687 "value. For B<F_SETSIG>, I<arg> is not an allowable signal number."
5691 #: build/C/man2/fcntl.2:1127
5693 "For B<F_DUPFD>, the process already has the maximum number of file "
5698 #: build/C/man2/fcntl.2:1127 build/C/man2/flock.2:129 build/C/man3/lockf.3:145
5704 #: build/C/man2/fcntl.2:1131
5706 "Too many segment locks open, lock table is full, or a remote locking "
5707 "protocol failed (e.g., locking over NFS)."
5711 #: build/C/man2/fcntl.2:1136
5713 "Attempted to clear the B<O_APPEND> flag on a file that has the append-only "
5718 #: build/C/man2/fcntl.2:1149
5720 "SVr4, 4.3BSD, POSIX.1-2001. Only the operations B<F_DUPFD>, B<F_GETFD>, "
5721 "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK> and B<F_SETLKW>, "
5722 "are specified in POSIX.1-2001."
5726 #: build/C/man2/fcntl.2:1161
5728 "B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001. (To get their "
5729 "definitions, define B<BSD_SOURCE>, or B<_XOPEN_SOURCE> with the value 500 or "
5730 "greater, or define B<_POSIX_C_SOURCE> with the value 200809L or greater.)"
5734 #: build/C/man2/fcntl.2:1169
5736 "B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008. (To get this definition, "
5737 "define B<_POSIX_C_SOURCE> with the value 200809L or greater, or "
5738 "B<_XOPEN_SOURCE> with the value 700 or greater.)"
5742 #. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions.
5744 #: build/C/man2/fcntl.2:1186
5746 "B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, "
5747 "B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are "
5748 "Linux-specific. (Define the B<_GNU_SOURCE> macro to obtain these "
5753 #: build/C/man2/fcntl.2:1207
5755 "The original Linux B<fcntl>() system call was not designed to handle large "
5756 "file offsets (in the I<flock> structure). Consequently, an B<fcntl64>() "
5757 "system call was added in Linux 2.4. The newer system call employs a "
5758 "different structure for file locking, I<flock64>, and corresponding "
5759 "commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>. However, these "
5760 "details can be ignored by applications using glibc, whose B<fcntl>() "
5761 "wrapper function transparently employs the more recent system call where it "
5766 #: build/C/man2/fcntl.2:1212
5768 "The errors returned by B<dup2>(2) are different from those returned by "
5773 #: build/C/man2/fcntl.2:1218
5775 "Since kernel 2.0, there is no interaction between the types of lock placed "
5776 "by B<flock>(2) and B<fcntl>()."
5779 #. e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
5780 #. documents it in fcntl(5). mtk, May 2007
5782 #: build/C/man2/fcntl.2:1229
5784 "Several systems have more fields in I<struct flock> such as, for example, "
5785 "I<l_sysid>. Clearly, I<l_pid> alone is not going to be very useful if the "
5786 "process holding the lock may live on a different machine."
5789 #. glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h
5790 #. mtk, Dec 04: some limited testing on alpha and ia64 seems to
5791 #. indicate that ANY negative PGID value will cause F_GETOWN
5792 #. to misinterpret the return as an error. Some other architectures
5793 #. seem to have the same range check as i386.
5795 #: build/C/man2/fcntl.2:1255
5797 "A limitation of the Linux system call conventions on some architectures "
5798 "(notably i386) means that if a (negative) process group ID to be returned "
5799 "by B<F_GETOWN> falls in the range -1 to -4095, then the return value is "
5800 "wrongly interpreted by glibc as an error in the system call; that is, the "
5801 "return value of B<fcntl>() will be -1, and I<errno> will contain the "
5802 "(positive) process group ID. The Linux-specific B<F_GETOWN_EX> operation "
5803 "avoids this problem. Since glibc version 2.11, glibc makes the kernel "
5804 "B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using "
5809 #: build/C/man2/fcntl.2:1272
5811 "In Linux 2.4 and earlier, there is bug that can occur when an unprivileged "
5812 "process uses B<F_SETOWN> to specify the owner of a socket file descriptor as "
5813 "a process (group) other than the caller. In this case, B<fcntl>() can "
5814 "return -1 with I<errno> set to B<EPERM>, even when the owner process (group) "
5815 "is one that the caller has permission to send signals to. Despite this "
5816 "error return, the file descriptor owner is set, and signals will be sent to "
5820 #. http://marc.info/?l=linux-kernel&m=119013491707153&w=2
5822 #: build/C/man2/fcntl.2:1287
5824 "The implementation of mandatory locking in all known versions of Linux is "
5825 "subject to race conditions which render it unreliable: a B<write>(2) call "
5826 "that overlaps with a lock may modify data after the mandatory lock is "
5827 "acquired; a B<read>(2) call that overlaps with a lock may detect changes to "
5828 "data that were made only after a write lock was acquired. Similar races "
5829 "exist between mandatory locks and B<mmap>(2). It is therefore inadvisable "
5830 "to rely on mandatory locking."
5834 #: build/C/man2/fcntl.2:1295
5836 "B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), "
5837 "B<capabilities>(7), B<feature_test_macros>(7)"
5841 #: build/C/man2/fcntl.2:1309
5843 "See also I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the "
5844 "kernel source directory I<Documentation/filesystems/>. (On older kernels, "
5845 "these files are directly under the I<Documentation/> directory, and "
5846 "I<mandatory-locking.txt> is called I<mandatory.txt>.)"
5850 #: build/C/man3/fexecve.3:25
5856 #: build/C/man3/fexecve.3:25
5862 #: build/C/man3/fexecve.3:28
5863 msgid "fexecve - execute program specified via file descriptor"
5867 #: build/C/man3/fexecve.3:33
5870 "B<int fexecve(int >I<fd>B<, char *const >I<argv>B<[], char *const "
5875 #: build/C/man3/fexecve.3:41
5876 msgid "B<fexecve>():"
5880 #: build/C/man3/fexecve.3:44
5882 msgid "Since glibc 2.10:"
5886 #: build/C/man3/fexecve.3:47
5887 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5891 #: build/C/man3/fexecve.3:47
5893 msgid "Before glibc 2.10:"
5897 #: build/C/man3/fexecve.3:50 build/C/man3/getcwd.3:52
5901 #. POSIX.1-2008 specifies the O_EXEC flag for open as an alternative,
5902 #. but Linux doesn't support this flag yet.
5904 #: build/C/man3/fexecve.3:67
5906 "B<fexecve>() performs the same task as B<execve>(2), with the difference "
5907 "that the file to be executed is specified via a file descriptor, I<fd>, "
5908 "rather than via a pathname. The file descriptor I<fd> must be opened "
5909 "read-only, and the caller must have permission to execute the file that it "
5914 #: build/C/man3/fexecve.3:74
5916 "A successful call to B<fexecve>() never returns. On error, the function "
5917 "returns, with a result value of -1, and I<errno> is set appropriately."
5921 #: build/C/man3/fexecve.3:78
5922 msgid "Errors are as for B<execve>(2), with the following additions:"
5926 #: build/C/man3/fexecve.3:86
5928 "I<fd> is not a valid file descriptor, or I<argv> is NULL, or I<envp> is "
5933 #: build/C/man3/fexecve.3:91
5934 msgid "The I</proc> file system could not be accessed."
5938 #: build/C/man3/fexecve.3:94
5939 msgid "B<fexecve>() is implemented since glibc 2.3.2."
5943 #: build/C/man3/fexecve.3:98
5945 "POSIX.1-2008. This function is not specified in POSIX.1-2001, and is not "
5946 "widely available on other systems."
5950 #: build/C/man3/fexecve.3:106
5952 "On Linux, B<fexecve>() is implemented using the B<proc>(5) file system, so "
5953 "I</proc> needs to be mounted and available at the time of the call."
5957 #: build/C/man3/fexecve.3:108
5958 msgid "B<execve>(2)"
5962 #: build/C/man2/flock.2:34
5968 #: build/C/man2/flock.2:37
5969 msgid "flock - apply or remove an advisory lock on an open file"
5973 #: build/C/man2/flock.2:39
5974 msgid "B<#include E<lt>sys/file.hE<gt>>"
5978 #: build/C/man2/flock.2:41
5979 msgid "B<int flock(int >I<fd>B<, int >I<operation>B<);>"
5983 #: build/C/man2/flock.2:47
5985 "Apply or remove an advisory lock on the open file specified by I<fd>. The "
5986 "argument I<operation> is one of the following:"
5990 #: build/C/man2/flock.2:48
5996 #: build/C/man2/flock.2:53
5998 "Place a shared lock. More than one process may hold a shared lock for a "
5999 "given file at a given time."
6003 #: build/C/man2/flock.2:53
6009 #: build/C/man2/flock.2:58
6011 "Place an exclusive lock. Only one process may hold an exclusive lock for a "
6012 "given file at a given time."
6016 #: build/C/man2/flock.2:58
6022 #: build/C/man2/flock.2:61
6023 msgid "Remove an existing lock held by this process."
6027 #: build/C/man2/flock.2:70
6029 "A call to B<flock>() may block if an incompatible lock is held by another "
6030 "process. To make a nonblocking request, include B<LOCK_NB> (by ORing) with "
6031 "any of the above operations."
6035 #: build/C/man2/flock.2:72
6036 msgid "A single file may not simultaneously have both shared and exclusive locks."
6040 #: build/C/man2/flock.2:86
6042 "Locks created by B<flock>() are associated with an open file table entry. "
6043 "This means that duplicate file descriptors (created by, for example, "
6044 "B<fork>(2) or B<dup>(2)) refer to the same lock, and this lock may be "
6045 "modified or released using any of these descriptors. Furthermore, the lock "
6046 "is released either by an explicit B<LOCK_UN> operation on any of these "
6047 "duplicate descriptors, or when all such descriptors have been closed."
6051 #: build/C/man2/flock.2:95
6053 "If a process uses B<open>(2) (or similar) to obtain more than one "
6054 "descriptor for the same file, these descriptors are treated independently by "
6055 "B<flock>(). An attempt to lock the file using one of these file descriptors "
6056 "may be denied by a lock that the calling process has already placed via "
6057 "another descriptor."
6061 #: build/C/man2/flock.2:102
6063 "A process may only hold one type of lock (shared or exclusive) on a file. "
6064 "Subsequent B<flock>() calls on an already locked file will convert an "
6065 "existing lock to the new lock mode."
6069 #: build/C/man2/flock.2:107
6070 msgid "Locks created by B<flock>() are preserved across an B<execve>(2)."
6074 #: build/C/man2/flock.2:110
6076 "A shared or exclusive lock can be placed on a file regardless of the mode in "
6077 "which the file was opened."
6081 #: build/C/man2/flock.2:120
6082 msgid "I<fd> is not an open file descriptor."
6086 #: build/C/man2/flock.2:125
6088 "While waiting to acquire a lock, the call was interrupted by delivery of a "
6089 "signal caught by a handler; see B<signal>(7)."
6093 #: build/C/man2/flock.2:129
6094 msgid "I<operation> is invalid."
6098 #: build/C/man2/flock.2:132
6099 msgid "The kernel ran out of memory for allocating lock records."
6103 #: build/C/man2/flock.2:132
6105 msgid "B<EWOULDBLOCK>"
6109 #: build/C/man2/flock.2:137
6110 msgid "The file is locked and the B<LOCK_NB> flag was selected."
6114 #: build/C/man2/flock.2:146
6116 "4.4BSD (the B<flock>() call first appeared in 4.2BSD). A version of "
6117 "B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most "
6122 #: build/C/man2/flock.2:153
6124 "B<flock>() does not lock files over NFS. Use B<fcntl>(2) instead: that "
6125 "does work over NFS, given a sufficiently recent version of Linux and a "
6126 "server which supports locking."
6130 #: build/C/man2/flock.2:168
6132 "Since kernel 2.0, B<flock>() is implemented as a system call in its own "
6133 "right rather than being emulated in the GNU C library as a call to "
6134 "B<fcntl>(2). This yields true BSD semantics: there is no interaction "
6135 "between the types of lock placed by B<flock>() and B<fcntl>(2), and "
6136 "B<flock>() does not detect deadlock."
6140 #: build/C/man2/flock.2:174
6142 "B<flock>() places advisory locks only; given suitable permissions on a "
6143 "file, a process is free to ignore the use of B<flock>() and perform I/O on "
6148 #: build/C/man2/flock.2:187
6150 "B<flock>() and B<fcntl>(2) locks have different semantics with respect to "
6151 "forked processes and B<dup>(2). On systems that implement B<flock>() using "
6152 "B<fcntl>(2), the semantics of B<flock>() will be different from those "
6153 "described in this manual page."
6156 #. Kernel 2.5.21 changed things a little: during lock conversion
6157 #. it is now the highest priority process that will get the lock -- mtk
6159 #: build/C/man2/flock.2:200
6161 "Converting a lock (shared to exclusive, or vice versa) is not guaranteed to "
6162 "be atomic: the existing lock is first removed, and then a new lock is "
6163 "established. Between these two steps, a pending lock request by another "
6164 "process may be granted, with the result that the conversion either blocks, "
6165 "or fails if B<LOCK_NB> was specified. (This is the original BSD behavior, "
6166 "and occurs on many other implementations.)"
6170 #: build/C/man2/flock.2:208
6172 "B<close>(2), B<dup>(2), B<execve>(2), B<fcntl>(2), B<fork>(2), B<open>(2), "
6177 #: build/C/man2/flock.2:214
6179 "See also I<Documentation/filesystem/locks.txt> in the kernel source "
6180 "(I<Documentation/locks.txt> in older kernels)."
6184 #: build/C/man2/fork.2:39
6190 #: build/C/man2/fork.2:39 build/C/man2/fsync.2:38
6196 #: build/C/man2/fork.2:42
6197 msgid "fork - create a child process"
6201 #: build/C/man2/fork.2:46
6202 msgid "B<pid_t fork(void);>"
6206 #: build/C/man2/fork.2:52
6208 "B<fork>() creates a new process by duplicating the calling process. The "
6209 "new process, referred to as the I<child>, is an exact duplicate of the "
6210 "calling process, referred to as the I<parent>, except for the following "
6215 #: build/C/man2/fork.2:56
6217 "The child has its own unique process ID, and this PID does not match the ID "
6218 "of any existing process group (B<setpgid>(2))."
6222 #: build/C/man2/fork.2:58
6223 msgid "The child's parent process ID is the same as the parent's process ID."
6227 #: build/C/man2/fork.2:62
6229 "The child does not inherit its parent's memory locks (B<mlock>(2), "
6234 #: build/C/man2/fork.2:68
6236 "Process resource utilizations (B<getrusage>(2)) and CPU time counters "
6237 "(B<times>(2)) are reset to zero in the child."
6241 #: build/C/man2/fork.2:71
6242 msgid "The child's set of pending signals is initially empty (B<sigpending>(2))."
6246 #: build/C/man2/fork.2:74
6248 "The child does not inherit semaphore adjustments from its parent "
6253 #: build/C/man2/fork.2:77
6254 msgid "The child does not inherit record locks from its parent (B<fcntl>(2))."
6258 #: build/C/man2/fork.2:82
6260 "The child does not inherit timers from its parent (B<setitimer>(2), "
6261 "B<alarm>(2), B<timer_create>(2))."
6265 #: build/C/man2/fork.2:89
6267 "The child does not inherit outstanding asynchronous I/O operations from its "
6268 "parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any "
6269 "asynchronous I/O contexts from its parent (see B<io_setup>(2))."
6273 #: build/C/man2/fork.2:94
6275 "The process attributes in the preceding list are all specified in "
6276 "POSIX.1-2001. The parent and child also differ with respect to the "
6277 "following Linux-specific process attributes:"
6281 #: build/C/man2/fork.2:101
6283 "The child does not inherit directory change notifications (dnotify) from "
6284 "its parent (see the description of B<F_NOTIFY> in B<fcntl>(2))."
6288 #: build/C/man2/fork.2:107
6290 "The B<prctl>(2) B<PR_SET_PDEATHSIG> setting is reset so that the child does "
6291 "not receive a signal when its parent terminates."
6295 #: build/C/man2/fork.2:113
6297 "Memory mappings that have been marked with the B<madvise>(2) "
6298 "B<MADV_DONTFORK> flag are not inherited across a B<fork>()."
6302 #: build/C/man2/fork.2:118
6303 msgid "The termination signal of the child is always B<SIGCHLD> (see B<clone>(2))."
6307 #: build/C/man2/fork.2:129
6309 "The child process is created with a single thread\\(emthe one that called "
6310 "B<fork>(). The entire virtual address space of the parent is replicated in "
6311 "the child, including the states of mutexes, condition variables, and other "
6312 "pthreads objects; the use of B<pthread_atfork>(3) may be helpful for "
6313 "dealing with problems that this can cause."
6317 #: build/C/man2/fork.2:143
6319 "The child inherits copies of the parent's set of open file descriptors. "
6320 "Each file descriptor in the child refers to the same open file description "
6321 "(see B<open>(2)) as the corresponding file descriptor in the parent. This "
6322 "means that the two descriptors share open file status flags, current file "
6323 "offset, and signal-driven I/O attributes (see the description of B<F_SETOWN> "
6324 "and B<F_SETSIG> in B<fcntl>(2))."
6328 #: build/C/man2/fork.2:152
6330 "The child inherits copies of the parent's set of open message queue "
6331 "descriptors (see B<mq_overview>(7)). Each descriptor in the child refers to "
6332 "the same open message queue description as the corresponding descriptor in "
6333 "the parent. This means that the two descriptors share the same flags "
6338 #: build/C/man2/fork.2:160
6340 "The child inherits copies of the parent's set of open directory streams (see "
6341 "B<opendir>(3)). POSIX.1-2001 says that the corresponding directory streams "
6342 "in the parent and child I<may> share the directory stream positioning; on "
6343 "Linux/glibc they do not."
6347 #: build/C/man2/fork.2:167
6349 "On success, the PID of the child process is returned in the parent, and 0 is "
6350 "returned in the child. On failure, -1 is returned in the parent, no child "
6351 "process is created, and I<errno> is set appropriately."
6355 #: build/C/man2/fork.2:173
6357 "B<fork>() cannot allocate sufficient memory to copy the parent's page "
6358 "tables and allocate a task structure for the child."
6362 #: build/C/man2/fork.2:183
6364 "It was not possible to create a new process because the caller's "
6365 "B<RLIMIT_NPROC> resource limit was encountered. To exceed this limit, the "
6366 "process must have either the B<CAP_SYS_ADMIN> or the B<CAP_SYS_RESOURCE> "
6371 #: build/C/man2/fork.2:187
6373 "B<fork>() failed to allocate the necessary kernel structures because memory "
6378 #: build/C/man2/fork.2:196
6380 "Under Linux, B<fork>() is implemented using copy-on-write pages, so the "
6381 "only penalty that it incurs is the time and memory required to duplicate the "
6382 "parent's page tables, and to create a unique task structure for the child."
6385 #. nptl/sysdeps/unix/sysv/linux/fork.c
6386 #. and does some magic to ensure that getpid(2) returns the right value.
6388 #: build/C/man2/fork.2:220
6390 "Since version 2.3.3, rather than invoking the kernel's B<fork>() system "
6391 "call, the glibc B<fork>() wrapper that is provided as part of the NPTL "
6392 "threading implementation invokes B<clone>(2) with flags that provide the "
6393 "same effect as the traditional system call. (A call to B<fork>() is "
6394 "equivalent to a call to B<clone>(2) specifying I<flags> as just "
6395 "B<SIGCHLD>.) The glibc wrapper invokes any fork handlers that have been "
6396 "established using B<pthread_atfork>(3)."
6400 #: build/C/man2/fork.2:225
6401 msgid "See B<pipe>(2) and B<wait>(2)."
6405 #: build/C/man2/fork.2:235
6407 "B<clone>(2), B<execve>(2), B<setrlimit>(2), B<unshare>(2), B<vfork>(2), "
6408 "B<wait>(2), B<daemon>(3), B<capabilities>(7), B<credentials>(7)"
6412 #: build/C/man3/fpathconf.3:24
6418 #: build/C/man3/fpathconf.3:24
6424 #: build/C/man3/fpathconf.3:27
6425 msgid "fpathconf, pathconf - get configuration values for files"
6429 #: build/C/man3/fpathconf.3:32
6431 msgid "B<long fpathconf(int >I<fd>B<, int >I<name>B<);>\n"
6435 #: build/C/man3/fpathconf.3:34
6437 msgid "B<long pathconf(char *>I<path>B<, int >I<name>B<);>\n"
6441 #: build/C/man3/fpathconf.3:41
6443 "B<fpathconf>() gets a value for the configuration option I<name> for the "
6444 "open file descriptor I<fd>."
6448 #: build/C/man3/fpathconf.3:47
6450 "B<pathconf>() gets a value for configuration option I<name> for the "
6455 #: build/C/man3/fpathconf.3:56
6457 "The corresponding macros defined in I<E<lt>unistd.hE<gt>> are minimum "
6458 "values; if an application wants to take advantage of values which may "
6459 "change, a call to B<fpathconf>() or B<pathconf>() can be made, which may "
6460 "yield more liberal results."
6464 #: build/C/man3/fpathconf.3:61
6466 "Setting I<name> equal to one of the following constants returns the "
6467 "following configuration options:"
6471 #: build/C/man3/fpathconf.3:61
6473 msgid "B<_PC_LINK_MAX>"
6477 #: build/C/man3/fpathconf.3:71
6479 "returns the maximum number of links to the file. If I<fd> or I<path> refer "
6480 "to a directory, then the value applies to the whole directory. The "
6481 "corresponding macro is B<_POSIX_LINK_MAX>."
6485 #: build/C/man3/fpathconf.3:71
6487 msgid "B<_PC_MAX_CANON>"
6491 #: build/C/man3/fpathconf.3:80
6493 "returns the maximum length of a formatted input line, where I<fd> or I<path> "
6494 "must refer to a terminal. The corresponding macro is B<_POSIX_MAX_CANON>."
6498 #: build/C/man3/fpathconf.3:80
6500 msgid "B<_PC_MAX_INPUT>"
6504 #: build/C/man3/fpathconf.3:89
6506 "returns the maximum length of an input line, where I<fd> or I<path> must "
6507 "refer to a terminal. The corresponding macro is B<_POSIX_MAX_INPUT>."
6511 #: build/C/man3/fpathconf.3:89
6513 msgid "B<_PC_NAME_MAX>"
6517 #: build/C/man3/fpathconf.3:98
6519 "returns the maximum length of a filename in the directory I<path> or I<fd> "
6520 "that the process is allowed to create. The corresponding macro is "
6521 "B<_POSIX_NAME_MAX>."
6525 #: build/C/man3/fpathconf.3:98
6527 msgid "B<_PC_PATH_MAX>"
6531 #: build/C/man3/fpathconf.3:107
6533 "returns the maximum length of a relative pathname when I<path> or I<fd> is "
6534 "the current working directory. The corresponding macro is "
6535 "B<_POSIX_PATH_MAX>."
6539 #: build/C/man3/fpathconf.3:107
6541 msgid "B<_PC_PIPE_BUF>"
6545 #: build/C/man3/fpathconf.3:116
6547 "returns the size of the pipe buffer, where I<fd> must refer to a pipe or "
6548 "FIFO and I<path> must refer to a FIFO. The corresponding macro is "
6549 "B<_POSIX_PIPE_BUF>."
6553 #: build/C/man3/fpathconf.3:116
6555 msgid "B<_PC_CHOWN_RESTRICTED>"
6559 #: build/C/man3/fpathconf.3:129
6561 "returns nonzero if the B<chown>(2) call may not be used on this file. If "
6562 "I<fd> or I<path> refer to a directory, then this applies to all files in "
6563 "that directory. The corresponding macro is B<_POSIX_CHOWN_RESTRICTED>."
6567 #: build/C/man3/fpathconf.3:129
6569 msgid "B<_PC_NO_TRUNC>"
6573 #: build/C/man3/fpathconf.3:136
6575 "returns nonzero if accessing filenames longer than B<_POSIX_NAME_MAX> "
6576 "generates an error. The corresponding macro is B<_POSIX_NO_TRUNC>."
6580 #: build/C/man3/fpathconf.3:136
6582 msgid "B<_PC_VDISABLE>"
6586 #: build/C/man3/fpathconf.3:143
6588 "returns nonzero if special character processing can be disabled, where I<fd> "
6589 "or I<path> must refer to a terminal."
6593 #: build/C/man3/fpathconf.3:152
6595 "The limit is returned, if one exists. If the system does not have a limit "
6596 "for the requested resource, -1 is returned, and I<errno> is unchanged. If "
6597 "there is an error, -1 is returned, and I<errno> is set to reflect the nature "
6602 #: build/C/man3/fpathconf.3:160
6604 "Files with name lengths longer than the value returned for I<name> equal to "
6605 "B<_PC_NAME_MAX> may exist in the given directory."
6609 #: build/C/man3/fpathconf.3:163 build/C/man3/sysconf.3:333
6611 "Some returned values may be huge; they are not suitable for allocating "
6616 #: build/C/man3/fpathconf.3:168
6617 msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<sysconf>(3)"
6621 #: build/C/man2/fsync.2:38
6627 #: build/C/man2/fsync.2:41
6628 msgid "fsync, fdatasync - synchronize a file's in-core state with storage device"
6632 #: build/C/man2/fsync.2:45
6633 msgid "B<int fsync(int >I<fd>B<);>"
6637 #: build/C/man2/fsync.2:47
6638 msgid "B<int fdatasync(int >I<fd>B<);>"
6642 #: build/C/man2/fsync.2:55
6643 msgid "B<fsync>(): _BSD_SOURCE || _XOPEN_SOURCE"
6646 #. _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
6648 #: build/C/man2/fsync.2:58
6650 msgid " || /* since glibc 2.8: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L\n"
6654 #: build/C/man2/fsync.2:61
6656 "B<fdatasync>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L || _XOPEN_SOURCE\\ "
6661 #: build/C/man2/fsync.2:74
6663 "B<fsync>() transfers (\"flushes\") all modified in-core data of (i.e., "
6664 "modified buffer cache pages for) the file referred to by the file descriptor "
6665 "I<fd> to the disk device (or other permanent storage device) so that all "
6666 "changed information can be retrieved even after the system crashed or was "
6667 "rebooted. This includes writing through or flushing a disk cache if "
6668 "present. The call blocks until the device reports that the transfer has "
6669 "completed. It also flushes metadata information associated with the file "
6674 #: build/C/man2/fsync.2:83
6676 "Calling B<fsync>() does not necessarily ensure that the entry in the "
6677 "directory containing the file has also reached disk. For that an explicit "
6678 "B<fsync>() on a file descriptor for the directory is also needed."
6682 #: build/C/man2/fsync.2:104
6684 "B<fdatasync>() is similar to B<fsync>(), but does not flush modified "
6685 "metadata unless that metadata is needed in order to allow a subsequent data "
6686 "retrieval to be correctly handled. For example, changes to I<st_atime> or "
6687 "I<st_mtime> (respectively, time of last access and time of last "
6688 "modification; see B<stat>(2)) do not require flushing because they are not "
6689 "necessary for a subsequent data read to be handled correctly. On the other "
6690 "hand, a change to the file size (I<st_size>, as made by say "
6691 "B<ftruncate>(2)), would require a metadata flush."
6695 #: build/C/man2/fsync.2:109
6697 "The aim of B<fdatasync>() is to reduce disk activity for applications that "
6698 "do not require all metadata to be synchronized with the disk."
6702 #: build/C/man2/fsync.2:114
6704 "On success, these system calls return zero. On error, -1 is returned, and "
6705 "I<errno> is set appropriately."
6709 #: build/C/man2/fsync.2:119
6710 msgid "I<fd> is not a valid open file descriptor."
6714 #: build/C/man2/fsync.2:122
6715 msgid "An error occurred during synchronization."
6719 #: build/C/man2/fsync.2:122
6721 msgid "B<EROFS>, B<EINVAL>"
6725 #: build/C/man2/fsync.2:126
6726 msgid "I<fd> is bound to a special file which does not support synchronization."
6730 #: build/C/man2/fsync.2:128
6731 msgid "4.3BSD, POSIX.1-2001."
6735 #: build/C/man2/fsync.2:128
6737 msgid "AVAILABILITY"
6740 #. POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
6741 #. -1: unavailable, 0: ask using sysconf().
6742 #. glibc defines them to 1.
6744 #: build/C/man2/fsync.2:141
6746 "On POSIX systems on which B<fdatasync>() is available, "
6747 "B<_POSIX_SYNCHRONIZED_IO> is defined in I<E<lt>unistd.hE<gt>> to a value "
6748 "greater than 0. (See also B<sysconf>(3).)"
6752 #: build/C/man2/fsync.2:147
6754 "On some UNIX systems (but not Linux), I<fd> must be a I<writable> file "
6759 #: build/C/man2/fsync.2:153
6761 "In Linux 2.2 and earlier, B<fdatasync>() is equivalent to B<fsync>(), and "
6762 "so has no performance advantage."
6766 #: build/C/man2/fsync.2:163
6768 "The B<fsync>() implementations in older kernels and lesser used filesystems "
6769 "does not know how to flush disk caches. In these cases disk caches need to "
6770 "be disabled using B<hdparm>(8) or B<sdparm>(8) to guarantee safe "
6775 #: build/C/man2/fsync.2:172
6777 "B<bdflush>(2), B<open>(2), B<sync>(2), B<sync_file_range>(2), B<hdparm>(8), "
6778 "B<mount>(8), B<sync>(8), B<update>(8)"
6782 #: build/C/man2/get_thread_area.2:6
6784 msgid "GET_THREAD_AREA"
6788 #: build/C/man2/get_thread_area.2:9
6789 msgid "get_thread_area - Get a Thread Local Storage (TLS) area"
6793 #: build/C/man2/get_thread_area.2:13 build/C/man2/set_thread_area.2:14
6794 msgid "B<#include E<lt>asm/ldt.hE<gt>>"
6798 #: build/C/man2/get_thread_area.2:15
6799 msgid "B<int get_thread_area(struct user_desc *>I<u_info>B<);>"
6803 #: build/C/man2/get_thread_area.2:24
6805 "B<get_thread_area>() returns an entry in the current thread's Thread Local "
6806 "Storage (TLS) array. The index of the entry corresponds to the value of "
6807 "I<u_info-E<gt>entry_number>, passed in by the user. If the value is in "
6808 "bounds, B<get_thread_area>() copies the corresponding TLS entry into the "
6809 "area pointed to by I<u_info>."
6813 #: build/C/man2/get_thread_area.2:30
6815 "B<get_thread_area>() returns 0 on success. Otherwise, it returns -1 and "
6816 "sets I<errno> appropriately."
6820 #: build/C/man2/get_thread_area.2:34 build/C/man2/set_thread_area.2:52
6821 msgid "I<u_info> is an invalid pointer."
6825 #: build/C/man2/get_thread_area.2:37 build/C/man2/set_thread_area.2:49
6826 msgid "I<u_info-E<gt>entry_number> is out of bounds."
6830 #: build/C/man2/get_thread_area.2:41
6831 msgid "A version of B<get_thread_area>() first appeared in Linux 2.5.32."
6835 #: build/C/man2/get_thread_area.2:45
6837 "B<get_thread_area>() is Linux-specific and should not be used in programs "
6838 "that are intended to be portable."
6842 #: build/C/man2/get_thread_area.2:49 build/C/man2/gettid.2:64 build/C/man2/set_thread_area.2:67 build/C/man2/sysctl.2:112
6844 "Glibc does not provide a wrapper for this system call; call it using "
6849 #: build/C/man2/get_thread_area.2:52
6850 msgid "B<modify_ldt>(2), B<set_thread_area>(2)"
6854 #: build/C/man3/getcwd.3:30
6860 #: build/C/man3/getcwd.3:33
6861 msgid "getcwd, getwd, get_current_dir_name - Get current working directory"
6865 #: build/C/man3/getcwd.3:38
6867 msgid "B<char *getcwd(char *>I<buf>B<, size_t >I<size>B<);>\n"
6871 #: build/C/man3/getcwd.3:40
6873 msgid "B<char *getwd(char *>I<buf>B<);>\n"
6877 #: build/C/man3/getcwd.3:42
6879 msgid "B<char *get_current_dir_name(void);>\n"
6883 #: build/C/man3/getcwd.3:50
6884 msgid "B<get_current_dir_name>():"
6888 #: build/C/man3/getcwd.3:55
6893 #: build/C/man3/getcwd.3:65 build/C/man3/ualarm.3:49 build/C/man3/usleep.3:57 build/C/man2/vfork.2:52
6897 " (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
6898 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
6899 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)\n"
6903 #: build/C/man3/getcwd.3:70 build/C/man2/getdtablesize.2:54 build/C/man2/getpagesize.2:50 build/C/man3/ualarm.3:54 build/C/man3/usleep.3:62 build/C/man2/vfork.2:57
6905 "Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
6906 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
6910 #: build/C/man3/getcwd.3:80
6912 "These functions return a null-terminated string containing an absolute "
6913 "pathname that is the current working directory of the calling process. The "
6914 "pathname is returned as the function result and via the argument I<buf>, if "
6919 #: build/C/man3/getcwd.3:88
6921 "The B<getcwd>() function copies an absolute pathname of the current working "
6922 "directory to the array pointed to by I<buf>, which is of length I<size>."
6926 #: build/C/man3/getcwd.3:98
6928 "If the length of the absolute pathname of the current working directory, "
6929 "including the terminating null byte, exceeds I<size> bytes, NULL is "
6930 "returned, and I<errno> is set to B<ERANGE>; an application should check for "
6931 "this error, and allocate a larger buffer if necessary."
6935 #: build/C/man3/getcwd.3:116
6937 "As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc) "
6938 "B<getcwd>() allocates the buffer dynamically using B<malloc>(3) if I<buf> "
6939 "is NULL. In this case, the allocated buffer has the length I<size> unless "
6940 "I<size> is zero, when I<buf> is allocated as big as necessary. The caller "
6941 "should B<free>(3) the returned buffer."
6945 #: build/C/man3/getcwd.3:129
6947 "B<get_current_dir_name>() will B<malloc>(3) an array big enough to hold "
6948 "the absolute pathname of the current working directory. If the environment "
6949 "variable B<PWD> is set, and its value is correct, then that value will be "
6950 "returned. The caller should B<free>(3) the returned buffer."
6954 #: build/C/man3/getcwd.3:154
6956 "B<getwd>() does not B<malloc>(3) any memory. The I<buf> argument should "
6957 "be a pointer to an array at least B<PATH_MAX> bytes long. If the length of "
6958 "the absolute pathname of the current working directory, including the "
6959 "terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and "
6960 "I<errno> is set to B<ENAMETOOLONG>. (Note that on some systems, B<PATH_MAX> "
6961 "may not be a compile-time constant; furthermore, its value may depend on the "
6962 "file system, see B<pathconf>(3).) For portability and security reasons, use "
6963 "of B<getwd>() is deprecated."
6967 #: build/C/man3/getcwd.3:163
6969 "On success, these functions return a pointer to a string containing the "
6970 "pathname of the current working directory. In the case B<getcwd>() and "
6971 "B<getwd>() this is the same value as I<buf>."
6975 #: build/C/man3/getcwd.3:170
6977 "On failure, these functions return NULL, and I<errno> is set to indicate the "
6978 "error. The contents of the array pointed to by I<buf> are undefined on "
6983 #: build/C/man3/getcwd.3:174
6984 msgid "Permission to read or search a component of the filename was denied."
6988 #: build/C/man3/getcwd.3:178
6989 msgid "I<buf> points to a bad address."
6993 #: build/C/man3/getcwd.3:185
6994 msgid "The I<size> argument is zero and I<buf> is not a NULL pointer."
6998 #: build/C/man3/getcwd.3:185
7004 #: build/C/man3/getcwd.3:190
7005 msgid "B<getwd>(): I<buf> is NULL."
7009 #: build/C/man3/getcwd.3:190
7011 msgid "ENAMETOOLONG"
7015 #: build/C/man3/getcwd.3:196
7017 "B<getwd>(): The size of the null-terminated absolute pathname string exceeds "
7018 "B<PATH_MAX> bytes."
7022 #: build/C/man3/getcwd.3:199
7023 msgid "The current working directory has been unlinked."
7027 #: build/C/man3/getcwd.3:199 build/C/man3/getlogin.3:112
7033 #: build/C/man3/getcwd.3:206
7035 "The I<size> argument is less than the length of the absolute pathname of the "
7036 "working directory, including the terminating null byte. You need to "
7037 "allocate a bigger array and try again."
7041 #: build/C/man3/getcwd.3:214
7043 "B<getcwd>() conforms to POSIX.1-2001. Note however that POSIX.1-2001 "
7044 "leaves the behavior of B<getcwd>() unspecified if I<buf> is NULL."
7048 #: build/C/man3/getcwd.3:225
7050 "B<getwd>() is present in POSIX.1-2001, but marked LEGACY. POSIX.1-2008 "
7051 "removes the specification of B<getwd>(). Use B<getcwd>() instead. "
7052 "POSIX.1-2001 does not define any errors for B<getwd>()."
7056 #: build/C/man3/getcwd.3:228
7057 msgid "B<get_current_dir_name>() is a GNU extension."
7061 #: build/C/man3/getcwd.3:239
7063 "Under Linux, the function B<getcwd>() is a system call (since 2.1.92). On "
7064 "older systems it would query I</proc/self/cwd>. If both system call and "
7065 "proc file system are missing, a generic implementation is called. Only in "
7066 "that case can these calls fail under Linux with B<EACCES>."
7070 #: build/C/man3/getcwd.3:247
7072 "These functions are often used to save the location of the current working "
7073 "directory for the purpose of returning to it later. Opening the current "
7074 "directory (\".\") and calling B<fchdir>(2) to return is usually a faster "
7075 "and more reliable alternative when sufficiently many file descriptors are "
7076 "available, especially on platforms other than Linux."
7080 #: build/C/man3/getcwd.3:254
7082 "B<chdir>(2), B<fchdir>(2), B<open>(2), B<unlink>(2), B<free>(3), "
7087 #: build/C/man2/getdomainname.2:29
7089 msgid "GETDOMAINNAME"
7093 #: build/C/man2/getdomainname.2:29
7099 #: build/C/man2/getdomainname.2:32
7100 msgid "getdomainname, setdomainname - get/set domain name"
7104 #: build/C/man2/getdomainname.2:36
7105 msgid "B<int getdomainname(char *>I<name>B<, size_t >I<len>B<);>"
7109 #: build/C/man2/getdomainname.2:38
7110 msgid "B<int setdomainname(const char *>I<name>B<, size_t >I<len>B<);>"
7114 #: build/C/man2/getdomainname.2:47
7115 msgid "B<getdomainname>(), B<setdomainname>():"
7119 #: build/C/man2/getdomainname.2:49 build/C/man3/gethostid.3:54 build/C/man2/gethostname.2:60 build/C/man3/getusershell.3:53
7120 msgid "_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
7124 #: build/C/man2/getdomainname.2:54
7126 "These functions are used to access or to change the domain name of the host "
7131 #: build/C/man2/getdomainname.2:65
7133 "B<setdomainname>() sets the domain name to the value given in the character "
7134 "array I<name>. The I<len> argument specifies the number of bytes in "
7135 "I<name>. (Thus, I<name> does not require a terminating null byte.)"
7139 #: build/C/man2/getdomainname.2:75
7141 "B<getdomainname>() returns the null-terminated domain name in the character "
7142 "array I<name>, which has a length of I<len> bytes. If the null-terminated "
7143 "domain name requires more than I<len> bytes, B<getdomainname>() returns the "
7144 "first I<len> bytes (glibc) or gives an error (libc)."
7148 #: build/C/man2/getdomainname.2:83
7149 msgid "B<setdomainname>() can fail with the following errors:"
7153 #: build/C/man2/getdomainname.2:87
7154 msgid "I<name> pointed outside of user address space."
7158 #: build/C/man2/getdomainname.2:91
7159 msgid "I<len> was negative or too large."
7163 #: build/C/man2/getdomainname.2:96
7165 "the caller is unprivileged (Linux: does not have the B<CAP_SYS_ADMIN> "
7170 #: build/C/man2/getdomainname.2:99
7171 msgid "B<getdomainname>() can fail with the following errors:"
7175 #: build/C/man2/getdomainname.2:110
7177 "For B<getdomainname>() under libc: I<name> is NULL or I<name> is longer "
7178 "than I<len> bytes."
7181 #. But they appear on most systems...
7183 #: build/C/man2/getdomainname.2:113
7184 msgid "POSIX does not specify these calls."
7188 #: build/C/man2/getdomainname.2:117
7190 "Since Linux 1.0, the limit on the length of a domain name, including the "
7191 "terminating null byte, is 64 bytes. In older kernels, it was 8 bytes."
7195 #: build/C/man2/getdomainname.2:127
7197 "On most Linux architectures (including x86), there is no B<getdomainname>() "
7198 "system call; instead, glibc implements B<getdomainname>() as a library "
7199 "function that returns a copy of the I<domainname> field returned from a call "
7204 #: build/C/man2/getdomainname.2:131
7205 msgid "B<gethostname>(2), B<sethostname>(2), B<uname>(2)"
7209 #: build/C/man2/getdtablesize.2:27
7211 msgid "GETDTABLESIZE"
7215 #: build/C/man2/getdtablesize.2:30
7216 msgid "getdtablesize - get descriptor table size"
7220 #: build/C/man2/getdtablesize.2:34
7221 msgid "B<int getdtablesize(void);>"
7225 #: build/C/man2/getdtablesize.2:41
7226 msgid "B<getdtablesize>():"
7230 #: build/C/man2/getdtablesize.2:49 build/C/man2/getpagesize.2:45
7234 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
7238 #: build/C/man2/getdtablesize.2:61
7240 "B<getdtablesize>() returns the maximum number of files a process can have "
7241 "open, one more than the largest possible value for a file descriptor."
7245 #: build/C/man2/getdtablesize.2:63
7246 msgid "The current limit on the number of open files per process."
7250 #: build/C/man2/getdtablesize.2:69
7252 "On Linux, B<getdtablesize>() can return any of the errors described for "
7253 "B<getrlimit>(2); see NOTES below."
7257 #: build/C/man2/getdtablesize.2:77
7259 "SVr4, 4.4BSD (the B<getdtablesize>() function first appeared in 4.2BSD). "
7260 "It is not specified in POSIX.1-2001; portable applications should employ "
7261 "I<sysconf(_SC_OPEN_MAX)> instead of this call."
7265 #: build/C/man2/getdtablesize.2:90
7267 "B<getdtablesize>() is implemented as a libc library function. The glibc "
7268 "version calls B<getrlimit>(2) and returns the current B<RLIMIT_NOFILE> "
7269 "limit, or B<OPEN_MAX> when that fails. The libc4 and libc5 versions return "
7270 "B<OPEN_MAX> (set to 256 since Linux 0.98.4)."
7274 #: build/C/man2/getdtablesize.2:95
7275 msgid "B<close>(2), B<dup>(2), B<getrlimit>(2), B<open>(2)"
7279 #: build/C/man3/gethostid.3:29
7285 #: build/C/man3/gethostid.3:32
7286 msgid "gethostid, sethostid - get or set the unique identifier of the current host"
7290 #: build/C/man3/gethostid.3:36
7291 msgid "B<long gethostid(void);>"
7295 #: build/C/man3/gethostid.3:38
7296 msgid "B<int sethostid(long >I<hostid>B<);>"
7300 #: build/C/man3/gethostid.3:47
7301 msgid "B<gethostid>():"
7305 #: build/C/man3/gethostid.3:52
7306 msgid "B<sethostid>():"
7310 #: build/C/man3/gethostid.3:67
7312 "B<gethostid>() and B<sethostid>() respectively get or set a unique 32-bit "
7313 "identifier for the current machine. The 32-bit identifier is intended to be "
7314 "unique among all UNIX systems in existence. This normally resembles the "
7315 "Internet address for the local machine, as returned by B<gethostbyname>(3), "
7316 "and thus usually never needs to be set."
7320 #: build/C/man3/gethostid.3:71
7321 msgid "The B<sethostid>() call is restricted to the superuser."
7325 #: build/C/man3/gethostid.3:75
7327 "B<gethostid>() returns the 32-bit identifier for the current host as set by "
7332 #: build/C/man3/gethostid.3:81
7334 "On success, B<sethostid>() returns 0; on error, -1 is returned, and "
7335 "I<errno> is set to indicate the error."
7339 #: build/C/man3/gethostid.3:84
7340 msgid "B<sethostid>() can fail with the following errors:"
7344 #: build/C/man3/gethostid.3:88
7346 "The caller did not have permission to write to the file used to store the "
7351 #: build/C/man3/gethostid.3:92
7353 "The calling process's effective user or group ID is not the same as its "
7354 "corresponding real ID."
7358 #: build/C/man3/gethostid.3:102
7360 "4.2BSD; these functions were dropped in 4.4BSD. SVr4 includes "
7361 "B<gethostid>() but not B<sethostid>(). POSIX.1-2001 specifies "
7362 "B<gethostid>() but not B<sethostid>()."
7365 #. libc5 used /etc/hostid; libc4 didn't have these functions
7367 #: build/C/man3/gethostid.3:111
7369 "In the glibc implementation, the I<hostid> is stored in the file "
7370 "I</etc/hostid>. (In glibc versions before 2.2, the file I</var/adm/hostid> "
7375 #: build/C/man3/gethostid.3:122
7377 "In the glibc implementation, if B<gethostid>() cannot open the file "
7378 "containing the host ID, then it obtains the hostname using "
7379 "B<gethostname>(2), passes that hostname to B<gethostbyname_r>(3) in order "
7380 "to obtain the host's IPv4 address, and returns a value obtained by "
7381 "bit-twiddling the IPv4 address. (This value may not be unique.)"
7385 #: build/C/man3/gethostid.3:124
7386 msgid "It is impossible to ensure that the identifier is globally unique."
7390 #: build/C/man3/gethostid.3:127
7391 msgid "B<hostid>(1), B<gethostbyname>(3)"
7395 #: build/C/man2/gethostname.2:32
7401 #: build/C/man2/gethostname.2:35
7402 msgid "gethostname, sethostname - get/set hostname"
7406 #: build/C/man2/gethostname.2:39
7407 msgid "B<int gethostname(char *>I<name>B<, size_t >I<len>B<);>"
7411 #: build/C/man2/gethostname.2:41
7412 msgid "B<int sethostname(const char *>I<name>B<, size_t >I<len>B<);>"
7416 #: build/C/man2/gethostname.2:50
7417 msgid "B<gethostname>():"
7421 #: build/C/man2/gethostname.2:53
7422 msgid "Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
7426 #: build/C/man2/gethostname.2:55
7427 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
7431 #: build/C/man2/gethostname.2:58
7432 msgid "B<sethostname>():"
7436 #: build/C/man2/gethostname.2:66
7438 "These system calls are used to access or to change the hostname of the "
7439 "current processor."
7443 #: build/C/man2/gethostname.2:77
7445 "B<sethostname>() sets the hostname to the value given in the character "
7446 "array I<name>. The I<len> argument specifies the number of bytes in "
7447 "I<name>. (Thus, I<name> does not require a terminating null byte.)"
7451 #: build/C/man2/gethostname.2:89
7453 "B<gethostname>() returns the null-terminated hostname in the character "
7454 "array I<name>, which has a length of I<len> bytes. If the null-terminated "
7455 "hostname is too large to fit, then the name is truncated, and no error is "
7456 "returned (but see NOTES below). POSIX.1-2001 says that if such truncation "
7457 "occurs, then it is unspecified whether the returned buffer includes a "
7458 "terminating null byte."
7462 #: build/C/man2/gethostname.2:99
7463 msgid "I<name> is an invalid address."
7466 #. Can't occur for gethostbyname() wrapper, since 'len' has an
7467 #. unsigned type; can occur for the underlying system call.
7469 #: build/C/man2/gethostname.2:109
7471 "I<len> is negative or, for B<sethostname>(), I<len> is larger than the "
7472 "maximum allowed size."
7476 #: build/C/man2/gethostname.2:117
7478 "(glibc B<gethostname>()) I<len> is smaller than the actual size. (Before "
7479 "version 2.1, glibc uses B<EINVAL> for this case.)"
7483 #: build/C/man2/gethostname.2:124
7485 "For B<sethostname>(), the caller did not have the B<CAP_SYS_ADMIN> "
7490 #: build/C/man2/gethostname.2:130
7492 "SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD). POSIX.1-2001 "
7493 "specifies B<gethostname>() but not B<sethostname>()."
7497 #: build/C/man2/gethostname.2:140
7499 "SUSv2 guarantees that \"Host names are limited to 255 bytes\". POSIX.1-2001 "
7500 "guarantees that \"Host names (not including the terminating null byte) are "
7501 "limited to B<HOST_NAME_MAX> bytes\". On Linux, B<HOST_NAME_MAX> is defined "
7502 "with the value 64, which has been the limit since Linux 1.0 (earlier kernels "
7503 "imposed a limit of 8 bytes)."
7507 #: build/C/man2/gethostname.2:163
7509 "The GNU C library does not employ the B<gethostname>() system call; "
7510 "instead, it implements B<gethostname>() as a library function that calls "
7511 "B<uname>(2) and copies up to I<len> bytes from the returned I<nodename> "
7512 "field into I<name>. Having performed the copy, the function then checks if "
7513 "the length of the I<nodename> was greater than or equal to I<len>, and if it "
7514 "is, then the function returns -1 with I<errno> set to B<ENAMETOOLONG>; in "
7515 "this case, a terminating null byte is not included in the returned I<name>."
7518 #. At least glibc 2.0 and 2.1, older versions not checked
7520 #: build/C/man2/gethostname.2:176
7522 "Versions of glibc before 2.2 handle the case where the length of the "
7523 "I<nodename> was greater than or equal to I<len> differently: nothing is "
7524 "copied into I<name> and the function returns -1 with I<errno> set to "
7529 #: build/C/man2/gethostname.2:180
7530 msgid "B<getdomainname>(2), B<setdomainname>(2), B<uname>(2)"
7534 #: build/C/man3/getlogin.3:28
7540 #: build/C/man3/getlogin.3:28
7546 #: build/C/man3/getlogin.3:31
7547 msgid "getlogin, getlogin_r, cuserid - get username"
7551 #: build/C/man3/getlogin.3:35
7552 msgid "B<char *getlogin(void);>"
7556 #: build/C/man3/getlogin.3:37
7557 msgid "B<int getlogin_r(char *>I<buf>B<, size_t >I<bufsize>B<);>"
7561 #: build/C/man3/getlogin.3:39
7562 msgid "B<#include E<lt>stdio.hE<gt>>"
7566 #: build/C/man3/getlogin.3:41
7567 msgid "B<char *cuserid(char *>I<string>B<);>"
7571 #: build/C/man3/getlogin.3:49
7572 msgid "B<getlogin_r>(): _REENTRANT || _POSIX_C_SOURCE\\ E<gt>=\\ 199506L"
7576 #: build/C/man3/getlogin.3:52
7577 msgid "B<cuserid>(): _XOPEN_SOURCE"
7581 #: build/C/man3/getlogin.3:61
7583 "B<getlogin>() returns a pointer to a string containing the name of the user "
7584 "logged in on the controlling terminal of the process, or a NULL pointer if "
7585 "this information cannot be determined. The string is statically allocated "
7586 "and might be overwritten on subsequent calls to this function or to "
7591 #: build/C/man3/getlogin.3:67
7593 "B<getlogin_r>() returns this same username in the array I<buf> of size "
7598 #: build/C/man3/getlogin.3:79
7600 "B<cuserid>() returns a pointer to a string containing a username associated "
7601 "with the effective user ID of the process. If I<string> is not a NULL "
7602 "pointer, it should be an array that can hold at least B<L_cuserid> "
7603 "characters; the string is returned in this array. Otherwise, a pointer to a "
7604 "string in a static area is returned. This string is statically allocated "
7605 "and might be overwritten on subsequent calls to this function or to "
7610 #: build/C/man3/getlogin.3:83
7612 "The macro B<L_cuserid> is an integer constant that indicates how long an "
7613 "array you might need to store a username. B<L_cuserid> is declared in "
7614 "I<E<lt>stdio.hE<gt>>."
7618 #: build/C/man3/getlogin.3:90
7620 "These functions let your program identify positively the user who is running "
7621 "(B<cuserid>()) or the user who logged in this session (B<getlogin>()). "
7622 "(These can differ when set-user-ID programs are involved.)"
7626 #: build/C/man3/getlogin.3:95
7628 "For most purposes, it is more useful to use the environment variable "
7629 "B<LOGNAME> to find out who the user is. This is more flexible precisely "
7630 "because the user can set B<LOGNAME> arbitrarily."
7634 #: build/C/man3/getlogin.3:101
7636 "B<getlogin>() returns a pointer to the username when successful, and NULL "
7637 "on failure. B<getlogin_r>() returns 0 when successful, and nonzero on "
7642 #: build/C/man3/getlogin.3:103
7643 msgid "POSIX specifies"
7647 #: build/C/man3/getlogin.3:106
7648 msgid "The calling process already has the maximum allowed number of open files."
7652 #: build/C/man3/getlogin.3:109
7653 msgid "The system already has the maximum allowed number of open files."
7657 #: build/C/man3/getlogin.3:109
7663 #: build/C/man3/getlogin.3:112
7664 msgid "The calling process has no controlling tty."
7668 #: build/C/man3/getlogin.3:118
7670 "(getlogin_r) The length of the username, including the terminating null "
7671 "byte, is larger than I<bufsize>."
7675 #: build/C/man3/getlogin.3:120
7676 msgid "Linux/glibc also has"
7680 #: build/C/man3/getlogin.3:123
7681 msgid "There was no corresponding entry in the utmp-file."
7685 #: build/C/man3/getlogin.3:126
7686 msgid "Insufficient memory to allocate passwd structure."
7690 #: build/C/man3/getlogin.3:126 build/C/man2/ioctl.2:105 build/C/man2/ioctl.2:109 build/C/man3/tcgetpgrp.3:90
7696 #: build/C/man3/getlogin.3:130
7697 msgid "Standard input didn't refer to a terminal. (See BUGS.)"
7701 #: build/C/man3/getlogin.3:131
7703 msgid "I</etc/passwd>"
7707 #: build/C/man3/getlogin.3:134
7708 msgid "password database file"
7712 #: build/C/man3/getlogin.3:134
7714 msgid "I</var/run/utmp>"
7718 #: build/C/man3/getlogin.3:138
7719 msgid "(traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)"
7723 #: build/C/man3/getlogin.3:143
7724 msgid "B<getlogin>() and B<getlogin_r>() specified in POSIX.1-2001."
7728 #: build/C/man3/getlogin.3:154
7730 "System V has a B<cuserid>() function which uses the real user ID rather "
7731 "than the effective user ID. The B<cuserid>() function was included in the "
7732 "1988 version of POSIX, but removed from the 1990 version. It was present in "
7733 "SUSv2, but removed in POSIX.1-2001."
7737 #: build/C/man3/getlogin.3:161
7739 "OpenBSD has B<getlogin>() and B<setlogin>(), and a username associated with "
7740 "a session, even if it has no controlling tty."
7744 #: build/C/man3/getlogin.3:173
7746 "Unfortunately, it is often rather easy to fool B<getlogin>(). Sometimes it "
7747 "does not work at all, because some program messed up the utmp file. Often, "
7748 "it gives only the first 8 characters of the login name. The user currently "
7749 "logged in on the controlling tty of our program need not be the user who "
7750 "started it. Avoid B<getlogin>() for security-related purposes."
7754 #: build/C/man3/getlogin.3:183
7756 "Note that glibc does not follow the POSIX specification and uses I<stdin> "
7757 "instead of I</dev/tty>. A bug. (Other recent systems, like SunOS 5.8 and "
7758 "HP-UX 11.11 and FreeBSD 4.8 all return the login name also when I<stdin> is "
7763 #: build/C/man3/getlogin.3:193
7765 "Nobody knows precisely what B<cuserid>() does; avoid it in portable "
7766 "programs. Or avoid it altogether: use I<getpwuid(geteuid())> instead, if "
7767 "that is what you meant. B<Do not use> B<cuserid>()."
7771 #: build/C/man3/getlogin.3:197
7772 msgid "B<geteuid>(2), B<getuid>(2), B<utmp>(5)"
7776 #: build/C/man3/getopt.3:39
7782 #: build/C/man3/getopt.3:43
7784 "getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - "
7785 "Parse command-line options"
7789 #: build/C/man3/getopt.3:49
7792 "B<int getopt(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
7793 "B< const char *>I<optstring>B<);>\n"
7797 #: build/C/man3/getopt.3:52
7800 "B<extern char *>I<optarg>B<;>\n"
7801 "B<extern int >I<optind>B<, >I<opterr>B<, >I<optopt>B<;>\n"
7805 #: build/C/man3/getopt.3:54
7807 msgid "B<#include E<lt>getopt.hE<gt>>\n"
7811 #: build/C/man3/getopt.3:58
7814 "B<int getopt_long(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
7815 "B< const char *>I<optstring>B<,>\n"
7816 "B< const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
7820 #: build/C/man3/getopt.3:62
7823 "B<int getopt_long_only(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
7824 "B< const char *>I<optstring>B<,>\n"
7825 "B< const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
7829 #: build/C/man3/getopt.3:72
7830 msgid "B<getopt>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
7834 #: build/C/man3/getopt.3:76
7835 msgid "B<getopt_long>(), B<getopt_long_only>(): _GNU_SOURCE"
7839 #: build/C/man3/getopt.3:97
7841 "The B<getopt>() function parses the command-line arguments. Its arguments "
7842 "I<argc> and I<argv> are the argument count and array as passed to the "
7843 "I<main>() function on program invocation. An element of I<argv> that "
7844 "starts with \\(aq-\\(aq (and is not exactly \"-\" or \"--\") is an option "
7845 "element. The characters of this element (aside from the initial "
7846 "\\(aq-\\(aq) are option characters. If B<getopt>() is called repeatedly, "
7847 "it returns successively each of the option characters from each of the "
7852 #: build/C/man3/getopt.3:106
7854 "The variable I<optind> is the index of the next element to be processed in "
7855 "I<argv>. The system initializes this value to 1. The caller can reset it "
7856 "to 1 to restart scanning of the same I<argv>, or when scanning a new "
7861 #: build/C/man3/getopt.3:116
7863 "If B<getopt>() finds another option character, it returns that character, "
7864 "updating the external variable I<optind> and a static variable I<nextchar> "
7865 "so that the next call to B<getopt>() can resume the scan with the following "
7866 "option character or I<argv>-element."
7870 #: build/C/man3/getopt.3:122
7872 "If there are no more option characters, B<getopt>() returns -1. Then "
7873 "I<optind> is the index in I<argv> of the first I<argv>-element that is not "
7878 #: build/C/man3/getopt.3:149
7880 "I<optstring> is a string containing the legitimate option characters. If "
7881 "such a character is followed by a colon, the option requires an argument, so "
7882 "B<getopt>() places a pointer to the following text in the same "
7883 "I<argv>-element, or the text of the following I<argv>-element, in "
7884 "I<optarg>. Two colons mean an option takes an optional arg; if there is "
7885 "text in the current I<argv>-element (i.e., in the same word as the option "
7886 "name itself, for example, \"-oarg\"), then it is returned in I<optarg>, "
7887 "otherwise I<optarg> is set to zero. This is a GNU extension. If "
7888 "I<optstring> contains B<W> followed by a semicolon, then B<-W foo> is "
7889 "treated as the long option B<--foo>. (The B<-W> option is reserved by "
7890 "POSIX.2 for implementation extensions.) This behavior is a GNU extension, "
7891 "not available with libraries before glibc 2."
7895 #: build/C/man3/getopt.3:167
7897 "By default, B<getopt>() permutes the contents of I<argv> as it scans, so "
7898 "that eventually all the nonoptions are at the end. Two other modes are also "
7899 "implemented. If the first character of I<optstring> is \\(aq+\\(aq or the "
7900 "environment variable B<POSIXLY_CORRECT> is set, then option processing stops "
7901 "as soon as a nonoption argument is encountered. If the first character of "
7902 "I<optstring> is \\(aq-\\(aq, then each nonoption I<argv>-element is handled "
7903 "as if it were the argument of an option with character code 1. (This is "
7904 "used by programs that were written to expect options and other "
7905 "I<argv>-elements in any order and that care about the ordering of the two.) "
7906 "The special argument \"--\" forces an end of option-scanning regardless of "
7907 "the scanning mode."
7911 #: build/C/man3/getopt.3:175
7913 "If B<getopt>() does not recognize an option character, it prints an error "
7914 "message to I<stderr>, stores the character in I<optopt>, and returns "
7915 "\\(aq?\\(aq. The calling program may prevent the error message by setting "
7920 #: build/C/man3/getopt.3:194
7922 "If B<getopt>() finds an option character in I<argv> that was not included "
7923 "in I<optstring>, or if it detects a missing option argument, it returns "
7924 "\\(aq?\\(aq and sets the external variable I<optopt> to the actual option "
7925 "character. If the first character (following any optional \\(aq+\\(aq or "
7926 "\\(aq-\\(aq described above) of I<optstring> is a colon (\\(aq:\\(aq), then "
7927 "B<getopt>() returns \\(aq:\\(aq instead of \\(aq?\\(aq to indicate a "
7928 "missing option argument. If an error was detected, and the first character "
7929 "of I<optstring> is not a colon, and the external variable I<opterr> is "
7930 "nonzero (which is the default), B<getopt>() prints an error message."
7934 #: build/C/man3/getopt.3:194
7936 msgid "getopt_long() and getopt_long_only()"
7940 #: build/C/man3/getopt.3:210
7942 "The B<getopt_long>() function works like B<getopt>() except that it also "
7943 "accepts long options, started with two dashes. (If the program accepts only "
7944 "long options, then I<optstring> should be specified as an empty string "
7945 "(\"\"), not NULL.) Long option names may be abbreviated if the abbreviation "
7946 "is unique or is an exact match for some defined option. A long option may "
7947 "take a parameter, of the form B<--arg=param> or B<--arg param>."
7951 #: build/C/man3/getopt.3:217
7953 "I<longopts> is a pointer to the first element of an array of I<struct "
7954 "option> declared in I<E<lt>getopt.hE<gt>> as"
7958 #: build/C/man3/getopt.3:226
7962 " const char *name;\n"
7970 #: build/C/man3/getopt.3:230
7971 msgid "The meanings of the different fields are:"
7975 #: build/C/man3/getopt.3:230
7981 #: build/C/man3/getopt.3:233
7982 msgid "is the name of the long option."
7986 #: build/C/man3/getopt.3:233
7992 #: build/C/man3/getopt.3:239
7994 "is: B<no_argument> (or 0) if the option does not take an argument; "
7995 "B<required_argument> (or 1) if the option requires an argument; or "
7996 "B<optional_argument> (or 2) if the option takes an optional argument."
8000 #: build/C/man3/getopt.3:239
8006 #: build/C/man3/getopt.3:253
8008 "specifies how results are returned for a long option. If I<flag> is NULL, "
8009 "then B<getopt_long>() returns I<val>. (For example, the calling program "
8010 "may set I<val> to the equivalent short option character.) Otherwise, "
8011 "B<getopt_long>() returns 0, and I<flag> points to a variable which is set "
8012 "to I<val> if the option is found, but left unchanged if the option is not "
8017 #: build/C/man3/getopt.3:253
8023 #: build/C/man3/getopt.3:257
8024 msgid "is the value to return, or to load into the variable pointed to by I<flag>."
8028 #: build/C/man3/getopt.3:259
8029 msgid "The last element of the array has to be filled with zeros."
8033 #: build/C/man3/getopt.3:263
8035 "If I<longindex> is not NULL, it points to a variable which is set to the "
8036 "index of the long option relative to I<longopts>."
8040 #: build/C/man3/getopt.3:272
8042 "B<getopt_long_only>() is like B<getopt_long>(), but \\(aq-\\(aq as well as "
8043 "\"--\" can indicate a long option. If an option that starts with "
8044 "\\(aq-\\(aq (not \"--\") doesn't match a long option, but does match a short "
8045 "option, it is parsed as a short option instead."
8049 #: build/C/man3/getopt.3:290
8051 "If an option was successfully found, then B<getopt>() returns the option "
8052 "character. If all command-line options have been parsed, then B<getopt>() "
8053 "returns -1. If B<getopt>() encounters an option character that was not in "
8054 "I<optstring>, then \\(aq?\\(aq is returned. If B<getopt>() encounters an "
8055 "option with a missing argument, then the return value depends on the first "
8056 "character in I<optstring>: if it is \\(aq:\\(aq, then \\(aq:\\(aq is "
8057 "returned; otherwise \\(aq?\\(aq is returned."
8061 #: build/C/man3/getopt.3:302
8063 "B<getopt_long>() and B<getopt_long_only>() also return the option "
8064 "character when a short option is recognized. For a long option, they return "
8065 "I<val> if I<flag> is NULL, and 0 otherwise. Error and -1 returns are the "
8066 "same as for B<getopt>(), plus \\(aq?\\(aq for an ambiguous match or an "
8067 "extraneous parameter."
8071 #: build/C/man3/getopt.3:302
8077 #: build/C/man3/getopt.3:303
8079 msgid "B<POSIXLY_CORRECT>"
8083 #: build/C/man3/getopt.3:307
8085 "If this is set, then option processing stops as soon as a nonoption argument "
8090 #: build/C/man3/getopt.3:307
8092 msgid "B<_E<lt>PIDE<gt>_GNU_nonoption_argv_flags_>"
8096 #: build/C/man3/getopt.3:316
8098 "This variable was used by B<bash>(1) 2.0 to communicate to glibc which "
8099 "arguments are the results of wildcard expansion and so should not be "
8100 "considered as options. This behavior was removed in B<bash>(1) version "
8101 "2.01, but the support remains in glibc."
8105 #: build/C/man3/getopt.3:317
8107 msgid "B<getopt>():"
8111 #: build/C/man3/getopt.3:327
8113 "POSIX.2 and POSIX.1-2001, provided the environment variable "
8114 "B<POSIXLY_CORRECT> is set. Otherwise, the elements of I<argv> aren't really "
8115 "const, because we permute them. We pretend they're const in the prototype "
8116 "to be compatible with other systems."
8120 #: build/C/man3/getopt.3:331
8121 msgid "The use of \\(aq+\\(aq and \\(aq-\\(aq in I<optstring> is a GNU extension."
8125 #: build/C/man3/getopt.3:345
8127 "On some older implementations, B<getopt>() was declared in "
8128 "I<E<lt>stdio.hE<gt>>. SUSv1 permitted the declaration to appear in either "
8129 "I<E<lt>unistd.hE<gt>> or I<E<lt>stdio.hE<gt>>. POSIX.1-2001 marked the use "
8130 "of I<E<lt>stdio.hE<gt>> for this purpose as LEGACY. POSIX.1-2001 does not "
8131 "allow the declaration to appear in I<E<lt>stdio.hE<gt>>."
8135 #: build/C/man3/getopt.3:345
8137 msgid "B<getopt_long>() and B<getopt_long_only>():"
8141 #: build/C/man3/getopt.3:348
8142 msgid "These functions are GNU extensions."
8146 #: build/C/man3/getopt.3:367
8148 "A program that scans multiple argument vectors, or rescans the same vector "
8149 "more than once, and wants to make use of GNU extensions such as \\(aq+\\(aq "
8150 "and \\(aq-\\(aq at the start of I<optstring>, or changes the value of "
8151 "B<POSIXLY_CORRECT> between scans, must reinitialize B<getopt>() by "
8152 "resetting I<optind> to 0, rather than the traditional value of 1. "
8153 "(Resetting to 0 forces the invocation of an internal initialization routine "
8154 "that rechecks B<POSIXLY_CORRECT> and checks for GNU extensions in "
8159 #: build/C/man3/getopt.3:374
8161 "The POSIX.2 specification of B<getopt>() has a technical error described in "
8162 "POSIX.2 Interpretation 150. The GNU implementation (and probably all other "
8163 "implementations) implements the correct behavior rather than that specified."
8167 #: build/C/man3/getopt.3:382
8169 "The following trivial example program uses B<getopt>() to handle two "
8170 "program options: I<-n>, with no associated value; and I<-t val>, which "
8171 "expects an associated value."
8175 #: build/C/man3/getopt.3:387
8178 "#include E<lt>unistd.hE<gt>\n"
8179 "#include E<lt>stdlib.hE<gt>\n"
8180 "#include E<lt>stdio.hE<gt>\n"
8184 #: build/C/man3/getopt.3:393
8188 "main(int argc, char *argv[])\n"
8190 " int flags, opt;\n"
8191 " int nsecs, tfnd;\n"
8195 #: build/C/man3/getopt.3:412
8201 " while ((opt = getopt(argc, argv, \"nt:\")) != -1) {\n"
8203 " case \\(aqn\\(aq:\n"
8206 " case \\(aqt\\(aq:\n"
8207 " nsecs = atoi(optarg);\n"
8210 " default: /* \\(aq?\\(aq */\n"
8211 " fprintf(stderr, \"Usage: %s [-t nsecs] [-n] name\\en\",\n"
8213 " exit(EXIT_FAILURE);\n"
8219 #: build/C/man3/getopt.3:414
8221 msgid " printf(\"flags=%d; tfnd=%d; optind=%d\\en\", flags, tfnd, optind);\n"
8225 #: build/C/man3/getopt.3:419
8228 " if (optind E<gt>= argc) {\n"
8229 " fprintf(stderr, \"Expected argument after options\\en\");\n"
8230 " exit(EXIT_FAILURE);\n"
8235 #: build/C/man3/getopt.3:421
8237 msgid " printf(\"name argument = %s\\en\", argv[optind]);\n"
8241 #: build/C/man3/getopt.3:423
8243 msgid " /* Other code omitted */\n"
8247 #: build/C/man3/getopt.3:431
8249 "The following example program illustrates the use of B<getopt_long>() with "
8250 "most of its features."
8254 #: build/C/man3/getopt.3:436
8257 "#include E<lt>stdio.hE<gt> /* for printf */\n"
8258 "#include E<lt>stdlib.hE<gt> /* for exit */\n"
8259 "#include E<lt>getopt.hE<gt>\n"
8263 #: build/C/man3/getopt.3:442
8267 "main(int argc, char **argv)\n"
8270 " int digit_optind = 0;\n"
8274 #: build/C/man3/getopt.3:455
8278 " int this_option_optind = optind ? optind : 1;\n"
8279 " int option_index = 0;\n"
8280 " static struct option long_options[] = {\n"
8281 " {\"add\", required_argument, 0, 0 },\n"
8282 " {\"append\", no_argument, 0, 0 },\n"
8283 " {\"delete\", required_argument, 0, 0 },\n"
8284 " {\"verbose\", no_argument, 0, 0 },\n"
8285 " {\"create\", required_argument, 0, \\(aqc\\(aq},\n"
8286 " {\"file\", required_argument, 0, 0 },\n"
8292 #: build/C/man3/getopt.3:460
8295 " c = getopt_long(argc, argv, \"abc:d:012\",\n"
8296 " long_options, &option_index);\n"
8302 #: build/C/man3/getopt.3:468
8307 " printf(\"option %s\", long_options[option_index].name);\n"
8309 " printf(\" with arg %s\", optarg);\n"
8310 " printf(\"\\en\");\n"
8315 #: build/C/man3/getopt.3:477
8318 " case \\(aq0\\(aq:\n"
8319 " case \\(aq1\\(aq:\n"
8320 " case \\(aq2\\(aq:\n"
8321 " if (digit_optind != 0 && digit_optind != this_option_optind)\n"
8322 " printf(\"digits occur in two different "
8323 "argv-elements.\\en\");\n"
8324 " digit_optind = this_option_optind;\n"
8325 " printf(\"option %c\\en\", c);\n"
8330 #: build/C/man3/getopt.3:481
8333 " case \\(aqa\\(aq:\n"
8334 " printf(\"option a\\en\");\n"
8339 #: build/C/man3/getopt.3:485
8342 " case \\(aqb\\(aq:\n"
8343 " printf(\"option b\\en\");\n"
8348 #: build/C/man3/getopt.3:489
8351 " case \\(aqc\\(aq:\n"
8352 " printf(\"option c with value \\(aq%s\\(aq\\en\", optarg);\n"
8357 #: build/C/man3/getopt.3:493
8360 " case \\(aqd\\(aq:\n"
8361 " printf(\"option d with value \\(aq%s\\(aq\\en\", optarg);\n"
8366 #: build/C/man3/getopt.3:496
8369 " case \\(aq?\\(aq:\n"
8374 #: build/C/man3/getopt.3:501
8378 " printf(\"?? getopt returned character code 0%o ??\\en\", c);\n"
8384 #: build/C/man3/getopt.3:508
8387 " if (optind E<lt> argc) {\n"
8388 " printf(\"non-option ARGV-elements: \");\n"
8389 " while (optind E<lt> argc)\n"
8390 " printf(\"%s \", argv[optind++]);\n"
8391 " printf(\"\\en\");\n"
8396 #: build/C/man3/getopt.3:514
8397 msgid "B<getsubopt>(3)"
8401 #: build/C/man2/getpagesize.2:23
8407 #: build/C/man2/getpagesize.2:23
8413 #: build/C/man2/getpagesize.2:26
8414 msgid "getpagesize - get memory page size"
8418 #: build/C/man2/getpagesize.2:30
8419 msgid "B<int getpagesize(void);>"
8423 #: build/C/man2/getpagesize.2:37
8424 msgid "B<getpagesize>():"
8428 #. This call first appeared in 4.2BSD.
8430 #: build/C/man2/getpagesize.2:62
8432 "The function B<getpagesize>() returns the number of bytes in a memory page, "
8433 "where \"page\" is a fixed-length block, the unit for memory allocation and "
8434 "file mapping performed by B<mmap>(2)."
8438 #: build/C/man2/getpagesize.2:69
8440 "SVr4, 4.4BSD, SUSv2. In SUSv2 the B<getpagesize>() call is labeled LEGACY, "
8441 "and in POSIX.1-2001 it has been dropped; HP-UX does not have this call."
8445 #: build/C/man2/getpagesize.2:74
8447 "Portable applications should employ I<sysconf(_SC_PAGESIZE)> instead of "
8452 #: build/C/man2/getpagesize.2:79
8455 "#include E<lt>unistd.hE<gt>\n"
8456 "long sz = sysconf(_SC_PAGESIZE);\n"
8460 #: build/C/man2/getpagesize.2:86
8461 msgid "(Most systems allow the synonym B<_SC_PAGE_SIZE> for B<_SC_PAGESIZE>.)"
8465 #: build/C/man2/getpagesize.2:106
8467 "Whether B<getpagesize>() is present as a Linux system call depends on the "
8468 "architecture. If it is, it returns the kernel symbol B<PAGE_SIZE>, whose "
8469 "value depends on the architecture and machine model. Generally, one uses "
8470 "binaries that are dependent on the architecture but not on the machine "
8471 "model, in order to have a single binary distribution per architecture. This "
8472 "means that a user program should not find B<PAGE_SIZE> at compile time from "
8473 "a header file, but use an actual system call, at least for those "
8474 "architectures (like sun4) where this dependency exists. Here libc4, libc5, "
8475 "glibc 2.0 fail because their B<getpagesize>() returns a statically derived "
8476 "value, and does not use a system call. Things are OK in glibc 2.1."
8480 #: build/C/man2/getpagesize.2:109
8481 msgid "B<mmap>(2), B<sysconf>(3)"
8485 #: build/C/man2/gettid.2:26
8491 #: build/C/man2/gettid.2:26
8497 #: build/C/man2/gettid.2:29
8498 msgid "gettid - get thread identification"
8502 #: build/C/man2/gettid.2:32
8504 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
8508 #: build/C/man2/gettid.2:34
8510 msgid "B<pid_t gettid(void);>\n"
8514 #: build/C/man2/gettid.2:47
8516 "B<gettid>() returns the caller's thread ID (TID). In a single-threaded "
8517 "process, the thread ID is equal to the process ID (PID, as returned by "
8518 "B<getpid>(2)). In a multithreaded process, all threads have the same PID, "
8519 "but each one has a unique TID. For further details, see the discussion of "
8520 "B<CLONE_THREAD> in B<clone>(2)."
8524 #: build/C/man2/gettid.2:49
8525 msgid "On success, returns the thread ID of the calling process."
8529 #: build/C/man2/gettid.2:51
8530 msgid "This call is always successful."
8534 #: build/C/man2/gettid.2:55
8535 msgid "The B<gettid>() system call first appeared on Linux in kernel 2.4.11."
8539 #: build/C/man2/gettid.2:59
8541 "B<gettid>() is Linux-specific and should not be used in programs that are "
8542 "intended to be portable."
8546 #: build/C/man2/gettid.2:68
8548 "The thread ID returned by this call is not the same thing as a POSIX thread "
8549 "ID (i.e., the opaque value returned by B<pthread_self>(3))."
8553 #: build/C/man2/gettid.2:72
8554 msgid "B<clone>(2), B<fork>(2), B<getpid>(2)"
8558 #: build/C/man3/getumask.3:26
8564 #: build/C/man3/getumask.3:26
8570 #: build/C/man3/getumask.3:29
8571 msgid "getumask - get file creation mask"
8575 #: build/C/man3/getumask.3:33 build/C/man2/truncate.2:48 build/C/man2/umask.2:39 build/C/man2/vfork.2:31
8576 msgid "B<#include E<lt>sys/types.hE<gt>>"
8580 #: build/C/man3/getumask.3:37
8581 msgid "B<mode_t getumask(void);>"
8585 #: build/C/man3/getumask.3:40
8586 msgid "This function returns the current file creation mask. It is equivalent to"
8590 #: build/C/man3/getumask.3:49
8593 "mode_t getumask(void)\n"
8595 " mode_t mask = umask( 0 );\n"
8602 #: build/C/man3/getumask.3:56
8604 "except that it is documented to be thread-safe (that is, shares a lock with "
8605 "the B<umask>(2) library call)."
8609 #: build/C/man3/getumask.3:58
8610 msgid "This is a vaporware GNU extension."
8614 #: build/C/man3/getumask.3:61
8616 "This function is documented but not implemented yet in glibc, as at version "
8621 #: build/C/man3/getumask.3:63
8626 #: build/C/man3/getusershell.3:28
8628 msgid "GETUSERSHELL"
8632 #: build/C/man3/getusershell.3:28 build/C/man2/nice.2:31 build/C/man2/syscall.2:38 build/C/man2/vhangup.2:27
8638 #: build/C/man3/getusershell.3:31
8639 msgid "getusershell, setusershell, endusershell - get permitted user shells"
8643 #: build/C/man3/getusershell.3:36
8645 msgid "B<char *getusershell(void);>\n"
8649 #: build/C/man3/getusershell.3:38
8651 msgid "B<void setusershell(void);>\n"
8655 #: build/C/man3/getusershell.3:40
8657 msgid "B<void endusershell(void);>\n"
8661 #: build/C/man3/getusershell.3:51
8662 msgid "B<getusershell>(), B<setusershell>(), B<endusershell>():"
8666 #: build/C/man3/getusershell.3:67
8668 "The B<getusershell>() function returns the next line from the file "
8669 "I</etc/shells>, opening the file if necessary. The line should contain the "
8670 "pathname of a valid user shell. If I</etc/shells> does not exist or is "
8671 "unreadable, B<getusershell>() behaves as if I</bin/sh> and I</bin/csh> were "
8672 "listed in the file."
8676 #: build/C/man3/getusershell.3:71
8677 msgid "The B<setusershell>() function rewinds I</etc/shells>."
8681 #: build/C/man3/getusershell.3:75
8682 msgid "The B<endusershell>() function closes I</etc/shells>."
8686 #: build/C/man3/getusershell.3:79
8687 msgid "The B<getusershell>() function returns a NULL pointer on end-of-file."
8691 #: build/C/man3/getusershell.3:82
8693 msgid "/etc/shells\n"
8697 #: build/C/man3/getusershell.3:85
8702 #: build/C/man3/getusershell.3:87
8703 msgid "B<shells>(5)"
8707 #: build/C/man2/idle.2:32
8713 #: build/C/man2/idle.2:32
8719 #: build/C/man2/idle.2:35
8720 msgid "idle - make process 0 idle"
8724 #: build/C/man2/idle.2:39
8725 msgid "B<int idle(void);>"
8729 #: build/C/man2/idle.2:46
8731 "B<idle>() is an internal system call used during bootstrap. It marks the "
8732 "process's pages as swappable, lowers its priority, and enters the main "
8733 "scheduling loop. B<idle>() never returns."
8737 #: build/C/man2/idle.2:52
8739 "Only process 0 may call B<idle>(). Any user process, even a process with "
8740 "superuser permission, will receive B<EPERM>."
8744 #: build/C/man2/idle.2:55
8746 "B<idle>() never returns for process 0, and always returns -1 for a user "
8751 #: build/C/man2/idle.2:59 build/C/man2/setup.2:60
8752 msgid "Always, for a user process."
8756 #: build/C/man2/idle.2:61
8757 msgid "Since 2.3.13 this system call does not exist anymore."
8761 #: build/C/man2/idle.2:64 build/C/man2/sysinfo.2:86
8763 "This function is Linux-specific, and should not be used in programs intended "
8768 #: build/C/man2/ioctl.2:39
8774 #: build/C/man2/ioctl.2:39
8780 #: build/C/man2/ioctl.2:42
8781 msgid "ioctl - control device"
8785 #: build/C/man2/ioctl.2:44
8786 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
8790 #: build/C/man2/ioctl.2:46
8791 msgid "B<int ioctl(int >I<d>B<, int >I<request>B<, ...);>"
8795 #: build/C/man2/ioctl.2:57
8797 "The B<ioctl>() function manipulates the underlying device parameters of "
8798 "special files. In particular, many operating characteristics of character "
8799 "special files (e.g., terminals) may be controlled with B<ioctl>() "
8800 "requests. The argument I<d> must be an open file descriptor."
8804 #: build/C/man2/ioctl.2:65
8806 "The second argument is a device-dependent request code. The third argument "
8807 "is an untyped pointer to memory. It's traditionally B<char *>I<argp> (from "
8808 "the days before B<void *> was valid C), and will be so named for this "
8813 #: build/C/man2/ioctl.2:81
8815 "An B<ioctl>() I<request> has encoded in it whether the argument is an I<in> "
8816 "parameter or I<out> parameter, and the size of the argument I<argp> in "
8817 "bytes. Macros and defines used in specifying an B<ioctl>() I<request> are "
8818 "located in the file I<E<lt>sys/ioctl.hE<gt>>."
8822 #: build/C/man2/ioctl.2:90
8824 "Usually, on success zero is returned. A few B<ioctl>() requests use the "
8825 "return value as an output parameter and return a nonnegative value on "
8826 "success. On error, -1 is returned, and I<errno> is set appropriately."
8830 #: build/C/man2/ioctl.2:95
8831 msgid "I<d> is not a valid descriptor."
8835 #: build/C/man2/ioctl.2:99
8836 msgid "I<argp> references an inaccessible memory area."
8840 #: build/C/man2/ioctl.2:105
8841 msgid "I<Request> or I<argp> is not valid."
8845 #: build/C/man2/ioctl.2:109
8846 msgid "I<d> is not associated with a character special device."
8850 #: build/C/man2/ioctl.2:115
8852 "The specified request does not apply to the kind of object that the "
8853 "descriptor I<d> references."
8857 #: build/C/man2/ioctl.2:130
8859 "No single standard. Arguments, returns, and semantics of B<ioctl>() vary "
8860 "according to the device driver in question (the call is used as a catch-all "
8861 "for operations that don't cleanly fit the UNIX stream I/O model). See "
8862 "B<ioctl_list>(2) for a list of many of the known B<ioctl>() calls. The "
8863 "B<ioctl>() function call appeared in Version 7 AT&T UNIX."
8867 #: build/C/man2/ioctl.2:138
8869 "In order to use this call, one needs an open file descriptor. Often the "
8870 "B<open>(2) call has unwanted side effects, that can be avoided under Linux "
8871 "by giving it the B<O_NONBLOCK> flag."
8876 #: build/C/man2/ioctl.2:146
8877 msgid "B<execve>(2), B<fcntl>(2), B<ioctl_list>(2), B<open>(2), B<sd>(4), B<tty>(4)"
8881 #: build/C/man2/ioctl_list.2:27
8887 #: build/C/man2/ioctl_list.2:27
8893 #: build/C/man2/ioctl_list.2:30
8894 msgid "ioctl_list - list of ioctl calls in Linux/i386 kernel"
8898 #: build/C/man2/ioctl_list.2:37
8900 "This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel "
8901 "1.3.27. It contains 421 ioctls from "
8902 "I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>. For each ioctl, its numerical "
8903 "value, its name, and its argument type are given."
8907 #: build/C/man2/ioctl_list.2:45
8909 "An argument type of I<const struct foo *> means the argument is input to the "
8910 "kernel. I<struct foo *> means the kernel outputs the argument. If the "
8911 "kernel uses the argument for both input and output, this is marked with "
8916 #: build/C/man2/ioctl_list.2:50
8918 "Some ioctls take more arguments or return more values than a single "
8919 "structure. These are marked I<//\\ MORE> and documented further in a "
8924 #: build/C/man2/ioctl_list.2:52
8925 msgid "This list is very incomplete."
8929 #: build/C/man2/ioctl_list.2:52
8931 msgid "ioctl structure"
8934 #. added two sections - aeb
8936 #: build/C/man2/ioctl_list.2:57
8938 "Ioctl command values are 32-bit constants. In principle these constants are "
8939 "completely arbitrary, but people have tried to build some structure into "
8944 #: build/C/man2/ioctl_list.2:76
8946 "The old Linux situation was that of mostly 16-bit constants, where the last "
8947 "byte is a serial number, and the preceding byte(s) give a type indicating "
8948 "the driver. Sometimes the major number was used: 0x03 for the B<HDIO_*> "
8949 "ioctls, 0x06 for the B<LP*> ioctls. And sometimes one or more ASCII letters "
8950 "were used. For example, B<TCGETS> has value 0x00005401, with 0x54 = "
8951 "\\(aqT\\(aq indicating the terminal driver, and B<CYGETTIMEOUT> has value "
8952 "0x00435906, with 0x43 0x59 = \\(aqC\\(aq \\(aqY\\(aq indicating the cyclades "
8957 #: build/C/man2/ioctl_list.2:84
8959 "Later (0.98p5) some more information was built into the number. One has 2 "
8960 "direction bits (00: none, 01: write, 10: read, 11: read/write) followed by "
8961 "14 size bits (giving the size of the argument), followed by an 8-bit type "
8962 "(collecting the ioctls in groups for a common purpose or a common driver), "
8963 "and an 8-bit serial number."
8967 #: build/C/man2/ioctl_list.2:94
8969 "The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and "
8970 "are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>. They use "
8971 "I<sizeof(size)> so that size is a misnomer here: this third argument is a "
8976 #: build/C/man2/ioctl_list.2:99
8978 "Note that the size bits are very unreliable: in lots of cases they are "
8979 "wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or "
8980 "because of legacy values."
8984 #: build/C/man2/ioctl_list.2:103
8986 "Thus, it seems that the new structure only gave disadvantages: it does not "
8987 "help in checking, but it causes varying values for the various "
8992 #: build/C/man2/ioctl_list.2:109
8994 "Decent ioctls return 0 on success and -1 on error, while any output value is "
8995 "stored via the argument. However, quite a few ioctls in fact return an "
8996 "output value. This is not yet indicated below."
9000 #: build/C/man2/ioctl_list.2:111
9001 msgid "// Main table."
9005 #: build/C/man2/ioctl_list.2:113
9006 msgid "// E<lt>include/asm-i386/socket.hE<gt>"
9010 #: build/C/man2/ioctl_list.2:115
9012 msgid "0x00008901\tFIOSETOWN\tconst int *\n"
9016 #: build/C/man2/ioctl_list.2:116
9018 msgid "0x00008902\tSIOCSPGRP\tconst int *\n"
9022 #: build/C/man2/ioctl_list.2:117
9024 msgid "0x00008903\tFIOGETOWN\tint *\n"
9028 #: build/C/man2/ioctl_list.2:118
9030 msgid "0x00008904\tSIOCGPGRP\tint *\n"
9034 #: build/C/man2/ioctl_list.2:119
9036 msgid "0x00008905\tSIOCATMAR\tint *\n"
9040 #: build/C/man2/ioctl_list.2:120
9042 msgid "0x00008906\tSIOCGSTAMP\ttimeval *\n"
9046 #: build/C/man2/ioctl_list.2:124
9047 msgid "// E<lt>include/asm-i386/termios.hE<gt>"
9051 #: build/C/man2/ioctl_list.2:126
9053 msgid "0x00005401\tTCGETS\tstruct termios *\n"
9057 #: build/C/man2/ioctl_list.2:127
9059 msgid "0x00005402\tTCSETS\tconst struct termios *\n"
9063 #: build/C/man2/ioctl_list.2:128
9065 msgid "0x00005403\tTCSETSW\tconst struct termios *\n"
9069 #: build/C/man2/ioctl_list.2:129
9071 msgid "0x00005404\tTCSETSF\tconst struct termios *\n"
9075 #: build/C/man2/ioctl_list.2:130
9077 msgid "0x00005405\tTCGETA\tstruct termio *\n"
9081 #: build/C/man2/ioctl_list.2:131
9083 msgid "0x00005406\tTCSETA\tconst struct termio *\n"
9087 #: build/C/man2/ioctl_list.2:132
9089 msgid "0x00005407\tTCSETAW\tconst struct termio *\n"
9093 #: build/C/man2/ioctl_list.2:133
9095 msgid "0x00005408\tTCSETAF\tconst struct termio *\n"
9099 #: build/C/man2/ioctl_list.2:134
9101 msgid "0x00005409\tTCSBRK\tint\n"
9105 #: build/C/man2/ioctl_list.2:135
9107 msgid "0x0000540A\tTCXONC\tint\n"
9111 #: build/C/man2/ioctl_list.2:136
9113 msgid "0x0000540B\tTCFLSH\tint\n"
9117 #: build/C/man2/ioctl_list.2:137
9119 msgid "0x0000540C\tTIOCEXCL\tvoid\n"
9123 #: build/C/man2/ioctl_list.2:138
9125 msgid "0x0000540D\tTIOCNXCL\tvoid\n"
9129 #: build/C/man2/ioctl_list.2:139
9131 msgid "0x0000540E\tTIOCSCTTY\tint\n"
9135 #: build/C/man2/ioctl_list.2:140
9137 msgid "0x0000540F\tTIOCGPGRP\tpid_t *\n"
9141 #: build/C/man2/ioctl_list.2:141
9143 msgid "0x00005410\tTIOCSPGRP\tconst pid_t *\n"
9147 #: build/C/man2/ioctl_list.2:142
9149 msgid "0x00005411\tTIOCOUTQ\tint *\n"
9153 #: build/C/man2/ioctl_list.2:143
9155 msgid "0x00005412\tTIOCSTI\tconst char *\n"
9159 #: build/C/man2/ioctl_list.2:144
9161 msgid "0x00005413\tTIOCGWINSZ\tstruct winsize *\n"
9165 #: build/C/man2/ioctl_list.2:145
9167 msgid "0x00005414\tTIOCSWINSZ\tconst struct winsize *\n"
9171 #: build/C/man2/ioctl_list.2:146
9173 msgid "0x00005415\tTIOCMGET\tint *\n"
9177 #: build/C/man2/ioctl_list.2:147
9179 msgid "0x00005416\tTIOCMBIS\tconst int *\n"
9183 #: build/C/man2/ioctl_list.2:148
9185 msgid "0x00005417\tTIOCMBIC\tconst int *\n"
9189 #: build/C/man2/ioctl_list.2:149
9191 msgid "0x00005418\tTIOCMSET\tconst int *\n"
9195 #: build/C/man2/ioctl_list.2:150
9197 msgid "0x00005419\tTIOCGSOFTCAR\tint *\n"
9201 #: build/C/man2/ioctl_list.2:151
9203 msgid "0x0000541A\tTIOCSSOFTCAR\tconst int *\n"
9207 #: build/C/man2/ioctl_list.2:152
9209 msgid "0x0000541B\tFIONREAD\tint *\n"
9213 #: build/C/man2/ioctl_list.2:153
9215 msgid "0x0000541B\tTIOCINQ\tint *\n"
9219 #: build/C/man2/ioctl_list.2:154
9221 msgid "0x0000541C\tTIOCLINUX\tconst char *\t// MORE\n"
9225 #: build/C/man2/ioctl_list.2:155
9227 msgid "0x0000541D\tTIOCCONS\tvoid\n"
9231 #: build/C/man2/ioctl_list.2:156
9233 msgid "0x0000541E\tTIOCGSERIAL\tstruct serial_struct *\n"
9237 #: build/C/man2/ioctl_list.2:157
9239 msgid "0x0000541F\tTIOCSSERIAL\tconst struct serial_struct *\n"
9243 #: build/C/man2/ioctl_list.2:158
9245 msgid "0x00005420\tTIOCPKT\tconst int *\n"
9249 #: build/C/man2/ioctl_list.2:159
9251 msgid "0x00005421\tFIONBIO\tconst int *\n"
9255 #: build/C/man2/ioctl_list.2:160
9257 msgid "0x00005422\tTIOCNOTTY\tvoid\n"
9261 #: build/C/man2/ioctl_list.2:161
9263 msgid "0x00005423\tTIOCSETD\tconst int *\n"
9267 #: build/C/man2/ioctl_list.2:162
9269 msgid "0x00005424\tTIOCGETD\tint *\n"
9273 #: build/C/man2/ioctl_list.2:163
9275 msgid "0x00005425\tTCSBRKP\tint\n"
9279 #: build/C/man2/ioctl_list.2:164
9281 msgid "0x00005426\tTIOCTTYGSTRUCT\tstruct tty_struct *\n"
9285 #: build/C/man2/ioctl_list.2:165
9287 msgid "0x00005450\tFIONCLEX\tvoid\n"
9291 #: build/C/man2/ioctl_list.2:166
9293 msgid "0x00005451\tFIOCLEX\tvoid\n"
9297 #: build/C/man2/ioctl_list.2:167
9299 msgid "0x00005452\tFIOASYNC\tconst int *\n"
9303 #: build/C/man2/ioctl_list.2:168
9305 msgid "0x00005453\tTIOCSERCONFIG\tvoid\n"
9309 #: build/C/man2/ioctl_list.2:169
9311 msgid "0x00005454\tTIOCSERGWILD\tint *\n"
9315 #: build/C/man2/ioctl_list.2:170
9317 msgid "0x00005455\tTIOCSERSWILD\tconst int *\n"
9321 #: build/C/man2/ioctl_list.2:171
9323 msgid "0x00005456\tTIOCGLCKTRMIOS\tstruct termios *\n"
9327 #: build/C/man2/ioctl_list.2:172
9329 msgid "0x00005457\tTIOCSLCKTRMIOS\tconst struct termios *\n"
9333 #: build/C/man2/ioctl_list.2:173
9335 msgid "0x00005458\tTIOCSERGSTRUCT\tstruct async_struct *\n"
9339 #: build/C/man2/ioctl_list.2:174
9341 msgid "0x00005459\tTIOCSERGETLSR\tint *\n"
9345 #: build/C/man2/ioctl_list.2:175
9347 msgid "0x0000545A\tTIOCSERGETMULTI\tstruct serial_multiport_struct *\n"
9351 #: build/C/man2/ioctl_list.2:176
9353 msgid "0x0000545B\tTIOCSERSETMULTI\tconst struct serial_multiport_struct *\n"
9357 #: build/C/man2/ioctl_list.2:180
9358 msgid "// E<lt>include/linux/ax25.hE<gt>"
9362 #: build/C/man2/ioctl_list.2:182
9364 msgid "0x000089E0\tSIOCAX25GETUID\tconst struct sockaddr_ax25 *\n"
9368 #: build/C/man2/ioctl_list.2:183
9370 msgid "0x000089E1\tSIOCAX25ADDUID\tconst struct sockaddr_ax25 *\n"
9374 #: build/C/man2/ioctl_list.2:184
9376 msgid "0x000089E2\tSIOCAX25DELUID\tconst struct sockaddr_ax25 *\n"
9380 #: build/C/man2/ioctl_list.2:185
9382 msgid "0x000089E3\tSIOCAX25NOUID\tconst int *\n"
9386 #: build/C/man2/ioctl_list.2:186
9388 msgid "0x000089E4\tSIOCAX25DIGCTL\tconst int *\n"
9392 #: build/C/man2/ioctl_list.2:187
9394 msgid "0x000089E5\tSIOCAX25GETPARMS\tstruct ax25_parms_struct *\t// I-O\n"
9398 #: build/C/man2/ioctl_list.2:188
9400 msgid "0x000089E6\tSIOCAX25SETPARMS\tconst struct ax25_parms_struct *\n"
9404 #: build/C/man2/ioctl_list.2:192
9405 msgid "// E<lt>include/linux/cdk.hE<gt>"
9409 #: build/C/man2/ioctl_list.2:194
9411 msgid "0x00007314\tSTL_BINTR\tvoid\n"
9415 #: build/C/man2/ioctl_list.2:195
9417 msgid "0x00007315\tSTL_BSTART\tvoid\n"
9421 #: build/C/man2/ioctl_list.2:196
9423 msgid "0x00007316\tSTL_BSTOP\tvoid\n"
9427 #: build/C/man2/ioctl_list.2:197
9429 msgid "0x00007317\tSTL_BRESET\tvoid\n"
9433 #: build/C/man2/ioctl_list.2:201
9434 msgid "// E<lt>include/linux/cdrom.hE<gt>"
9438 #: build/C/man2/ioctl_list.2:203
9440 msgid "0x00005301\tCDROMPAUSE\tvoid\n"
9444 #: build/C/man2/ioctl_list.2:204
9446 msgid "0x00005302\tCDROMRESUME\tvoid\n"
9450 #: build/C/man2/ioctl_list.2:205
9452 msgid "0x00005303\tCDROMPLAYMSF\tconst struct cdrom_msf *\n"
9456 #: build/C/man2/ioctl_list.2:206
9458 msgid "0x00005304\tCDROMPLAYTRKIND\tconst struct cdrom_ti *\n"
9462 #: build/C/man2/ioctl_list.2:207
9464 msgid "0x00005305\tCDROMREADTOCHDR\tstruct cdrom_tochdr *\n"
9468 #: build/C/man2/ioctl_list.2:208
9470 msgid "0x00005306\tCDROMREADTOCENTRY\tstruct cdrom_tocentry *\t// I-O\n"
9474 #: build/C/man2/ioctl_list.2:209
9476 msgid "0x00005307\tCDROMSTOP\tvoid\n"
9480 #: build/C/man2/ioctl_list.2:210
9482 msgid "0x00005308\tCDROMSTART\tvoid\n"
9486 #: build/C/man2/ioctl_list.2:211
9488 msgid "0x00005309\tCDROMEJECT\tvoid\n"
9492 #: build/C/man2/ioctl_list.2:212
9494 msgid "0x0000530A\tCDROMVOLCTRL\tconst struct cdrom_volctrl *\n"
9498 #: build/C/man2/ioctl_list.2:213
9500 msgid "0x0000530B\tCDROMSUBCHNL\tstruct cdrom_subchnl *\t// I-O\n"
9504 #: build/C/man2/ioctl_list.2:214
9506 msgid "0x0000530C\tCDROMREADMODE2\tconst struct cdrom_msf *\t// MORE\n"
9510 #: build/C/man2/ioctl_list.2:215
9512 msgid "0x0000530D\tCDROMREADMODE1\tconst struct cdrom_msf *\t// MORE\n"
9516 #: build/C/man2/ioctl_list.2:216
9518 msgid "0x0000530E\tCDROMREADAUDIO\tconst struct cdrom_read_audio *\t// MORE\n"
9522 #: build/C/man2/ioctl_list.2:217
9524 msgid "0x0000530F\tCDROMEJECT_SW\tint\n"
9528 #: build/C/man2/ioctl_list.2:218
9530 msgid "0x00005310\tCDROMMULTISESSION\tstruct cdrom_multisession *\t// I-O\n"
9534 #: build/C/man2/ioctl_list.2:219
9536 msgid "0x00005311\tCDROM_GET_UPC\tstruct { char [8]; } *\n"
9540 #: build/C/man2/ioctl_list.2:220
9542 msgid "0x00005312\tCDROMRESET\tvoid\n"
9546 #: build/C/man2/ioctl_list.2:221
9548 msgid "0x00005313\tCDROMVOLREAD\tstruct cdrom_volctrl *\n"
9552 #: build/C/man2/ioctl_list.2:222
9554 msgid "0x00005314\tCDROMREADRAW\tconst struct cdrom_msf *\t// MORE\n"
9558 #: build/C/man2/ioctl_list.2:223
9560 msgid "0x00005315\tCDROMREADCOOKED\tconst struct cdrom_msf *\t// MORE\n"
9564 #: build/C/man2/ioctl_list.2:224
9566 msgid "0x00005316\tCDROMSEEK\tconst struct cdrom_msf *\n"
9570 #: build/C/man2/ioctl_list.2:228
9571 msgid "// E<lt>include/linux/cm206.hE<gt>"
9575 #: build/C/man2/ioctl_list.2:230
9577 msgid "0x00002000\tCM206CTL_GET_STAT\tint\n"
9581 #: build/C/man2/ioctl_list.2:231
9583 msgid "0x00002001\tCM206CTL_GET_LAST_STAT\tint\n"
9587 #: build/C/man2/ioctl_list.2:235
9588 msgid "// E<lt>include/linux/cyclades.hE<gt>"
9592 #: build/C/man2/ioctl_list.2:237
9594 msgid "0x00435901\tCYGETMON\tstruct cyclades_monitor *\n"
9598 #: build/C/man2/ioctl_list.2:238
9600 msgid "0x00435902\tCYGETTHRESH\tint *\n"
9604 #: build/C/man2/ioctl_list.2:239
9606 msgid "0x00435903\tCYSETTHRESH\tint\n"
9610 #: build/C/man2/ioctl_list.2:240
9612 msgid "0x00435904\tCYGETDEFTHRESH\tint *\n"
9616 #: build/C/man2/ioctl_list.2:241
9618 msgid "0x00435905\tCYSETDEFTHRESH\tint\n"
9622 #: build/C/man2/ioctl_list.2:242
9624 msgid "0x00435906\tCYGETTIMEOUT\tint *\n"
9628 #: build/C/man2/ioctl_list.2:243
9630 msgid "0x00435907\tCYSETTIMEOUT\tint\n"
9634 #: build/C/man2/ioctl_list.2:244
9636 msgid "0x00435908\tCYGETDEFTIMEOUT\tint *\n"
9640 #: build/C/man2/ioctl_list.2:245
9642 msgid "0x00435909\tCYSETDEFTIMEOUT\tint\n"
9646 #: build/C/man2/ioctl_list.2:249
9647 msgid "// E<lt>include/linux/ext2_fs.hE<gt>"
9651 #: build/C/man2/ioctl_list.2:251
9653 msgid "0x80046601\tEXT2_IOC_GETFLAGS\tint *\n"
9657 #: build/C/man2/ioctl_list.2:252
9659 msgid "0x40046602\tEXT2_IOC_SETFLAGS\tconst int *\n"
9663 #: build/C/man2/ioctl_list.2:253
9665 msgid "0x80047601\tEXT2_IOC_GETVERSION\tint *\n"
9669 #: build/C/man2/ioctl_list.2:254
9671 msgid "0x40047602\tEXT2_IOC_SETVERSION\tconst int *\n"
9675 #: build/C/man2/ioctl_list.2:258
9676 msgid "// E<lt>include/linux/fd.hE<gt>"
9680 #: build/C/man2/ioctl_list.2:260
9682 msgid "0x00000000\tFDCLRPRM\tvoid\n"
9686 #: build/C/man2/ioctl_list.2:261
9688 msgid "0x00000001\tFDSETPRM\tconst struct floppy_struct *\n"
9692 #: build/C/man2/ioctl_list.2:262
9694 msgid "0x00000002\tFDDEFPRM\tconst struct floppy_struct *\n"
9698 #: build/C/man2/ioctl_list.2:263
9700 msgid "0x00000003\tFDGETPRM\tstruct floppy_struct *\n"
9704 #: build/C/man2/ioctl_list.2:264
9706 msgid "0x00000004\tFDMSGON\tvoid\n"
9710 #: build/C/man2/ioctl_list.2:265
9712 msgid "0x00000005\tFDMSGOFF\tvoid\n"
9716 #: build/C/man2/ioctl_list.2:266
9718 msgid "0x00000006\tFDFMTBEG\tvoid\n"
9722 #: build/C/man2/ioctl_list.2:267
9724 msgid "0x00000007\tFDFMTTRK\tconst struct format_descr *\n"
9728 #: build/C/man2/ioctl_list.2:268
9730 msgid "0x00000008\tFDFMTEND\tvoid\n"
9734 #: build/C/man2/ioctl_list.2:269
9736 msgid "0x0000000A\tFDSETEMSGTRESH\tint\n"
9740 #: build/C/man2/ioctl_list.2:270
9742 msgid "0x0000000B\tFDFLUSH\tvoid\n"
9746 #: build/C/man2/ioctl_list.2:271
9748 msgid "0x0000000C\tFDSETMAXERRS\tconst struct floppy_max_errors *\n"
9752 #: build/C/man2/ioctl_list.2:272
9754 msgid "0x0000000E\tFDGETMAXERRS\tstruct floppy_max_errors *\n"
9758 #: build/C/man2/ioctl_list.2:273
9760 msgid "0x00000010\tFDGETDRVTYP\tstruct { char [16]; } *\n"
9764 #: build/C/man2/ioctl_list.2:274
9766 msgid "0x00000014\tFDSETDRVPRM\tconst struct floppy_drive_params *\n"
9770 #: build/C/man2/ioctl_list.2:275
9772 msgid "0x00000015\tFDGETDRVPRM\tstruct floppy_drive_params *\n"
9776 #: build/C/man2/ioctl_list.2:276
9778 msgid "0x00000016\tFDGETDRVSTAT\tstruct floppy_drive_struct *\n"
9782 #: build/C/man2/ioctl_list.2:277
9784 msgid "0x00000017\tFDPOLLDRVSTAT\tstruct floppy_drive_struct *\n"
9788 #: build/C/man2/ioctl_list.2:278
9790 msgid "0x00000018\tFDRESET\tint\n"
9794 #: build/C/man2/ioctl_list.2:279
9796 msgid "0x00000019\tFDGETFDCSTAT\tstruct floppy_fdc_state *\n"
9800 #: build/C/man2/ioctl_list.2:280
9802 msgid "0x0000001B\tFDWERRORCLR\tvoid\n"
9806 #: build/C/man2/ioctl_list.2:281
9808 msgid "0x0000001C\tFDWERRORGET\tstruct floppy_write_errors *\n"
9812 #: build/C/man2/ioctl_list.2:282
9814 msgid "0x0000001E\tFDRAWCMD\tstruct floppy_raw_cmd *\t// MORE // I-O\n"
9818 #: build/C/man2/ioctl_list.2:283
9820 msgid "0x00000028\tFDTWADDLE\tvoid\n"
9824 #: build/C/man2/ioctl_list.2:287
9825 msgid "// E<lt>include/linux/fs.hE<gt>"
9829 #: build/C/man2/ioctl_list.2:289
9831 msgid "0x0000125D\tBLKROSET\tconst int *\n"
9835 #: build/C/man2/ioctl_list.2:290
9837 msgid "0x0000125E\tBLKROGET\tint *\n"
9841 #: build/C/man2/ioctl_list.2:291
9843 msgid "0x0000125F\tBLKRRPART\tvoid\n"
9847 #: build/C/man2/ioctl_list.2:292
9849 msgid "0x00001260\tBLKGETSIZE\tunsigned long *\n"
9853 #: build/C/man2/ioctl_list.2:293
9855 msgid "0x00001261\tBLKFLSBUF\tvoid\n"
9859 #: build/C/man2/ioctl_list.2:294
9861 msgid "0x00001262\tBLKRASET\tint\n"
9865 #: build/C/man2/ioctl_list.2:295
9867 msgid "0x00001263\tBLKRAGET\tint *\n"
9871 #: build/C/man2/ioctl_list.2:296
9873 msgid "0x00000001\tFIBMAP\tint *\t// I-O\n"
9877 #: build/C/man2/ioctl_list.2:297
9879 msgid "0x00000002\tFIGETBSZ\tint *\n"
9883 #: build/C/man2/ioctl_list.2:301
9884 msgid "// E<lt>include/linux/hdreg.hE<gt>"
9888 #: build/C/man2/ioctl_list.2:303
9890 msgid "0x00000301\tHDIO_GETGEO\tstruct hd_geometry *\n"
9894 #: build/C/man2/ioctl_list.2:304
9896 msgid "0x00000302\tHDIO_GET_UNMASKINTR\tint *\n"
9900 #: build/C/man2/ioctl_list.2:305
9902 msgid "0x00000304\tHDIO_GET_MULTCOUNT\tint *\n"
9906 #: build/C/man2/ioctl_list.2:306
9908 msgid "0x00000307\tHDIO_GET_IDENTITY\tstruct hd_driveid *\n"
9912 #: build/C/man2/ioctl_list.2:307
9914 msgid "0x00000308\tHDIO_GET_KEEPSETTINGS\tint *\n"
9918 #: build/C/man2/ioctl_list.2:308
9920 msgid "0x00000309\tHDIO_GET_CHIPSET\tint *\n"
9924 #: build/C/man2/ioctl_list.2:309
9926 msgid "0x0000030A\tHDIO_GET_NOWERR\tint *\n"
9930 #: build/C/man2/ioctl_list.2:310
9932 msgid "0x0000030B\tHDIO_GET_DMA\tint *\n"
9936 #: build/C/man2/ioctl_list.2:311
9938 msgid "0x0000031F\tHDIO_DRIVE_CMD\tint *\t// I-O\n"
9942 #: build/C/man2/ioctl_list.2:312
9944 msgid "0x00000321\tHDIO_SET_MULTCOUNT\tint\n"
9948 #: build/C/man2/ioctl_list.2:313
9950 msgid "0x00000322\tHDIO_SET_UNMASKINTR\tint\n"
9954 #: build/C/man2/ioctl_list.2:314
9956 msgid "0x00000323\tHDIO_SET_KEEPSETTINGS\tint\n"
9960 #: build/C/man2/ioctl_list.2:315
9962 msgid "0x00000324\tHDIO_SET_CHIPSET\tint\n"
9966 #: build/C/man2/ioctl_list.2:316
9968 msgid "0x00000325\tHDIO_SET_NOWERR\tint\n"
9972 #: build/C/man2/ioctl_list.2:317
9974 msgid "0x00000326\tHDIO_SET_DMA\tint\n"
9978 #: build/C/man2/ioctl_list.2:321
9979 msgid "// E<lt>include/linux/if_eql.hE<gt>"
9983 #: build/C/man2/ioctl_list.2:323
9985 msgid "0x000089F0\tEQL_ENSLAVE\tstruct ifreq *\t// MORE // I-O\n"
9989 #: build/C/man2/ioctl_list.2:324
9991 msgid "0x000089F1\tEQL_EMANCIPATE\tstruct ifreq *\t// MORE // I-O\n"
9995 #: build/C/man2/ioctl_list.2:325
9997 msgid "0x000089F2\tEQL_GETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
10001 #: build/C/man2/ioctl_list.2:326
10003 msgid "0x000089F3\tEQL_SETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
10007 #: build/C/man2/ioctl_list.2:327
10009 msgid "0x000089F4\tEQL_GETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
10013 #: build/C/man2/ioctl_list.2:328
10015 msgid "0x000089F5\tEQL_SETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
10018 #. type: Plain text
10019 #: build/C/man2/ioctl_list.2:332
10020 msgid "// E<lt>include/linux/if_plip.hE<gt>"
10024 #: build/C/man2/ioctl_list.2:334
10026 msgid "0x000089F0\tSIOCDEVPLIP\tstruct ifreq *\t// I-O\n"
10029 #. type: Plain text
10030 #: build/C/man2/ioctl_list.2:338
10031 msgid "// E<lt>include/linux/if_ppp.hE<gt>"
10035 #: build/C/man2/ioctl_list.2:340
10037 msgid "0x00005490\tPPPIOCGFLAGS\tint *\n"
10041 #: build/C/man2/ioctl_list.2:341
10043 msgid "0x00005491\tPPPIOCSFLAGS\tconst int *\n"
10047 #: build/C/man2/ioctl_list.2:342
10049 msgid "0x00005492\tPPPIOCGASYNCMAP\tint *\n"
10053 #: build/C/man2/ioctl_list.2:343
10055 msgid "0x00005493\tPPPIOCSASYNCMAP\tconst int *\n"
10059 #: build/C/man2/ioctl_list.2:344
10061 msgid "0x00005494\tPPPIOCGUNIT\tint *\n"
10065 #: build/C/man2/ioctl_list.2:345
10067 msgid "0x00005495\tPPPIOCSINPSIG\tconst int *\n"
10071 #: build/C/man2/ioctl_list.2:346
10073 msgid "0x00005497\tPPPIOCSDEBUG\tconst int *\n"
10077 #: build/C/man2/ioctl_list.2:347
10079 msgid "0x00005498\tPPPIOCGDEBUG\tint *\n"
10083 #: build/C/man2/ioctl_list.2:348
10085 msgid "0x00005499\tPPPIOCGSTAT\tstruct ppp_stats *\n"
10089 #: build/C/man2/ioctl_list.2:349
10091 msgid "0x0000549A\tPPPIOCGTIME\tstruct ppp_ddinfo *\n"
10095 #: build/C/man2/ioctl_list.2:350
10097 msgid "0x0000549B\tPPPIOCGXASYNCMAP\tstruct { int [8]; } *\n"
10101 #: build/C/man2/ioctl_list.2:351
10103 msgid "0x0000549C\tPPPIOCSXASYNCMAP\tconst struct { int [8]; } *\n"
10107 #: build/C/man2/ioctl_list.2:352
10109 msgid "0x0000549D\tPPPIOCSMRU\tconst int *\n"
10113 #: build/C/man2/ioctl_list.2:353
10115 msgid "0x0000549E\tPPPIOCRASYNCMAP\tconst int *\n"
10119 #: build/C/man2/ioctl_list.2:354
10121 msgid "0x0000549F\tPPPIOCSMAXCID\tconst int *\n"
10124 #. type: Plain text
10125 #: build/C/man2/ioctl_list.2:358
10126 msgid "// E<lt>include/linux/ipx.hE<gt>"
10130 #: build/C/man2/ioctl_list.2:360
10132 msgid "0x000089E0\tSIOCAIPXITFCRT\tconst char *\n"
10136 #: build/C/man2/ioctl_list.2:361
10138 msgid "0x000089E1\tSIOCAIPXPRISLT\tconst char *\n"
10142 #: build/C/man2/ioctl_list.2:362
10144 msgid "0x000089E2\tSIOCIPXCFGDATA\tstruct ipx_config_data *\n"
10147 #. type: Plain text
10148 #: build/C/man2/ioctl_list.2:366
10149 msgid "// E<lt>include/linux/kd.hE<gt>"
10153 #: build/C/man2/ioctl_list.2:368
10155 msgid "0x00004B60\tGIO_FONT\tstruct { char [8192]; } *\n"
10159 #: build/C/man2/ioctl_list.2:369
10161 msgid "0x00004B61\tPIO_FONT\tconst struct { char [8192]; } *\n"
10165 #: build/C/man2/ioctl_list.2:370
10167 msgid "0x00004B6B\tGIO_FONTX\tstruct console_font_desc *\t// MORE // I-O\n"
10171 #: build/C/man2/ioctl_list.2:371
10173 msgid "0x00004B6C\tPIO_FONTX\tconst struct console_font_desc *\t//MORE\n"
10177 #: build/C/man2/ioctl_list.2:372
10179 msgid "0x00004B70\tGIO_CMAP\tstruct { char [48]; } *\n"
10183 #: build/C/man2/ioctl_list.2:373
10185 msgid "0x00004B71\tPIO_CMAP\tconst struct { char [48]; }\n"
10189 #: build/C/man2/ioctl_list.2:374
10191 msgid "0x00004B2F\tKIOCSOUND\tint\n"
10195 #: build/C/man2/ioctl_list.2:375
10197 msgid "0x00004B30\tKDMKTONE\tint\n"
10201 #: build/C/man2/ioctl_list.2:376
10203 msgid "0x00004B31\tKDGETLED\tchar *\n"
10207 #: build/C/man2/ioctl_list.2:377
10209 msgid "0x00004B32\tKDSETLED\tint\n"
10213 #: build/C/man2/ioctl_list.2:378
10215 msgid "0x00004B33\tKDGKBTYPE\tchar *\n"
10219 #: build/C/man2/ioctl_list.2:379
10221 msgid "0x00004B34\tKDADDIO\tint\t// MORE\n"
10225 #: build/C/man2/ioctl_list.2:380
10227 msgid "0x00004B35\tKDDELIO\tint\t// MORE\n"
10231 #: build/C/man2/ioctl_list.2:381
10233 msgid "0x00004B36\tKDENABIO\tvoid\t// MORE\n"
10237 #: build/C/man2/ioctl_list.2:382
10239 msgid "0x00004B37\tKDDISABIO\tvoid\t// MORE\n"
10243 #: build/C/man2/ioctl_list.2:383
10245 msgid "0x00004B3A\tKDSETMODE\tint\n"
10249 #: build/C/man2/ioctl_list.2:384
10251 msgid "0x00004B3B\tKDGETMODE\tint *\n"
10255 #: build/C/man2/ioctl_list.2:385
10257 msgid "0x00004B3C\tKDMAPDISP\tvoid\t// MORE\n"
10261 #: build/C/man2/ioctl_list.2:386
10263 msgid "0x00004B3D\tKDUNMAPDISP\tvoid\t// MORE\n"
10267 #: build/C/man2/ioctl_list.2:387
10269 msgid "0x00004B40\tGIO_SCRNMAP\tstruct { char [E_TABSZ]; } *\n"
10273 #: build/C/man2/ioctl_list.2:388
10275 msgid "0x00004B41\tPIO_SCRNMAP\tconst struct { char [E_TABSZ]; } *\n"
10279 #: build/C/man2/ioctl_list.2:389
10281 msgid "0x00004B69\tGIO_UNISCRNMAP\tstruct { short [E_TABSZ]; } *\n"
10285 #: build/C/man2/ioctl_list.2:390
10287 msgid "0x00004B6A\tPIO_UNISCRNMAP\tconst struct { short [E_TABSZ]; } *\n"
10291 #: build/C/man2/ioctl_list.2:391
10293 msgid "0x00004B66\tGIO_UNIMAP\tstruct unimapdesc *\t// MORE // I-O\n"
10297 #: build/C/man2/ioctl_list.2:392
10299 msgid "0x00004B67\tPIO_UNIMAP\tconst struct unimapdesc *\t// MORE\n"
10303 #: build/C/man2/ioctl_list.2:393
10305 msgid "0x00004B68\tPIO_UNIMAPCLR\tconst struct unimapinit *\n"
10309 #: build/C/man2/ioctl_list.2:394
10311 msgid "0x00004B44\tKDGKBMODE\tint *\n"
10315 #: build/C/man2/ioctl_list.2:395
10317 msgid "0x00004B45\tKDSKBMODE\tint\n"
10321 #: build/C/man2/ioctl_list.2:396
10323 msgid "0x00004B62\tKDGKBMETA\tint *\n"
10327 #: build/C/man2/ioctl_list.2:397
10329 msgid "0x00004B63\tKDSKBMETA\tint\n"
10333 #: build/C/man2/ioctl_list.2:398
10335 msgid "0x00004B64\tKDGKBLED\tint *\n"
10339 #: build/C/man2/ioctl_list.2:399
10341 msgid "0x00004B65\tKDSKBLED\tint\n"
10345 #: build/C/man2/ioctl_list.2:400
10347 msgid "0x00004B46\tKDGKBENT\tstruct kbentry *\t// I-O\n"
10351 #: build/C/man2/ioctl_list.2:401
10353 msgid "0x00004B47\tKDSKBENT\tconst struct kbentry *\n"
10357 #: build/C/man2/ioctl_list.2:402
10359 msgid "0x00004B48\tKDGKBSENT\tstruct kbsentry *\t// I-O\n"
10363 #: build/C/man2/ioctl_list.2:403
10365 msgid "0x00004B49\tKDSKBSENT\tconst struct kbsentry *\n"
10369 #: build/C/man2/ioctl_list.2:404
10371 msgid "0x00004B4A\tKDGKBDIACR\tstruct kbdiacrs *\n"
10375 #: build/C/man2/ioctl_list.2:405
10377 msgid "0x00004B4B\tKDSKBDIACR\tconst struct kbdiacrs *\n"
10381 #: build/C/man2/ioctl_list.2:406
10383 msgid "0x00004B4C\tKDGETKEYCODE\tstruct kbkeycode *\t// I-O\n"
10387 #: build/C/man2/ioctl_list.2:407
10389 msgid "0x00004B4D\tKDSETKEYCODE\tconst struct kbkeycode *\n"
10393 #: build/C/man2/ioctl_list.2:408
10395 msgid "0x00004B4E\tKDSIGACCEPT\tint\n"
10398 #. type: Plain text
10399 #: build/C/man2/ioctl_list.2:412
10400 msgid "// E<lt>include/linux/lp.hE<gt>"
10404 #: build/C/man2/ioctl_list.2:414
10406 msgid "0x00000601\tLPCHAR\tint\n"
10410 #: build/C/man2/ioctl_list.2:415
10412 msgid "0x00000602\tLPTIME\tint\n"
10416 #: build/C/man2/ioctl_list.2:416
10418 msgid "0x00000604\tLPABORT\tint\n"
10422 #: build/C/man2/ioctl_list.2:417
10424 msgid "0x00000605\tLPSETIRQ\tint\n"
10428 #: build/C/man2/ioctl_list.2:418
10430 msgid "0x00000606\tLPGETIRQ\tint *\n"
10434 #: build/C/man2/ioctl_list.2:419
10436 msgid "0x00000608\tLPWAIT\tint\n"
10440 #: build/C/man2/ioctl_list.2:420
10442 msgid "0x00000609\tLPCAREFUL\tint\n"
10446 #: build/C/man2/ioctl_list.2:421
10448 msgid "0x0000060A\tLPABORTOPEN\tint\n"
10452 #: build/C/man2/ioctl_list.2:422
10454 msgid "0x0000060B\tLPGETSTATUS\tint *\n"
10458 #: build/C/man2/ioctl_list.2:423
10460 msgid "0x0000060C\tLPRESET\tvoid\n"
10464 #: build/C/man2/ioctl_list.2:424
10466 msgid "0x0000060D\tLPGETSTATS\tstruct lp_stats *\n"
10469 #. type: Plain text
10470 #: build/C/man2/ioctl_list.2:428
10471 msgid "// E<lt>include/linux/mroute.hE<gt>"
10475 #: build/C/man2/ioctl_list.2:430
10477 msgid "0x000089E0\tSIOCGETVIFCNT\tstruct sioc_vif_req *\t// I-O\n"
10481 #: build/C/man2/ioctl_list.2:431
10483 msgid "0x000089E1\tSIOCGETSGCNT\tstruct sioc_sg_req *\t// I-O\n"
10486 #. type: Plain text
10487 #: build/C/man2/ioctl_list.2:435
10488 msgid "// E<lt>include/linux/mtio.hE<gt>"
10492 #: build/C/man2/ioctl_list.2:437
10494 msgid "0x40086D01\tMTIOCTOP\tconst struct mtop *\n"
10498 #: build/C/man2/ioctl_list.2:438
10500 msgid "0x801C6D02\tMTIOCGET\tstruct mtget *\n"
10504 #: build/C/man2/ioctl_list.2:439
10506 msgid "0x80046D03\tMTIOCPOS\tstruct mtpos *\n"
10510 #: build/C/man2/ioctl_list.2:440
10512 msgid "0x80206D04\tMTIOCGETCONFIG\tstruct mtconfiginfo *\n"
10516 #: build/C/man2/ioctl_list.2:441
10518 msgid "0x40206D05\tMTIOCSETCONFIG\tconst struct mtconfiginfo *\n"
10521 #. type: Plain text
10522 #: build/C/man2/ioctl_list.2:445
10523 msgid "// E<lt>include/linux/netrom.hE<gt>"
10527 #: build/C/man2/ioctl_list.2:447
10529 msgid "0x000089E0\tSIOCNRGETPARMS\tstruct nr_parms_struct *\t// I-O\n"
10533 #: build/C/man2/ioctl_list.2:448
10535 msgid "0x000089E1\tSIOCNRSETPARMS\tconst struct nr_parms_struct *\n"
10539 #: build/C/man2/ioctl_list.2:449
10541 msgid "0x000089E2\tSIOCNRDECOBS\tvoid\n"
10545 #: build/C/man2/ioctl_list.2:450
10547 msgid "0x000089E3\tSIOCNRRTCTL\tconst int *\n"
10550 #. type: Plain text
10551 #: build/C/man2/ioctl_list.2:454
10552 msgid "// E<lt>include/linux/sbpcd.hE<gt>"
10556 #: build/C/man2/ioctl_list.2:456
10558 msgid "0x00009000\tDDIOCSDBG\tconst int *\n"
10562 #: build/C/man2/ioctl_list.2:457
10564 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tint\n"
10567 #. type: Plain text
10568 #: build/C/man2/ioctl_list.2:461
10569 msgid "// E<lt>include/linux/scc.hE<gt>"
10573 #: build/C/man2/ioctl_list.2:463
10575 msgid "0x00005470\tTIOCSCCINI\tvoid\n"
10579 #: build/C/man2/ioctl_list.2:464
10581 msgid "0x00005471\tTIOCCHANINI\tconst struct scc_modem *\n"
10585 #: build/C/man2/ioctl_list.2:465
10587 msgid "0x00005472\tTIOCGKISS\tstruct ioctl_command *\t// I-O\n"
10591 #: build/C/man2/ioctl_list.2:466
10593 msgid "0x00005473\tTIOCSKISS\tconst struct ioctl_command *\n"
10597 #: build/C/man2/ioctl_list.2:467
10599 msgid "0x00005474\tTIOCSCCSTAT\tstruct scc_stat *\n"
10602 #. type: Plain text
10603 #: build/C/man2/ioctl_list.2:471
10604 msgid "// E<lt>include/linux/scsi.hE<gt>"
10608 #: build/C/man2/ioctl_list.2:473
10610 msgid "0x00005382\tSCSI_IOCTL_GET_IDLUN\tstruct { int [2]; } *\n"
10614 #: build/C/man2/ioctl_list.2:474
10616 msgid "0x00005383\tSCSI_IOCTL_TAGGED_ENABLE\tvoid\n"
10620 #: build/C/man2/ioctl_list.2:475
10622 msgid "0x00005384\tSCSI_IOCTL_TAGGED_DISABLE\tvoid\n"
10626 #: build/C/man2/ioctl_list.2:476
10628 msgid "0x00005385\tSCSI_IOCTL_PROBE_HOST\tconst int *\t// MORE\n"
10631 #. type: Plain text
10632 #: build/C/man2/ioctl_list.2:480
10633 msgid "// E<lt>include/linux/smb_fs.hE<gt>"
10637 #: build/C/man2/ioctl_list.2:482
10639 msgid "0x80027501\tSMB_IOC_GETMOUNTUID\tuid_t *\n"
10642 #. type: Plain text
10643 #: build/C/man2/ioctl_list.2:486
10644 msgid "// E<lt>include/linux/sockios.hE<gt>"
10648 #: build/C/man2/ioctl_list.2:488
10650 msgid "0x0000890B\tSIOCADDRT\tconst struct rtentry *\t// MORE\n"
10654 #: build/C/man2/ioctl_list.2:489
10656 msgid "0x0000890C\tSIOCDELRT\tconst struct rtentry *\t// MORE\n"
10660 #: build/C/man2/ioctl_list.2:490
10662 msgid "0x00008910\tSIOCGIFNAME\tchar []\n"
10666 #: build/C/man2/ioctl_list.2:491
10668 msgid "0x00008911\tSIOCSIFLINK\tvoid\n"
10672 #: build/C/man2/ioctl_list.2:492
10674 msgid "0x00008912\tSIOCGIFCONF\tstruct ifconf *\t// MORE // I-O\n"
10678 #: build/C/man2/ioctl_list.2:493
10680 msgid "0x00008913\tSIOCGIFFLAGS\tstruct ifreq *\t// I-O\n"
10684 #: build/C/man2/ioctl_list.2:494
10686 msgid "0x00008914\tSIOCSIFFLAGS\tconst struct ifreq *\n"
10690 #: build/C/man2/ioctl_list.2:495
10692 msgid "0x00008915\tSIOCGIFADDR\tstruct ifreq *\t// I-O\n"
10696 #: build/C/man2/ioctl_list.2:496
10698 msgid "0x00008916\tSIOCSIFADDR\tconst struct ifreq *\n"
10702 #: build/C/man2/ioctl_list.2:497
10704 msgid "0x00008917\tSIOCGIFDSTADDR\tstruct ifreq *\t// I-O\n"
10708 #: build/C/man2/ioctl_list.2:498
10710 msgid "0x00008918\tSIOCSIFDSTADDR\tconst struct ifreq *\n"
10714 #: build/C/man2/ioctl_list.2:499
10716 msgid "0x00008919\tSIOCGIFBRDADDR\tstruct ifreq *\t// I-O\n"
10720 #: build/C/man2/ioctl_list.2:500
10722 msgid "0x0000891A\tSIOCSIFBRDADDR\tconst struct ifreq *\n"
10726 #: build/C/man2/ioctl_list.2:501
10728 msgid "0x0000891B\tSIOCGIFNETMASK\tstruct ifreq *\t// I-O\n"
10732 #: build/C/man2/ioctl_list.2:502
10734 msgid "0x0000891C\tSIOCSIFNETMASK\tconst struct ifreq *\n"
10738 #: build/C/man2/ioctl_list.2:503
10740 msgid "0x0000891D\tSIOCGIFMETRIC\tstruct ifreq *\t// I-O\n"
10744 #: build/C/man2/ioctl_list.2:504
10746 msgid "0x0000891E\tSIOCSIFMETRIC\tconst struct ifreq *\n"
10750 #: build/C/man2/ioctl_list.2:505
10752 msgid "0x0000891F\tSIOCGIFMEM\tstruct ifreq *\t// I-O\n"
10756 #: build/C/man2/ioctl_list.2:506
10758 msgid "0x00008920\tSIOCSIFMEM\tconst struct ifreq *\n"
10762 #: build/C/man2/ioctl_list.2:507
10764 msgid "0x00008921\tSIOCGIFMTU\tstruct ifreq *\t// I-O\n"
10768 #: build/C/man2/ioctl_list.2:508
10770 msgid "0x00008922\tSIOCSIFMTU\tconst struct ifreq *\n"
10774 #: build/C/man2/ioctl_list.2:509
10776 msgid "0x00008923\tOLD_SIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
10780 #: build/C/man2/ioctl_list.2:510
10782 msgid "0x00008924\tSIOCSIFHWADDR\tconst struct ifreq *\t// MORE\n"
10786 #: build/C/man2/ioctl_list.2:511
10788 msgid "0x00008925\tSIOCGIFENCAP\tint *\n"
10792 #: build/C/man2/ioctl_list.2:512
10794 msgid "0x00008926\tSIOCSIFENCAP\tconst int *\n"
10798 #: build/C/man2/ioctl_list.2:513
10800 msgid "0x00008927\tSIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
10804 #: build/C/man2/ioctl_list.2:514
10806 msgid "0x00008929\tSIOCGIFSLAVE\tvoid\n"
10810 #: build/C/man2/ioctl_list.2:515
10812 msgid "0x00008930\tSIOCSIFSLAVE\tvoid\n"
10816 #: build/C/man2/ioctl_list.2:516
10818 msgid "0x00008931\tSIOCADDMULTI\tconst struct ifreq *\n"
10822 #: build/C/man2/ioctl_list.2:517
10824 msgid "0x00008932\tSIOCDELMULTI\tconst struct ifreq *\n"
10828 #: build/C/man2/ioctl_list.2:518
10830 msgid "0x00008940\tSIOCADDRTOLD\tvoid\n"
10834 #: build/C/man2/ioctl_list.2:519
10836 msgid "0x00008941\tSIOCDELRTOLD\tvoid\n"
10840 #: build/C/man2/ioctl_list.2:520
10842 msgid "0x00008950\tSIOCDARP\tconst struct arpreq *\n"
10846 #: build/C/man2/ioctl_list.2:521
10848 msgid "0x00008951\tSIOCGARP\tstruct arpreq *\t// I-O\n"
10852 #: build/C/man2/ioctl_list.2:522
10854 msgid "0x00008952\tSIOCSARP\tconst struct arpreq *\n"
10858 #: build/C/man2/ioctl_list.2:523
10860 msgid "0x00008960\tSIOCDRARP\tconst struct arpreq *\n"
10864 #: build/C/man2/ioctl_list.2:524
10866 msgid "0x00008961\tSIOCGRARP\tstruct arpreq *\t// I-O\n"
10870 #: build/C/man2/ioctl_list.2:525
10872 msgid "0x00008962\tSIOCSRARP\tconst struct arpreq *\n"
10876 #: build/C/man2/ioctl_list.2:526
10878 msgid "0x00008970\tSIOCGIFMAP\tstruct ifreq *\t// I-O\n"
10882 #: build/C/man2/ioctl_list.2:527
10884 msgid "0x00008971\tSIOCSIFMAP\tconst struct ifreq *\n"
10887 #. type: Plain text
10888 #: build/C/man2/ioctl_list.2:531
10889 msgid "// E<lt>include/linux/soundcard.hE<gt>"
10893 #: build/C/man2/ioctl_list.2:533
10895 msgid "0x00005100\tSNDCTL_SEQ_RESET\tvoid\n"
10899 #: build/C/man2/ioctl_list.2:534
10901 msgid "0x00005101\tSNDCTL_SEQ_SYNC\tvoid\n"
10905 #: build/C/man2/ioctl_list.2:535
10907 msgid "0xC08C5102\tSNDCTL_SYNTH_INFO\tstruct synth_info *\t// I-O\n"
10911 #: build/C/man2/ioctl_list.2:536
10913 msgid "0xC0045103\tSNDCTL_SEQ_CTRLRATE\tint *\t// I-O\n"
10917 #: build/C/man2/ioctl_list.2:537
10919 msgid "0x80045104\tSNDCTL_SEQ_GETOUTCOUNT\tint *\n"
10923 #: build/C/man2/ioctl_list.2:538
10925 msgid "0x80045105\tSNDCTL_SEQ_GETINCOUNT\tint *\n"
10929 #: build/C/man2/ioctl_list.2:539
10931 msgid "0x40045106\tSNDCTL_SEQ_PERCMODE\tvoid\n"
10935 #: build/C/man2/ioctl_list.2:540
10937 msgid "0x40285107\tSNDCTL_FM_LOAD_INSTR\tconst struct sbi_instrument *\n"
10941 #: build/C/man2/ioctl_list.2:541
10943 msgid "0x40045108\tSNDCTL_SEQ_TESTMIDI\tconst int *\n"
10947 #: build/C/man2/ioctl_list.2:542
10949 msgid "0x40045109\tSNDCTL_SEQ_RESETSAMPLES\tconst int *\n"
10953 #: build/C/man2/ioctl_list.2:543
10955 msgid "0x8004510A\tSNDCTL_SEQ_NRSYNTHS\tint *\n"
10959 #: build/C/man2/ioctl_list.2:544
10961 msgid "0x8004510B\tSNDCTL_SEQ_NRMIDIS\tint *\n"
10965 #: build/C/man2/ioctl_list.2:545
10967 msgid "0xC074510C\tSNDCTL_MIDI_INFO\tstruct midi_info *\t// I-O\n"
10971 #: build/C/man2/ioctl_list.2:546
10973 msgid "0x4004510D\tSNDCTL_SEQ_THRESHOLD\tconst int *\n"
10977 #: build/C/man2/ioctl_list.2:547
10979 msgid "0xC004510E\tSNDCTL_SYNTH_MEMAVL\tint *\t// I-O\n"
10983 #: build/C/man2/ioctl_list.2:548
10985 msgid "0x4004510F\tSNDCTL_FM_4OP_ENABLE\tconst int *\n"
10989 #: build/C/man2/ioctl_list.2:549
10991 msgid "0xCFB85110\tSNDCTL_PMGR_ACCESS\tstruct patmgr_info *\t// I-O\n"
10995 #: build/C/man2/ioctl_list.2:550
10997 msgid "0x00005111\tSNDCTL_SEQ_PANIC\tvoid\n"
11001 #: build/C/man2/ioctl_list.2:551
11003 msgid "0x40085112\tSNDCTL_SEQ_OUTOFBAND\tconst struct seq_event_rec *\n"
11007 #: build/C/man2/ioctl_list.2:552
11009 msgid "0xC0045401\tSNDCTL_TMR_TIMEBASE\tint *\t// I-O\n"
11013 #: build/C/man2/ioctl_list.2:553
11015 msgid "0x00005402\tSNDCTL_TMR_START\tvoid\n"
11019 #: build/C/man2/ioctl_list.2:554
11021 msgid "0x00005403\tSNDCTL_TMR_STOP\tvoid\n"
11025 #: build/C/man2/ioctl_list.2:555
11027 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tvoid\n"
11031 #: build/C/man2/ioctl_list.2:556
11033 msgid "0xC0045405\tSNDCTL_TMR_TEMPO\tint *\t// I-O\n"
11037 #: build/C/man2/ioctl_list.2:557
11039 msgid "0xC0045406\tSNDCTL_TMR_SOURCE\tint *\t// I-O\n"
11043 #: build/C/man2/ioctl_list.2:558
11045 msgid "0x40045407\tSNDCTL_TMR_METRONOME\tconst int *\n"
11049 #: build/C/man2/ioctl_list.2:559
11051 msgid "0x40045408\tSNDCTL_TMR_SELECT\tint *\t// I-O\n"
11055 #: build/C/man2/ioctl_list.2:560
11057 msgid "0xCFB85001\tSNDCTL_PMGR_IFACE\tstruct patmgr_info *\t// I-O\n"
11061 #: build/C/man2/ioctl_list.2:561
11063 msgid "0xC0046D00\tSNDCTL_MIDI_PRETIME\tint *\t// I-O\n"
11067 #: build/C/man2/ioctl_list.2:562
11069 msgid "0xC0046D01\tSNDCTL_MIDI_MPUMODE\tconst int *\n"
11073 #: build/C/man2/ioctl_list.2:563
11075 msgid "0xC0216D02\tSNDCTL_MIDI_MPUCMD\tstruct mpu_command_rec *\t// I-O\n"
11079 #: build/C/man2/ioctl_list.2:564
11081 msgid "0x00005000\tSNDCTL_DSP_RESET\tvoid\n"
11085 #: build/C/man2/ioctl_list.2:565
11087 msgid "0x00005001\tSNDCTL_DSP_SYNC\tvoid\n"
11091 #: build/C/man2/ioctl_list.2:566
11093 msgid "0xC0045002\tSNDCTL_DSP_SPEED\tint *\t// I-O\n"
11097 #: build/C/man2/ioctl_list.2:567
11099 msgid "0xC0045003\tSNDCTL_DSP_STEREO\tint *\t// I-O\n"
11103 #: build/C/man2/ioctl_list.2:568
11105 msgid "0xC0045004\tSNDCTL_DSP_GETBLKSIZE\tint *\t// I-O\n"
11109 #: build/C/man2/ioctl_list.2:569
11111 msgid "0xC0045006\tSOUND_PCM_WRITE_CHANNELS\tint *\t// I-O\n"
11115 #: build/C/man2/ioctl_list.2:570
11117 msgid "0xC0045007\tSOUND_PCM_WRITE_FILTER\tint *\t// I-O\n"
11121 #: build/C/man2/ioctl_list.2:571
11123 msgid "0x00005008\tSNDCTL_DSP_POST\tvoid\n"
11127 #: build/C/man2/ioctl_list.2:572
11129 msgid "0xC0045009\tSNDCTL_DSP_SUBDIVIDE\tint *\t// I-O\n"
11133 #: build/C/man2/ioctl_list.2:573
11135 msgid "0xC004500A\tSNDCTL_DSP_SETFRAGMENT\tint *\t// I-O\n"
11139 #: build/C/man2/ioctl_list.2:574
11141 msgid "0x8004500B\tSNDCTL_DSP_GETFMTS\tint *\n"
11145 #: build/C/man2/ioctl_list.2:575
11147 msgid "0xC0045005\tSNDCTL_DSP_SETFMT\tint *\t// I-O\n"
11151 #: build/C/man2/ioctl_list.2:576
11153 msgid "0x800C500C\tSNDCTL_DSP_GETOSPACE\tstruct audio_buf_info *\n"
11157 #: build/C/man2/ioctl_list.2:577
11159 msgid "0x800C500D\tSNDCTL_DSP_GETISPACE\tstruct audio_buf_info *\n"
11163 #: build/C/man2/ioctl_list.2:578
11165 msgid "0x0000500E\tSNDCTL_DSP_NONBLOCK\tvoid\n"
11169 #: build/C/man2/ioctl_list.2:579
11171 msgid "0x80045002\tSOUND_PCM_READ_RATE\tint *\n"
11175 #: build/C/man2/ioctl_list.2:580
11177 msgid "0x80045006\tSOUND_PCM_READ_CHANNELS\tint *\n"
11181 #: build/C/man2/ioctl_list.2:581
11183 msgid "0x80045005\tSOUND_PCM_READ_BITS\tint *\n"
11187 #: build/C/man2/ioctl_list.2:582
11189 msgid "0x80045007\tSOUND_PCM_READ_FILTER\tint *\n"
11193 #: build/C/man2/ioctl_list.2:583
11195 msgid "0x00004300\tSNDCTL_COPR_RESET\tvoid\n"
11199 #: build/C/man2/ioctl_list.2:584
11201 msgid "0xCFB04301\tSNDCTL_COPR_LOAD\tconst struct copr_buffer *\n"
11205 #: build/C/man2/ioctl_list.2:585
11207 msgid "0xC0144302\tSNDCTL_COPR_RDATA\tstruct copr_debug_buf *\t// I-O\n"
11211 #: build/C/man2/ioctl_list.2:586
11213 msgid "0xC0144303\tSNDCTL_COPR_RCODE\tstruct copr_debug_buf *\t// I-O\n"
11217 #: build/C/man2/ioctl_list.2:587
11219 msgid "0x40144304\tSNDCTL_COPR_WDATA\tconst struct copr_debug_buf *\n"
11223 #: build/C/man2/ioctl_list.2:588
11225 msgid "0x40144305\tSNDCTL_COPR_WCODE\tconst struct copr_debug_buf *\n"
11229 #: build/C/man2/ioctl_list.2:589
11231 msgid "0xC0144306\tSNDCTL_COPR_RUN\tstruct copr_debug_buf *\t// I-O\n"
11235 #: build/C/man2/ioctl_list.2:590
11237 msgid "0xC0144307\tSNDCTL_COPR_HALT\tstruct copr_debug_buf *\t// I-O\n"
11241 #: build/C/man2/ioctl_list.2:591
11243 msgid "0x4FA44308\tSNDCTL_COPR_SENDMSG\tconst struct copr_msg *\n"
11247 #: build/C/man2/ioctl_list.2:592
11249 msgid "0x8FA44309\tSNDCTL_COPR_RCVMSG\tstruct copr_msg *\n"
11253 #: build/C/man2/ioctl_list.2:593
11255 msgid "0x80044D00\tSOUND_MIXER_READ_VOLUME\tint *\n"
11259 #: build/C/man2/ioctl_list.2:594
11261 msgid "0x80044D01\tSOUND_MIXER_READ_BASS\tint *\n"
11265 #: build/C/man2/ioctl_list.2:595
11267 msgid "0x80044D02\tSOUND_MIXER_READ_TREBLE\tint *\n"
11271 #: build/C/man2/ioctl_list.2:596
11273 msgid "0x80044D03\tSOUND_MIXER_READ_SYNTH\tint *\n"
11277 #: build/C/man2/ioctl_list.2:597
11279 msgid "0x80044D04\tSOUND_MIXER_READ_PCM\tint *\n"
11283 #: build/C/man2/ioctl_list.2:598
11285 msgid "0x80044D05\tSOUND_MIXER_READ_SPEAKER\tint *\n"
11289 #: build/C/man2/ioctl_list.2:599
11291 msgid "0x80044D06\tSOUND_MIXER_READ_LINE\tint *\n"
11295 #: build/C/man2/ioctl_list.2:600
11297 msgid "0x80044D07\tSOUND_MIXER_READ_MIC\tint *\n"
11301 #: build/C/man2/ioctl_list.2:601
11303 msgid "0x80044D08\tSOUND_MIXER_READ_CD\tint *\n"
11307 #: build/C/man2/ioctl_list.2:602
11309 msgid "0x80044D09\tSOUND_MIXER_READ_IMIX\tint *\n"
11313 #: build/C/man2/ioctl_list.2:603
11315 msgid "0x80044D0A\tSOUND_MIXER_READ_ALTPCM\tint *\n"
11319 #: build/C/man2/ioctl_list.2:604
11321 msgid "0x80044D0B\tSOUND_MIXER_READ_RECLEV\tint *\n"
11325 #: build/C/man2/ioctl_list.2:605
11327 msgid "0x80044D0C\tSOUND_MIXER_READ_IGAIN\tint *\n"
11331 #: build/C/man2/ioctl_list.2:606
11333 msgid "0x80044D0D\tSOUND_MIXER_READ_OGAIN\tint *\n"
11337 #: build/C/man2/ioctl_list.2:607
11339 msgid "0x80044D0E\tSOUND_MIXER_READ_LINE1\tint *\n"
11343 #: build/C/man2/ioctl_list.2:608
11345 msgid "0x80044D0F\tSOUND_MIXER_READ_LINE2\tint *\n"
11349 #: build/C/man2/ioctl_list.2:609
11351 msgid "0x80044D10\tSOUND_MIXER_READ_LINE3\tint *\n"
11355 #: build/C/man2/ioctl_list.2:610
11357 msgid "0x80044D1C\tSOUND_MIXER_READ_MUTE\tint *\n"
11361 #: build/C/man2/ioctl_list.2:611
11363 msgid "0x80044D1D\tSOUND_MIXER_READ_ENHANCE\tint *\n"
11367 #: build/C/man2/ioctl_list.2:612
11369 msgid "0x80044D1E\tSOUND_MIXER_READ_LOUD\tint *\n"
11373 #: build/C/man2/ioctl_list.2:613
11375 msgid "0x80044DFF\tSOUND_MIXER_READ_RECSRC\tint *\n"
11379 #: build/C/man2/ioctl_list.2:614
11381 msgid "0x80044DFE\tSOUND_MIXER_READ_DEVMASK\tint *\n"
11385 #: build/C/man2/ioctl_list.2:615
11387 msgid "0x80044DFD\tSOUND_MIXER_READ_RECMASK\tint *\n"
11391 #: build/C/man2/ioctl_list.2:616
11393 msgid "0x80044DFB\tSOUND_MIXER_READ_STEREODEVS\tint *\n"
11397 #: build/C/man2/ioctl_list.2:617
11399 msgid "0x80044DFC\tSOUND_MIXER_READ_CAPS\tint *\n"
11403 #: build/C/man2/ioctl_list.2:618
11405 msgid "0xC0044D00\tSOUND_MIXER_WRITE_VOLUME\tint *\t// I-O\n"
11409 #: build/C/man2/ioctl_list.2:619
11411 msgid "0xC0044D01\tSOUND_MIXER_WRITE_BASS\tint *\t// I-O\n"
11415 #: build/C/man2/ioctl_list.2:620
11417 msgid "0xC0044D02\tSOUND_MIXER_WRITE_TREBLE\tint *\t// I-O\n"
11421 #: build/C/man2/ioctl_list.2:621
11423 msgid "0xC0044D03\tSOUND_MIXER_WRITE_SYNTH\tint *\t// I-O\n"
11427 #: build/C/man2/ioctl_list.2:622
11429 msgid "0xC0044D04\tSOUND_MIXER_WRITE_PCM\tint *\t// I-O\n"
11433 #: build/C/man2/ioctl_list.2:623
11435 msgid "0xC0044D05\tSOUND_MIXER_WRITE_SPEAKER\tint *\t// I-O\n"
11439 #: build/C/man2/ioctl_list.2:624
11441 msgid "0xC0044D06\tSOUND_MIXER_WRITE_LINE\tint *\t// I-O\n"
11445 #: build/C/man2/ioctl_list.2:625
11447 msgid "0xC0044D07\tSOUND_MIXER_WRITE_MIC\tint *\t// I-O\n"
11451 #: build/C/man2/ioctl_list.2:626
11453 msgid "0xC0044D08\tSOUND_MIXER_WRITE_CD\tint *\t// I-O\n"
11457 #: build/C/man2/ioctl_list.2:627
11459 msgid "0xC0044D09\tSOUND_MIXER_WRITE_IMIX\tint *\t// I-O\n"
11463 #: build/C/man2/ioctl_list.2:628
11465 msgid "0xC0044D0A\tSOUND_MIXER_WRITE_ALTPCM\tint *\t// I-O\n"
11469 #: build/C/man2/ioctl_list.2:629
11471 msgid "0xC0044D0B\tSOUND_MIXER_WRITE_RECLEV\tint *\t// I-O\n"
11475 #: build/C/man2/ioctl_list.2:630
11477 msgid "0xC0044D0C\tSOUND_MIXER_WRITE_IGAIN\tint *\t// I-O\n"
11481 #: build/C/man2/ioctl_list.2:631
11483 msgid "0xC0044D0D\tSOUND_MIXER_WRITE_OGAIN\tint *\t// I-O\n"
11487 #: build/C/man2/ioctl_list.2:632
11489 msgid "0xC0044D0E\tSOUND_MIXER_WRITE_LINE1\tint *\t// I-O\n"
11493 #: build/C/man2/ioctl_list.2:633
11495 msgid "0xC0044D0F\tSOUND_MIXER_WRITE_LINE2\tint *\t// I-O\n"
11499 #: build/C/man2/ioctl_list.2:634
11501 msgid "0xC0044D10\tSOUND_MIXER_WRITE_LINE3\tint *\t// I-O\n"
11505 #: build/C/man2/ioctl_list.2:635
11507 msgid "0xC0044D1C\tSOUND_MIXER_WRITE_MUTE\tint *\t// I-O\n"
11511 #: build/C/man2/ioctl_list.2:636
11513 msgid "0xC0044D1D\tSOUND_MIXER_WRITE_ENHANCE\tint *\t// I-O\n"
11517 #: build/C/man2/ioctl_list.2:637
11519 msgid "0xC0044D1E\tSOUND_MIXER_WRITE_LOUD\tint *\t// I-O\n"
11523 #: build/C/man2/ioctl_list.2:638
11525 msgid "0xC0044DFF\tSOUND_MIXER_WRITE_RECSRC\tint *\t// I-O\n"
11528 #. type: Plain text
11529 #: build/C/man2/ioctl_list.2:642
11530 msgid "// E<lt>include/linux/umsdos_fs.hE<gt>"
11534 #: build/C/man2/ioctl_list.2:644
11536 msgid "0x000004D2\tUMSDOS_READDIR_DOS\tstruct umsdos_ioctl *\t// I-O\n"
11540 #: build/C/man2/ioctl_list.2:645
11542 msgid "0x000004D3\tUMSDOS_UNLINK_DOS\tconst struct umsdos_ioctl *\n"
11546 #: build/C/man2/ioctl_list.2:646
11548 msgid "0x000004D4\tUMSDOS_RMDIR_DOS\tconst struct umsdos_ioctl *\n"
11552 #: build/C/man2/ioctl_list.2:647
11554 msgid "0x000004D5\tUMSDOS_STAT_DOS\tstruct umsdos_ioctl *\t// I-O\n"
11558 #: build/C/man2/ioctl_list.2:648
11560 msgid "0x000004D6\tUMSDOS_CREAT_EMD\tconst struct umsdos_ioctl *\n"
11564 #: build/C/man2/ioctl_list.2:649
11566 msgid "0x000004D7\tUMSDOS_UNLINK_EMD\tconst struct umsdos_ioctl *\n"
11570 #: build/C/man2/ioctl_list.2:650
11572 msgid "0x000004D8\tUMSDOS_READDIR_EMD\tstruct umsdos_ioctl *\t// I-O\n"
11576 #: build/C/man2/ioctl_list.2:651
11578 msgid "0x000004D9\tUMSDOS_GETVERSION\tstruct umsdos_ioctl *\n"
11582 #: build/C/man2/ioctl_list.2:652
11584 msgid "0x000004DA\tUMSDOS_INIT_EMD\tvoid\n"
11588 #: build/C/man2/ioctl_list.2:653
11590 msgid "0x000004DB\tUMSDOS_DOS_SETUP\tconst struct umsdos_ioctl *\n"
11594 #: build/C/man2/ioctl_list.2:654
11596 msgid "0x000004DC\tUMSDOS_RENAME_DOS\tconst struct umsdos_ioctl *\n"
11599 #. type: Plain text
11600 #: build/C/man2/ioctl_list.2:658
11601 msgid "// E<lt>include/linux/vt.hE<gt>"
11605 #: build/C/man2/ioctl_list.2:660
11607 msgid "0x00005600\tVT_OPENQRY\tint *\n"
11611 #: build/C/man2/ioctl_list.2:661
11613 msgid "0x00005601\tVT_GETMODE\tstruct vt_mode *\n"
11617 #: build/C/man2/ioctl_list.2:662
11619 msgid "0x00005602\tVT_SETMODE\tconst struct vt_mode *\n"
11623 #: build/C/man2/ioctl_list.2:663
11625 msgid "0x00005603\tVT_GETSTATE\tstruct vt_stat *\n"
11629 #: build/C/man2/ioctl_list.2:664
11631 msgid "0x00005604\tVT_SENDSIG\tvoid\n"
11635 #: build/C/man2/ioctl_list.2:665
11637 msgid "0x00005605\tVT_RELDISP\tint\n"
11641 #: build/C/man2/ioctl_list.2:666
11643 msgid "0x00005606\tVT_ACTIVATE\tint\n"
11647 #: build/C/man2/ioctl_list.2:667
11649 msgid "0x00005607\tVT_WAITACTIVE\tint\n"
11653 #: build/C/man2/ioctl_list.2:668
11655 msgid "0x00005608\tVT_DISALLOCATE\tint\n"
11659 #: build/C/man2/ioctl_list.2:669
11661 msgid "0x00005609\tVT_RESIZE\tconst struct vt_sizes *\n"
11665 #: build/C/man2/ioctl_list.2:670
11667 msgid "0x0000560A\tVT_RESIZEX\tconst struct vt_consize *\n"
11670 #. type: Plain text
11671 #: build/C/man2/ioctl_list.2:677
11673 "// More arguments. Some ioctl's take a pointer to a structure which "
11674 "contains additional pointers. These are documented here in alphabetical "
11678 #. type: Plain text
11679 #: build/C/man2/ioctl_list.2:685
11681 "B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio "
11682 "*>. The I<buf> field points to an output buffer of length I<nframes * "
11683 "CD_FRAMESIZE_RAW>."
11686 #. type: Plain text
11687 #: build/C/man2/ioctl_list.2:701
11689 "B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and "
11690 "B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf *>. They use "
11691 "the same pointer as an output pointer to I<char []>. The length varies by "
11692 "request. For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
11693 "Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical "
11697 #. type: Plain text
11698 #: build/C/man2/ioctl_list.2:707
11701 " CDROMREADCOOKED char [CD_FRAMESIZE]\n"
11702 " CDROMREADMODE1 char [CD_FRAMESIZE or OPT_BLOCKSIZE]\n"
11703 " CDROMREADMODE2 char [CD_FRAMESIZE_RAW0]\n"
11704 " CDROMREADRAW char [CD_FRAMESIZE_RAW]\n"
11707 #. type: Plain text
11708 #: build/C/man2/ioctl_list.2:721
11710 "B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, "
11711 "B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq *>. The "
11712 "I<ifr_data> field is a pointer to another structure as follows:"
11715 #. type: Plain text
11716 #: build/C/man2/ioctl_list.2:729
11719 " EQL_ENSLAVE const struct slaving_request *\n"
11720 " EQL_EMANCIPATE const struct slaving_request *\n"
11721 " EQL_GETSLAVECFG struct slave_config * // I-O\n"
11722 " EQL_SETSLAVECFG const struct slave_config *\n"
11723 " EQL_GETMASTERCFG struct master_config *\n"
11724 " EQL_SETMASTERCFG const struct master_config *\n"
11727 #. type: Plain text
11728 #: build/C/man2/ioctl_list.2:746
11730 "B<FDRAWCMD> takes a I<struct floppy raw_cmd *>. If I<flags & FD_RAW_WRITE> "
11731 "is nonzero, then I<data> points to an input buffer of length I<length>. If "
11732 "I<flags & FD_RAW_READ> is nonzero, then I<data> points to an output buffer "
11733 "of length I<length>."
11736 #. type: Plain text
11737 #: build/C/man2/ioctl_list.2:762
11739 "B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc *> or a "
11740 "I<const struct console_font_desc *>, respectively. I<chardata> points to a "
11741 "buffer of I<char [charcount]>. This is an output buffer for B<GIO_FONTX> "
11742 "and an input buffer for B<PIO_FONTX>."
11745 #. type: Plain text
11746 #: build/C/man2/ioctl_list.2:778
11748 "B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc *> or a I<const "
11749 "struct unimapdesc *>, respectively. I<entries> points to a buffer of "
11750 "I<struct unipair [entry_ct]>. This is an output buffer for B<GIO_UNIMAP> "
11751 "and an input buffer for B<PIO_UNIMAP>."
11754 #. type: Plain text
11755 #: build/C/man2/ioctl_list.2:782
11757 "KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O "
11758 "ports. They are essentially alternate interfaces to 'ioperm'."
11761 #. type: Plain text
11762 #: build/C/man2/ioctl_list.2:788
11764 "B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O "
11765 "port access. They are not implemented in the kernel."
11768 #. type: Plain text
11769 #: build/C/man2/ioctl_list.2:796
11771 "B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int *>, which is a "
11772 "length. It uses the same pointer as an output pointer to a I<char []> "
11773 "buffer of this length."
11776 #. type: Plain text
11777 #: build/C/man2/ioctl_list.2:802
11779 "B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on "
11783 #. type: Plain text
11784 #: build/C/man2/ioctl_list.2:807
11787 " Most protocols const struct rtentry *\n"
11788 " AX.25 const struct ax25_route *\n"
11789 " NET/ROM const struct nr_route_struct *\n"
11792 #. type: Plain text
11793 #: build/C/man2/ioctl_list.2:818
11795 "B<SIOCGIFCONF> takes a I<struct ifconf *>. The I<ifc_buf> field points to a "
11796 "buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
11797 "type I<struct ifreq []>."
11800 #. type: Plain text
11801 #: build/C/man2/ioctl_list.2:821
11802 msgid "B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:"
11805 #. type: Plain text
11806 #: build/C/man2/ioctl_list.2:825
11809 " Most protocols const struct ifreq *\n"
11810 " AX.25 const char [AX25_ADDR_LEN]\n"
11813 #. type: Plain text
11814 #: build/C/man2/ioctl_list.2:840
11816 "B<TIOCLINUX> takes a I<const char *>. It uses this to distinguish several "
11817 "independent subcases. In the table below, I<N + foo> means I<foo> after an "
11818 "N-byte pad. I<struct selection> is implicitly defined in "
11819 "I<drivers/char/selection.c>"
11822 #. type: Plain text
11823 #: build/C/man2/ioctl_list.2:849
11826 " TIOCLINUX-2 1 + const struct selection *\n"
11827 " TIOCLINUX-3 void\n"
11828 " TIOCLINUX-4 void\n"
11829 " TIOCLINUX-5 4 + const struct { long [8]; } *\n"
11830 " TIOCLINUX-6 char *\n"
11831 " TIOCLINUX-7 char *\n"
11832 " TIOCLINUX-10 1 + const char *\n"
11835 #. type: Plain text
11836 #: build/C/man2/ioctl_list.2:852
11837 msgid "// Duplicate ioctls"
11840 #. type: Plain text
11841 #: build/C/man2/ioctl_list.2:857
11843 "This list does not include ioctls in the range B<SIOCDEVPRIVATE> and "
11844 "B<SIOCPROTOPRIVATE>."
11848 #: build/C/man2/ioctl_list.2:859
11850 msgid "0x00000001\tFDSETPRM\tFIBMAP\n"
11854 #: build/C/man2/ioctl_list.2:860
11856 msgid "0x00000002\tFDDEFPRM\tFIGETBSZ\n"
11860 #: build/C/man2/ioctl_list.2:861
11862 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tSCSI_IOCTL_GET_IDLUN\n"
11866 #: build/C/man2/ioctl_list.2:862
11868 msgid "0x00005402\tSNDCTL_TMR_START\tTCSETS\n"
11872 #: build/C/man2/ioctl_list.2:863
11874 msgid "0x00005403\tSNDCTL_TMR_STOP\tTCSETSW\n"
11878 #: build/C/man2/ioctl_list.2:864
11880 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tTCSETSF\n"
11883 #. type: Plain text
11884 #: build/C/man2/ioctl_list.2:868
11885 msgid "B<ioctl>(2)"
11889 #: build/C/man2/ioperm.2:35
11895 #: build/C/man2/ioperm.2:35
11900 #. type: Plain text
11901 #: build/C/man2/ioperm.2:38
11902 msgid "ioperm - set port input/output permissions"
11905 #. type: Plain text
11906 #: build/C/man2/ioperm.2:41
11907 msgid "B<#include E<lt>unistd.hE<gt>> /* for libc5 */"
11910 #. type: Plain text
11911 #: build/C/man2/ioperm.2:44
11912 msgid "B<#include E<lt>sys/io.hE<gt>> /* for glibc */"
11915 #. type: Plain text
11916 #: build/C/man2/ioperm.2:46
11918 "B<int ioperm(unsigned long >I<from>B<, unsigned long >I<num>B<, int "
11922 #. type: Plain text
11923 #: build/C/man2/ioperm.2:53
11925 "B<ioperm>() sets the port access permission bits for the calling process "
11926 "for I<num> bytes starting from port address I<from> to the value "
11927 "I<turn_on>. If I<turn_on> is nonzero, the calling process must be "
11928 "privileged (B<CAP_SYS_RAWIO>)."
11931 #. FIXME is the following ("Only the first 0x3ff I/O ports can be
11932 #. specified in this manner") still true? Looking at changes in
11933 #. include/asm-i386/processor.h between 2.4 and 2.6 suggests
11934 #. that the limit is different in 2.6.
11935 #. type: Plain text
11936 #: build/C/man2/ioperm.2:62
11938 "Only the first 0x3ff I/O ports can be specified in this manner. For more "
11939 "ports, the B<iopl>(2) system call must be used."
11942 #. type: Plain text
11943 #: build/C/man2/ioperm.2:69
11945 "Permissions are not inherited by the child created by B<fork>(2). "
11946 "Permissions are preserved across B<execve>(2); this is useful for giving "
11947 "port access permissions to unprivileged programs."
11950 #. type: Plain text
11951 #: build/C/man2/ioperm.2:73
11953 "This call is mostly for the i386 architecture. On many other architectures "
11954 "it does not exist or will always return an error."
11957 #. type: Plain text
11958 #: build/C/man2/ioperm.2:85
11959 msgid "Invalid values for I<from> or I<num>."
11962 #. type: Plain text
11963 #: build/C/man2/ioperm.2:88
11964 msgid "(on PowerPC) This call is not supported."
11967 #. Could not allocate I/O bitmap.
11968 #. type: Plain text
11969 #: build/C/man2/ioperm.2:92
11970 msgid "Out of memory."
11973 #. type: Plain text
11974 #: build/C/man2/ioperm.2:95
11975 msgid "The calling process has insufficient privilege."
11978 #. type: Plain text
11979 #: build/C/man2/ioperm.2:99
11981 "B<ioperm>() is Linux-specific and should not be used in programs intended "
11985 #. type: Plain text
11986 #: build/C/man2/ioperm.2:108
11988 "Libc5 treats it as a system call and has a prototype in "
11989 "I<E<lt>unistd.hE<gt>>. Glibc1 does not have a prototype. Glibc2 has a "
11990 "prototype both in I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>. "
11991 "Avoid the latter, it is available on i386 only."
11994 #. type: Plain text
11995 #: build/C/man2/ioperm.2:111
11996 msgid "B<iopl>(2), B<capabilities>(7)"
12000 #: build/C/man3/lockf.3:22
12006 #: build/C/man3/lockf.3:22
12011 #. type: Plain text
12012 #: build/C/man3/lockf.3:25
12013 msgid "lockf - apply, test or remove a POSIX lock on an open file"
12016 #. type: Plain text
12017 #: build/C/man3/lockf.3:29
12018 msgid "B<int lockf(int >I<fd>B<, int >I<cmd>B<, off_t >I<len>B<);>"
12021 #. type: Plain text
12022 #: build/C/man3/lockf.3:36
12023 msgid "B<lockf>():"
12026 #. type: Plain text
12027 #: build/C/man3/lockf.3:40
12029 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
12030 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
12033 #. type: Plain text
12034 #: build/C/man3/lockf.3:63
12036 "Apply, test or remove a POSIX lock on a section of an open file. The file "
12037 "is specified by I<fd>, a file descriptor open for writing, the action by "
12038 "I<cmd>, and the section consists of byte positions I<pos>..I<pos>+I<len>-1 "
12039 "if I<len> is positive, and I<pos>-I<len>..I<pos>-1 if I<len> is negative, "
12040 "where I<pos> is the current file position, and if I<len> is zero, the "
12041 "section extends from the current file position to infinity, encompassing the "
12042 "present and future end-of-file positions. In all cases, the section may "
12043 "extend past current end-of-file."
12046 #. type: Plain text
12047 #: build/C/man3/lockf.3:78
12049 "On Linux, B<lockf>() is just an interface on top of B<fcntl>(2) locking. "
12050 "Many other systems implement B<lockf>() in this way, but note that "
12051 "POSIX.1-2001 leaves the relationship between B<lockf>() and B<fcntl>(2) "
12052 "locks unspecified. A portable application should probably avoid mixing "
12053 "calls to these interfaces."
12056 #. type: Plain text
12057 #: build/C/man3/lockf.3:80
12058 msgid "Valid operations are given below:"
12062 #: build/C/man3/lockf.3:80
12067 #. type: Plain text
12068 #: build/C/man3/lockf.3:90
12070 "Set an exclusive lock on the specified section of the file. If (part of) "
12071 "this section is already locked, the call blocks until the previous lock is "
12072 "released. If this section overlaps an earlier locked section, both are "
12073 "merged. File locks are released as soon as the process holding the locks "
12074 "closes some file descriptor for the file. A child process does not inherit "
12079 #: build/C/man3/lockf.3:90
12084 #. type: Plain text
12085 #: build/C/man3/lockf.3:96
12087 "Same as B<F_LOCK> but the call never blocks and returns an error instead if "
12088 "the file is already locked."
12092 #: build/C/man3/lockf.3:96
12097 #. type: Plain text
12098 #: build/C/man3/lockf.3:100
12100 "Unlock the indicated section of the file. This may cause a locked section "
12101 "to be split into two locked sections."
12105 #: build/C/man3/lockf.3:100
12110 #. type: Plain text
12111 #: build/C/man3/lockf.3:110
12113 "Test the lock: return 0 if the specified section is unlocked or locked by "
12114 "this process; return -1, set I<errno> to B<EAGAIN> (B<EACCES> on some other "
12115 "systems), if another process holds a lock."
12118 #. type: Plain text
12119 #: build/C/man3/lockf.3:124
12121 "The file is locked and B<F_TLOCK> or B<F_TEST> was specified, or the "
12122 "operation is prohibited because the file has been memory-mapped by another "
12126 #. type: Plain text
12127 #: build/C/man3/lockf.3:136
12129 "I<fd> is not an open file descriptor; or I<cmd> is B<F_LOCK> or B<F_TLOCK> "
12130 "and I<fd> is not a writable file descriptor."
12133 #. type: Plain text
12134 #: build/C/man3/lockf.3:141
12135 msgid "The command was B<T_LOCK> and this lock operation would cause a deadlock."
12138 #. type: Plain text
12139 #: build/C/man3/lockf.3:145
12140 msgid "An invalid operation was specified in I<fd>."
12143 #. type: Plain text
12144 #: build/C/man3/lockf.3:148
12145 msgid "Too many segment locks open, lock table is full."
12148 #. type: Plain text
12149 #: build/C/man3/lockf.3:150
12150 msgid "SVr4, POSIX.1-2001."
12153 #. type: Plain text
12154 #: build/C/man3/lockf.3:153
12155 msgid "B<fcntl>(2), B<flock>(2)"
12158 #. type: Plain text
12159 #: build/C/man3/lockf.3:166
12161 "There are also I<locks.txt> and I<mandatory-locking.txt> in the kernel "
12162 "source directory I<Documentation/filesystems>. (On older kernels, these "
12163 "files are directly under the I<Documentation/> directory, and "
12164 "I<mandatory-locking.txt> is called I<mandatory.txt>.)"
12168 #: build/C/man2/mincore.2:34
12174 #: build/C/man2/mincore.2:34
12179 #. type: Plain text
12180 #: build/C/man2/mincore.2:37
12181 msgid "mincore - determine whether pages are resident in memory"
12184 #. type: Plain text
12185 #: build/C/man2/mincore.2:41
12186 msgid "B<#include E<lt>sys/mman.hE<gt>>"
12189 #. type: Plain text
12190 #: build/C/man2/mincore.2:43
12192 "B<int mincore(void *>I<addr>B<, size_t >I<length>B<, unsigned char "
12196 #. type: Plain text
12197 #: build/C/man2/mincore.2:51
12198 msgid "B<mincore>(): _BSD_SOURCE || _SVID_SOURCE"
12201 #. type: Plain text
12202 #: build/C/man2/mincore.2:62
12204 "B<mincore>() returns a vector that indicates whether pages of the calling "
12205 "process's virtual memory are resident in core (RAM), and so will not cause a "
12206 "disk access (page fault) if referenced. The kernel returns residency "
12207 "information about the pages starting at the address I<addr>, and continuing "
12208 "for I<length> bytes."
12211 #. type: Plain text
12212 #: build/C/man2/mincore.2:76
12214 "The I<addr> argument must be a multiple of the system page size. The "
12215 "I<length> argument need not be a multiple of the page size, but since "
12216 "residency information is returned for whole pages, I<length> is effectively "
12217 "rounded up to the next multiple of the page size. One may obtain the page "
12218 "size (B<PAGE_SIZE>) using I<sysconf(_SC_PAGESIZE)>."
12221 #. type: Plain text
12222 #: build/C/man2/mincore.2:94
12224 "The I<vec> argument must point to an array containing at least "
12225 "I<(length+PAGE_SIZE-1) / PAGE_SIZE> bytes. On return, the least significant "
12226 "bit of each byte will be set if the corresponding page is currently resident "
12227 "in memory, and be clear otherwise. (The settings of the other bits in each "
12228 "byte are undefined; these bits are reserved for possible later use.) Of "
12229 "course the information returned in I<vec> is only a snapshot: pages that are "
12230 "not locked in memory can come and go at any moment, and the contents of "
12231 "I<vec> may already be stale by the time this call returns."
12234 #. type: Plain text
12235 #: build/C/man2/mincore.2:101
12237 "On success, B<mincore>() returns zero. On error, -1 is returned, and "
12238 "I<errno> is set appropriately."
12241 #. type: Plain text
12242 #: build/C/man2/mincore.2:104
12243 msgid "B<EAGAIN> kernel is temporarily out of resources."
12246 #. type: Plain text
12247 #: build/C/man2/mincore.2:108
12248 msgid "I<vec> points to an invalid address."
12251 #. type: Plain text
12252 #: build/C/man2/mincore.2:112
12253 msgid "I<addr> is not a multiple of the page size."
12256 #. type: Plain text
12257 #: build/C/man2/mincore.2:124
12259 "I<length> is greater than (I<TASK_SIZE> - I<addr>). (This could occur if a "
12260 "negative value is specified for I<length>, since that value will be "
12261 "interpreted as a large unsigned integer.) In Linux 2.6.11 and earlier, the "
12262 "error B<EINVAL> was returned for this condition."
12265 #. type: Plain text
12266 #: build/C/man2/mincore.2:132
12267 msgid "I<addr> to I<addr> + I<length> contained unmapped memory."
12270 #. type: Plain text
12271 #: build/C/man2/mincore.2:134
12272 msgid "Available since Linux 2.3.99pre1 and glibc 2.2."
12275 #. It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8,
12276 #. AIX 5.1, SunOS 4.1
12280 #. function first appeared in 4.4BSD.
12281 #. type: Plain text
12282 #: build/C/man2/mincore.2:144
12284 "B<mincore>() is not specified in POSIX.1-2001, and it is not available on "
12285 "all UNIX implementations."
12288 #. Linux (up to now, 2.6.5),
12290 #. does not return correct information for MAP_PRIVATE mappings:
12291 #. for a MAP_PRIVATE file mapping,
12293 #. returns the residency of the file pages, rather than any
12294 #. modified process-private pages that have been copied on write;
12295 #. for a MAP_PRIVATE mapping of
12298 #. always reports pages as nonresident;
12299 #. and for a MAP_PRIVATE, MAP_ANONYMOUS mapping,
12301 #. always fails with the error
12303 #. type: Plain text
12304 #: build/C/man2/mincore.2:166
12306 "Before kernel 2.6.21, B<mincore>() did not return correct information for "
12307 "B<MAP_PRIVATE> mappings, or for nonlinear mappings (established using "
12308 "B<remap_file_pages>(2))."
12311 #. type: Plain text
12312 #: build/C/man2/mincore.2:169
12313 msgid "B<mlock>(2), B<mmap>(2)"
12317 #: build/C/man2/mkdir.2:9
12323 #: build/C/man2/mkdir.2:9
12328 #. type: Plain text
12329 #: build/C/man2/mkdir.2:12
12330 msgid "mkdir - create a directory"
12333 #. .B #include <unistd.h>
12334 #. type: Plain text
12335 #: build/C/man2/mkdir.2:17
12338 "B<#include E<lt>sys/stat.hE<gt>>\n"
12339 "B<#include E<lt>sys/types.hE<gt>>\n"
12342 #. type: Plain text
12343 #: build/C/man2/mkdir.2:19
12345 msgid "B<int mkdir(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
12348 #. type: Plain text
12349 #: build/C/man2/mkdir.2:24
12350 msgid "B<mkdir>() attempts to create a directory named I<pathname>."
12353 #. type: Plain text
12354 #: build/C/man2/mkdir.2:34
12356 "The argument I<mode> specifies the permissions to use. It is modified by "
12357 "the process's I<umask> in the usual way: the permissions of the created "
12358 "directory are (I<mode> & ~I<umask> & 0777). Other mode bits of the created "
12359 "directory depend on the operating system. For Linux, see below."
12362 #. type: Plain text
12363 #: build/C/man2/mkdir.2:44
12365 "The newly created directory will be owned by the effective user ID of the "
12366 "process. If the directory containing the file has the set-group-ID bit set, "
12367 "or if the file system is mounted with BSD group semantics (I<mount -o "
12368 "bsdgroups> or, synonymously I<mount -o grpid>), the new directory will "
12369 "inherit the group ownership from its parent; otherwise it will be owned by "
12370 "the effective group ID of the process."
12373 #. type: Plain text
12374 #: build/C/man2/mkdir.2:47
12376 "If the parent directory has the set-group-ID bit set then so will the newly "
12377 "created directory."
12380 #. type: Plain text
12381 #: build/C/man2/mkdir.2:52
12383 "B<mkdir>() returns zero on success, or -1 if an error occurred (in which "
12384 "case, I<errno> is set appropriately)."
12387 #. type: Plain text
12388 #: build/C/man2/mkdir.2:61
12390 "The parent directory does not allow write permission to the process, or one "
12391 "of the directories in I<pathname> did not allow search permission. (See "
12392 "also B<path_resolution>(7).)"
12396 #: build/C/man2/mkdir.2:61
12401 #. type: Plain text
12402 #: build/C/man2/mkdir.2:68
12404 "I<pathname> already exists (not necessarily as a directory). This includes "
12405 "the case where I<pathname> is a symbolic link, dangling or not."
12409 #: build/C/man2/mkdir.2:75
12414 #. type: Plain text
12415 #: build/C/man2/mkdir.2:79
12416 msgid "The number of links to the parent directory would exceed B<LINK_MAX>."
12419 #. type: Plain text
12420 #: build/C/man2/mkdir.2:82
12421 msgid "I<pathname> was too long."
12424 #. type: Plain text
12425 #: build/C/man2/mkdir.2:87
12427 "A directory component in I<pathname> does not exist or is a dangling "
12432 #: build/C/man2/mkdir.2:90 build/C/man2/mkdir.2:95
12437 #. type: Plain text
12438 #: build/C/man2/mkdir.2:95
12439 msgid "The device containing I<pathname> has no room for the new directory."
12442 #. type: Plain text
12443 #: build/C/man2/mkdir.2:99
12445 "The new directory cannot be created because the user's disk quota is "
12449 #. type: Plain text
12450 #: build/C/man2/mkdir.2:109
12452 "The file system containing I<pathname> does not support the creation of "
12456 #. type: Plain text
12457 #: build/C/man2/mkdir.2:113
12458 msgid "I<pathname> refers to a file on a read-only file system."
12461 #. SVr4 documents additional EIO, EMULTIHOP
12462 #. type: Plain text
12463 #: build/C/man2/mkdir.2:116
12464 msgid "SVr4, BSD, POSIX.1-2001."
12467 #. type: Plain text
12468 #: build/C/man2/mkdir.2:124
12470 "Under Linux apart from the permission bits, only the B<S_ISVTX> mode bit is "
12471 "honored. That is, under Linux the created directory actually gets mode "
12472 "(I<mode> & ~I<umask> & 01777). See also B<stat>(2)."
12475 #. type: Plain text
12476 #: build/C/man2/mkdir.2:128
12478 "There are many infelicities in the protocol underlying NFS. Some of these "
12479 "affect B<mkdir>()."
12482 #. type: Plain text
12483 #: build/C/man2/mkdir.2:140
12485 "B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mkdirat>(2), B<mknod>(2), "
12486 "B<mount>(2), B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
12487 "B<path_resolution>(7)"
12491 #: build/C/man2/nice.2:31
12496 #. type: Plain text
12497 #: build/C/man2/nice.2:34
12498 msgid "nice - change process priority"
12501 #. type: Plain text
12502 #: build/C/man2/nice.2:38
12503 msgid "B<int nice(int >I<inc>B<);>"
12506 #. type: Plain text
12507 #: build/C/man2/nice.2:46
12508 msgid "B<nice>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
12511 #. type: Plain text
12512 #: build/C/man2/nice.2:56
12514 "B<nice>() adds I<inc> to the nice value for the calling process. (A higher "
12515 "nice value means a low priority.) Only the super\\%user may specify a "
12516 "negative increment, or priority increase. The range for nice values is "
12517 "described in B<getpriority>(2)."
12520 #. type: Plain text
12521 #: build/C/man2/nice.2:61
12523 "On success, the new nice value is returned (but see NOTES below). On error, "
12524 "-1 is returned, and I<errno> is set appropriately."
12527 #. type: Plain text
12528 #: build/C/man2/nice.2:75
12530 "The calling process attempted to increase its priority by supplying a "
12531 "negative I<inc> but has insufficient privileges. Under Linux the "
12532 "B<CAP_SYS_NICE> capability is required. (But see the discussion of the "
12533 "B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)"
12536 #. type: Plain text
12537 #: build/C/man2/nice.2:82
12539 "SVr4, 4.3BSD, POSIX.1-2001. However, the Linux and (g)libc (earlier than "
12540 "glibc 2.2.4) return value is nonstandard, see below. SVr4 documents an "
12541 "additional B<EINVAL> error code."
12544 #. type: Plain text
12545 #: build/C/man2/nice.2:92
12547 "SUSv2 and POSIX.1-2001 specify that B<nice>() should return the new nice "
12548 "value. However, the Linux syscall and the B<nice>() library function "
12549 "provided in older versions of (g)libc (earlier than glibc 2.2.4) return 0 on "
12550 "success. The new nice value can be found using B<getpriority>(2)."
12553 #. type: Plain text
12554 #: build/C/man2/nice.2:105
12556 "Since glibc 2.2.4, B<nice>() is implemented as a library function that "
12557 "calls B<getpriority>(2) to obtain the new nice value to be returned to the "
12558 "caller. With this implementation, a successful call can legitimately return "
12559 "-1. To reliably detect an error, set I<errno> to 0 before the call, and "
12560 "check its value when B<nice>() returns -1."
12563 #. type: Plain text
12564 #: build/C/man2/nice.2:112
12566 "B<nice>(1), B<renice>(1), B<fork>(2), B<getpriority>(2), B<setpriority>(2), "
12567 "B<capabilities>(7)"
12571 #: build/C/man2/pread.2:23
12577 #: build/C/man2/pread.2:23
12582 #. type: Plain text
12583 #: build/C/man2/pread.2:26
12584 msgid "pread, pwrite - read from or write to a file descriptor at a given offset"
12587 #. type: Plain text
12588 #: build/C/man2/pread.2:31
12590 "B<ssize_t pread(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<, off_t "
12594 #. type: Plain text
12595 #: build/C/man2/pread.2:34
12597 "B<ssize_t pwrite(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<, "
12598 "off_t >I<offset>B<);>"
12601 #. type: Plain text
12602 #: build/C/man2/pread.2:44
12603 msgid "B<pread>(), B<pwrite>():"
12606 #. type: Plain text
12607 #: build/C/man2/pread.2:46
12608 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500"
12611 #. type: Plain text
12612 #: build/C/man2/pread.2:62
12614 "B<pread>() reads up to I<count> bytes from file descriptor I<fd> at offset "
12615 "I<offset> (from the start of the file) into the buffer starting at I<buf>. "
12616 "The file offset is not changed."
12619 #. type: Plain text
12620 #: build/C/man2/pread.2:73
12622 "B<pwrite>() writes up to I<count> bytes from the buffer starting at I<buf> "
12623 "to the file descriptor I<fd> at offset I<offset>. The file offset is not "
12627 #. type: Plain text
12628 #: build/C/man2/pread.2:77
12629 msgid "The file referenced by I<fd> must be capable of seeking."
12632 #. type: Plain text
12633 #: build/C/man2/pread.2:87
12635 "On success, the number of bytes read or written is returned (zero indicates "
12636 "that nothing was written, in the case of B<pwrite>(), or end of file, in the "
12637 "case of B<pread>()), or -1 on error, in which case I<errno> is set to "
12638 "indicate the error."
12641 #. type: Plain text
12642 #: build/C/man2/pread.2:102
12644 "B<pread>() can fail and set I<errno> to any error specified for B<read>(2) "
12645 "or B<lseek>(2). B<pwrite>() can fail and set I<errno> to any error "
12646 "specified for B<write>(2) or B<lseek>(2)."
12649 #. type: Plain text
12650 #: build/C/man2/pread.2:113
12652 "The B<pread>() and B<pwrite>() system calls were added to Linux in version "
12653 "2.1.60; the entries in the i386 system call table were added in 2.1.69. C "
12654 "library support (including emulation using B<lseek>(2) on older kernels "
12655 "without the system calls) was added in glibc 2.1."
12658 #. type: Plain text
12659 #: build/C/man2/pread.2:131
12661 "On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>() "
12662 "became B<pread64>(), and B<pwrite>() became B<pwrite64>(). The system call "
12663 "numbers remained the same. The glibc B<pread>() and B<pwrite>() wrapper "
12664 "functions transparently deal with the change."
12667 #. type: Plain text
12668 #: build/C/man2/pread.2:136
12669 msgid "B<lseek>(2), B<read>(2), B<readv>(2), B<write>(2)"
12673 #: build/C/man2/set_thread_area.2:7
12675 msgid "SET_THREAD_AREA"
12678 #. type: Plain text
12679 #: build/C/man2/set_thread_area.2:10
12680 msgid "set_thread_area - Set a Thread Local Storage (TLS) area"
12683 #. type: Plain text
12684 #: build/C/man2/set_thread_area.2:16
12685 msgid "B<int set_thread_area(struct user_desc *>I<u_info>B<);>"
12688 #. type: Plain text
12689 #: build/C/man2/set_thread_area.2:29
12691 "B<set_thread_area>() sets an entry in the current thread's Thread Local "
12692 "Storage (TLS) array. The TLS array entry set by B<set_thread_area>() "
12693 "corresponds to the value of I<u_info-E<gt>entry_number> passed in by the "
12694 "user. If this value is in bounds, B<set_thread_area>() copies the TLS "
12695 "descriptor pointed to by I<u_info> into the thread's TLS array."
12698 #. type: Plain text
12699 #: build/C/man2/set_thread_area.2:40
12701 "When B<set_thread_area>() is passed an I<entry_number> of -1, it uses a "
12702 "free TLS entry. If B<set_thread_area>() finds a free TLS entry, the value "
12703 "of I<u_info-E<gt>entry_number> is set upon return to show which entry was "
12707 #. type: Plain text
12708 #: build/C/man2/set_thread_area.2:45
12710 "B<set_thread_area>() returns 0 on success, and -1 on failure, with I<errno> "
12711 "set appropriately."
12715 #: build/C/man2/set_thread_area.2:52
12720 #. type: Plain text
12721 #: build/C/man2/set_thread_area.2:55
12722 msgid "A free TLS entry could not be located."
12725 #. type: Plain text
12726 #: build/C/man2/set_thread_area.2:59
12727 msgid "A version of B<set_thread_area>() first appeared in Linux 2.5.29."
12730 #. type: Plain text
12731 #: build/C/man2/set_thread_area.2:63
12733 "B<set_thread_area>() is Linux-specific and should not be used in programs "
12734 "that are intended to be portable."
12737 #. type: Plain text
12738 #: build/C/man2/set_thread_area.2:69
12739 msgid "B<get_thread_area>(2)"
12743 #: build/C/man2/setup.2:34
12749 #: build/C/man2/setup.2:34 build/C/man2/uname.2:25
12754 #. type: Plain text
12755 #: build/C/man2/setup.2:37
12756 msgid "setup - setup devices and file systems, mount root file system"
12759 #. type: Plain text
12760 #: build/C/man2/setup.2:41
12761 msgid "B<int setup(void);>"
12764 #. type: Plain text
12765 #: build/C/man2/setup.2:47
12767 "B<setup>() is called once from within I<linux/init/main.c>. It calls "
12768 "initialization functions for devices and file systems configured into the "
12769 "kernel and then mounts the root file system."
12772 #. type: Plain text
12773 #: build/C/man2/setup.2:53
12775 "No user process may call B<setup>(). Any user process, even a process with "
12776 "superuser permission, will receive B<EPERM>."
12779 #. type: Plain text
12780 #: build/C/man2/setup.2:56
12781 msgid "B<setup>() always returns -1 for a user process."
12784 #. type: Plain text
12785 #: build/C/man2/setup.2:62
12786 msgid "Since Linux 2.1.121, no such function exists anymore."
12789 #. type: Plain text
12790 #: build/C/man2/setup.2:65
12792 "This function is Linux-specific, and should not be used in programs intended "
12793 "to be portable, or indeed in any programs at all."
12796 #. type: Plain text
12797 #: build/C/man2/setup.2:72
12799 "The calling sequence varied: at some times I<setup ()> has had a single "
12800 "argument I<void *BIOS> and at other times a single argument I<int magic>."
12804 #: build/C/man5/shells.5:27
12810 #: build/C/man5/shells.5:27
12815 #. type: Plain text
12816 #: build/C/man5/shells.5:30
12817 msgid "shells - pathnames of valid login shells"
12820 #. type: Plain text
12821 #: build/C/man5/shells.5:36
12823 "I</etc/shells> is a text file which contains the full pathnames of valid "
12824 "login shells. This file is consulted by B<chsh>(1) and available to be "
12825 "queried by other programs."
12828 #. type: Plain text
12829 #: build/C/man5/shells.5:41
12831 "Be aware that there are programs which consult this file to find out if a "
12832 "user is a normal user. E.g.: ftp daemons traditionally disallow access to "
12833 "users with shells not included in this file."
12836 #. type: Plain text
12837 #: build/C/man5/shells.5:43
12838 msgid "I</etc/shells>"
12841 #. type: Plain text
12842 #: build/C/man5/shells.5:46
12843 msgid "I</etc/shells> may contain the following paths:"
12846 #. type: Plain text
12847 #: build/C/man5/shells.5:49
12851 #. type: Plain text
12852 #: build/C/man5/shells.5:51
12853 msgid "I</bin/csh>"
12856 #. type: Plain text
12857 #: build/C/man5/shells.5:55
12858 msgid "B<chsh>(1), B<getusershell>(3)"
12862 #: build/C/man3/sleep.3:24
12867 #. type: Plain text
12868 #: build/C/man3/sleep.3:27
12869 msgid "sleep - Sleep for the specified number of seconds"
12872 #. type: Plain text
12873 #: build/C/man3/sleep.3:32
12875 msgid "B<unsigned int sleep(unsigned int >I<seconds>B<);>\n"
12878 #. type: Plain text
12879 #: build/C/man3/sleep.3:38
12881 "B<sleep>() makes the calling thread sleep until I<seconds> seconds have "
12882 "elapsed or a signal arrives which is not ignored."
12885 #. type: Plain text
12886 #: build/C/man3/sleep.3:42
12888 "Zero if the requested time has elapsed, or the number of seconds left to "
12889 "sleep, if the call was interrupted by a signal handler."
12892 #. type: Plain text
12893 #: build/C/man3/sleep.3:53
12895 "B<sleep>() may be implemented using B<SIGALRM>; mixing calls to B<alarm>(2) "
12896 "and B<sleep>() is a bad idea."
12899 #. type: Plain text
12900 #: build/C/man3/sleep.3:59
12902 "Using B<longjmp>(3) from a signal handler or modifying the handling of "
12903 "B<SIGALRM> while sleeping will cause undefined results."
12906 #. type: Plain text
12907 #: build/C/man3/sleep.3:64
12908 msgid "B<alarm>(2), B<nanosleep>(2), B<signal>(2), B<signal>(7)"
12912 #: build/C/man3/swab.3:29
12918 #: build/C/man3/swab.3:29
12923 #. type: Plain text
12924 #: build/C/man3/swab.3:32
12925 msgid "swab - swap adjacent bytes"
12928 #. type: Plain text
12929 #: build/C/man3/swab.3:36
12932 "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */\n"
12933 "B<#include E<lt>unistd.hE<gt>>\n"
12936 #. type: Plain text
12937 #: build/C/man3/swab.3:38
12939 msgid "B<void swab(const void *>I<from>B<, void *>I<to>B<, ssize_t >I<n>B<);>\n"
12942 #. type: Plain text
12943 #: build/C/man3/swab.3:47
12945 "The B<swab>() function copies I<n> bytes from the array pointed to by "
12946 "I<from> to the array pointed to by I<to>, exchanging adjacent even and odd "
12947 "bytes. This function is used to exchange data between machines that have "
12948 "different low/high byte ordering."
12951 #. type: Plain text
12952 #: build/C/man3/swab.3:52
12954 "This function does nothing when I<n> is negative. When I<n> is positive and "
12955 "odd, it handles I<n-1> bytes as above, and does something unspecified with "
12956 "the last byte. (In other words, I<n> should be even.)"
12959 #. type: Plain text
12960 #: build/C/man3/swab.3:56
12961 msgid "The B<swab>() function returns no value."
12964 #. type: Plain text
12965 #: build/C/man3/swab.3:60
12966 msgid "B<bstring>(3)"
12970 #: build/C/man2/swapon.2:37
12976 #: build/C/man2/swapon.2:37
12981 #. type: Plain text
12982 #: build/C/man2/swapon.2:40
12983 msgid "swapon, swapoff - start/stop swapping to file/device"
12986 #. type: Plain text
12987 #: build/C/man2/swapon.2:44
12988 msgid "B<#include E<lt>asm/page.hE<gt> /* to find PAGE_SIZE */>"
12991 #. type: Plain text
12992 #: build/C/man2/swapon.2:46
12993 msgid "B<#include E<lt>sys/swap.hE<gt>>"
12996 #. type: Plain text
12997 #: build/C/man2/swapon.2:48
12998 msgid "B<int swapon(const char *>I<path>B<, int >I<swapflags>B<);>"
13001 #. type: Plain text
13002 #: build/C/man2/swapon.2:50
13003 msgid "B<int swapoff(const char *>I<path>B<);>"
13006 #. type: Plain text
13007 #: build/C/man2/swapon.2:57
13009 "B<swapon>() sets the swap area to the file or block device specified by "
13010 "I<path>. B<swapoff>() stops swapping to the file or block device specified "
13014 #. type: Plain text
13015 #: build/C/man2/swapon.2:67
13017 "If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>() "
13018 "I<swapflags> argument, the new swap area will have a higher priority than "
13019 "default. The priority is encoded within I<swapflags> as:"
13022 #. type: Plain text
13023 #: build/C/man2/swapon.2:70
13024 msgid "I<(prio E<lt>E<lt> SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK>"
13027 #. type: Plain text
13028 #: build/C/man2/swapon.2:82
13030 "If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>() "
13031 "I<swapflags> argument, freed swap pages will be discarded before they are "
13032 "reused, if the swap device supports the discard or trim operation. (This "
13033 "may improve performance on some Solid State Devices, but often it does not.) "
13037 #. type: Plain text
13038 #: build/C/man2/swapon.2:86
13040 "These functions may only be used by a privileged process (one having the "
13041 "B<CAP_SYS_ADMIN> capability)."
13045 #: build/C/man2/swapon.2:86
13050 #. type: Plain text
13051 #: build/C/man2/swapon.2:91
13053 "Each swap area has a priority, either high or low. The default priority is "
13054 "low. Within the low-priority areas, newer areas are even lower priority "
13055 "than older areas."
13058 #. type: Plain text
13059 #: build/C/man2/swapon.2:97
13061 "All priorities set with I<swapflags> are high-priority, higher than "
13062 "default. They may have any nonnegative value chosen by the caller. Higher "
13063 "numbers mean higher priority."
13066 #. type: Plain text
13067 #: build/C/man2/swapon.2:105
13069 "Swap pages are allocated from areas in priority order, highest priority "
13070 "first. For areas with different priorities, a higher-priority area is "
13071 "exhausted before using a lower-priority area. If two or more areas have the "
13072 "same priority, and it is the highest priority available, pages are allocated "
13073 "on a round-robin basis between them."
13076 #. type: Plain text
13077 #: build/C/man2/swapon.2:108
13079 "As of Linux 1.3.6, the kernel usually follows these rules, but there are "
13083 #. type: Plain text
13084 #: build/C/man2/swapon.2:121
13086 "(for B<swapon>()) The specified I<path> is already being used as a swap "
13090 #. type: Plain text
13091 #: build/C/man2/swapon.2:133
13093 "The file I<path> exists, but refers neither to a regular file nor to a block "
13094 "device; or, for B<swapon>(), the indicated path does not contain a valid "
13095 "swap signature or resides on an in-memory file system like tmpfs; or, for "
13096 "B<swapoff>(), I<path> is not currently a swap area."
13099 #. type: Plain text
13100 #: build/C/man2/swapon.2:141
13101 msgid "The file I<path> does not exist."
13104 #. type: Plain text
13105 #: build/C/man2/swapon.2:144
13106 msgid "The system has insufficient memory to start swapping."
13109 #. type: Plain text
13110 #: build/C/man2/swapon.2:151
13112 "The caller does not have the B<CAP_SYS_ADMIN> capability. Alternatively, "
13113 "the maximum number of swap files are already in use; see NOTES below."
13116 #. type: Plain text
13117 #: build/C/man2/swapon.2:157
13119 "These functions are Linux-specific and should not be used in programs "
13120 "intended to be portable. The second I<swapflags> argument was introduced in "
13124 #. type: Plain text
13125 #: build/C/man2/swapon.2:160
13126 msgid "The partition or path must be prepared with B<mkswap>(8)."
13129 #. type: Plain text
13130 #: build/C/man2/swapon.2:180
13132 "There is an upper limit on the number of swap files that may be used, "
13133 "defined by the kernel constant B<MAX_SWAPFILES>. Before kernel 2.4.10, "
13134 "B<MAX_SWAPFILES> has the value 8; since kernel 2.4.10, it has the value 32. "
13135 "Since kernel 2.6.18, the limit is decreased by 2 (thus: 30) if the kernel "
13136 "is built with the B<CONFIG_MIGRATION> option (which reserves two swap table "
13137 "entries for the page migration features of B<mbind>(2) and "
13138 "B<migrate_pages>(2)). Since kernel 2.6.32, the limit is further decreased "
13139 "by 1 if the kernel is built with the B<CONFIG_MEMORY_FAILURE> option."
13142 #. To be precise: 2.6.35.5
13143 #. type: Plain text
13144 #: build/C/man2/swapon.2:191
13146 "Discard of swap pages was introduced in kernel 2.6.29, then made conditional "
13147 "on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the "
13148 "entire swap area when B<swapon>() is called, even if that flag bit is not "
13152 #. type: Plain text
13153 #: build/C/man2/swapon.2:195
13154 msgid "B<mkswap>(8), B<swapoff>(8), B<swapon>(8)"
13158 #: build/C/man2/syscall.2:38
13163 #. type: Plain text
13164 #: build/C/man2/syscall.2:41
13165 msgid "syscall - indirect system call"
13168 #. type: Plain text
13169 #: build/C/man2/syscall.2:46
13172 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
13173 "B<#include E<lt>unistd.hE<gt>>\n"
13174 "B<#include E<lt>sys/syscall.hE<gt> >/* For SYS_xxx definitions */\n"
13177 #. type: Plain text
13178 #: build/C/man2/syscall.2:48
13180 msgid "B<int syscall(int >I<number>B<, ...);>\n"
13183 #. type: Plain text
13184 #: build/C/man2/syscall.2:57
13186 "B<syscall>() performs the system call whose assembly language interface has "
13187 "the specified I<number> with the specified arguments. Symbolic constants "
13188 "for system calls can be found in the header file I<E<lt>sys/syscall.hE<gt>>."
13191 #. type: Plain text
13192 #: build/C/man2/syscall.2:63
13194 "The return value is defined by the system call being invoked. In general, a "
13195 "0 return value indicates success. A -1 return value indicates an error, and "
13196 "an error code is stored in I<errno>."
13199 #. type: Plain text
13200 #: build/C/man2/syscall.2:67
13201 msgid "B<syscall>() first appeared in 4BSD."
13204 #. type: Plain text
13205 #: build/C/man2/syscall.2:73
13208 "#define _GNU_SOURCE\n"
13209 "#include E<lt>unistd.hE<gt>\n"
13210 "#include E<lt>sys/syscall.hE<gt>\n"
13211 "#include E<lt>sys/types.hE<gt>\n"
13214 #. type: Plain text
13215 #: build/C/man2/syscall.2:78
13219 "main(int argc, char *argv[])\n"
13224 #. type: Plain text
13225 #: build/C/man2/syscall.2:81
13228 " tid = syscall(SYS_gettid);\n"
13232 #. type: Plain text
13233 #: build/C/man2/syscall.2:86
13234 msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2)"
13238 #: build/C/man2/syscalls.2:29
13244 #: build/C/man2/syscalls.2:29
13249 #. type: Plain text
13250 #: build/C/man2/syscalls.2:32
13251 msgid "syscalls - Linux system calls"
13254 #. type: Plain text
13255 #: build/C/man2/syscalls.2:34
13256 msgid "Linux system calls."
13259 #. type: Plain text
13260 #: build/C/man2/syscalls.2:37
13262 "The system call is the fundamental interface between an application and the "
13267 #: build/C/man2/syscalls.2:37
13269 msgid "System calls and library wrapper functions"
13272 #. type: Plain text
13273 #: build/C/man2/syscalls.2:47
13275 "System calls are generally not invoked directly, but rather via wrapper "
13276 "functions in glibc (or perhaps some other library). For details of direct "
13277 "invocation of a system call, see B<intro>(2). Often, but not always, the "
13278 "name of the wrapper function is the same as the name of the system call that "
13279 "it invokes. For example, glibc contains a function B<truncate>() which "
13280 "invokes the underlying \"truncate\" system call."
13283 #. type: Plain text
13284 #: build/C/man2/syscalls.2:65
13286 "Often the glibc wrapper function is quite thin, doing little work other than "
13287 "copying arguments to the right registers before invoking the system call, "
13288 "and then setting I<errno> appropriately after the system call has returned. "
13289 "(These are the same steps that are performed by B<syscall>(2), which can be "
13290 "used to invoke system calls for which no wrapper function is provided.) "
13291 "Note: system calls indicate a failure by returning a negative error number "
13292 "to the caller; when this happens, the wrapper function negates the returned "
13293 "error number (to make it positive), copies it to I<errno>, and returns -1 to "
13294 "the caller of the wrapper."
13297 #. type: Plain text
13298 #: build/C/man2/syscalls.2:77
13300 "Sometimes, however, the wrapper function does some extra work before "
13301 "invoking the system call. For example, nowadays there are (for reasons "
13302 "described below) two related system calls, B<truncate>(2) and "
13303 "B<truncate64>(2), and the glibc B<truncate>() wrapper function checks which "
13304 "of those system calls are provided by the kernel and determines which should "
13309 #: build/C/man2/syscalls.2:77
13311 msgid "System call list"
13314 #. type: Plain text
13315 #: build/C/man2/syscalls.2:85
13317 "Below is a list of those system calls that are common to most platforms. In "
13318 "the list, the I<Kernel> column indicates the kernel version for those system "
13319 "calls that were new in Linux 2.2, or have appeared since that kernel "
13320 "version. Note the following points:"
13323 #. type: Plain text
13324 #: build/C/man2/syscalls.2:88
13326 "Where no kernel version is indicated, the system call appeared in kernel 1.0 "
13330 #. type: Plain text
13331 #: build/C/man2/syscalls.2:94
13333 "Where a system call is marked \"1.2\" this means the system call probably "
13334 "appeared in a 1.1.x kernel version, and first appeared in a stable kernel "
13335 "with 1.2. (Development of the 1.2 kernel was initiated from a branch of "
13336 "kernel 1.0.6 via the 1.1.x unstable kernel series.)"
13339 #. Was kernel 2.0 started from a branch of 1.2.10?
13340 #. At least from the timestamps of the tarballs of
13341 #. of 1.2.10 and 1.3.0, that's how it looks, but in
13342 #. fact the diff doesn't seem very clear, the
13343 #. 1.3.0 .tar.bz is much bigger (2.0 MB) than the
13344 #. 1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
13345 #. timestamps of some files in 1.3.0 seem to be older
13346 #. than those in 1.2.10. All of this suggests
13347 #. that there might not have been a clean branch point.
13348 #. type: Plain text
13349 #: build/C/man2/syscalls.2:110
13351 "Where a system call is marked \"2.0\" this means the system call probably "
13352 "appeared in a 1.3.x kernel version, and first appeared in a stable kernel "
13353 "with 2.0. (Development of the 2.0 kernel was initiated from a branch of "
13354 "kernel 1.2.x, somewhere around 1.2.10, via the 1.3.x unstable kernel "
13358 #. type: Plain text
13359 #: build/C/man2/syscalls.2:116
13361 "Where a system call is marked \"2.2\" this means the system call probably "
13362 "appeared in a 2.1.x kernel version, and first appeared in a stable kernel "
13363 "with 2.2.0. (Development of the 2.2 kernel was initiated from a branch of "
13364 "kernel 2.0.21 via the 2.1.x unstable kernel series.)"
13367 #. type: Plain text
13368 #: build/C/man2/syscalls.2:122
13370 "Where a system call is marked \"2.4\" this means the system call probably "
13371 "appeared in a 2.3.x kernel version, and first appeared in a stable kernel "
13372 "with 2.4.0. (Development of the 2.4 kernel was initiated from a branch of "
13373 "kernel 2.2.8 via the 2.3.x unstable kernel series.)"
13376 #. type: Plain text
13377 #: build/C/man2/syscalls.2:128
13379 "Where a system call is marked \"2.6\" this means the system call probably "
13380 "appeared in a 2.5.x kernel version, and first appeared in a stable kernel "
13381 "with 2.6.0. (Development of kernel 2.6 was initiated from a branch of "
13382 "kernel 2.4.15 via the 2.5.x unstable kernel series.)"
13385 #. type: Plain text
13386 #: build/C/man2/syscalls.2:135
13388 "Starting with kernel 2.6.0, the development model changed, and new system "
13389 "calls may appear in each 2.6.x release. In this case, the exact version "
13390 "number where the system call appeared is shown. This convention continues "
13391 "with the 3.x kernel series, which followed on from kernel 2.6.39."
13394 #. type: Plain text
13395 #: build/C/man2/syscalls.2:143
13397 "In some cases, a system call was added to a stable kernel series after it "
13398 "branched from the previous stable kernel series, and then backported into "
13399 "the earlier stable kernel series. For example some system calls that "
13400 "appeared in 2.6.x were also backported into a 2.4.x release after 2.4.15. "
13401 "When this is so, the version where the system call appeared in both of the "
13402 "major kernel series is listed."
13406 #. Looking at scripts/checksyscalls.sh in the kernel source is
13407 #. instructive about i386 specifics.
13408 #. type: Plain text
13409 #: build/C/man2/syscalls.2:150
13411 "The list of system calls that are available as at kernel 3.1 (or in a few "
13412 "cases only on older kernels) is as follows:"
13416 #: build/C/man2/syscalls.2:154
13418 msgid "B<System call>\tB<Kernel>\tB<Notes>\n"
13422 #: build/C/man2/syscalls.2:156
13424 msgid "B<_llseek>(2)\t1.2\n"
13428 #: build/C/man2/syscalls.2:157
13430 msgid "B<_newselect>(2)\n"
13434 #: build/C/man2/syscalls.2:158
13436 msgid "B<_sysctl>(2)\n"
13440 #: build/C/man2/syscalls.2:159
13442 msgid "B<accept>(2)\n"
13446 #: build/C/man2/syscalls.2:160
13448 msgid "B<accept4>(2)\t2.6.28\n"
13452 #: build/C/man2/syscalls.2:161
13454 msgid "B<access>(2)\n"
13458 #: build/C/man2/syscalls.2:162
13460 msgid "B<acct>(2)\n"
13464 #: build/C/man2/syscalls.2:163
13466 msgid "B<add_key>(2)\t2.6.11\n"
13470 #: build/C/man2/syscalls.2:164
13472 msgid "B<adjtimex>(2)\n"
13476 #: build/C/man2/syscalls.2:165
13478 msgid "B<afs_syscall>(2)\t\tNot implemented\n"
13482 #: build/C/man2/syscalls.2:166
13484 msgid "B<alarm>(2)\n"
13488 #: build/C/man2/syscalls.2:167
13490 msgid "B<alloc_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
13494 #: build/C/man2/syscalls.2:168
13496 msgid "B<bdflush>(2)\t\tDeprecated (does nothing)\n"
13500 #: build/C/man2/syscalls.2:169
13502 msgid "\t\tsince 2.6\n"
13506 #: build/C/man2/syscalls.2:170
13508 msgid "B<bind>(2)\n"
13512 #: build/C/man2/syscalls.2:171
13514 msgid "B<break>(2)\t\tNot implemented\n"
13518 #: build/C/man2/syscalls.2:172
13520 msgid "B<brk>(2)\n"
13524 #: build/C/man2/syscalls.2:173
13526 msgid "B<cacheflush>(2)\t1.2\tNot on i386\n"
13530 #: build/C/man2/syscalls.2:174
13532 msgid "B<capget>(2)\t2.2\n"
13536 #: build/C/man2/syscalls.2:175
13538 msgid "B<capset>(2)\t2.2\n"
13542 #: build/C/man2/syscalls.2:176
13544 msgid "B<chdir>(2)\n"
13548 #: build/C/man2/syscalls.2:177
13550 msgid "B<chmod>(2)\n"
13554 #: build/C/man2/syscalls.2:178
13556 msgid "B<chown>(2)\n"
13560 #: build/C/man2/syscalls.2:179
13562 msgid "B<chown32>(2)\t2.4\n"
13566 #: build/C/man2/syscalls.2:180
13568 msgid "B<chroot>(2)\n"
13572 #: build/C/man2/syscalls.2:181
13574 msgid "B<clock_adjtime>(2)\t2.6.39\n"
13578 #: build/C/man2/syscalls.2:182
13580 msgid "B<clock_getres>(2)\t2.6\n"
13584 #: build/C/man2/syscalls.2:183
13586 msgid "B<clock_gettime>(2)\t2.6\n"
13590 #: build/C/man2/syscalls.2:184
13592 msgid "B<clock_nanosleep>(2)\t2.6\n"
13596 #: build/C/man2/syscalls.2:185
13598 msgid "B<clock_settime>(2)\t2.6\n"
13602 #: build/C/man2/syscalls.2:186
13604 msgid "B<clone>(2)\n"
13608 #: build/C/man2/syscalls.2:187
13610 msgid "B<close>(2)\n"
13614 #: build/C/man2/syscalls.2:188
13616 msgid "B<connect>(2)\n"
13620 #: build/C/man2/syscalls.2:189
13622 msgid "B<creat>(2)\n"
13626 #: build/C/man2/syscalls.2:190
13628 msgid "B<create_module>(2)\n"
13632 #: build/C/man2/syscalls.2:191
13634 msgid "B<delete_module>(2)\n"
13638 #: build/C/man2/syscalls.2:192
13640 msgid "B<dup>(2)\n"
13644 #: build/C/man2/syscalls.2:193
13646 msgid "B<dup2>(2)\n"
13650 #: build/C/man2/syscalls.2:194
13652 msgid "B<dup3>(2)\t2.6.27\n"
13656 #: build/C/man2/syscalls.2:195
13658 msgid "B<epoll_create>(2)\t2.6\n"
13662 #: build/C/man2/syscalls.2:196
13664 msgid "B<epoll_create1>(2)\t2.6.27\n"
13668 #: build/C/man2/syscalls.2:197
13670 msgid "B<epoll_ctl>(2)\t2.6\n"
13674 #: build/C/man2/syscalls.2:198
13676 msgid "B<epoll_pwait>(2)\t2.6.19\n"
13680 #: build/C/man2/syscalls.2:199
13682 msgid "B<epoll_wait>(2)\t2.6\n"
13686 #: build/C/man2/syscalls.2:200
13688 msgid "B<eventfd>(2)\t2.6.22\n"
13692 #: build/C/man2/syscalls.2:201
13694 msgid "B<eventfd2>(2)\t2.6.27\n"
13698 #: build/C/man2/syscalls.2:202
13700 msgid "B<execve>(2)\n"
13704 #: build/C/man2/syscalls.2:203
13706 msgid "B<exit>(2)\n"
13710 #: build/C/man2/syscalls.2:204
13712 msgid "B<exit_group>(2)\t2.6\n"
13716 #: build/C/man2/syscalls.2:205
13718 msgid "B<faccessat>(2)\t2.6.16\n"
13722 #: build/C/man2/syscalls.2:206
13724 msgid "B<fadvise64>(2)\t2.6\n"
13727 #. Implements \fBposix_fadvise\fP(2)
13729 #: build/C/man2/syscalls.2:208
13731 msgid "B<fadvise64_64>(2)\t2.6\n"
13735 #: build/C/man2/syscalls.2:209
13737 msgid "B<fallocate>(2)\t2.6.23\n"
13741 #: build/C/man2/syscalls.2:210
13743 msgid "B<fanotify_init>(2)\t2.6.37\n"
13747 #: build/C/man2/syscalls.2:211
13749 msgid "B<fanotify_mark>(2)\t2.6.37\n"
13752 #. The fanotify calls were added in Linux 2.6.36,
13753 #. but disabled while the API was finalized.
13755 #: build/C/man2/syscalls.2:214
13757 msgid "B<fchdir>(2)\n"
13761 #: build/C/man2/syscalls.2:215
13763 msgid "B<fchmod>(2)\n"
13767 #: build/C/man2/syscalls.2:216
13769 msgid "B<fchmodat>(2)\t2.6.16\n"
13773 #: build/C/man2/syscalls.2:217
13775 msgid "B<fchown>(2)\n"
13779 #: build/C/man2/syscalls.2:218
13781 msgid "B<fchown32>(2)\t2.4\n"
13785 #: build/C/man2/syscalls.2:219
13787 msgid "B<fchownat>(2)\t2.6.16\n"
13791 #: build/C/man2/syscalls.2:220
13793 msgid "B<fcntl>(2)\n"
13797 #: build/C/man2/syscalls.2:221
13799 msgid "B<fcntl64>(2)\t2.4\n"
13803 #: build/C/man2/syscalls.2:222
13805 msgid "B<fdatasync>(2)\n"
13809 #: build/C/man2/syscalls.2:223
13811 msgid "B<fgetxattr>(2)\t2.6; 2.4.18\n"
13815 #: build/C/man2/syscalls.2:224
13817 msgid "B<flistxattr>(2)\t2.6; 2.4.18\n"
13821 #: build/C/man2/syscalls.2:225
13823 msgid "B<flock>(2)\t2.0\n"
13827 #: build/C/man2/syscalls.2:226
13829 msgid "B<fork>(2)\n"
13833 #: build/C/man2/syscalls.2:227
13835 msgid "B<free_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
13839 #: build/C/man2/syscalls.2:228
13841 msgid "B<fremovexattr>(2)\t2.6; 2.4.18\n"
13845 #: build/C/man2/syscalls.2:229
13847 msgid "B<fsetxattr>(2)\t2.6; 2.4.18\n"
13851 #: build/C/man2/syscalls.2:230
13853 msgid "B<fstat>(2)\n"
13857 #: build/C/man2/syscalls.2:231
13859 msgid "B<fstat64>(2)\t2.4\n"
13863 #: build/C/man2/syscalls.2:232
13865 msgid "B<fstatat64>(2)\t2.6.16\n"
13869 #: build/C/man2/syscalls.2:233
13871 msgid "B<fstatfs>(2)\n"
13875 #: build/C/man2/syscalls.2:234
13877 msgid "B<fstatfs64>(2)\t2.6\n"
13881 #: build/C/man2/syscalls.2:235
13883 msgid "B<fsync>(2)\n"
13887 #: build/C/man2/syscalls.2:236
13889 msgid "B<ftime>(2)\t\tNot implemented\n"
13892 #. Implemented in glibc; see \fBftime\fP(3)
13894 #: build/C/man2/syscalls.2:238
13896 msgid "B<ftruncate>(2)\n"
13900 #: build/C/man2/syscalls.2:239
13902 msgid "B<ftruncate64>(2)\t2.4\n"
13906 #: build/C/man2/syscalls.2:240
13908 msgid "B<futex>(2)\t2.6\n"
13912 #: build/C/man2/syscalls.2:241
13914 msgid "B<futimesat>(2)\t2.6.16\n"
13918 #: build/C/man2/syscalls.2:242
13920 msgid "B<get_kernel_syms>(2)\n"
13924 #: build/C/man2/syscalls.2:243
13926 msgid "B<get_mempolicy>(2)\t2.6.6\n"
13930 #: build/C/man2/syscalls.2:244
13932 msgid "B<get_robust_list>(2)\t2.6.17\n"
13936 #: build/C/man2/syscalls.2:245
13938 msgid "B<get_thread_area>(2)\t2.6\n"
13942 #: build/C/man2/syscalls.2:246
13944 msgid "B<getcpu>(2)\t2.6.19\n"
13948 #: build/C/man2/syscalls.2:247
13950 msgid "B<getcwd>(2)\t2.2\n"
13954 #: build/C/man2/syscalls.2:248
13956 msgid "B<getdents>(2)\t2.0\n"
13960 #: build/C/man2/syscalls.2:249
13962 msgid "B<getdents64>(2)\t2.4\n"
13966 #: build/C/man2/syscalls.2:250
13968 msgid "B<getegid>(2)\n"
13972 #: build/C/man2/syscalls.2:251
13974 msgid "B<getegid32>(2)\t2.4\n"
13978 #: build/C/man2/syscalls.2:252
13980 msgid "B<geteuid>(2)\n"
13984 #: build/C/man2/syscalls.2:253
13986 msgid "B<geteuid32>(2)\t2.4\n"
13990 #: build/C/man2/syscalls.2:254
13992 msgid "B<getgid>(2)\n"
13996 #: build/C/man2/syscalls.2:255
13998 msgid "B<getgid32>(2)\t2.4\n"
14002 #: build/C/man2/syscalls.2:256
14004 msgid "B<getgroups>(2)\n"
14008 #: build/C/man2/syscalls.2:257
14010 msgid "B<getgroups32>(2)\t2.4\n"
14014 #: build/C/man2/syscalls.2:258
14016 msgid "B<getitimer>(2)\n"
14020 #: build/C/man2/syscalls.2:259
14022 msgid "B<getpeername>(2)\n"
14026 #: build/C/man2/syscalls.2:260
14028 msgid "B<getpagesize>(2)\t2.0\tNot on i386\n"
14032 #: build/C/man2/syscalls.2:261
14034 msgid "B<getpgid>(2)\n"
14038 #: build/C/man2/syscalls.2:262
14040 msgid "B<getpgrp>(2)\n"
14044 #: build/C/man2/syscalls.2:263
14046 msgid "B<getpid>(2)\n"
14050 #: build/C/man2/syscalls.2:264
14052 msgid "B<getpmsg>(2)\t\tNot implemented\n"
14055 #. Reserved for STREAMS support
14057 #: build/C/man2/syscalls.2:266
14059 msgid "B<getppid>(2)\n"
14063 #: build/C/man2/syscalls.2:267
14065 msgid "B<getpriority>(2)\n"
14069 #: build/C/man2/syscalls.2:268
14071 msgid "B<getresgid>(2)\t2.2\n"
14075 #: build/C/man2/syscalls.2:269
14077 msgid "B<getresgid32>(2)\t2.4\n"
14081 #: build/C/man2/syscalls.2:270
14083 msgid "B<getresuid>(2)\t2.2\n"
14087 #: build/C/man2/syscalls.2:271
14089 msgid "B<getresuid32>(2)\t2.4\n"
14093 #: build/C/man2/syscalls.2:272
14095 msgid "B<getrlimit>(2)\n"
14099 #: build/C/man2/syscalls.2:273
14101 msgid "B<getrusage>(2)\n"
14105 #: build/C/man2/syscalls.2:274
14107 msgid "B<getsid>(2)\t2.0\n"
14111 #: build/C/man2/syscalls.2:275
14113 msgid "B<getsockname>(2)\n"
14117 #: build/C/man2/syscalls.2:276
14119 msgid "B<getsockopt>(2)\n"
14123 #: build/C/man2/syscalls.2:277
14125 msgid "B<gettid>(2)\t2.4.11\n"
14129 #: build/C/man2/syscalls.2:278
14131 msgid "B<gettimeofday>(2)\n"
14135 #: build/C/man2/syscalls.2:279
14137 msgid "B<getuid>(2)\n"
14141 #: build/C/man2/syscalls.2:280
14143 msgid "B<getuid32>(2)\t2.4\n"
14146 #. \fBgetunwind\fP(2) 2.4.8 ia64; DEPRECATED
14148 #: build/C/man2/syscalls.2:282
14150 msgid "B<getxattr>(2)\t2.6; 2.4.18\n"
14154 #: build/C/man2/syscalls.2:283
14156 msgid "B<gtty>(2)\t\tNot implemented\n"
14160 #: build/C/man2/syscalls.2:284
14162 msgid "B<idle>(2)\t\tNot implemented\n"
14166 #: build/C/man2/syscalls.2:285
14168 msgid "B<init_module>(2)\n"
14172 #: build/C/man2/syscalls.2:286
14174 msgid "B<inotify_add_watch>(2)\t2.6.13\n"
14178 #: build/C/man2/syscalls.2:287
14180 msgid "B<inotify_init>(2)\t2.6.13\n"
14184 #: build/C/man2/syscalls.2:288
14186 msgid "B<inotify_init1>(2)\t2.6.27\n"
14190 #: build/C/man2/syscalls.2:289
14192 msgid "B<inotify_rm_watch>(2)\t2.6.13\n"
14196 #: build/C/man2/syscalls.2:290
14198 msgid "B<io_cancel>(2)\t2.6\n"
14202 #: build/C/man2/syscalls.2:291
14204 msgid "B<io_destroy>(2)\t2.6\n"
14208 #: build/C/man2/syscalls.2:292
14210 msgid "B<io_getevents>(2)\t2.6\n"
14214 #: build/C/man2/syscalls.2:293
14216 msgid "B<io_setup>(2)\t2.6\n"
14220 #: build/C/man2/syscalls.2:294
14222 msgid "B<io_submit>(2)\t2.6\n"
14226 #: build/C/man2/syscalls.2:295
14228 msgid "B<ioctl>(2)\n"
14232 #: build/C/man2/syscalls.2:296
14234 msgid "B<ioperm>(2)\n"
14238 #: build/C/man2/syscalls.2:297
14240 msgid "B<iopl>(2)\n"
14244 #: build/C/man2/syscalls.2:298
14246 msgid "B<ioprio_get>(2)\t2.6.13\n"
14250 #: build/C/man2/syscalls.2:299
14252 msgid "B<ioprio_set>(2)\t2.6.13\n"
14256 #: build/C/man2/syscalls.2:300
14258 msgid "B<ipc>(2)\n"
14261 #. Implements System V IPC calls
14263 #: build/C/man2/syscalls.2:302
14265 msgid "B<kexec_load>(2)\t2.6.13\n"
14268 #. The entry in the syscall table was reserved starting in 2.6.7
14269 #. Was named sys_kexec_load() from 2.6.7 to 2.6.16
14271 #: build/C/man2/syscalls.2:305
14273 msgid "B<keyctl>(2)\t2.6.11\n"
14277 #: build/C/man2/syscalls.2:306
14279 msgid "B<kill>(2)\n"
14283 #: build/C/man2/syscalls.2:307
14285 msgid "B<lchown>(2)\t2.2\n"
14289 #: build/C/man2/syscalls.2:308
14291 msgid "B<lchown32>(2)\t2.4\n"
14295 #: build/C/man2/syscalls.2:309
14297 msgid "B<lgetxattr>(2)\t2.6; 2.4.18\n"
14301 #: build/C/man2/syscalls.2:310
14303 msgid "B<link>(2)\n"
14307 #: build/C/man2/syscalls.2:311
14309 msgid "B<linkat>(2)\t2.6.16\n"
14313 #: build/C/man2/syscalls.2:312
14315 msgid "B<listen>(2)\n"
14319 #: build/C/man2/syscalls.2:313
14321 msgid "B<listxattr>(2)\t2.6; 2.4.18\n"
14325 #: build/C/man2/syscalls.2:314
14327 msgid "B<llistxattr>(2)\t2.6; 2.4.18\n"
14331 #: build/C/man2/syscalls.2:315
14333 msgid "B<lock>(2)\t\tNot implemented\n"
14337 #: build/C/man2/syscalls.2:316
14339 msgid "B<lookup_dcookie>(2)\t2.6\n"
14343 #: build/C/man2/syscalls.2:317
14345 msgid "B<lremovexattr>(2)\t2.6; 2.4.18\n"
14349 #: build/C/man2/syscalls.2:318
14351 msgid "B<lseek>(2)\n"
14355 #: build/C/man2/syscalls.2:319
14357 msgid "B<lsetxattr>(2)\t2.6; 2.4.18\n"
14361 #: build/C/man2/syscalls.2:320
14363 msgid "B<lstat>(2)\n"
14367 #: build/C/man2/syscalls.2:321
14369 msgid "B<lstat64>(2)\t2.4\n"
14373 #: build/C/man2/syscalls.2:322
14375 msgid "B<madvise>(2)\t2.4\n"
14379 #: build/C/man2/syscalls.2:323
14381 msgid "B<madvise1>(2)\t2.4\n"
14385 #: build/C/man2/syscalls.2:324
14387 msgid "B<mbind>(2)\t2.6.6\n"
14390 #. \fBmemory_ordering\fP(2) ??? Sparc64
14392 #: build/C/man2/syscalls.2:326
14394 msgid "B<migrate_pages>(2)\t2.6.16\n"
14398 #: build/C/man2/syscalls.2:327
14400 msgid "B<mincore>(2)\t2.4\n"
14404 #: build/C/man2/syscalls.2:328
14406 msgid "B<mkdir>(2)\n"
14410 #: build/C/man2/syscalls.2:329
14412 msgid "B<mkdirat>(2)\t2.6.16\n"
14416 #: build/C/man2/syscalls.2:330
14418 msgid "B<mknod>(2)\n"
14422 #: build/C/man2/syscalls.2:331
14424 msgid "B<mknodat>(2)\t2.6.16\n"
14428 #: build/C/man2/syscalls.2:332
14430 msgid "B<mlock>(2)\n"
14434 #: build/C/man2/syscalls.2:333
14436 msgid "B<mlockall>(2)\n"
14440 #: build/C/man2/syscalls.2:334
14442 msgid "B<mmap>(2)\n"
14446 #: build/C/man2/syscalls.2:335
14448 msgid "B<mmap2>(2)\t2.4\n"
14452 #: build/C/man2/syscalls.2:336
14454 msgid "B<modify_ldt>(2)\n"
14458 #: build/C/man2/syscalls.2:337
14460 msgid "B<mount>(2)\n"
14464 #: build/C/man2/syscalls.2:338
14466 msgid "B<move_pages>(2)\t2.6.18\n"
14470 #: build/C/man2/syscalls.2:339
14472 msgid "B<mprotect>(2)\n"
14476 #: build/C/man2/syscalls.2:340
14478 msgid "B<mpx>(2)\t\tNot implemented\n"
14482 #: build/C/man2/syscalls.2:341
14484 msgid "B<mq_getsetattr>(2)\t2.6.6\n"
14487 #. Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
14489 #: build/C/man2/syscalls.2:343
14491 msgid "B<mq_notify>(2)\t2.6.6\n"
14495 #: build/C/man2/syscalls.2:344
14497 msgid "B<mq_open>(2)\t2.6.6\n"
14501 #: build/C/man2/syscalls.2:345
14503 msgid "B<mq_timedreceive>(2)\t2.6.6\n"
14507 #: build/C/man2/syscalls.2:346
14509 msgid "B<mq_timedsend>(2)\t2.6.6\n"
14513 #: build/C/man2/syscalls.2:347
14515 msgid "B<mq_unlink>(2)\n"
14519 #: build/C/man2/syscalls.2:348
14521 msgid "B<mremap>(2)\t2.0\n"
14525 #: build/C/man2/syscalls.2:349
14527 msgid "B<msgctl>(2)\n"
14531 #: build/C/man2/syscalls.2:350
14533 msgid "B<msgget>(2)\n"
14537 #: build/C/man2/syscalls.2:351
14539 msgid "B<msgrcv>(2)\n"
14543 #: build/C/man2/syscalls.2:352
14545 msgid "B<msgsnd>(2)\n"
14549 #: build/C/man2/syscalls.2:353
14551 msgid "B<msync>(2)\t2.0\n"
14554 #. \fBmultiplexer\fP(2) ?? __NR_multiplexer reserved on
14555 #. PowerPC, but unimplemented?
14557 #: build/C/man2/syscalls.2:356
14559 msgid "B<munlock>(2)\n"
14563 #: build/C/man2/syscalls.2:357
14565 msgid "B<munlockall>(2)\n"
14569 #: build/C/man2/syscalls.2:358
14571 msgid "B<munmap>(2)\n"
14575 #: build/C/man2/syscalls.2:359
14577 msgid "B<name_to_handle_at>(2)\t2.6.39\n"
14581 #: build/C/man2/syscalls.2:360
14583 msgid "B<nanosleep>(2)\t2.0\n"
14587 #: build/C/man2/syscalls.2:361
14589 msgid "B<nfsservctl>(2)\t2.2\tRemoved in 3.1\n"
14593 #: build/C/man2/syscalls.2:362
14595 msgid "B<nice>(2)\n"
14599 #: build/C/man2/syscalls.2:363
14601 msgid "B<oldfstat>(2)\n"
14605 #: build/C/man2/syscalls.2:364
14607 msgid "B<oldlstat>(2)\n"
14611 #: build/C/man2/syscalls.2:365
14613 msgid "B<oldolduname>(2)\n"
14617 #: build/C/man2/syscalls.2:366
14619 msgid "B<oldstat>(2)\n"
14623 #: build/C/man2/syscalls.2:367
14625 msgid "B<olduname>(2)\n"
14629 #: build/C/man2/syscalls.2:368
14631 msgid "B<open>(2)\n"
14635 #: build/C/man2/syscalls.2:369
14637 msgid "B<open_by_handle_at>(2)\t2.6.39\n"
14641 #: build/C/man2/syscalls.2:370
14643 msgid "B<openat>(2)\t2.6.16\n"
14647 #: build/C/man2/syscalls.2:371
14649 msgid "B<pause>(2)\n"
14653 #: build/C/man2/syscalls.2:372
14655 msgid "B<pciconfig_iobase>(2)\t2.2.15; 2.4\tNot on i386\n"
14658 #. Alpha, PowerPC, ARM; not i386
14660 #: build/C/man2/syscalls.2:374
14662 msgid "B<pciconfig_read>(2)\t2.0.26; 2.2\tNot on i386\n"
14665 #. , PowerPC, ARM; not i386
14667 #: build/C/man2/syscalls.2:376
14669 msgid "B<pciconfig_write>(2)\t2.0.26; 2.2\tNot on i386\n"
14672 #. , PowerPC, ARM; not i386
14674 #: build/C/man2/syscalls.2:378
14676 msgid "B<perf_event_open>(2)\t2.6.31\tWas called perf_counter_open()\n"
14680 #: build/C/man2/syscalls.2:379
14682 msgid "\t\tin 2.6.31; renamed in 2.6.32\n"
14686 #: build/C/man2/syscalls.2:380
14688 msgid "B<personality>(2)\t1.2\n"
14691 #. \fBperfctr\fP(2) ??? Sparc32, Sparc64
14692 #. \fBperfmonctl\fP(2) ??? ia64
14694 #: build/C/man2/syscalls.2:383
14696 msgid "B<phys>(2)\t\tNot implemented\n"
14699 #. Unimplemented (no slot since 2.1.116)
14701 #: build/C/man2/syscalls.2:385
14703 msgid "B<pipe>(2)\n"
14707 #: build/C/man2/syscalls.2:386
14709 msgid "B<pipe2>(2)\t2.6.27\n"
14713 #: build/C/man2/syscalls.2:387
14715 msgid "B<pivot_root>(2)\t2.4\n"
14719 #: build/C/man2/syscalls.2:388
14721 msgid "B<poll>(2)\t2.2\n"
14725 #: build/C/man2/syscalls.2:389
14727 msgid "B<ppoll>(2)\t2.6.16\n"
14731 #: build/C/man2/syscalls.2:390
14733 msgid "B<prctl>(2)\t2.2\n"
14737 #: build/C/man2/syscalls.2:391
14739 msgid "B<pread64>(2)\t\tAdded as \"pread\" in 2.2;\n"
14743 #: build/C/man2/syscalls.2:392
14745 msgid "\t\trenamed \"pread64\" in 2.6\n"
14749 #: build/C/man2/syscalls.2:393
14751 msgid "B<preadv>(2)\t2.6.30\n"
14755 #: build/C/man2/syscalls.2:394
14757 msgid "B<prlimit>(2)\t2.6.36\n"
14761 #: build/C/man2/syscalls.2:395
14763 msgid "B<prof>(2)\t\tNot implemented\n"
14767 #: build/C/man2/syscalls.2:396
14769 msgid "B<profil>(2)\t\tNot implemented\n"
14772 #. Implemented in glibc; see \fBprofil\fP(3)
14774 #: build/C/man2/syscalls.2:398
14776 msgid "B<pselect6>(2)\t2.6.16\n"
14779 #. Implements \fBpselect\fP(2)
14781 #: build/C/man2/syscalls.2:400
14783 msgid "B<ptrace>(2)\n"
14787 #: build/C/man2/syscalls.2:401
14789 msgid "B<putpmsg>(2)\t\tNot implemented\n"
14792 #. Reserved for STREAMS support
14794 #: build/C/man2/syscalls.2:403
14796 msgid "B<pwrite64>(2)\t\tAdded as \"pwrite\" in 2.2;\n"
14800 #: build/C/man2/syscalls.2:404
14802 msgid "\t\trenamed \"pwrite64\" in 2.6\n"
14806 #: build/C/man2/syscalls.2:405
14808 msgid "B<pwritev>(2)\t2.6.30\n"
14812 #: build/C/man2/syscalls.2:406
14814 msgid "B<query_module>(2)\t2.2\n"
14818 #: build/C/man2/syscalls.2:407
14820 msgid "B<quotactl>(2)\n"
14824 #: build/C/man2/syscalls.2:408
14826 msgid "B<read>(2)\n"
14830 #: build/C/man2/syscalls.2:409
14832 msgid "B<readahead>(2)\t2.4.13\n"
14836 #: build/C/man2/syscalls.2:410
14838 msgid "B<readdir>(2)\n"
14841 #. Supersedes \fBgetdents\fP(2)
14843 #: build/C/man2/syscalls.2:412
14845 msgid "B<readlink>(2)\n"
14849 #: build/C/man2/syscalls.2:413
14851 msgid "B<readlinkat>(2)\t2.6.16\n"
14855 #: build/C/man2/syscalls.2:414
14857 msgid "B<readv>(2)\t2.0\n"
14861 #: build/C/man2/syscalls.2:415
14863 msgid "B<reboot>(2)\n"
14867 #: build/C/man2/syscalls.2:416
14869 msgid "B<recv>(2)\n"
14873 #: build/C/man2/syscalls.2:417
14875 msgid "B<recvfrom>(2)\n"
14879 #: build/C/man2/syscalls.2:418
14881 msgid "B<recvmsg>(2)\n"
14885 #: build/C/man2/syscalls.2:419
14887 msgid "B<recvmmsg>(2)\t2.6.33\n"
14891 #: build/C/man2/syscalls.2:420
14893 msgid "B<remap_file_pages>(2)\t2.6\n"
14897 #: build/C/man2/syscalls.2:421
14899 msgid "B<removexattr>(2)\t2.6; 2.4.18\n"
14903 #: build/C/man2/syscalls.2:422
14905 msgid "B<rename>(2)\n"
14909 #: build/C/man2/syscalls.2:423
14911 msgid "B<renameat>(2)\t2.6.16\n"
14915 #: build/C/man2/syscalls.2:424
14917 msgid "B<request_key>(2)\t2.6.11\n"
14921 #: build/C/man2/syscalls.2:425
14923 msgid "B<restart_syscall>(2)\t2.6\n"
14927 #: build/C/man2/syscalls.2:426
14929 msgid "B<rmdir>(2)\n"
14933 #: build/C/man2/syscalls.2:427
14935 msgid "B<rt_sigaction>(2)\t2.2\n"
14939 #: build/C/man2/syscalls.2:428
14941 msgid "B<rt_sigpending>(2)\t2.2\n"
14945 #: build/C/man2/syscalls.2:429
14947 msgid "B<rt_sigprocmask>(2)\t2.2\n"
14951 #: build/C/man2/syscalls.2:430
14953 msgid "B<rt_sigqueueinfo>(2)\t2.2\n"
14957 #: build/C/man2/syscalls.2:431
14959 msgid "B<rt_sigreturn>(2)\t2.2\n"
14963 #: build/C/man2/syscalls.2:432
14965 msgid "B<rt_sigsuspend>(2)\t2.2\n"
14969 #: build/C/man2/syscalls.2:433
14971 msgid "B<rt_sigtimedwait>(2)\t2.2\n"
14975 #: build/C/man2/syscalls.2:434
14977 msgid "B<rt_tgsigqueueinfo>(2)\t2.6.31\n"
14981 #: build/C/man2/syscalls.2:435
14983 msgid "B<sched_get_priority_max>(2)\t2.0\n"
14987 #: build/C/man2/syscalls.2:436
14989 msgid "B<sched_get_priority_min>(2)\t2.0\n"
14993 #: build/C/man2/syscalls.2:437
14995 msgid "B<sched_getaffinity>(2)\t2.6\n"
14999 #: build/C/man2/syscalls.2:438
15001 msgid "B<sched_getparam>(2)\t2.0\n"
15005 #: build/C/man2/syscalls.2:439
15007 msgid "B<sched_getscheduler>(2)\t2.0\n"
15011 #: build/C/man2/syscalls.2:440
15013 msgid "B<sched_rr_get_interval>(2)\t2.0\n"
15017 #: build/C/man2/syscalls.2:441
15019 msgid "B<sched_setaffinity>(2)\t2.6\n"
15023 #: build/C/man2/syscalls.2:442
15025 msgid "B<sched_setparam>(2)\t2.0\n"
15029 #: build/C/man2/syscalls.2:443
15031 msgid "B<sched_setscheduler>(2)\t2.0\n"
15035 #: build/C/man2/syscalls.2:444
15037 msgid "B<sched_yield>(2)\t2.0\n"
15041 #: build/C/man2/syscalls.2:445
15043 msgid "B<security>(2)\t\tNot implemented\n"
15047 #: build/C/man2/syscalls.2:446
15049 msgid "B<select>(2)\n"
15053 #: build/C/man2/syscalls.2:447
15055 msgid "B<semctl>(2)\n"
15059 #: build/C/man2/syscalls.2:448
15061 msgid "B<semget>(2)\n"
15065 #: build/C/man2/syscalls.2:449
15067 msgid "B<semop>(2)\n"
15071 #: build/C/man2/syscalls.2:450
15073 msgid "B<semtimedop>(2)\t2.6; 2.4.22\n"
15077 #: build/C/man2/syscalls.2:451
15079 msgid "B<send>(2)\n"
15083 #: build/C/man2/syscalls.2:452
15085 msgid "B<sendfile>(2)\t2.2\n"
15089 #: build/C/man2/syscalls.2:453
15091 msgid "B<sendfile64>(2)\t2.6; 2.4.19\n"
15095 #: build/C/man2/syscalls.2:454
15097 msgid "B<sendmmsg>(2)\t3.0\n"
15101 #: build/C/man2/syscalls.2:455
15103 msgid "B<sendmsg>(2)\n"
15107 #: build/C/man2/syscalls.2:456
15109 msgid "B<sendto>(2)\n"
15113 #: build/C/man2/syscalls.2:457
15115 msgid "B<set_mempolicy>(2)\t2.6.6\n"
15119 #: build/C/man2/syscalls.2:458
15121 msgid "B<set_robust_list>(2)\t2.6.17\n"
15125 #: build/C/man2/syscalls.2:459
15127 msgid "B<set_thread_area>(2)\t2.6\n"
15131 #: build/C/man2/syscalls.2:460
15133 msgid "B<set_tid_address>(2)\t2.6\n"
15137 #: build/C/man2/syscalls.2:461
15139 msgid "B<set_zone_reclaim>(2)\t2.6.13\tRemoved in 2.6.16 (was never\n"
15143 #: build/C/man2/syscalls.2:462
15145 msgid "\t\tavailable to userspace)\n"
15148 #. See http://lkml.org/lkml/2005/8/1/83
15149 #. "[PATCH] remove sys_set_zone_reclaim()"
15151 #: build/C/man2/syscalls.2:465
15153 msgid "B<setdomainname>(2)\n"
15157 #: build/C/man2/syscalls.2:466
15159 msgid "B<setfsgid>(2)\t1.2\n"
15163 #: build/C/man2/syscalls.2:467
15165 msgid "B<setfsgid32>(2)\t2.4\n"
15169 #: build/C/man2/syscalls.2:468
15171 msgid "B<setfsuid>(2)\t1.2\n"
15175 #: build/C/man2/syscalls.2:469
15177 msgid "B<setfsuid32>(2)\t2.4\n"
15181 #: build/C/man2/syscalls.2:470
15183 msgid "B<setgid>(2)\n"
15187 #: build/C/man2/syscalls.2:471
15189 msgid "B<setgid32>(2)\t2.4\n"
15193 #: build/C/man2/syscalls.2:472
15195 msgid "B<setgroups>(2)\n"
15199 #: build/C/man2/syscalls.2:473
15201 msgid "B<setgroups32>(2)\t2.4\n"
15205 #: build/C/man2/syscalls.2:474
15207 msgid "B<sethostname>(2)\n"
15211 #: build/C/man2/syscalls.2:475
15213 msgid "B<setitimer>(2)\n"
15217 #: build/C/man2/syscalls.2:476
15219 msgid "B<setns>(2)\t3.0\n"
15223 #: build/C/man2/syscalls.2:477
15225 msgid "B<setpgid>(2)\n"
15229 #: build/C/man2/syscalls.2:478
15231 msgid "B<setpriority>(2)\n"
15235 #: build/C/man2/syscalls.2:479
15237 msgid "B<setregid>(2)\n"
15241 #: build/C/man2/syscalls.2:480
15243 msgid "B<setregid32>(2)\t2.4\n"
15247 #: build/C/man2/syscalls.2:481
15249 msgid "B<setresgid>(2)\t2.2\n"
15253 #: build/C/man2/syscalls.2:482
15255 msgid "B<setresgid32>(2)\t2.4\n"
15259 #: build/C/man2/syscalls.2:483
15261 msgid "B<setresuid>(2)\t2.2\n"
15265 #: build/C/man2/syscalls.2:484
15267 msgid "B<setresuid32>(2)\t2.4\n"
15271 #: build/C/man2/syscalls.2:485
15273 msgid "B<setreuid>(2)\n"
15277 #: build/C/man2/syscalls.2:486
15279 msgid "B<setreuid32>(2)\t2.4\n"
15283 #: build/C/man2/syscalls.2:487
15285 msgid "B<setrlimit>(2)\n"
15289 #: build/C/man2/syscalls.2:488
15291 msgid "B<setsid>(2)\n"
15295 #: build/C/man2/syscalls.2:489
15297 msgid "B<setsockopt>(2)\n"
15301 #: build/C/man2/syscalls.2:490
15303 msgid "B<settimeofday>(2)\n"
15307 #: build/C/man2/syscalls.2:491
15309 msgid "B<setuid>(2)\n"
15313 #: build/C/man2/syscalls.2:492
15315 msgid "B<setuid32>(2)\t2.4\n"
15319 #: build/C/man2/syscalls.2:493
15321 msgid "B<setup>(2)\t\tRemoved in 2.2\n"
15325 #: build/C/man2/syscalls.2:494
15327 msgid "B<setxattr>(2)\t2.6; 2.4.18\n"
15331 #: build/C/man2/syscalls.2:495
15333 msgid "B<sgetmask>(2)\n"
15337 #: build/C/man2/syscalls.2:496
15339 msgid "B<shmat>(2)\n"
15343 #: build/C/man2/syscalls.2:497
15345 msgid "B<shmctl>(2)\n"
15349 #: build/C/man2/syscalls.2:498
15351 msgid "B<shmdt>(2)\n"
15355 #: build/C/man2/syscalls.2:499
15357 msgid "B<shmget>(2)\n"
15361 #: build/C/man2/syscalls.2:500
15363 msgid "B<shutdown>(2)\n"
15367 #: build/C/man2/syscalls.2:501
15369 msgid "B<sigaction>(2)\n"
15373 #: build/C/man2/syscalls.2:502
15375 msgid "B<sigaltstack>(2)\t2.2\n"
15379 #: build/C/man2/syscalls.2:503
15381 msgid "B<signal>(2)\n"
15385 #: build/C/man2/syscalls.2:504
15387 msgid "B<signalfd>(2)\t2.6.22\n"
15391 #: build/C/man2/syscalls.2:505
15393 msgid "B<signalfd4>(2)\t2.6.27\n"
15397 #: build/C/man2/syscalls.2:506
15399 msgid "B<sigpending>(2)\n"
15403 #: build/C/man2/syscalls.2:507
15405 msgid "B<sigprocmask>(2)\n"
15409 #: build/C/man2/syscalls.2:508
15411 msgid "B<sigreturn>(2)\n"
15415 #: build/C/man2/syscalls.2:509
15417 msgid "B<sigsuspend>(2)\n"
15421 #: build/C/man2/syscalls.2:510
15423 msgid "B<socket>(2)\n"
15427 #: build/C/man2/syscalls.2:511
15429 msgid "B<socketcall>(2)\n"
15432 #. Implements BSD socket calls
15434 #: build/C/man2/syscalls.2:513
15436 msgid "B<socketpair>(2)\n"
15440 #: build/C/man2/syscalls.2:514
15442 msgid "B<splice>(2)\t2.6.17\n"
15446 #: build/C/man2/syscalls.2:515
15448 msgid "B<spu_create>(2)\t2.6.16\tPowerPC only\n"
15452 #: build/C/man2/syscalls.2:516
15454 msgid "B<spu_run>(2)\t2.6.16\tPowerPC only\n"
15458 #: build/C/man2/syscalls.2:517
15460 msgid "B<ssetmask>(2)\n"
15464 #: build/C/man2/syscalls.2:518
15466 msgid "B<stat>(2)\n"
15470 #: build/C/man2/syscalls.2:519
15472 msgid "B<stat64>(2)\t2.4\n"
15476 #: build/C/man2/syscalls.2:520
15478 msgid "B<statfs>(2)\n"
15482 #: build/C/man2/syscalls.2:521
15484 msgid "B<statfs64>(2)\t2.6\n"
15488 #: build/C/man2/syscalls.2:522
15490 msgid "B<stime>(2)\n"
15494 #: build/C/man2/syscalls.2:523
15496 msgid "B<stty>(2)\t\tNot implemented\n"
15500 #: build/C/man2/syscalls.2:524
15502 msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC if CONFIG_PPC_64K_PAGES\n"
15506 #: build/C/man2/syscalls.2:525
15508 msgid "B<swapoff>(2)\n"
15512 #: build/C/man2/syscalls.2:526
15514 msgid "B<swapon>(2)\n"
15518 #: build/C/man2/syscalls.2:527
15520 msgid "B<symlink>(2)\n"
15524 #: build/C/man2/syscalls.2:528
15526 msgid "B<symlinkat>(2)\t2.6.16\n"
15530 #: build/C/man2/syscalls.2:529
15532 msgid "B<sync>(2)\n"
15536 #: build/C/man2/syscalls.2:530
15538 msgid "B<sync_file_range>(2)\t2.6.17\n"
15542 #: build/C/man2/syscalls.2:531
15544 msgid "B<sync_file_range2>(2)\t2.6.22\tArchitecture-specific variant\n"
15547 #. PowerPC, ARM, tile
15548 #. First appeared on ARM, as arm_sync_file_range(), but later renamed
15550 #: build/C/man2/syscalls.2:534
15552 msgid "\t\tof B<sync_file_range>(2)\n"
15555 #. \fBsys_debug_setcontext\fP(2) ??? PowerPC if CONFIG_PPC32
15557 #: build/C/man2/syscalls.2:536
15559 msgid "B<syncfs>(2)\t2.6.39\n"
15563 #: build/C/man2/syscalls.2:537
15565 msgid "B<sysfs>(2)\t1.2\n"
15569 #: build/C/man2/syscalls.2:538
15571 msgid "B<sysinfo>(2)\n"
15575 #: build/C/man2/syscalls.2:539
15577 msgid "B<syslog>(2)\n"
15580 #. glibc interface is \fBklogctl\fP(3)
15582 #: build/C/man2/syscalls.2:541
15584 msgid "B<tee>(2)\t2.6.17\n"
15588 #: build/C/man2/syscalls.2:542
15590 msgid "B<tgkill>(2)\t2.6\n"
15594 #: build/C/man2/syscalls.2:543
15596 msgid "B<time>(2)\n"
15600 #: build/C/man2/syscalls.2:544
15602 msgid "B<timer_create>(2)\t2.6\n"
15606 #: build/C/man2/syscalls.2:545
15608 msgid "B<timer_delete>(2)\t2.6\n"
15612 #: build/C/man2/syscalls.2:546
15614 msgid "B<timer_getoverrun>(2)\t2.6\n"
15618 #: build/C/man2/syscalls.2:547
15620 msgid "B<timer_gettime>(2)\t2.6\n"
15624 #: build/C/man2/syscalls.2:548
15626 msgid "B<timer_settime>(2)\t2.6\n"
15630 #: build/C/man2/syscalls.2:549
15632 msgid "B<timerfd_create>(2)\t2.6.25\n"
15636 #: build/C/man2/syscalls.2:550
15638 msgid "B<timerfd_gettime>(2)\t2.6.25\n"
15642 #: build/C/man2/syscalls.2:551
15644 msgid "B<timerfd_settime>(2)\t2.6.25\n"
15648 #: build/C/man2/syscalls.2:552
15650 msgid "B<times>(2)\n"
15654 #: build/C/man2/syscalls.2:553
15656 msgid "B<tkill>(2)\t2.6; 2.4.22\n"
15660 #: build/C/man2/syscalls.2:554
15662 msgid "B<truncate>(2)\n"
15666 #: build/C/man2/syscalls.2:555
15668 msgid "B<truncate64>(2)\t2.4\n"
15672 #: build/C/man2/syscalls.2:556
15674 msgid "B<tuxcall>(2)\t\tNot implemented\n"
15677 #. Unimplemented; no slot on i386
15678 #. As at 2.6.22, tuxcall has a slot on PowerPC, x86_64, and alpha
15680 #: build/C/man2/syscalls.2:559
15682 msgid "B<ugetrlimit>(2)\t2.4\n"
15686 #: build/C/man2/syscalls.2:560
15688 msgid "B<ulimit>(2)\t\tNot implemented\n"
15691 #. Implemented in glibc; see \fBulimit\fP(3)
15693 #: build/C/man2/syscalls.2:562
15695 msgid "B<umask>(2)\n"
15699 #: build/C/man2/syscalls.2:563
15701 msgid "B<umount>(2)\n"
15704 #. sys_oldumount() -- __NR_umount
15706 #: build/C/man2/syscalls.2:565
15708 msgid "B<umount2>(2)\t2.2\n"
15711 #. sys_umount() -- __NR_umount2
15713 #: build/C/man2/syscalls.2:567
15715 msgid "B<uname>(2)\n"
15719 #: build/C/man2/syscalls.2:568
15721 msgid "B<unlink>(2)\n"
15725 #: build/C/man2/syscalls.2:569
15727 msgid "B<unlinkat>(2)\t2.6.16\n"
15731 #: build/C/man2/syscalls.2:570
15733 msgid "B<unshare>(2)\t2.6.16\n"
15737 #: build/C/man2/syscalls.2:571
15739 msgid "B<uselib>(2)\n"
15743 #: build/C/man2/syscalls.2:572
15745 msgid "B<ustat>(2)\n"
15749 #: build/C/man2/syscalls.2:573
15751 msgid "B<utime>(2)\n"
15755 #: build/C/man2/syscalls.2:574
15757 msgid "B<utimensat>(2)\t2.6.22\n"
15761 #: build/C/man2/syscalls.2:575
15763 msgid "B<utimes>(2)\t2.2\n"
15767 #: build/C/man2/syscalls.2:576
15769 msgid "B<vfork>(2)\n"
15773 #: build/C/man2/syscalls.2:577
15775 msgid "B<vhangup>(2)\n"
15779 #: build/C/man2/syscalls.2:578
15781 msgid "B<vm86old>(2)\n"
15784 #. Superseded by \fBvm86\fP(2)
15786 #: build/C/man2/syscalls.2:580
15788 msgid "B<vmsplice>(2)\t2.6.17\n"
15792 #: build/C/man2/syscalls.2:581
15794 msgid "B<vserver>(2)\t\tNot implemented\n"
15798 #: build/C/man2/syscalls.2:582
15800 msgid "B<wait4>(2)\n"
15804 #: build/C/man2/syscalls.2:583
15806 msgid "B<waitid>(2)\t2.6.10\n"
15810 #: build/C/man2/syscalls.2:584
15812 msgid "B<waitpid>(2)\n"
15816 #: build/C/man2/syscalls.2:585
15818 msgid "B<write>(2)\n"
15822 #: build/C/man2/syscalls.2:586
15824 msgid "B<writev>(2)\t2.0\n"
15827 #. type: Plain text
15828 #: build/C/man2/syscalls.2:594
15830 "On many platforms, including i386, socket calls are all multiplexed (via "
15831 "glibc wrapper functions) through B<socketcall>(2) and similarly System V "
15832 "IPC calls are multiplexed through B<ipc>(2)."
15835 #. type: Plain text
15836 #: build/C/man2/syscalls.2:596
15837 msgid "Note the following points:"
15840 #. __NR_afs_syscall is 53 on Linux 2.6.22/i386
15841 #. __NR_break is 17 on Linux 2.6.22/i386
15842 #. __NR_ftime is 35 on Linux 2.6.22/i386
15843 #. __NR_getpmsg is 188 on Linux 2.6.22/i386
15844 #. __NR_gtty is 32 on Linux 2.6.22/i386
15845 #. __NR_idle is 112 on Linux 2.6.22/i386
15846 #. __NR_lock is 53 on Linux 2.6.22/i386
15847 #. __NR_madvise1 is 219 on Linux 2.6.22/i386
15848 #. __NR_mpx is 66 on Linux 2.6.22/i386
15849 #. Slot has been reused
15850 #. __NR_prof is 44 on Linux 2.6.22/i386
15851 #. __NR_profil is 98 on Linux 2.6.22/i386
15852 #. __NR_putpmsg is 189 on Linux 2.6.22/i386
15853 #. __NR_security is 223 on Linux 2.4/i386
15854 #. __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
15855 #. on a couple of 2.6 architectures
15856 #. __NR_stty is 31 on Linux 2.6.22/i386
15857 #. __NR_tuxcall is 184 on x86_64, also on PPC and alpha
15858 #. __NR_ulimit is 58 on Linux 2.6.22/i386
15859 #. __NR_vserver is 273 on Linux 2.6.22/i386
15860 #. type: Plain text
15861 #: build/C/man2/syscalls.2:634
15863 "Although slots are reserved for them in the system call table, the following "
15864 "system calls are not implemented in the standard kernel: B<afs_syscall>(2), "
15865 "B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), "
15866 "B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), "
15867 "B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and "
15868 "B<vserver>(2) (see also B<unimplemented>(2)). However, B<ftime>(3), "
15869 "B<profil>(3) and B<ulimit>(3) exist as library routines. The slot for "
15870 "B<phys>(2) is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2) "
15871 "will never be implemented."
15874 #. The security call is for future use.
15875 #. type: Plain text
15876 #: build/C/man2/syscalls.2:642
15878 "The B<getpmsg>(2) and B<putpmsg>(2) calls are for kernels patched to "
15879 "support STREAMS, and may never be in the standard kernel."
15882 #. type: Plain text
15883 #: build/C/man2/syscalls.2:657
15885 "Roughly speaking, the code belonging to the system call with number __NR_xxx "
15886 "defined in I</usr/include/asm/unistd.h> can be found in the kernel source in "
15887 "the routine I<sys_xxx>(). (The dispatch table for i386 can be found in "
15888 "I</usr/src/linux/arch/i386/kernel/entry.S>.) There are many exceptions, "
15889 "however, mostly because older system calls were superseded by newer ones, "
15890 "and this has been treated somewhat unsystematically. On platforms with "
15891 "proprietary OS emulation, such as parisc, sparc, sparc64 and alpha, there "
15892 "are many additional system calls; mips64 also contains a full set of 32-bit "
15896 #. type: Plain text
15897 #: build/C/man2/syscalls.2:676
15899 "Over time, changes to the interfaces of some system calls have been "
15900 "necessary. One reason for such changes was the need to increase the size of "
15901 "structures or scalar values passed to the system call. Because of these "
15902 "changes, there are now various groups of related system calls (e.g., "
15903 "B<truncate>(2) and B<truncate64>(2)) which perform similar tasks, but "
15904 "which vary in details such as the size of their arguments. (As noted "
15905 "earlier, applications are generally unaware of this: the glibc wrapper "
15906 "functions do some work to ensure that the right system call is invoked, and "
15907 "that ABI compatibility is preserved for old binaries.) Examples of systems "
15908 "calls that exist in multiple versions are the following:"
15911 #. e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
15912 #. The stat system calls deal with three different data structures,
15913 #. defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
15914 #. type: Plain text
15915 #: build/C/man2/syscalls.2:697
15917 "By now there are three different versions of B<stat>(2): I<sys_stat>() "
15918 "(slot I<__NR_oldstat>), I<sys_newstat>() (slot I<__NR_stat>), and "
15919 "I<sys_stat64>() (slot I<__NR_stat64>), with the last being the most "
15920 "current. A similar story applies for B<lstat>(2) and B<fstat>(2)."
15923 #. type: Plain text
15924 #: build/C/man2/syscalls.2:708
15926 "Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and "
15927 "I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>() and "
15928 "I<sys_newuname>()."
15931 #. type: Plain text
15932 #: build/C/man2/syscalls.2:715
15934 "In Linux 2.0, a new version of B<vm86>(2) appeared, with the old and the "
15935 "new kernel routines being named I<sys_vm86old>() and I<sys_vm86>()."
15938 #. type: Plain text
15939 #: build/C/man2/syscalls.2:726
15941 "In Linux 2.4, a new version of B<getrlimit>(2) appeared, with the old and "
15942 "the new kernel routines being named I<sys_old_getrlimit>() (slot "
15943 "I<__NR_getrlimit>) and I<sys_getrlimit>() (slot I<__NR_ugetrlimit>)."
15946 #. 64-bit off_t changes: ftruncate64, *stat64,
15947 #. fcntl64 (because of the flock structure), getdents64, *statfs64
15948 #. type: Plain text
15949 #: build/C/man2/syscalls.2:738
15951 "Linux 2.4 increased the size of user and group IDs from 16 to 32 bits. To "
15952 "support this change, a range of system calls were added (e.g., "
15953 "B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), "
15954 "superseding earlier calls of the same name without the \"32\" suffix."
15957 #. type: Plain text
15958 #: build/C/man2/syscalls.2:755
15960 "Linux 2.4 added support for applications on 32-bit architectures to access "
15961 "large files (i.e., files for which the sizes and file offsets can't be "
15962 "represented in 32 bits.) To support this change, replacements were required "
15963 "for system calls that deal with file offsets and sizes. Thus the following "
15964 "system calls were added: B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), "
15965 "B<stat64>(2), B<statfs64>(2), and their analogs that work with file "
15966 "descriptors or symbolic links. These system calls supersede the older "
15967 "system calls which, except in the case of the \"stat\" calls, have the same "
15968 "name without the \"64\" suffix."
15971 #. type: Plain text
15972 #: build/C/man2/syscalls.2:759
15974 "On newer platforms that only have 64-bit file access and 32-bit uids (e.g., "
15975 "alpha, ia64, s390x) there are no *64 or *32 calls. Where the *64 and *32 "
15976 "calls exist, the other versions are obsolete."
15979 #. type: Plain text
15980 #: build/C/man2/syscalls.2:767
15982 "The I<rt_sig*> calls were added in kernel 2.2 to support the addition of "
15983 "real-time signals (see B<signal>(7)). These system calls supersede the "
15984 "older system calls of the same name without the \"rt_\" prefix."
15987 #. (used by libc 6)
15989 #. Two system call numbers,
15990 #. .IR __NR__llseek
15992 #. .IR __NR__sysctl
15993 #. have an additional underscore absent in
15994 #. .IR sys_llseek ()
15996 #. .IR sys_sysctl ().
15998 #. In kernel 2.1.81,
16002 #. were swapped; that is,
16004 #. was added with the semantics that were then current for
16006 #. and the semantics of the latter call were changed to what
16008 #. type: Plain text
16009 #: build/C/man2/syscalls.2:817
16011 "The B<select>(2) and B<mmap>(2) system calls use five or more arguments, "
16012 "which caused problems the way argument passing on the i386 used to be set "
16013 "up. Thus, while other architectures have I<sys_select>() and I<sys_mmap>() "
16014 "corresponding to I<__NR_select> and I<__NR_mmap>, on i386 one finds "
16015 "I<old_select>() and I<old_mmap>() (routines that use a pointer to a "
16016 "argument block) instead. These days passing five arguments is not a problem "
16017 "any more, and there is a I<__NR__newselect> that corresponds directly to "
16018 "I<sys_select>() and similarly I<__NR_mmap2>."
16021 #. type: Plain text
16022 #: build/C/man2/syscalls.2:821
16023 msgid "B<syscall>(2), B<unimplemented>(2), B<libc>(7)"
16027 #: build/C/man3/sysconf.3:25
16033 #: build/C/man3/sysconf.3:25
16038 #. type: Plain text
16039 #: build/C/man3/sysconf.3:28
16040 msgid "sysconf - Get configuration information at runtime"
16043 #. type: Plain text
16044 #: build/C/man3/sysconf.3:33
16046 msgid "B<long sysconf(int >I<name>B<);>\n"
16049 #. type: Plain text
16050 #: build/C/man3/sysconf.3:38
16052 "POSIX allows an application to test at compile or run time whether certain "
16053 "options are supported, or what the value is of certain configurable "
16054 "constants or limits."
16057 #. type: Plain text
16058 #: build/C/man3/sysconf.3:44
16060 "At compile time this is done by including I<E<lt>unistd.hE<gt>> and/or "
16061 "I<E<lt>limits.hE<gt>> and testing the value of certain macros."
16064 #. type: Plain text
16065 #: build/C/man3/sysconf.3:54
16067 "At run time, one can ask for numerical values using the present function "
16068 "B<sysconf>(). One can ask for numerical values that may depend on the file "
16069 "system a file is in using the calls B<fpathconf>(3) and B<pathconf>(3). "
16070 "One can ask for string values using B<confstr>(3)."
16073 #. except that sysconf(_SC_OPEN_MAX) may change answer after a call
16074 #. to setrlimit( ) which changes the RLIMIT_NOFILE soft limit
16075 #. type: Plain text
16076 #: build/C/man3/sysconf.3:59
16078 "The values obtained from these functions are system configuration "
16079 "constants. They do not change during the lifetime of a process."
16082 #. and 999 to indicate support for options no longer present in the latest
16084 #. type: Plain text
16085 #: build/C/man3/sysconf.3:82
16087 "For options, typically, there is a constant B<_POSIX_FOO> that may be "
16088 "defined in I<E<lt>unistd.hE<gt>>. If it is undefined, one should ask at run "
16089 "time. If it is defined to -1, then the option is not supported. If it is "
16090 "defined to 0, then relevant functions and headers exist, but one has to ask "
16091 "at runtime what degree of support is available. If it is defined to a value "
16092 "other than -1 or 0, then the option is supported. Usually the value (such "
16093 "as 200112L) indicates the year and month of the POSIX revision describing "
16094 "the option. Glibc uses the value 1 to indicate support as long as the POSIX "
16095 "revision has not been published yet. The B<sysconf>() argument will be "
16096 "B<_SC_FOO>. For a list of options, see B<posixoptions>(7)."
16099 #. type: Plain text
16100 #: build/C/man3/sysconf.3:102
16102 "For variables or limits, typically, there is a constant B<_FOO>, maybe "
16103 "defined in I<E<lt>limits.hE<gt>>, or B<_POSIX_FOO>, maybe defined in "
16104 "I<E<lt>unistd.hE<gt>>. The constant will not be defined if the limit is "
16105 "unspecified. If the constant is defined, it gives a guaranteed value, and a "
16106 "greater value might actually be supported. If an application wants to take "
16107 "advantage of values which may change between systems, a call to B<sysconf>() "
16108 "can be made. The B<sysconf>() argument will be B<_SC_FOO>."
16112 #: build/C/man3/sysconf.3:102
16114 msgid "POSIX.1 Variables"
16117 #. type: Plain text
16118 #: build/C/man3/sysconf.3:107
16120 "We give the name of the variable, the name of the B<sysconf>() argument "
16121 "used to inquire about its value, and a short description."
16124 #. [for the moment: only the things that are unconditionally present]
16126 #. .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX
16127 #. (if _POSIX_ASYNCHRONOUS_IO)
16128 #. Maximum number of I/O operations in a single list I/O call.
16129 #. Must not be less than _POSIX_AIO_LISTIO_MAX.
16131 #. .BR AIO_MAX " - " _SC_AIO_MAX
16132 #. (if _POSIX_ASYNCHRONOUS_IO)
16133 #. Maximum number of outstanding asynchronous I/O operations.
16134 #. Must not be less than _POSIX_AIO_MAX.
16136 #. .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX
16137 #. (if _POSIX_ASYNCHRONOUS_IO)
16138 #. The maximum amount by which a process can decrease its
16139 #. asynchronous I/O priority level from its own scheduling priority.
16140 #. Must be nonnegative.
16141 #. type: Plain text
16142 #: build/C/man3/sysconf.3:126
16143 msgid "First, the POSIX.1 compatible values."
16147 #: build/C/man3/sysconf.3:126
16149 msgid "B<ARG_MAX> - B<_SC_ARG_MAX>"
16152 #. type: Plain text
16153 #: build/C/man3/sysconf.3:134
16155 "The maximum length of the arguments to the B<exec>(3) family of functions. "
16156 "Must not be less than B<_POSIX_ARG_MAX> (4096)."
16160 #: build/C/man3/sysconf.3:134
16162 msgid "B<CHILD_MAX> - B<_SC_CHILD_MAX>"
16165 #. type: Plain text
16166 #: build/C/man3/sysconf.3:140
16168 "The max number of simultaneous processes per user ID. Must not be less than "
16169 "B<_POSIX_CHILD_MAX> (25)."
16173 #: build/C/man3/sysconf.3:140
16175 msgid "B<HOST_NAME_MAX> - B<_SC_HOST_NAME_MAX>"
16178 #. type: Plain text
16179 #: build/C/man3/sysconf.3:148
16181 "Max length of a hostname, not including the terminating null byte, as "
16182 "returned by B<gethostname>(2). Must not be less than "
16183 "B<_POSIX_HOST_NAME_MAX> (255)."
16187 #: build/C/man3/sysconf.3:148
16189 msgid "B<LOGIN_NAME_MAX> - B<_SC_LOGIN_NAME_MAX>"
16192 #. type: Plain text
16193 #: build/C/man3/sysconf.3:154
16195 "Maximum length of a login name, including the terminating null byte. Must "
16196 "not be less than B<_POSIX_LOGIN_NAME_MAX> (9)."
16200 #: build/C/man3/sysconf.3:154
16202 msgid "clock ticks - B<_SC_CLK_TCK>"
16205 #. type: Plain text
16206 #: build/C/man3/sysconf.3:163
16208 "The number of clock ticks per second. The corresponding variable is "
16209 "obsolete. It was of course called B<CLK_TCK>. (Note: the macro "
16210 "B<CLOCKS_PER_SEC> does not give information: it must equal 1000000.)"
16214 #: build/C/man3/sysconf.3:163
16216 msgid "B<OPEN_MAX> - B<_SC_OPEN_MAX>"
16219 #. type: Plain text
16220 #: build/C/man3/sysconf.3:169
16222 "The maximum number of files that a process can have open at any time. Must "
16223 "not be less than B<_POSIX_OPEN_MAX> (20)."
16227 #: build/C/man3/sysconf.3:169
16229 msgid "B<PAGESIZE> - B<_SC_PAGESIZE>"
16232 #. type: Plain text
16233 #: build/C/man3/sysconf.3:174
16235 "Size of a page in bytes. Must not be less than 1. (Some systems use "
16236 "PAGE_SIZE instead.)"
16240 #: build/C/man3/sysconf.3:174 build/C/man3/sysconf.3:261
16242 msgid "B<RE_DUP_MAX> - B<_SC_RE_DUP_MAX>"
16245 #. type: Plain text
16246 #: build/C/man3/sysconf.3:183
16248 "The number of repeated occurrences of a BRE permitted by B<regexec>(3) and "
16249 "B<regcomp>(3). Must not be less than B<_POSIX2_RE_DUP_MAX> (255)."
16253 #: build/C/man3/sysconf.3:183
16255 msgid "B<STREAM_MAX> - B<_SC_STREAM_MAX>"
16258 #. type: Plain text
16259 #: build/C/man3/sysconf.3:192
16261 "The maximum number of streams that a process can have open at any time. If "
16262 "defined, it has the same value as the standard C macro B<FOPEN_MAX>. Must "
16263 "not be less than B<_POSIX_STREAM_MAX> (8)."
16267 #: build/C/man3/sysconf.3:192
16269 msgid "B<SYMLOOP_MAX>"
16272 #. type: Plain text
16273 #: build/C/man3/sysconf.3:200
16275 "The maximum number of symbolic links seen in a pathname before resolution "
16276 "returns B<ELOOP>. Must not be less than B<_POSIX_SYMLOOP_MAX> (8)."
16280 #: build/C/man3/sysconf.3:200
16282 msgid "B<TTY_NAME_MAX> - B<_SC_TTY_NAME_MAX>"
16285 #. type: Plain text
16286 #: build/C/man3/sysconf.3:207
16288 "The maximum length of terminal device name, including the terminating null "
16289 "byte. Must not be less than B<_POSIX_TTY_NAME_MAX> (9)."
16293 #: build/C/man3/sysconf.3:207
16295 msgid "B<TZNAME_MAX> - B<_SC_TZNAME_MAX>"
16298 #. type: Plain text
16299 #: build/C/man3/sysconf.3:213
16301 "The maximum number of bytes in a timezone name. Must not be less than "
16302 "B<_POSIX_TZNAME_MAX> (6)."
16306 #: build/C/man3/sysconf.3:213
16308 msgid "B<_POSIX_VERSION> - B<_SC_VERSION>"
16311 #. type: Plain text
16312 #: build/C/man3/sysconf.3:221
16314 "indicates the year and month the POSIX.1 standard was approved in the format "
16315 "B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision."
16319 #: build/C/man3/sysconf.3:221
16321 msgid "POSIX.2 Variables"
16324 #. type: Plain text
16325 #: build/C/man3/sysconf.3:223
16326 msgid "Next, the POSIX.2 values, giving limits for utilities."
16330 #: build/C/man3/sysconf.3:223
16332 msgid "B<BC_BASE_MAX> - B<_SC_BC_BASE_MAX>"
16335 #. type: Plain text
16336 #: build/C/man3/sysconf.3:230
16337 msgid "indicates the maximum I<obase> value accepted by the B<bc>(1) utility."
16341 #: build/C/man3/sysconf.3:230
16343 msgid "B<BC_DIM_MAX> - B<_SC_BC_DIM_MAX>"
16346 #. type: Plain text
16347 #: build/C/man3/sysconf.3:234
16348 msgid "indicates the maximum value of elements permitted in an array by B<bc>(1)."
16352 #: build/C/man3/sysconf.3:234
16354 msgid "B<BC_SCALE_MAX> - B<_SC_BC_SCALE_MAX>"
16357 #. type: Plain text
16358 #: build/C/man3/sysconf.3:240
16359 msgid "indicates the maximum I<scale> value allowed by B<bc>(1)."
16363 #: build/C/man3/sysconf.3:240
16365 msgid "B<BC_STRING_MAX> - B<_SC_BC_STRING_MAX>"
16368 #. type: Plain text
16369 #: build/C/man3/sysconf.3:244
16370 msgid "indicates the maximum length of a string accepted by B<bc>(1)."
16374 #: build/C/man3/sysconf.3:244
16376 msgid "B<COLL_WEIGHTS_MAX> - B<_SC_COLL_WEIGHTS_MAX>"
16379 #. type: Plain text
16380 #: build/C/man3/sysconf.3:250
16382 "indicates the maximum numbers of weights that can be assigned to an entry of "
16383 "the B<LC_COLLATE order> keyword in the locale definition file,"
16387 #: build/C/man3/sysconf.3:250
16389 msgid "B<EXPR_NEST_MAX> - B<_SC_EXPR_NEST_MAX>"
16392 #. type: Plain text
16393 #: build/C/man3/sysconf.3:255
16395 "is the maximum number of expressions which can be nested within parentheses "
16400 #: build/C/man3/sysconf.3:255
16402 msgid "B<LINE_MAX> - B<_SC_LINE_MAX>"
16405 #. type: Plain text
16406 #: build/C/man3/sysconf.3:261
16408 "The maximum length of a utility's input line, either from standard input or "
16409 "from a file. This includes space for a trailing newline."
16412 #. type: Plain text
16413 #: build/C/man3/sysconf.3:267
16415 "The maximum number of repeated occurrences of a regular expression when the "
16416 "interval notation B<\\e{m,n\\e}> is used."
16420 #: build/C/man3/sysconf.3:267
16422 msgid "B<POSIX2_VERSION> - B<_SC_2_VERSION>"
16425 #. type: Plain text
16426 #: build/C/man3/sysconf.3:271
16427 msgid "indicates the version of the POSIX.2 standard in the format of YYYYMML."
16431 #: build/C/man3/sysconf.3:271
16433 msgid "B<POSIX2_C_DEV> - B<_SC_2_C_DEV>"
16436 #. type: Plain text
16437 #: build/C/man3/sysconf.3:275
16439 "indicates whether the POSIX.2 C language development facilities are "
16444 #: build/C/man3/sysconf.3:275
16446 msgid "B<POSIX2_FORT_DEV> - B<_SC_2_FORT_DEV>"
16449 #. type: Plain text
16450 #: build/C/man3/sysconf.3:279
16451 msgid "indicates whether the POSIX.2 FORTRAN development utilities are supported."
16455 #: build/C/man3/sysconf.3:279
16457 msgid "B<POSIX2_FORT_RUN> - B<_SC_2_FORT_RUN>"
16460 #. type: Plain text
16461 #: build/C/man3/sysconf.3:282
16462 msgid "indicates whether the POSIX.2 FORTRAN runtime utilities are supported."
16466 #: build/C/man3/sysconf.3:282
16468 msgid "B<_POSIX2_LOCALEDEF> - B<_SC_2_LOCALEDEF>"
16471 #. type: Plain text
16472 #: build/C/man3/sysconf.3:287
16474 "indicates whether the POSIX.2 creation of locates via B<localedef>(1) is "
16479 #: build/C/man3/sysconf.3:287
16481 msgid "B<POSIX2_SW_DEV> - B<_SC_2_SW_DEV>"
16484 #. type: Plain text
16485 #: build/C/man3/sysconf.3:291
16487 "indicates whether the POSIX.2 software development utilities option is "
16491 #. type: Plain text
16492 #: build/C/man3/sysconf.3:293
16493 msgid "These values also exist, but may not be standard."
16497 #: build/C/man3/sysconf.3:293
16499 msgid " - B<_SC_PHYS_PAGES>"
16502 #. type: Plain text
16503 #: build/C/man3/sysconf.3:300
16505 "The number of pages of physical memory. Note that it is possible for the "
16506 "product of this value and the value of B<_SC_PAGE_SIZE> to overflow."
16510 #: build/C/man3/sysconf.3:300
16512 msgid " - B<_SC_AVPHYS_PAGES>"
16515 #. type: Plain text
16516 #: build/C/man3/sysconf.3:303
16517 msgid "The number of currently available pages of physical memory."
16521 #: build/C/man3/sysconf.3:303
16523 msgid " - B<_SC_NPROCESSORS_CONF>"
16526 #. type: Plain text
16527 #: build/C/man3/sysconf.3:306
16528 msgid "The number of processors configured."
16532 #: build/C/man3/sysconf.3:306
16534 msgid " - B<_SC_NPROCESSORS_ONLN>"
16537 #. type: Plain text
16538 #: build/C/man3/sysconf.3:309
16539 msgid "The number of processors currently online (available)."
16542 #. type: Plain text
16543 #: build/C/man3/sysconf.3:322
16545 "If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>. "
16546 "Otherwise, the value returned is the value of the system resource and "
16547 "I<errno> is not changed. In the case of options, a positive value is "
16548 "returned if a queried option is available, and -1 if it is not. In the case "
16549 "of limits, -1 means that there is no definite limit."
16552 #. type: Plain text
16553 #: build/C/man3/sysconf.3:330
16555 "It is difficult to use B<ARG_MAX> because it is not specified how much of "
16556 "the argument space for B<exec>(3) is consumed by the user's environment "
16560 #. type: Plain text
16561 #: build/C/man3/sysconf.3:341
16563 "B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<fpathconf>(3), "
16564 "B<pathconf>(3), B<posixoptions>(7)"
16568 #: build/C/man2/sysctl.2:28
16574 #: build/C/man2/sysctl.2:28
16579 #. type: Plain text
16580 #: build/C/man2/sysctl.2:31
16581 msgid "sysctl - read/write system parameters"
16584 #. type: Plain text
16585 #: build/C/man2/sysctl.2:36
16587 msgid "B<#include E<lt>linux/sysctl.hE<gt>>\n"
16590 #. type: Plain text
16591 #: build/C/man2/sysctl.2:38
16593 msgid "B<int _sysctl(struct __sysctl_args *>I<args>B<);>\n"
16596 #. type: Plain text
16597 #: build/C/man2/sysctl.2:42
16598 msgid "B<Do not use this system call!> See NOTES."
16601 #. type: Plain text
16602 #: build/C/man2/sysctl.2:49
16604 "The B<_sysctl>() call reads and/or writes kernel parameters. For example, "
16605 "the hostname, or the maximum number of open files. The argument has the "
16609 #. type: Plain text
16610 #: build/C/man2/sysctl.2:61
16613 "struct __sysctl_args {\n"
16614 " int *name; /* integer vector describing variable */\n"
16615 " int nlen; /* length of this vector */\n"
16616 " void *oldval; /* 0 or address where to store old value */\n"
16617 " size_t *oldlenp; /* available room for old value,\n"
16618 " overwritten by actual size of old value */\n"
16619 " void *newval; /* 0 or address of new value */\n"
16620 " size_t newlen; /* size of new value */\n"
16624 #. type: Plain text
16625 #: build/C/man2/sysctl.2:69
16627 "This call does a search in a tree structure, possibly resembling a directory "
16628 "tree under I</proc/sys>, and if the requested item is found calls some "
16629 "appropriate routine to read or modify the value."
16632 #. type: Plain text
16633 #: build/C/man2/sysctl.2:76
16635 "Upon successful completion, B<_sysctl>() returns 0. Otherwise, a value of "
16636 "-1 is returned and I<errno> is set to indicate the error."
16639 #. type: Plain text
16640 #: build/C/man2/sysctl.2:83
16642 "The invocation asked for the previous value by setting I<oldval> non-NULL, "
16643 "but allowed zero room in I<oldlenp>."
16646 #. type: Plain text
16647 #: build/C/man2/sysctl.2:87
16648 msgid "I<name> was not found."
16651 #. type: Plain text
16652 #: build/C/man2/sysctl.2:95
16654 "No search permission for one of the encountered \"directories\", or no read "
16655 "permission where I<oldval> was nonzero, or no write permission where "
16656 "I<newval> was nonzero."
16659 #. type: Plain text
16660 #: build/C/man2/sysctl.2:109
16662 "This call is Linux-specific, and should not be used in programs intended to "
16663 "be portable. A B<sysctl>() call has been present in Linux since version "
16664 "1.3.57. It originated in 4.4BSD. Only Linux has the I</proc/sys> mirror, "
16665 "and the object naming schemes differ between Linux and 4.4BSD, but the "
16666 "declaration of the B<sysctl>() function is the same in both."
16669 #. See http://lwn.net/Articles/247243/
16670 #. type: Plain text
16671 #: build/C/man2/sysctl.2:121
16673 "Or rather... don't call it: use of this system call has long been "
16674 "discouraged, and it is so unloved that B<it is likely to disappear in a "
16675 "future kernel version>. Remove it from your programs now; use the "
16676 "I</proc/sys> interface instead."
16679 #. type: Plain text
16680 #: build/C/man2/sysctl.2:124
16682 "The object names vary between kernel versions, making this system call "
16683 "worthless for applications."
16686 #. type: Plain text
16687 #: build/C/man2/sysctl.2:126
16688 msgid "Not all available objects are properly documented."
16691 #. type: Plain text
16692 #: build/C/man2/sysctl.2:129
16694 "It is not yet possible to change operating system by writing to "
16695 "I</proc/sys/kernel/ostype>."
16698 #. type: Plain text
16699 #: build/C/man2/sysctl.2:138
16702 "#define _GNU_SOURCE\n"
16703 "#include E<lt>unistd.hE<gt>\n"
16704 "#include E<lt>sys/syscall.hE<gt>\n"
16705 "#include E<lt>string.hE<gt>\n"
16706 "#include E<lt>stdio.hE<gt>\n"
16707 "#include E<lt>stdlib.hE<gt>\n"
16708 "#include E<lt>linux/sysctl.hE<gt>\n"
16711 #. type: Plain text
16712 #: build/C/man2/sysctl.2:140
16714 msgid "int _sysctl(struct __sysctl_args *args );\n"
16717 #. type: Plain text
16718 #: build/C/man2/sysctl.2:142
16720 msgid "#define OSNAMESZ 100\n"
16723 #. type: Plain text
16724 #: build/C/man2/sysctl.2:150
16730 " struct __sysctl_args args;\n"
16731 " char osname[OSNAMESZ];\n"
16732 " size_t osnamelth;\n"
16733 " int name[] = { CTL_KERN, KERN_OSTYPE };\n"
16736 #. type: Plain text
16737 #: build/C/man2/sysctl.2:156
16740 " memset(&args, 0, sizeof(struct __sysctl_args));\n"
16741 " args.name = name;\n"
16742 " args.nlen = sizeof(name)/sizeof(name[0]);\n"
16743 " args.oldval = osname;\n"
16744 " args.oldlenp = &osnamelth;\n"
16747 #. type: Plain text
16748 #: build/C/man2/sysctl.2:158
16750 msgid " osnamelth = sizeof(osname);\n"
16753 #. type: Plain text
16754 #: build/C/man2/sysctl.2:166
16757 " if (syscall(SYS__sysctl, &args) == -1) {\n"
16758 " perror(\"_sysctl\");\n"
16759 " exit(EXIT_FAILURE);\n"
16761 " printf(\"This machine is running %*s\\en\", osnamelth, osname);\n"
16762 " exit(EXIT_SUCCESS);\n"
16766 #. type: Plain text
16767 #: build/C/man2/sysctl.2:169 build/C/man2/sysinfo.2:96
16772 #: build/C/man2/sysinfo.2:14
16778 #: build/C/man2/sysinfo.2:14
16783 #. type: Plain text
16784 #: build/C/man2/sysinfo.2:17
16785 msgid "sysinfo - returns information on overall system statistics"
16788 #. type: Plain text
16789 #: build/C/man2/sysinfo.2:19
16790 msgid "B<#include E<lt>sys/sysinfo.hE<gt>>"
16793 #. type: Plain text
16794 #: build/C/man2/sysinfo.2:21
16795 msgid "B<int sysinfo(struct sysinfo *>I<info>B<);>"
16798 #. type: Plain text
16799 #: build/C/man2/sysinfo.2:25
16801 "Until Linux 2.3.16, B<sysinfo>() used to return information in the "
16802 "following structure:"
16805 #. type: Plain text
16806 #: build/C/man2/sysinfo.2:40
16809 "struct sysinfo {\n"
16810 " long uptime; /* Seconds since boot */\n"
16811 " unsigned long loads[3]; /* 1, 5, and 15 minute load averages */\n"
16812 " unsigned long totalram; /* Total usable main memory size */\n"
16813 " unsigned long freeram; /* Available memory size */\n"
16814 " unsigned long sharedram; /* Amount of shared memory */\n"
16815 " unsigned long bufferram; /* Memory used by buffers */\n"
16816 " unsigned long totalswap; /* Total swap space size */\n"
16817 " unsigned long freeswap; /* swap space still available */\n"
16818 " unsigned short procs; /* Number of current processes */\n"
16819 " char _f[22]; /* Pads structure to 64 bytes */\n"
16823 #. type: Plain text
16824 #: build/C/man2/sysinfo.2:44
16825 msgid "and the sizes were given in bytes."
16828 #. type: Plain text
16829 #: build/C/man2/sysinfo.2:47
16830 msgid "Since Linux 2.3.23 (i386), 2.3.48 (all architectures) the structure is:"
16833 #. type: Plain text
16834 #: build/C/man2/sysinfo.2:65
16837 "struct sysinfo {\n"
16838 " long uptime; /* Seconds since boot */\n"
16839 " unsigned long loads[3]; /* 1, 5, and 15 minute load averages */\n"
16840 " unsigned long totalram; /* Total usable main memory size */\n"
16841 " unsigned long freeram; /* Available memory size */\n"
16842 " unsigned long sharedram; /* Amount of shared memory */\n"
16843 " unsigned long bufferram; /* Memory used by buffers */\n"
16844 " unsigned long totalswap; /* Total swap space size */\n"
16845 " unsigned long freeswap; /* swap space still available */\n"
16846 " unsigned short procs; /* Number of current processes */\n"
16847 " unsigned long totalhigh; /* Total high memory size */\n"
16848 " unsigned long freehigh; /* Available high memory size */\n"
16849 " unsigned int mem_unit; /* Memory unit size in bytes */\n"
16850 " char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding for libc5 */\n"
16854 #. type: Plain text
16855 #: build/C/man2/sysinfo.2:69
16856 msgid "and the sizes are given as multiples of I<mem_unit> bytes."
16859 #. type: Plain text
16860 #: build/C/man2/sysinfo.2:74
16862 "B<sysinfo>() provides a simple way of getting overall system statistics. "
16863 "This is more portable than reading I</dev/kmem>."
16866 #. type: Plain text
16867 #: build/C/man2/sysinfo.2:83
16868 msgid "pointer to I<struct\\ sysinfo> is invalid"
16871 #. type: Plain text
16872 #: build/C/man2/sysinfo.2:94
16874 "The Linux kernel has a B<sysinfo>() system call since 0.98.pl6. Linux libc "
16875 "contains a B<sysinfo>() routine since 5.3.5, and glibc has one since 1.90."
16879 #: build/C/man3/tcgetpgrp.3:23
16885 #: build/C/man3/tcgetpgrp.3:23
16890 #. type: Plain text
16891 #: build/C/man3/tcgetpgrp.3:26
16892 msgid "tcgetpgrp, tcsetpgrp - get and set terminal foreground process group"
16895 #. type: Plain text
16896 #: build/C/man3/tcgetpgrp.3:30
16897 msgid "B<pid_t tcgetpgrp(int >I<fd>B<);>"
16900 #. type: Plain text
16901 #: build/C/man3/tcgetpgrp.3:32
16902 msgid "B<int tcsetpgrp(int >I<fd>B<, pid_t >I<pgrp>B<);>"
16905 #. The process itself may be a background process.
16906 #. type: Plain text
16907 #: build/C/man3/tcgetpgrp.3:40
16909 "The function B<tcgetpgrp>() returns the process group ID of the foreground "
16910 "process group on the terminal associated to I<fd>, which must be the "
16911 "controlling terminal of the calling process."
16914 #. type: Plain text
16915 #: build/C/man3/tcgetpgrp.3:50
16917 "The function B<tcsetpgrp>() makes the process group with process group ID "
16918 "I<pgrp> the foreground process group on the terminal associated to I<fd>, "
16919 "which must be the controlling terminal of the calling process, and still be "
16920 "associated with its session. Moreover, I<pgrp> must be a (nonempty) process "
16921 "group belonging to the same session as the calling process."
16924 #. type: Plain text
16925 #: build/C/man3/tcgetpgrp.3:59
16927 "If B<tcsetpgrp>() is called by a member of a background process group in "
16928 "its session, and the calling process is not blocking or ignoring B<SIGTTOU>, "
16929 "a B<SIGTTOU> signal is sent to all members of this background process group."
16932 #. type: Plain text
16933 #: build/C/man3/tcgetpgrp.3:74
16935 "When I<fd> refers to the controlling terminal of the calling process, the "
16936 "function B<tcgetpgrp>() will return the foreground process group ID of that "
16937 "terminal if there is one, and some value larger than 1 that is not presently "
16938 "a process group ID otherwise. When I<fd> does not refer to the controlling "
16939 "terminal of the calling process, -1 is returned, and I<errno> is set "
16943 #. type: Plain text
16944 #: build/C/man3/tcgetpgrp.3:81
16946 "When successful, B<tcsetpgrp>() returns 0. Otherwise, it returns -1, and "
16947 "I<errno> is set appropriately."
16950 #. type: Plain text
16951 #: build/C/man3/tcgetpgrp.3:90
16952 msgid "I<pgrp> has an unsupported value."
16955 #. type: Plain text
16956 #: build/C/man3/tcgetpgrp.3:99
16958 "The calling process does not have a controlling terminal, or it has one but "
16959 "it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling "
16960 "terminal is no longer associated with the session of the calling process."
16963 #. type: Plain text
16964 #: build/C/man3/tcgetpgrp.3:104
16966 "I<pgrp> has a supported value, but is not the process group ID of a process "
16967 "in the same session as the calling process."
16970 #. type: Plain text
16971 #: build/C/man3/tcgetpgrp.3:112
16973 "These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> "
16978 #: build/C/man3/tcgetpgrp.3:112 build/C/man2/vfork.2:233
16983 #. type: Plain text
16984 #: build/C/man3/tcgetpgrp.3:115
16985 msgid "The ioctls appeared in 4.2BSD. The functions are POSIX inventions."
16988 #. type: Plain text
16989 #: build/C/man3/tcgetpgrp.3:119
16990 msgid "B<setpgid>(2), B<setsid>(2), B<credentials>(7)"
16994 #: build/C/man2/truncate.2:41
17000 #: build/C/man2/truncate.2:41
17005 #. type: Plain text
17006 #: build/C/man2/truncate.2:44
17007 msgid "truncate, ftruncate - truncate a file to a specified length"
17010 #. type: Plain text
17011 #: build/C/man2/truncate.2:50
17012 msgid "B<int truncate(const char *>I<path>B<, off_t >I<length>B<);>"
17015 #. type: Plain text
17016 #: build/C/man2/truncate.2:52
17017 msgid "B<int ftruncate(int >I<fd>B<, off_t >I<length>B<);>"
17020 #. type: Plain text
17021 #: build/C/man2/truncate.2:61
17022 msgid "B<truncate>():"
17025 #. type: Plain text
17026 #: build/C/man2/truncate.2:69
17027 msgid "B<ftruncate>():"
17030 #. type: Plain text
17031 #: build/C/man2/truncate.2:74
17032 msgid "|| /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
17035 #. type: Plain text
17036 #: build/C/man2/truncate.2:89
17038 "The B<truncate>() and B<ftruncate>() functions cause the regular file "
17039 "named by I<path> or referenced by I<fd> to be truncated to a size of "
17040 "precisely I<length> bytes."
17043 #. type: Plain text
17044 #: build/C/man2/truncate.2:93
17046 "If the file previously was larger than this size, the extra data is lost. "
17047 "If the file previously was shorter, it is extended, and the extended part "
17048 "reads as null bytes (\\(aq\\e0\\(aq)."
17051 #. type: Plain text
17052 #: build/C/man2/truncate.2:95
17053 msgid "The file offset is not changed."
17056 #. type: Plain text
17057 #: build/C/man2/truncate.2:102
17059 "If the size changed, then the st_ctime and st_mtime fields (respectively, "
17060 "time of last status change and time of last modification; see B<stat>(2)) "
17061 "for the file are updated, and the set-user-ID and set-group-ID permission "
17062 "bits may be cleared."
17065 #. type: Plain text
17066 #: build/C/man2/truncate.2:108
17068 "With B<ftruncate>(), the file must be open for writing; with B<truncate>(), "
17069 "the file must be writable."
17072 #. type: Plain text
17073 #: build/C/man2/truncate.2:116
17074 msgid "For B<truncate>():"
17077 #. type: Plain text
17078 #: build/C/man2/truncate.2:122
17080 "Search permission is denied for a component of the path prefix, or the named "
17081 "file is not writable by the user. (See also B<path_resolution>(7).)"
17084 #. type: Plain text
17085 #: build/C/man2/truncate.2:126
17086 msgid "I<Path> points outside the process's allocated address space."
17090 #: build/C/man2/truncate.2:126
17095 #. type: Plain text
17096 #: build/C/man2/truncate.2:131
17097 msgid "The argument I<length> is larger than the maximum file size. (XSI)"
17100 #. type: Plain text
17101 #: build/C/man2/truncate.2:138
17103 "While blocked waiting to complete, the call was interrupted by a signal "
17104 "handler; see B<fcntl>(2) and B<signal>(7)."
17107 #. type: Plain text
17108 #: build/C/man2/truncate.2:143
17109 msgid "The argument I<length> is negative or larger than the maximum file size."
17112 #. type: Plain text
17113 #: build/C/man2/truncate.2:146
17114 msgid "An I/O error occurred updating the inode."
17117 #. type: Plain text
17118 #: build/C/man2/truncate.2:149
17119 msgid "The named file is a directory."
17122 #. type: Plain text
17123 #: build/C/man2/truncate.2:152
17124 msgid "Too many symbolic links were encountered in translating the pathname."
17127 #. type: Plain text
17128 #: build/C/man2/truncate.2:156
17130 "A component of a pathname exceeded 255 characters, or an entire pathname "
17131 "exceeded 1023 characters."
17134 #. type: Plain text
17135 #: build/C/man2/truncate.2:159
17136 msgid "The named file does not exist."
17139 #. This happens for at least MSDOS and VFAT file systems
17140 #. on kernel 2.6.13
17141 #. type: Plain text
17142 #: build/C/man2/truncate.2:168
17144 "The underlying file system does not support extending a file beyond its "
17148 #. type: Plain text
17149 #: build/C/man2/truncate.2:174
17150 msgid "The file is a pure procedure (shared text) file that is being executed."
17153 #. type: Plain text
17154 #: build/C/man2/truncate.2:181
17156 "For B<ftruncate>() the same errors apply, but instead of things that can be "
17157 "wrong with I<path>, we now have things that can be wrong with the file "
17158 "descriptor, I<fd>:"
17161 #. type: Plain text
17162 #: build/C/man2/truncate.2:185
17163 msgid "I<fd> is not a valid descriptor."
17167 #: build/C/man2/truncate.2:185
17169 msgid "B<EBADF> or B<EINVAL>"
17172 #. type: Plain text
17173 #: build/C/man2/truncate.2:189
17174 msgid "I<fd> is not open for writing."
17177 #. type: Plain text
17178 #: build/C/man2/truncate.2:193
17179 msgid "I<fd> does not reference a regular file."
17182 #. POSIX.1-1996 has
17183 #. .BR ftruncate ().
17184 #. POSIX.1-2001 also has
17185 #. .BR truncate (),
17186 #. as an XSI extension.
17188 #. SVr4 documents additional
17190 #. error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documents for
17191 #. .BR ftruncate ()
17192 #. an additional EAGAIN error condition.
17193 #. type: Plain text
17194 #: build/C/man2/truncate.2:206
17195 msgid "4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD)."
17198 #. At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
17199 #. type: Plain text
17200 #: build/C/man2/truncate.2:227
17202 "The details in DESCRIPTION are for XSI-compliant systems. For "
17203 "non-XSI-compliant systems, the POSIX standard allows two behaviors for "
17204 "B<ftruncate>() when I<length> exceeds the file length (note that "
17205 "B<truncate>() is not specified at all in such an environment): either "
17206 "returning an error, or extending the file. Like most UNIX implementations, "
17207 "Linux follows the XSI requirement when dealing with native file systems. "
17208 "However, some nonnative file systems do not permit B<truncate>() and "
17209 "B<ftruncate>() to be used to extend a file beyond its current length: a "
17210 "notable example on Linux is VFAT."
17213 #. type: Plain text
17214 #: build/C/man2/truncate.2:241
17216 "The original Linux B<truncate>() and B<ftruncate>() system calls were not "
17217 "designed to handle large file offsets. Consequently, Linux 2.4 added "
17218 "B<truncate64>() and B<ftruncate64>() system calls that handle large "
17219 "files. However, these details can be ignored by applications using glibc, "
17220 "whose wrapper functions transparently employ the more recent system calls "
17221 "where they are available."
17224 #. http://sourceware.org/bugzilla/show_bug.cgi?id=12037
17225 #. type: Plain text
17226 #: build/C/man2/truncate.2:249
17228 "A header file bug in glibc 2.12 meant that the minimum value of "
17229 "B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>() was "
17230 "200809L instead of 200112L. This has been fixed in later glibc versions."
17233 #. type: Plain text
17234 #: build/C/man2/truncate.2:253
17235 msgid "B<open>(2), B<stat>(2), B<path_resolution>(7)"
17239 #: build/C/man3/ualarm.3:23
17244 #. type: Plain text
17245 #: build/C/man3/ualarm.3:26
17246 msgid "ualarm - schedule signal after given number of microseconds"
17249 #. type: Plain text
17250 #: build/C/man3/ualarm.3:31
17252 msgid "B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<interval>B<);>\n"
17255 #. type: Plain text
17256 #: build/C/man3/ualarm.3:39
17257 msgid "B<ualarm>():"
17260 #. type: Plain text
17261 #: build/C/man3/ualarm.3:68
17263 "The B<ualarm>() function causes the signal B<SIGALRM> to be sent to the "
17264 "invoking process after (not less than) I<usecs> microseconds. The delay "
17265 "may be lengthened slightly by any system activity or by the time spent "
17266 "processing the call or by the granularity of system timers."
17269 #. type: Plain text
17270 #: build/C/man3/ualarm.3:72
17271 msgid "Unless caught or ignored, the B<SIGALRM> signal will terminate the process."
17274 #. type: Plain text
17275 #: build/C/man3/ualarm.3:80
17277 "If the I<interval> argument is nonzero, further B<SIGALRM> signals will be "
17278 "sent every I<interval> microseconds after the first."
17281 #. type: Plain text
17282 #: build/C/man3/ualarm.3:83
17284 "This function returns the number of microseconds remaining for any alarm "
17285 "that was previously set, or 0 if no alarm was pending."
17288 #. type: Plain text
17289 #: build/C/man3/ualarm.3:87
17290 msgid "Interrupted by a signal."
17293 #. type: Plain text
17294 #: build/C/man3/ualarm.3:91
17296 "I<usecs> or I<interval> is not smaller than 1000000. (On systems where that "
17297 "is considered an error.)"
17300 #. type: Plain text
17301 #: build/C/man3/ualarm.3:99
17303 "4.3BSD, POSIX.1-2001. POSIX.1-2001 marks B<ualarm>() as obsolete. "
17304 "POSIX.1-2008 removes the specification of B<ualarm>(). 4.3BSD, SUSv2, and "
17305 "POSIX do not define any errors."
17308 #. type: Plain text
17309 #: build/C/man3/ualarm.3:112
17311 "The type I<useconds_t> is an unsigned integer type capable of holding "
17312 "integers in the range [0,1000000]. On the original BSD implementation, and "
17313 "in glibc before version 2.1, the arguments to B<ualarm>() were instead "
17314 "typed as I<unsigned int>. Programs will be more portable if they never "
17315 "mention I<useconds_t> explicitly."
17318 #. type: Plain text
17319 #: build/C/man3/ualarm.3:126
17321 "The interaction of this function with other timer functions such as "
17322 "B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), "
17323 "B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), "
17324 "B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3) is unspecified."
17327 #. type: Plain text
17328 #: build/C/man3/ualarm.3:134
17330 "This function is obsolete. Use B<setitimer>(2) or POSIX interval timers "
17331 "(B<timer_create>(2), etc.) instead."
17334 #. type: Plain text
17335 #: build/C/man3/ualarm.3:142
17337 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
17338 "B<setitimer>(2), B<usleep>(3), B<time>(7)"
17342 #: build/C/man2/umask.2:34
17348 #: build/C/man2/umask.2:34
17353 #. type: Plain text
17354 #: build/C/man2/umask.2:37
17355 msgid "umask - set file mode creation mask"
17358 #. type: Plain text
17359 #: build/C/man2/umask.2:43
17360 msgid "B<mode_t umask(mode_t >I<mask>B<);>"
17363 #. type: Plain text
17364 #: build/C/man2/umask.2:50
17366 "B<umask>() sets the calling process's file mode creation mask (umask) to "
17367 "I<mask> & 0777 (i.e., only the file permission bits of I<mask> are used), "
17368 "and returns the previous value of the mask."
17371 #. e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open()
17372 #. but NOT the System V IPC *get() calls
17373 #. type: Plain text
17374 #: build/C/man2/umask.2:63
17376 "The umask is used by B<open>(2), B<mkdir>(2), and other system calls that "
17377 "create files to modify the permissions placed on newly created files or "
17378 "directories. Specifically, permissions in the umask are turned off from the "
17379 "I<mode> argument to B<open>(2) and B<mkdir>(2)."
17382 #. type: Plain text
17383 #: build/C/man2/umask.2:68
17385 "The constants that should be used to specify I<mask> are described under "
17389 #. type: Plain text
17390 #: build/C/man2/umask.2:77
17392 "The typical default value for the process umask is I<S_IWGRP\\ |\\ S_IWOTH> "
17393 "(octal 022). In the usual case where the I<mode> argument to B<open>(2) is "
17397 #. type: Plain text
17398 #: build/C/man2/umask.2:80
17400 msgid " S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\n"
17403 #. type: Plain text
17404 #: build/C/man2/umask.2:84
17406 "(octal 0666) when creating a new file, the permissions on the resulting file "
17410 #. type: Plain text
17411 #: build/C/man2/umask.2:87
17413 msgid " S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n"
17416 #. type: Plain text
17417 #: build/C/man2/umask.2:90
17418 msgid "(because 0666 & ~022 = 0644; i.e., rw-r--r--)."
17421 #. type: Plain text
17422 #: build/C/man2/umask.2:93
17424 "This system call always succeeds and the previous value of the mask is "
17428 #. type: Plain text
17429 #: build/C/man2/umask.2:101
17431 "A child process created via B<fork>(2) inherits its parent's umask. The "
17432 "umask is left unchanged by B<execve>(2)."
17435 #. type: Plain text
17436 #: build/C/man2/umask.2:116
17438 "The umask setting also affects the permissions assigned to POSIX IPC objects "
17439 "(B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and "
17440 "UNIX domain sockets (B<unix>(7)) created by the process. The umask does "
17441 "not affect the permissions assigned to System V IPC objects created by the "
17442 "process (using B<msgget>(2), B<semget>(2), B<shmget>(2))."
17445 #. FIXME . eventually: .BR acl (5)
17446 #. type: Plain text
17447 #: build/C/man2/umask.2:122
17448 msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2)"
17452 #: build/C/man2/uname.2:25
17457 #. type: Plain text
17458 #: build/C/man2/uname.2:28
17459 msgid "uname - get name and information about current kernel"
17462 #. type: Plain text
17463 #: build/C/man2/uname.2:30
17464 msgid "B<#include E<lt>sys/utsname.hE<gt>>"
17467 #. type: Plain text
17468 #: build/C/man2/uname.2:32
17469 msgid "B<int uname(struct utsname *>I<buf>B<);>"
17472 #. type: Plain text
17473 #: build/C/man2/uname.2:40
17475 "B<uname>() returns system information in the structure pointed to by "
17476 "I<buf>. The I<utsname> struct is defined in I<E<lt>sys/utsname.hE<gt>>:"
17479 #. type: Plain text
17480 #: build/C/man2/uname.2:54
17483 "struct utsname {\n"
17484 " char sysname[]; /* Operating system name (e.g., \"Linux\") */\n"
17485 " char nodename[]; /* Name within \"some implementation-defined\n"
17487 " char release[]; /* OS release (e.g., \"2.6.28\") */\n"
17488 " char version[]; /* OS version */\n"
17489 " char machine[]; /* Hardware identifier */\n"
17490 "#ifdef _GNU_SOURCE\n"
17491 " char domainname[]; /* NIS or YP domain name */\n"
17496 #. type: Plain text
17497 #: build/C/man2/uname.2:61
17499 "The length of the arrays in a I<struct utsname> is unspecified (see NOTES); "
17500 "the fields are terminated by a null byte (\\(aq\\e0\\(aq)."
17503 #. type: Plain text
17504 #: build/C/man2/uname.2:71
17505 msgid "I<buf> is not valid."
17508 #. type: Plain text
17509 #: build/C/man2/uname.2:76
17510 msgid "SVr4, POSIX.1-2001. There is no B<uname>() call in 4.3BSD."
17513 #. type: Plain text
17514 #: build/C/man2/uname.2:80
17515 msgid "The I<domainname> member (the NIS or YP domain name) is a GNU extension."
17518 #. type: Plain text
17519 #: build/C/man2/uname.2:92
17521 "This is a system call, and the operating system presumably knows its name, "
17522 "release and version. It also knows what hardware it runs on. So, four of "
17523 "the fields of the struct are meaningful. On the other hand, the field "
17524 "I<nodename> is meaningless: it gives the name of the present machine in some "
17525 "undefined network, but typically machines are in more than one network and "
17526 "have several names. Moreover, the kernel has no way of knowing about such "
17527 "things, so it has to be told what to answer here. The same holds for the "
17528 "additional I<domainname> field."
17531 #. type: Plain text
17532 #: build/C/man2/uname.2:106
17534 "To this end Linux uses the system calls B<sethostname>(2) and "
17535 "B<setdomainname>(2). Note that there is no standard that says that the "
17536 "hostname set by B<sethostname>(2) is the same string as the I<nodename> "
17537 "field of the struct returned by B<uname>() (indeed, some systems allow a "
17538 "256-byte hostname and an 8-byte nodename), but this is true on Linux. The "
17539 "same holds for B<setdomainname>(2) and the I<domainname> field."
17542 #. type: Plain text
17543 #: build/C/man2/uname.2:121
17545 "The length of the fields in the struct varies. Some operating systems or "
17546 "libraries use a hardcoded 9 or 33 or 65 or 257. Other systems use "
17547 "B<SYS_NMLN> or B<_SYS_NMLN> or B<UTSLEN> or B<_UTSNAME_LENGTH>. Clearly, it "
17548 "is a bad idea to use any of these constants; just use sizeof(...). Often "
17549 "257 is chosen in order to have room for an internet hostname."
17552 #. type: Plain text
17553 #: build/C/man2/uname.2:128
17555 "Part of the utsname information is also accessible via "
17556 "I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, "
17561 #: build/C/man2/uname.2:128
17563 msgid "Underlying kernel interface"
17566 #. That was back before Linux 1.0
17567 #. That was also back before Linux 1.0
17568 #. type: Plain text
17569 #: build/C/man2/uname.2:155
17571 "Over time, increases in the size of the I<utsname> structure have led to "
17572 "three successive versions of B<uname>(): I<sys_olduname>() (slot "
17573 "I<__NR_oldolduname>), I<sys_uname>() (slot I<__NR_olduname>), and "
17574 "I<sys_newuname>() (slot I<__NR_uname)>. The first one used length 9 for "
17575 "all fields; the second used 65; the third also uses 65 but adds the "
17576 "I<domainname> field. The glibc B<uname>() wrapper function hides these "
17577 "details from applications, invoking the most recent version of the system "
17578 "call provided by the kernel."
17581 #. type: Plain text
17582 #: build/C/man2/uname.2:159
17583 msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2)"
17587 #: build/C/man2/uselib.2:31
17593 #: build/C/man2/uselib.2:31
17598 #. type: Plain text
17599 #: build/C/man2/uselib.2:34
17600 msgid "uselib - load shared library"
17603 #. type: Plain text
17604 #: build/C/man2/uselib.2:38
17605 msgid "B<int uselib(const char *>I<library>B<);>"
17608 #. type: Plain text
17609 #: build/C/man2/uselib.2:48
17611 "The system call B<uselib>() serves to load a shared library to be used by "
17612 "the calling process. It is given a pathname. The address where to load is "
17613 "found in the library itself. The library can have any recognized binary "
17617 #. type: Plain text
17618 #: build/C/man2/uselib.2:59
17620 "In addition to all of the error codes returned by B<open>(2) and "
17621 "B<mmap>(2), the following may also be returned:"
17624 #. type: Plain text
17625 #: build/C/man2/uselib.2:67
17627 "The library specified by I<library> does not have read or execute "
17628 "permission, or the caller does not have search permission for one of the "
17629 "directories in the path prefix. (See also B<path_resolution>(7).)"
17632 #. type: Plain text
17633 #: build/C/man2/uselib.2:76
17635 "The file specified by I<library> is not an executable of known type, e.g., "
17636 "does not have the correct magic numbers."
17639 #. type: Plain text
17640 #: build/C/man2/uselib.2:80
17642 "B<uselib>() is Linux-specific, and should not be used in programs intended "
17646 #. type: Plain text
17647 #: build/C/man2/uselib.2:85
17649 "B<uselib>() was used by early libc startup code to load the shared "
17650 "libraries with names found in an array of names in the binary."
17653 #. libc 4.3.1f - changelog 1993-03-02
17654 #. libc 4.3.4 - changelog 1993-04-21
17655 #. type: Plain text
17656 #: build/C/man2/uselib.2:95
17658 "Since libc 4.3.2, startup code tries to prefix these names with "
17659 "\"/usr/lib\", \"/lib\" and \"\" before giving up. In libc 4.3.4 and later "
17660 "these names are looked for in the directories found in B<LD_LIBRARY_PATH>, "
17661 "and if not found there, prefixes \"/usr/lib\", \"/lib\" and \"/\" are tried."
17664 #. type: Plain text
17665 #: build/C/man2/uselib.2:100
17667 "From libc 4.4.4 on only the library \"/lib/ld.so\" is loaded, so that this "
17668 "dynamic library can load the remaining libraries needed (again using this "
17669 "call). This is also the state of affairs in libc5."
17672 #. type: Plain text
17673 #: build/C/man2/uselib.2:102
17674 msgid "glibc2 does not use this call."
17677 #. type: Plain text
17678 #: build/C/man2/uselib.2:112
17680 "B<ar>(1), B<gcc>(1), B<ld>(1), B<ldd>(1), B<mmap>(2), B<open>(2), "
17681 "B<dlopen>(3), B<capabilities>(7), B<ld.so>(8)"
17685 #: build/C/man3/usleep.3:31
17691 #: build/C/man3/usleep.3:31
17696 #. type: Plain text
17697 #: build/C/man3/usleep.3:34
17698 msgid "usleep - suspend execution for microsecond intervals"
17701 #. type: Plain text
17702 #: build/C/man3/usleep.3:39
17704 msgid "B<int usleep(useconds_t >I<usec>B<);>\n"
17707 #. type: Plain text
17708 #: build/C/man3/usleep.3:47
17709 msgid "B<usleep>():"
17712 #. type: Plain text
17713 #: build/C/man3/usleep.3:73
17715 "The B<usleep>() function suspends execution of the calling thread for (at "
17716 "least) I<usec> microseconds. The sleep may be lengthened slightly by any "
17717 "system activity or by the time spent processing the call or by the "
17718 "granularity of system timers."
17721 #. type: Plain text
17722 #: build/C/man3/usleep.3:75
17723 msgid "0 on success, -1 on error."
17726 #. type: Plain text
17727 #: build/C/man3/usleep.3:80
17728 msgid "Interrupted by a signal; see B<signal>(7)."
17731 #. type: Plain text
17732 #: build/C/man3/usleep.3:84
17734 "I<usec> is not smaller than 1000000. (On systems where that is considered "
17738 #. type: Plain text
17739 #: build/C/man3/usleep.3:91
17741 "4.3BSD, POSIX.1-2001. POSIX.1-2001 declares this function obsolete; use "
17742 "B<nanosleep>(2) instead. POSIX.1-2008 removes the specification of "
17746 #. type: Plain text
17747 #: build/C/man3/usleep.3:98
17749 "On the original BSD implementation, and in glibc before version 2.2.2, the "
17750 "return type of this function is I<void>. The POSIX version returns I<int>, "
17751 "and this is also the prototype used since glibc 2.2.2."
17754 #. type: Plain text
17755 #: build/C/man3/usleep.3:102
17756 msgid "Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001."
17759 #. type: Plain text
17760 #: build/C/man3/usleep.3:110
17762 "The type I<useconds_t> is an unsigned integer type capable of holding "
17763 "integers in the range [0,1000000]. Programs will be more portable if they "
17764 "never mention this type explicitly. Use"
17767 #. type: Plain text
17768 #: build/C/man3/usleep.3:118
17771 "#include E<lt>unistd.hE<gt>\n"
17773 " unsigned int usecs;\n"
17775 " usleep(usecs);\n"
17778 #. type: Plain text
17779 #: build/C/man3/usleep.3:135
17781 "The interaction of this function with the B<SIGALRM> signal, and with other "
17782 "timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), "
17783 "B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), "
17784 "B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), "
17785 "B<ualarm>(3) is unspecified."
17788 #. type: Plain text
17789 #: build/C/man3/usleep.3:144
17791 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
17792 "B<setitimer>(2), B<sleep>(3), B<ualarm>(3), B<time>(7)"
17796 #: build/C/man2/vfork.2:26
17802 #: build/C/man2/vfork.2:26
17807 #. type: Plain text
17808 #: build/C/man2/vfork.2:29
17809 msgid "vfork - create a child process and block parent"
17812 #. type: Plain text
17813 #: build/C/man2/vfork.2:35
17814 msgid "B<pid_t vfork(void);>"
17817 #. type: Plain text
17818 #: build/C/man2/vfork.2:42
17819 msgid "B<vfork>():"
17823 #: build/C/man2/vfork.2:61
17825 msgid "Standard Description"
17828 #. type: Plain text
17829 #: build/C/man2/vfork.2:80
17831 "(From POSIX.1) The B<vfork>() function has the same effect as B<fork>(2), "
17832 "except that the behavior is undefined if the process created by B<vfork>() "
17833 "either modifies any data other than a variable of type I<pid_t> used to "
17834 "store the return value from B<vfork>(), or returns from the function in "
17835 "which B<vfork>() was called, or calls any other function before "
17836 "successfully calling B<_exit>(2) or one of the B<exec>(3) family of "
17841 #: build/C/man2/vfork.2:80
17843 msgid "Linux Description"
17846 #. type: Plain text
17847 #: build/C/man2/vfork.2:87
17849 "B<vfork>(), just like B<fork>(2), creates a child process of the calling "
17850 "process. For details and return value and errors, see B<fork>(2)."
17853 #. type: Plain text
17854 #: build/C/man2/vfork.2:96
17856 "B<vfork>() is a special case of B<clone>(2). It is used to create new "
17857 "processes without copying the page tables of the parent process. It may be "
17858 "useful in performance-sensitive applications where a child is created which "
17859 "then immediately issues an B<execve>(2)."
17862 #. type: Plain text
17863 #: build/C/man2/vfork.2:113
17865 "B<vfork>() differs from B<fork>(2) in that the calling thread is suspended "
17866 "until the child terminates (either normally, by calling B<_exit>(2), or "
17867 "abnormally, after delivery of a fatal signal), or it makes a call to "
17868 "B<execve>(2). Until that point, the child shares all memory with its "
17869 "parent, including the stack. The child must not return from the current "
17870 "function or call B<exit>(3), but may call B<_exit>(2)."
17873 #. type: Plain text
17874 #: build/C/man2/vfork.2:124
17876 "As with B<fork>(2), the child process created by B<vfork>() inherits copies "
17877 "of various of the caller's process attributes (e.g., file descriptors, "
17878 "signal dispositions, and current working directory); the B<vfork>() call "
17879 "differs only in the treatment of the virtual address space, as described "
17883 #. type: Plain text
17884 #: build/C/man2/vfork.2:130
17886 "Signals sent to the parent arrive after the child releases the parent's "
17887 "memory (i.e., after the child terminates or calls B<execve>(2))."
17891 #: build/C/man2/vfork.2:130
17893 msgid "Historic Description"
17896 #. type: Plain text
17897 #: build/C/man2/vfork.2:157
17899 "Under Linux, B<fork>(2) is implemented using copy-on-write pages, so the "
17900 "only penalty incurred by B<fork>(2) is the time and memory required to "
17901 "duplicate the parent's page tables, and to create a unique task structure "
17902 "for the child. However, in the bad old days a B<fork>(2) would require "
17903 "making a complete copy of the caller's data space, often needlessly, since "
17904 "usually immediately afterward an B<exec>(3) is done. Thus, for greater "
17905 "efficiency, BSD introduced the B<vfork>() system call, which did not fully "
17906 "copy the address space of the parent process, but borrowed the parent's "
17907 "memory and thread of control until a call to B<execve>(2) or an exit "
17908 "occurred. The parent process was suspended while the child was using its "
17909 "resources. The use of B<vfork>() was tricky: for example, not modifying "
17910 "data in the parent process depended on knowing which variables were held in "
17914 #. type: Plain text
17915 #: build/C/man2/vfork.2:161
17917 "4.3BSD; POSIX.1-2001 (but marked OBSOLETE). POSIX.1-2008 removes the "
17918 "specification of B<vfork>()."
17921 #. In AIXv3.1 vfork is equivalent to fork.
17922 #. type: Plain text
17923 #: build/C/man2/vfork.2:172
17925 "The requirements put on B<vfork>() by the standards are weaker than those "
17926 "put on B<fork>(2), so an implementation where the two are synonymous is "
17927 "compliant. In particular, the programmer cannot rely on the parent "
17928 "remaining blocked until the child either terminates or calls B<execve>(2), "
17929 "and cannot rely on any specific behavior with respect to shared memory."
17932 #. type: Plain text
17933 #: build/C/man2/vfork.2:191
17935 "Some consider the semantics of B<vfork>() to be an architectural blemish, "
17936 "and the 4.2BSD man page stated: \"This system call will be eliminated when "
17937 "proper system sharing mechanisms are implemented. Users should not depend "
17938 "on the memory sharing semantics of B<vfork>() as it will, in that case, be "
17939 "made synonymous to B<fork>(2).\" However, even though modern memory "
17940 "management hardware has decreased the performance difference between "
17941 "B<fork>() and B<vfork>(2), there are various reasons why Linux and other "
17942 "systems have retained B<vfork>():"
17945 #. type: Plain text
17946 #: build/C/man2/vfork.2:195
17948 "Some performance-critical applications require the small performance "
17949 "advantage conferred by B<vfork>()."
17952 #. http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
17953 #. http://developers.sun.com/solaris/articles/subprocess/subprocess.html
17954 #. http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
17955 #. type: Plain text
17956 #: build/C/man2/vfork.2:211
17958 "B<vfork>(2) can be implemented on systems that lack a memory-management "
17959 "unit (MMU), but B<fork>(2) can't be implemented on such systems. "
17960 "(POSIX.1-2008 removed B<vfork>() from the standard; the POSIX rationale for "
17961 "the B<posix_spawn>(3) function notes that that function, which provides "
17962 "functionality equivalent to B<fork>(2)+B<exec>(3), is designed to be "
17963 "implementable on systems that lack an MMU.)"
17966 #. type: Plain text
17967 #: build/C/man2/vfork.2:222
17969 "Fork handlers established using B<pthread_atfork>(3) are not called when a "
17970 "multithreaded program employing the NPTL threading library calls "
17971 "B<vfork>(). Fork handlers are called in this case in a program using the "
17972 "LinuxThreads threading library. (See B<pthreads>(7) for a description of "
17973 "Linux threading libraries.)"
17976 #. type: Plain text
17977 #: build/C/man2/vfork.2:230
17979 "A call to B<vfork>() is equivalent to calling B<clone>(2) with I<flags> "
17983 #. type: Plain text
17984 #: build/C/man2/vfork.2:232
17986 msgid " CLONE_VM | CLONE_VFORK | SIGCHLD\n"
17989 #. In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
17990 #. present, but definitely on its way out'.
17991 #. type: Plain text
17992 #: build/C/man2/vfork.2:249
17994 "The B<vfork>() system call appeared in 3.0BSD. In 4.4BSD it was made "
17995 "synonymous to B<fork>(2) but NetBSD introduced it again, "
17996 "cf. http://www.netbsd.org/Documentation/kernel/vfork.html . In Linux, it "
17997 "has been equivalent to B<fork>(2) until 2.2.0-pre6 or so. Since 2.2.0-pre9 "
17998 "(on i386, somewhat later on other architectures) it is an independent system "
17999 "call. Support was added in glibc 2.0.112."
18003 #. As far as I can tell, the following is not true in 2.6.19:
18004 #. Currently (Linux 2.3.25),
18008 #. and requires a kernel patch.
18009 #. type: Plain text
18010 #: build/C/man2/vfork.2:270
18012 "Details of the signal handling are obscure and differ between systems. The "
18013 "BSD man page states: \"To avoid a possible deadlock situation, processes "
18014 "that are children in the middle of a B<vfork>() are never sent B<SIGTTOU> "
18015 "or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input "
18016 "attempts result in an end-of-file indication.\""
18019 #. type: Plain text
18020 #: build/C/man2/vfork.2:276
18021 msgid "B<clone>(2), B<execve>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
18025 #: build/C/man2/vhangup.2:27
18030 #. type: Plain text
18031 #: build/C/man2/vhangup.2:30
18032 msgid "vhangup - virtually hangup the current tty"
18035 #. type: Plain text
18036 #: build/C/man2/vhangup.2:34
18037 msgid "B<int vhangup(void);>"
18040 #. type: Plain text
18041 #: build/C/man2/vhangup.2:43
18042 msgid "B<vhangup>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
18045 #. type: Plain text
18046 #: build/C/man2/vhangup.2:49
18048 "B<vhangup>() simulates a hangup on the current terminal. This call "
18049 "arranges for other users to have a ``clean'' tty at login time."
18052 #. type: Plain text
18053 #: build/C/man2/vhangup.2:62
18055 "The calling process has insufficient privilege to call B<vhangup>(); the "
18056 "B<CAP_SYS_TTY_CONFIG> capability is required."
18059 #. type: Plain text
18060 #: build/C/man2/vhangup.2:65
18062 "This call is Linux-specific, and should not be used in programs intended to "
18066 #. type: Plain text
18067 #: build/C/man2/vhangup.2:68
18068 msgid "B<capabilities>(7), B<init>(8)"