OSDN Git Service

Improve sysconf.3 return value description a bit more
[linuxjm/LDP_man-pages.git] / po4a / unistd / po / unistd.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2015-01-04 23:49+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man2/_syscall.2:38
21 #, no-wrap
22 msgid "_SYSCALL"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man2/_syscall.2:38
27 #, no-wrap
28 msgid "2007-12-19"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man2/dup.2:37 build/C/man7/environ.7:34 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:62 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:8 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:11 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man2/swapon.2:42 build/C/man2/syscall.2:40 build/C/man2/syscalls.2:31 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man2/truncate.2:43 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:29 build/C/man2/chdir.2:33 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man3/confstr.3:32 build/C/man3/crypt.3:36 build/C/man3/daemon.3:36 build/C/man3/des_crypt.3:14 build/C/man2/dup.2:37 build/C/man3/encrypt.3:30 build/C/man7/environ.7:34 build/C/man3/euidaccess.3:25 build/C/man3/exec.3:41 build/C/man2/execve.2:37 build/C/man2/exit_group.2:25 build/C/man2/fcntl.2:62 build/C/man3/fexecve.3:25 build/C/man2/flock.2:35 build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/fsync.2:38 build/C/man3/get_nprocs_conf.3:26 build/C/man2/get_thread_area.2:8 build/C/man3/getcwd.3:32 build/C/man2/getdomainname.2:29 build/C/man3/getdtablesize.3:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man2/getpagesize.2:25 build/C/man2/gettid.2:26 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man2/idle.2:32 build/C/man2/ioctl.2:41 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:34 build/C/man3/lockf.3:28 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:11 build/C/man2/nice.2:31 build/C/man2/pread.2:25 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:34 build/C/man5/shells.5:28 build/C/man3/sleep.3:26 build/C/man3/swab.3:31 build/C/man2/swapon.2:42 build/C/man2/syscall.2:40 build/C/man2/syscalls.2:31 build/C/man3/sysconf.3:27 build/C/man2/sysctl.2:30 build/C/man2/sysinfo.2:14 build/C/man3/tcgetpgrp.3:25 build/C/man2/truncate.2:43 build/C/man3/ualarm.3:24 build/C/man2/umask.2:34 build/C/man2/uname.2:27 build/C/man2/uselib.2:31 build/C/man3/usleep.3:33 build/C/man2/vfork.2:28 build/C/man2/vhangup.2:28
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man2/_syscall.2:39 build/C/man2/access.2:44 build/C/man2/alarm.2:31 build/C/man2/brk.2:30 build/C/man2/chdir.2:34 build/C/man2/chmod.2:33 build/C/man2/chown.2:39 build/C/man2/chroot.2:34 build/C/man2/close.2:36 build/C/man3/confstr.3:33 build/C/man3/crypt.3:37 build/C/man3/daemon.3:37 build/C/man3/des_crypt.3:15 build/C/man2/dup.2:38 build/C/man3/encrypt.3:31 build/C/man7/environ.7:35 build/C/man3/euidaccess.3:26 build/C/man3/exec.3:42 build/C/man2/execve.2:38 build/C/man2/exit_group.2:26 build/C/man2/fcntl.2:63 build/C/man3/fexecve.3:26 build/C/man2/flock.2:36 build/C/man2/fork.2:40 build/C/man3/fpathconf.3:42 build/C/man2/fsync.2:39 build/C/man3/get_nprocs_conf.3:27 build/C/man2/get_thread_area.2:9 build/C/man3/getcwd.3:33 build/C/man2/getdomainname.2:30 build/C/man3/getdtablesize.3:28 build/C/man3/gethostid.3:30 build/C/man2/gethostname.2:33 build/C/man3/getlogin.3:29 build/C/man3/getopt.3:42 build/C/man2/getpagesize.2:26 build/C/man2/gettid.2:27 build/C/man3/getumask.3:29 build/C/man3/getusershell.3:31 build/C/man2/idle.2:33 build/C/man2/ioctl.2:42 build/C/man2/ioctl_list.2:31 build/C/man2/ioperm.2:35 build/C/man3/lockf.3:29 build/C/man2/mincore.2:35 build/C/man2/mkdir.2:12 build/C/man2/nice.2:32 build/C/man2/pread.2:26 build/C/man2/set_thread_area.2:9 build/C/man2/setup.2:35 build/C/man5/shells.5:29 build/C/man3/sleep.3:27 build/C/man3/swab.3:32 build/C/man2/swapon.2:43 build/C/man2/syscall.2:41 build/C/man2/syscalls.2:32 build/C/man3/sysconf.3:28 build/C/man2/sysctl.2:31 build/C/man2/sysinfo.2:15 build/C/man3/tcgetpgrp.3:26 build/C/man2/truncate.2:44 build/C/man3/ualarm.3:25 build/C/man2/umask.2:35 build/C/man2/uname.2:28 build/C/man2/uselib.2:32 build/C/man3/usleep.3:34 build/C/man2/vfork.2:29 build/C/man2/vhangup.2:29
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man2/_syscall.2:41
51 msgid "_syscall - invoking a system call without library support (OBSOLETE)"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man2/_syscall.2:41 build/C/man2/access.2:46 build/C/man2/alarm.2:33 build/C/man2/brk.2:32 build/C/man2/chdir.2:36 build/C/man2/chmod.2:35 build/C/man2/chown.2:41 build/C/man2/chroot.2:36 build/C/man2/close.2:38 build/C/man3/confstr.3:35 build/C/man3/crypt.3:39 build/C/man3/daemon.3:39 build/C/man3/des_crypt.3:18 build/C/man2/dup.2:40 build/C/man3/encrypt.3:33 build/C/man7/environ.7:37 build/C/man3/euidaccess.3:28 build/C/man3/exec.3:44 build/C/man2/execve.2:40 build/C/man2/exit_group.2:28 build/C/man2/fcntl.2:65 build/C/man3/fexecve.3:28 build/C/man2/flock.2:38 build/C/man2/fork.2:42 build/C/man3/fpathconf.3:44 build/C/man2/fsync.2:41 build/C/man3/get_nprocs_conf.3:29 build/C/man2/get_thread_area.2:11 build/C/man3/getcwd.3:35 build/C/man2/getdomainname.2:32 build/C/man3/getdtablesize.3:30 build/C/man3/gethostid.3:32 build/C/man2/gethostname.2:35 build/C/man3/getlogin.3:31 build/C/man3/getopt.3:45 build/C/man2/getpagesize.2:28 build/C/man2/gettid.2:29 build/C/man3/getumask.3:31 build/C/man3/getusershell.3:33 build/C/man2/idle.2:35 build/C/man2/ioctl.2:44 build/C/man2/ioperm.2:37 build/C/man3/lockf.3:31 build/C/man2/mincore.2:37 build/C/man2/mkdir.2:14 build/C/man2/nice.2:34 build/C/man2/pread.2:28 build/C/man2/set_thread_area.2:11 build/C/man2/setup.2:37 build/C/man3/sleep.3:29 build/C/man3/swab.3:34 build/C/man2/swapon.2:45 build/C/man2/syscall.2:43 build/C/man2/syscalls.2:34 build/C/man3/sysconf.3:30 build/C/man2/sysctl.2:33 build/C/man2/sysinfo.2:17 build/C/man3/tcgetpgrp.3:28 build/C/man2/truncate.2:46 build/C/man3/ualarm.3:27 build/C/man2/umask.2:37 build/C/man2/uname.2:30 build/C/man2/uselib.2:34 build/C/man3/usleep.3:36 build/C/man2/vfork.2:31 build/C/man2/vhangup.2:31
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man2/_syscall.2:43 build/C/man2/get_thread_area.2:13 build/C/man2/set_thread_area.2:13
62 msgid "B<#include E<lt>linux/unistd.hE<gt>>"
63 msgstr ""
64
65 #. type: Plain text
66 #: build/C/man2/_syscall.2:45
67 msgid "A _syscall macro"
68 msgstr ""
69
70 #. type: Plain text
71 #: build/C/man2/_syscall.2:47
72 msgid "desired system call"
73 msgstr ""
74
75 #. type: SH
76 #: build/C/man2/_syscall.2:47 build/C/man2/access.2:78 build/C/man2/alarm.2:39 build/C/man2/brk.2:64 build/C/man2/chdir.2:59 build/C/man2/chmod.2:81 build/C/man2/chown.2:88 build/C/man2/chroot.2:63 build/C/man2/close.2:44 build/C/man3/confstr.3:49 build/C/man3/crypt.3:56 build/C/man3/daemon.3:51 build/C/man3/des_crypt.3:34 build/C/man2/dup.2:53 build/C/man3/encrypt.3:56 build/C/man7/environ.7:42 build/C/man3/euidaccess.3:36 build/C/man3/exec.3:72 build/C/man2/execve.2:46 build/C/man2/exit_group.2:34 build/C/man2/fcntl.2:72 build/C/man3/fexecve.3:53 build/C/man2/flock.2:42 build/C/man2/fork.2:46 build/C/man3/fpathconf.3:52 build/C/man2/fsync.2:61 build/C/man3/get_nprocs_conf.3:35 build/C/man2/get_thread_area.2:20 build/C/man3/getcwd.3:75 build/C/man2/getdomainname.2:51 build/C/man3/getdtablesize.3:57 build/C/man3/gethostid.3:56 build/C/man2/gethostname.2:63 build/C/man3/getlogin.3:52 build/C/man3/getopt.3:79 build/C/man2/getpagesize.2:55 build/C/man2/gettid.2:38 build/C/man3/getumask.3:39 build/C/man3/getusershell.3:57 build/C/man2/idle.2:39 build/C/man2/ioctl.2:50 build/C/man2/ioctl_list.2:33 build/C/man2/ioperm.2:42 build/C/man3/lockf.3:48 build/C/man2/mincore.2:51 build/C/man2/mkdir.2:47 build/C/man2/nice.2:46 build/C/man2/pread.2:53 build/C/man2/set_thread_area.2:20 build/C/man2/setup.2:41 build/C/man5/shells.5:31 build/C/man3/sleep.3:35 build/C/man3/swab.3:41 build/C/man2/swapon.2:53 build/C/man2/syscall.2:51 build/C/man2/syscalls.2:36 build/C/man3/sysconf.3:36 build/C/man2/sysctl.2:44 build/C/man2/sysinfo.2:21 build/C/man3/tcgetpgrp.3:34 build/C/man2/truncate.2:79 build/C/man3/ualarm.3:58 build/C/man2/umask.2:43 build/C/man2/uname.2:34 build/C/man2/uselib.2:38 build/C/man3/usleep.3:67 build/C/man2/vfork.2:62 build/C/man2/vhangup.2:45
77 #, no-wrap
78 msgid "DESCRIPTION"
79 msgstr ""
80
81 #. type: Plain text
82 #: build/C/man2/_syscall.2:53
83 msgid ""
84 "The important thing to know about a system call is its prototype.  You need "
85 "to know how many arguments, their types, and the function return type.  "
86 "There are seven macros that make the actual call into the system easier.  "
87 "They have the form:"
88 msgstr ""
89
90 #. type: Plain text
91 #: build/C/man2/_syscall.2:56
92 msgid "_syscallI<X>(I<type>,I<name>,I<type1>,I<arg1>,I<type2>,I<arg2>,...)"
93 msgstr ""
94
95 #. type: Plain text
96 #: build/C/man2/_syscall.2:59
97 msgid "where"
98 msgstr ""
99
100 #. type: Plain text
101 #: build/C/man2/_syscall.2:63
102 msgid "I<X> is 0\\(en6, which are the number of arguments taken by the system call"
103 msgstr ""
104
105 #. type: Plain text
106 #: build/C/man2/_syscall.2:66
107 msgid "I<type> is the return type of the system call"
108 msgstr ""
109
110 #. type: Plain text
111 #: build/C/man2/_syscall.2:69
112 msgid "I<name> is the name of the system call"
113 msgstr ""
114
115 #. type: Plain text
116 #: build/C/man2/_syscall.2:72
117 msgid "I<typeN> is the Nth argument's type"
118 msgstr ""
119
120 #. type: Plain text
121 #: build/C/man2/_syscall.2:75
122 msgid "I<argN> is the name of the Nth argument"
123 msgstr ""
124
125 #. type: Plain text
126 #: build/C/man2/_syscall.2:83
127 msgid ""
128 "These macros create a function called I<name> with the arguments you "
129 "specify.  Once you include the _syscall() in your source file, you call the "
130 "system call by I<name>."
131 msgstr ""
132
133 #. type: SH
134 #: build/C/man2/_syscall.2:83 build/C/man3/getlogin.3:132 build/C/man3/getusershell.3:89 build/C/man5/shells.5:43
135 #, no-wrap
136 msgid "FILES"
137 msgstr ""
138
139 #. type: Plain text
140 #: build/C/man2/_syscall.2:85
141 msgid "I</usr/include/linux/unistd.h>"
142 msgstr ""
143
144 #. type: SH
145 #: build/C/man2/_syscall.2:85 build/C/man2/access.2:262 build/C/man2/alarm.2:59 build/C/man2/brk.2:113 build/C/man2/chdir.2:125 build/C/man2/chmod.2:330 build/C/man2/chown.2:313 build/C/man2/chroot.2:134 build/C/man2/close.2:84 build/C/man3/confstr.3:128 build/C/man3/crypt.3:183 build/C/man3/daemon.3:96 build/C/man3/des_crypt.3:142 build/C/man2/dup.2:198 build/C/man3/encrypt.3:137 build/C/man3/euidaccess.3:80 build/C/man3/exec.3:199 build/C/man2/execve.2:464 build/C/man2/exit_group.2:43 build/C/man2/fcntl.2:1420 build/C/man3/fexecve.3:94 build/C/man2/flock.2:139 build/C/man2/fork.2:226 build/C/man3/fpathconf.3:169 build/C/man2/fsync.2:125 build/C/man3/get_nprocs_conf.3:48 build/C/man2/get_thread_area.2:46 build/C/man3/getcwd.3:208 build/C/man2/getdomainname.2:110 build/C/man3/getdtablesize.3:74 build/C/man3/gethostid.3:92 build/C/man2/gethostname.2:124 build/C/man3/getlogin.3:154 build/C/man3/getopt.3:318 build/C/man2/getpagesize.2:64 build/C/man2/gettid.2:58 build/C/man3/getumask.3:58 build/C/man3/getusershell.3:101 build/C/man2/idle.2:61 build/C/man2/ioctl.2:119 build/C/man2/ioperm.2:101 build/C/man3/lockf.3:159 build/C/man2/mincore.2:134 build/C/man2/mkdir.2:204 build/C/man2/nice.2:75 build/C/man2/pread.2:115 build/C/man2/set_thread_area.2:63 build/C/man2/setup.2:62 build/C/man3/sleep.3:44 build/C/man3/swab.3:77 build/C/man2/swapon.2:162 build/C/man3/sysconf.3:327 build/C/man2/sysctl.2:100 build/C/man2/sysinfo.2:87 build/C/man3/tcgetpgrp.3:116 build/C/man2/truncate.2:196 build/C/man3/ualarm.3:97 build/C/man2/umask.2:95 build/C/man2/uname.2:73 build/C/man2/uselib.2:76 build/C/man3/usleep.3:96 build/C/man2/vfork.2:159 build/C/man2/vhangup.2:63
146 #, no-wrap
147 msgid "CONFORMING TO"
148 msgstr ""
149
150 #. type: Plain text
151 #: build/C/man2/_syscall.2:87
152 msgid "The use of these macros is Linux-specific, and deprecated."
153 msgstr ""
154
155 #. type: SH
156 #: build/C/man2/_syscall.2:87 build/C/man2/access.2:268 build/C/man2/alarm.2:61 build/C/man2/brk.2:121 build/C/man2/chdir.2:127 build/C/man2/chmod.2:337 build/C/man2/chown.2:330 build/C/man2/chroot.2:139 build/C/man2/close.2:87 build/C/man3/crypt.3:188 build/C/man3/daemon.3:102 build/C/man2/dup.2:208 build/C/man3/encrypt.3:148 build/C/man3/euidaccess.3:86 build/C/man3/exec.3:205 build/C/man2/execve.2:472 build/C/man2/exit_group.2:45 build/C/man2/fcntl.2:1479 build/C/man3/fexecve.3:99 build/C/man2/flock.2:148 build/C/man2/fork.2:228 build/C/man3/fpathconf.3:171 build/C/man2/fsync.2:140 build/C/man3/get_nprocs_conf.3:50 build/C/man2/get_thread_area.2:50 build/C/man3/getcwd.3:230 build/C/man2/getdomainname.2:113 build/C/man3/getdtablesize.3:82 build/C/man3/gethostid.3:102 build/C/man2/gethostname.2:130 build/C/man3/getopt.3:350 build/C/man2/getpagesize.2:71 build/C/man2/gettid.2:62 build/C/man3/getumask.3:60 build/C/man2/ioctl.2:134 build/C/man2/ioperm.2:105 build/C/man2/mkdir.2:211 build/C/man2/nice.2:82 build/C/man2/pread.2:117 build/C/man2/set_thread_area.2:67 build/C/man2/setup.2:65 build/C/man2/swapon.2:168 build/C/man2/syscall.2:78 build/C/man2/syscalls.2:669 build/C/man2/sysctl.2:114 build/C/man3/tcgetpgrp.3:118 build/C/man2/truncate.2:209 build/C/man3/ualarm.3:105 build/C/man2/umask.2:97 build/C/man2/uname.2:82 build/C/man2/uselib.2:80 build/C/man3/usleep.3:114 build/C/man2/vfork.2:174
157 #, no-wrap
158 msgid "NOTES"
159 msgstr ""
160
161 #. type: Plain text
162 #: build/C/man2/_syscall.2:97
163 msgid ""
164 "Starting around kernel 2.6.18, the _syscall macros were removed from header "
165 "files supplied to user space.  Use B<syscall>(2)  instead.  (Some "
166 "architectures, notably ia64, never provided the _syscall macros; on those "
167 "architectures, B<syscall>(2)  was always required.)"
168 msgstr ""
169
170 #. type: Plain text
171 #: build/C/man2/_syscall.2:103
172 msgid ""
173 "The _syscall() macros I<do not> produce a prototype.  You may have to create "
174 "one, especially for C++ users."
175 msgstr ""
176
177 #. type: Plain text
178 #: build/C/man2/_syscall.2:124
179 msgid ""
180 "System calls are not required to return only positive or negative error "
181 "codes.  You need to read the source to be sure how it will return errors.  "
182 "Usually, it is the negative of a standard error code, for example, "
183 "-I<EPERM>.  The _syscall() macros will return the result I<r> of the system "
184 "call when I<r> is nonnegative, but will return -1 and set the variable "
185 "I<errno> to -I<r> when I<r> is negative.  For the error codes, see "
186 "B<errno>(3)."
187 msgstr ""
188
189 #.  The preferred way to invoke system calls that glibc does not know
190 #.  about yet is via
191 #.  .BR syscall (2).
192 #.  However, this mechanism can be used only if using a libc
193 #.  (such as glibc) that supports
194 #.  .BR syscall (2),
195 #.  and if the
196 #.  .I <sys/syscall.h>
197 #.  header file contains the required SYS_foo definition.
198 #.  Otherwise, the use of a _syscall macro is required.
199 #. type: Plain text
200 #: build/C/man2/_syscall.2:140
201 msgid ""
202 "When defining a system call, the argument types I<must> be passed by-value "
203 "or by-pointer (for aggregates like structs)."
204 msgstr ""
205
206 #. type: SH
207 #: build/C/man2/_syscall.2:140 build/C/man2/chown.2:442 build/C/man3/confstr.3:130 build/C/man3/encrypt.3:150 build/C/man2/execve.2:656 build/C/man2/fork.2:259 build/C/man3/get_nprocs_conf.3:67 build/C/man3/getopt.3:376 build/C/man5/shells.5:45 build/C/man2/syscall.2:210 build/C/man2/sysctl.2:143
208 #, no-wrap
209 msgid "EXAMPLE"
210 msgstr ""
211
212 #. type: Plain text
213 #: build/C/man2/_syscall.2:147
214 #, no-wrap
215 msgid ""
216 "#include E<lt>stdio.hE<gt>\n"
217 "#include E<lt>stdlib.hE<gt>\n"
218 "#include E<lt>errno.hE<gt>\n"
219 "#include E<lt>linux/unistd.hE<gt>       /* for _syscallX macros/related "
220 "stuff */\n"
221 "#include E<lt>linux/kernel.hE<gt>       /* for struct sysinfo */\n"
222 msgstr ""
223
224 #. type: Plain text
225 #: build/C/man2/_syscall.2:149
226 #, no-wrap
227 msgid "_syscall1(int, sysinfo, struct sysinfo *, info);\n"
228 msgstr ""
229
230 #. type: Plain text
231 #: build/C/man2/_syscall.2:152
232 #, no-wrap
233 msgid ""
234 "/* Note: if you copy directly from the nroff source, remember to\n"
235 "REMOVE the extra backslashes in the printf statement. */\n"
236 msgstr ""
237
238 #. type: Plain text
239 #: build/C/man2/_syscall.2:158
240 #, no-wrap
241 msgid ""
242 "int\n"
243 "main(void)\n"
244 "{\n"
245 "    struct sysinfo s_info;\n"
246 "    int error;\n"
247 msgstr ""
248
249 #. type: Plain text
250 #: build/C/man2/_syscall.2:173
251 #, no-wrap
252 msgid ""
253 "    error = sysinfo(&s_info);\n"
254 "    printf(\"code error = %d\\en\", error);\n"
255 "    printf(\"Uptime = %lds\\enLoad: 1 min %lu / 5 min %lu / 15 min "
256 "%lu\\en\"\n"
257 "           \"RAM: total %lu / free %lu / shared %lu\\en\"\n"
258 "           \"Memory in buffers = %lu\\enSwap: total %lu / free %lu\\en\"\n"
259 "           \"Number of processes = %d\\en\",\n"
260 "           s_info.uptime, s_info.loads[0],\n"
261 "           s_info.loads[1], s_info.loads[2],\n"
262 "           s_info.totalram, s_info.freeram,\n"
263 "           s_info.sharedram, s_info.bufferram,\n"
264 "           s_info.totalswap, s_info.freeswap,\n"
265 "           s_info.procs);\n"
266 "    exit(EXIT_SUCCESS);\n"
267 "}\n"
268 msgstr ""
269
270 #. type: SS
271 #: build/C/man2/_syscall.2:174
272 #, no-wrap
273 msgid "Sample output"
274 msgstr ""
275
276 #. type: Plain text
277 #: build/C/man2/_syscall.2:183
278 #, no-wrap
279 msgid ""
280 "code error = 0\n"
281 "uptime = 502034s\n"
282 "Load: 1 min 13376 / 5 min 5504 / 15 min 1152\n"
283 "RAM: total 15343616 / free 827392 / shared 8237056\n"
284 "Memory in buffers = 5066752\n"
285 "Swap: total 27881472 / free 24698880\n"
286 "Number of processes = 40\n"
287 msgstr ""
288
289 #. type: SH
290 #: build/C/man2/_syscall.2:184 build/C/man2/access.2:390 build/C/man2/alarm.2:86 build/C/man2/brk.2:163 build/C/man2/chdir.2:136 build/C/man2/chmod.2:361 build/C/man2/chown.2:490 build/C/man2/chroot.2:151 build/C/man2/close.2:131 build/C/man3/confstr.3:147 build/C/man3/crypt.3:249 build/C/man3/daemon.3:110 build/C/man3/des_crypt.3:145 build/C/man2/dup.2:264 build/C/man3/encrypt.3:174 build/C/man7/environ.7:247 build/C/man3/euidaccess.3:101 build/C/man3/exec.3:241 build/C/man2/execve.2:751 build/C/man2/exit_group.2:49 build/C/man2/fcntl.2:1690 build/C/man3/fexecve.3:137 build/C/man2/flock.2:234 build/C/man2/fork.2:264 build/C/man3/fpathconf.3:180 build/C/man2/fsync.2:162 build/C/man2/get_thread_area.2:55 build/C/man3/getcwd.3:249 build/C/man2/getdomainname.2:127 build/C/man3/getdtablesize.3:95 build/C/man3/gethostid.3:124 build/C/man2/gethostname.2:176 build/C/man3/getlogin.3:209 build/C/man3/getopt.3:516 build/C/man2/getpagesize.2:108 build/C/man2/gettid.2:71 build/C/man3/getumask.3:63 build/C/man3/getusershell.3:103 build/C/man2/ioctl.2:142 build/C/man2/ioctl_list.2:963 build/C/man2/ioperm.2:117 build/C/man3/lockf.3:161 build/C/man2/mincore.2:166 build/C/man2/mkdir.2:236 build/C/man2/nice.2:105 build/C/man2/pread.2:158 build/C/man2/set_thread_area.2:72 build/C/man5/shells.5:56 build/C/man3/sleep.3:61 build/C/man3/swab.3:79 build/C/man2/swapon.2:202 build/C/man2/syscall.2:227 build/C/man2/syscalls.2:846 build/C/man3/sysconf.3:338 build/C/man2/sysctl.2:181 build/C/man2/sysinfo.2:90 build/C/man3/tcgetpgrp.3:127 build/C/man2/truncate.2:257 build/C/man3/ualarm.3:147 build/C/man2/umask.2:118 build/C/man2/uname.2:167 build/C/man2/uselib.2:102 build/C/man3/usleep.3:147 build/C/man2/vfork.2:273 build/C/man2/vhangup.2:66
291 #, no-wrap
292 msgid "SEE ALSO"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man2/_syscall.2:188
297 msgid "B<intro>(2), B<syscall>(2), B<errno>(3)"
298 msgstr ""
299
300 #. type: SH
301 #: build/C/man2/_syscall.2:188 build/C/man2/access.2:401 build/C/man2/alarm.2:95 build/C/man2/brk.2:168 build/C/man2/chdir.2:140 build/C/man2/chmod.2:368 build/C/man2/chown.2:495 build/C/man2/chroot.2:154 build/C/man2/close.2:138 build/C/man3/confstr.3:155 build/C/man3/crypt.3:255 build/C/man3/daemon.3:113 build/C/man3/des_crypt.3:149 build/C/man2/dup.2:268 build/C/man3/encrypt.3:179 build/C/man7/environ.7:264 build/C/man3/euidaccess.3:112 build/C/man3/exec.3:248 build/C/man2/execve.2:762 build/C/man2/exit_group.2:51 build/C/man2/fcntl.2:1711 build/C/man3/fexecve.3:139 build/C/man2/flock.2:248 build/C/man2/fork.2:275 build/C/man3/fpathconf.3:186 build/C/man2/fsync.2:170 build/C/man3/get_nprocs_conf.3:88 build/C/man2/get_thread_area.2:58 build/C/man3/getcwd.3:256 build/C/man2/getdomainname.2:131 build/C/man3/getdtablesize.3:100 build/C/man3/gethostid.3:127 build/C/man2/gethostname.2:180 build/C/man3/getlogin.3:213 build/C/man3/getopt.3:518 build/C/man2/getpagesize.2:111 build/C/man2/gettid.2:90 build/C/man3/getumask.3:65 build/C/man3/getusershell.3:105 build/C/man2/idle.2:64 build/C/man2/ioctl.2:150 build/C/man2/ioctl_list.2:965 build/C/man2/ioperm.2:121 build/C/man3/lockf.3:176 build/C/man2/mincore.2:169 build/C/man2/mkdir.2:247 build/C/man2/nice.2:113 build/C/man2/pread.2:163 build/C/man2/set_thread_area.2:74 build/C/man2/setup.2:72 build/C/man5/shells.5:59 build/C/man3/sleep.3:66 build/C/man3/swab.3:81 build/C/man2/swapon.2:206 build/C/man2/syscall.2:233 build/C/man2/syscalls.2:853 build/C/man3/sysconf.3:347 build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:92 build/C/man3/tcgetpgrp.3:131 build/C/man2/truncate.2:261 build/C/man3/ualarm.3:155 build/C/man2/umask.2:124 build/C/man2/uname.2:172 build/C/man2/uselib.2:112 build/C/man3/usleep.3:156 build/C/man2/vfork.2:279 build/C/man2/vhangup.2:69
302 #, no-wrap
303 msgid "COLOPHON"
304 msgstr ""
305
306 #. type: Plain text
307 #: build/C/man2/_syscall.2:196 build/C/man2/access.2:409 build/C/man2/alarm.2:103 build/C/man2/brk.2:176 build/C/man2/chdir.2:148 build/C/man2/chmod.2:376 build/C/man2/chown.2:503 build/C/man2/chroot.2:162 build/C/man2/close.2:146 build/C/man3/confstr.3:163 build/C/man3/crypt.3:263 build/C/man3/daemon.3:121 build/C/man3/des_crypt.3:157 build/C/man2/dup.2:276 build/C/man3/encrypt.3:187 build/C/man7/environ.7:272 build/C/man3/euidaccess.3:120 build/C/man3/exec.3:256 build/C/man2/execve.2:770 build/C/man2/exit_group.2:59 build/C/man2/fcntl.2:1719 build/C/man3/fexecve.3:147 build/C/man2/flock.2:256 build/C/man2/fork.2:283 build/C/man3/fpathconf.3:194 build/C/man2/fsync.2:178 build/C/man3/get_nprocs_conf.3:96 build/C/man2/get_thread_area.2:66 build/C/man3/getcwd.3:264 build/C/man2/getdomainname.2:139 build/C/man3/getdtablesize.3:108 build/C/man3/gethostid.3:135 build/C/man2/gethostname.2:188 build/C/man3/getlogin.3:221 build/C/man3/getopt.3:526 build/C/man2/getpagesize.2:119 build/C/man2/gettid.2:98 build/C/man3/getumask.3:73 build/C/man3/getusershell.3:113 build/C/man2/idle.2:72 build/C/man2/ioctl.2:158 build/C/man2/ioctl_list.2:973 build/C/man2/ioperm.2:129 build/C/man3/lockf.3:184 build/C/man2/mincore.2:177 build/C/man2/mkdir.2:255 build/C/man2/nice.2:121 build/C/man2/pread.2:171 build/C/man2/set_thread_area.2:82 build/C/man2/setup.2:80 build/C/man5/shells.5:67 build/C/man3/sleep.3:74 build/C/man3/swab.3:89 build/C/man2/swapon.2:214 build/C/man2/syscall.2:241 build/C/man2/syscalls.2:861 build/C/man3/sysconf.3:355 build/C/man2/sysctl.2:191 build/C/man2/sysinfo.2:100 build/C/man3/tcgetpgrp.3:139 build/C/man2/truncate.2:269 build/C/man3/ualarm.3:163 build/C/man2/umask.2:132 build/C/man2/uname.2:180 build/C/man2/uselib.2:120 build/C/man3/usleep.3:164 build/C/man2/vfork.2:287 build/C/man2/vhangup.2:77
308 msgid ""
309 "This page is part of release 3.76 of the Linux I<man-pages> project.  A "
310 "description of the project, information about reporting bugs, and the latest "
311 "version of this page, can be found at "
312 "\\%http://www.kernel.org/doc/man-pages/."
313 msgstr ""
314
315 #. type: TH
316 #: build/C/man2/access.2:43
317 #, no-wrap
318 msgid "ACCESS"
319 msgstr ""
320
321 #. type: TH
322 #: build/C/man2/access.2:43 build/C/man2/brk.2:29 build/C/man2/chmod.2:32 build/C/man2/chown.2:38 build/C/man3/des_crypt.3:14 build/C/man7/environ.7:34 build/C/man2/fsync.2:38 build/C/man3/getcwd.3:32 build/C/man3/getdtablesize.3:27 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:25 build/C/man2/ioperm.2:34 build/C/man2/mkdir.2:11 build/C/man2/sysinfo.2:14
323 #, no-wrap
324 msgid "2014-08-19"
325 msgstr ""
326
327 #. type: Plain text
328 #: build/C/man2/access.2:46
329 msgid "access, faccessat - check user's permissions for a file"
330 msgstr ""
331
332 #. type: Plain text
333 #: build/C/man2/access.2:49 build/C/man2/alarm.2:36 build/C/man2/chown.2:44 build/C/man2/close.2:41 build/C/man3/confstr.3:38 build/C/man3/crypt.3:44 build/C/man2/dup.2:43 build/C/man3/fexecve.3:31 build/C/man3/fpathconf.3:47 build/C/man3/getcwd.3:38 build/C/man3/getopt.3:48 build/C/man3/getusershell.3:36 build/C/man3/sleep.3:32 build/C/man3/sysconf.3:33 build/C/man2/sysctl.2:36 build/C/man3/ualarm.3:30 build/C/man3/usleep.3:39
334 #, no-wrap
335 msgid "B<#include E<lt>unistd.hE<gt>>\n"
336 msgstr ""
337
338 #. type: Plain text
339 #: build/C/man2/access.2:51
340 #, no-wrap
341 msgid "B<int access(const char *>I<pathname>B<, int >I<mode>B<);>\n"
342 msgstr ""
343
344 #. type: Plain text
345 #: build/C/man2/access.2:54 build/C/man2/chown.2:53
346 #, no-wrap
347 msgid ""
348 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
349 "B<#include E<lt>unistd.hE<gt>>\n"
350 msgstr ""
351
352 #. type: Plain text
353 #: build/C/man2/access.2:57
354 #, no-wrap
355 msgid ""
356 "B<int faccessat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<mode>B<, "
357 "int >I<flags>B<);>\n"
358 msgstr ""
359
360 #. type: Plain text
361 #: build/C/man2/access.2:62 build/C/man2/brk.2:42 build/C/man2/chdir.2:46 build/C/man2/chmod.2:53 build/C/man2/chown.2:62 build/C/man2/chroot.2:44 build/C/man3/confstr.3:45 build/C/man3/daemon.3:47 build/C/man3/exec.3:68 build/C/man3/fexecve.3:38 build/C/man2/fsync.2:51 build/C/man3/getcwd.3:49 build/C/man2/getdomainname.2:42 build/C/man3/getdtablesize.3:38 build/C/man3/gethostid.3:42 build/C/man2/gethostname.2:45 build/C/man3/getlogin.3:45 build/C/man3/getopt.3:69 build/C/man2/getpagesize.2:36 build/C/man3/getusershell.3:47 build/C/man3/lockf.3:39 build/C/man2/mincore.2:47 build/C/man2/mkdir.2:31 build/C/man2/nice.2:42 build/C/man2/pread.2:40 build/C/man2/truncate.2:58 build/C/man3/ualarm.3:37 build/C/man3/usleep.3:46 build/C/man2/vfork.2:41 build/C/man2/vhangup.2:39
362 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
363 msgstr ""
364
365 #. type: Plain text
366 #: build/C/man2/access.2:65
367 msgid "B<faccessat>():"
368 msgstr ""
369
370 #. type: TP
371 #: build/C/man2/access.2:68 build/C/man2/chmod.2:71 build/C/man2/chown.2:79 build/C/man3/fexecve.3:44 build/C/man2/mkdir.2:37
372 #, no-wrap
373 msgid "Since glibc 2.10:"
374 msgstr ""
375
376 #. type: Plain text
377 #: build/C/man2/access.2:71 build/C/man2/chmod.2:74 build/C/man2/chown.2:82 build/C/man3/fexecve.3:47 build/C/man2/mkdir.2:40
378 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
379 msgstr ""
380
381 #. type: TP
382 #: build/C/man2/access.2:71 build/C/man2/chmod.2:74 build/C/man2/chown.2:82 build/C/man3/fexecve.3:47 build/C/man2/mkdir.2:40
383 #, no-wrap
384 msgid "Before glibc 2.10:"
385 msgstr ""
386
387 #. type: Plain text
388 #: build/C/man2/access.2:74 build/C/man2/chmod.2:77 build/C/man2/chown.2:85 build/C/man2/mkdir.2:43
389 msgid "_ATFILE_SOURCE"
390 msgstr ""
391
392 #. type: Plain text
393 #: build/C/man2/access.2:85
394 msgid ""
395 "B<access>()  checks whether the calling process can access the file "
396 "I<pathname>.  If I<pathname> is a symbolic link, it is dereferenced."
397 msgstr ""
398
399 #.  F_OK is defined as 0 on every system that I know of.
400 #. type: Plain text
401 #: build/C/man2/access.2:99
402 msgid ""
403 "The I<mode> specifies the accessibility check(s) to be performed, and is "
404 "either the value B<F_OK>, or a mask consisting of the bitwise OR of one or "
405 "more of B<R_OK>, B<W_OK>, and B<X_OK>.  B<F_OK> tests for the existence of "
406 "the file.  B<R_OK>, B<W_OK>, and B<X_OK> test whether the file exists and "
407 "grants read, write, and execute permissions, respectively."
408 msgstr ""
409
410 #. type: Plain text
411 #: build/C/man2/access.2:108
412 msgid ""
413 "The check is done using the calling process's I<real> UID and GID, rather "
414 "than the effective IDs as is done when actually attempting an operation "
415 "(e.g., B<open>(2))  on the file.  This allows set-user-ID programs to easily "
416 "determine the invoking user's authority."
417 msgstr ""
418
419 #. type: Plain text
420 #: build/C/man2/access.2:114
421 msgid ""
422 "If the calling process is privileged (i.e., its real UID is zero), then an "
423 "B<X_OK> check is successful for a regular file if execute permission is "
424 "enabled for any of the file owner, group, or other."
425 msgstr ""
426
427 #. type: SS
428 #: build/C/man2/access.2:114
429 #, no-wrap
430 msgid "faccessat()"
431 msgstr ""
432
433 #. type: Plain text
434 #: build/C/man2/access.2:120
435 msgid ""
436 "The B<faccessat>()  system call operates in exactly the same way as "
437 "B<access>(), except for the differences described here."
438 msgstr ""
439
440 #. type: Plain text
441 #: build/C/man2/access.2:130
442 msgid ""
443 "If the pathname given in I<pathname> is relative, then it is interpreted "
444 "relative to the directory referred to by the file descriptor I<dirfd> "
445 "(rather than relative to the current working directory of the calling "
446 "process, as is done by B<access>()  for a relative pathname)."
447 msgstr ""
448
449 #. type: Plain text
450 #: build/C/man2/access.2:142
451 msgid ""
452 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
453 "then I<pathname> is interpreted relative to the current working directory of "
454 "the calling process (like B<access>())."
455 msgstr ""
456
457 #. type: Plain text
458 #: build/C/man2/access.2:148 build/C/man2/chmod.2:216 build/C/man2/chown.2:179 build/C/man2/mkdir.2:110
459 msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
460 msgstr ""
461
462 #. type: Plain text
463 #: build/C/man2/access.2:151
464 msgid ""
465 "I<flags> is constructed by ORing together zero or more of the following "
466 "values:"
467 msgstr ""
468
469 #. type: TP
470 #: build/C/man2/access.2:151
471 #, no-wrap
472 msgid "B<AT_EACCESS>"
473 msgstr ""
474
475 #. type: Plain text
476 #: build/C/man2/access.2:158
477 msgid ""
478 "Perform access checks using the effective user and group IDs.  By default, "
479 "B<faccessat>()  uses the real IDs (like B<access>())."
480 msgstr ""
481
482 #. type: TP
483 #: build/C/man2/access.2:158 build/C/man2/chmod.2:219 build/C/man2/chown.2:208
484 #, no-wrap
485 msgid "B<AT_SYMLINK_NOFOLLOW>"
486 msgstr ""
487
488 #. type: Plain text
489 #: build/C/man2/access.2:164
490 msgid ""
491 "If I<pathname> is a symbolic link, do not dereference it: instead return "
492 "information about the link itself."
493 msgstr ""
494
495 #. type: Plain text
496 #: build/C/man2/access.2:169
497 msgid "See B<openat>(2)  for an explanation of the need for B<faccessat>()."
498 msgstr ""
499
500 #. type: SH
501 #: build/C/man2/access.2:169 build/C/man2/alarm.2:54 build/C/man2/brk.2:93 build/C/man2/chdir.2:70 build/C/man2/chmod.2:231 build/C/man2/chown.2:224 build/C/man2/chroot.2:90 build/C/man2/close.2:64 build/C/man3/confstr.3:95 build/C/man3/crypt.3:120 build/C/man3/daemon.3:73 build/C/man3/des_crypt.3:106 build/C/man2/dup.2:148 build/C/man3/encrypt.3:113 build/C/man3/euidaccess.3:58 build/C/man3/exec.3:183 build/C/man2/execve.2:355 build/C/man2/exit_group.2:39 build/C/man2/fcntl.2:1301 build/C/man3/fexecve.3:67 build/C/man2/flock.2:112 build/C/man2/fork.2:178 build/C/man3/fpathconf.3:160 build/C/man2/fsync.2:108 build/C/man3/get_nprocs_conf.3:46 build/C/man2/get_thread_area.2:29 build/C/man3/getcwd.3:156 build/C/man2/getdomainname.2:75 build/C/man3/getdtablesize.3:61 build/C/man3/gethostid.3:71 build/C/man2/gethostname.2:89 build/C/man3/getlogin.3:95 build/C/man3/getopt.3:274 build/C/man2/gettid.2:50 build/C/man3/getusershell.3:85 build/C/man2/idle.2:52 build/C/man2/ioctl.2:85 build/C/man2/ioctl_list.2:107 build/C/man2/ioperm.2:79 build/C/man3/lockf.3:116 build/C/man2/mincore.2:94 build/C/man2/mkdir.2:115 build/C/man2/nice.2:56 build/C/man2/pread.2:79 build/C/man2/set_thread_area.2:44 build/C/man2/setup.2:53 build/C/man3/sleep.3:40 build/C/man3/swab.3:68 build/C/man2/swapon.2:111 build/C/man2/syscall.2:72 build/C/man3/sysconf.3:314 build/C/man2/sysctl.2:74 build/C/man2/sysinfo.2:74 build/C/man3/tcgetpgrp.3:64 build/C/man2/truncate.2:110 build/C/man3/ualarm.3:81 build/C/man2/umask.2:92 build/C/man2/uname.2:63 build/C/man2/uselib.2:48 build/C/man3/usleep.3:75 build/C/man2/vhangup.2:50
502 #, no-wrap
503 msgid "RETURN VALUE"
504 msgstr ""
505
506 #. type: Plain text
507 #: build/C/man2/access.2:185
508 msgid ""
509 "On success (all requested permissions granted, or I<mode> is B<F_OK> and the "
510 "file exists), zero is returned.  On error (at least one bit in I<mode> asked "
511 "for a permission that is denied, or I<mode> is B<F_OK> and the file does not "
512 "exist, or some other error occurred), -1 is returned, and I<errno> is set "
513 "appropriately."
514 msgstr ""
515
516 #. type: SH
517 #: build/C/man2/access.2:185 build/C/man2/chdir.2:75 build/C/man2/chmod.2:236 build/C/man2/chown.2:229 build/C/man2/chroot.2:95 build/C/man2/close.2:70 build/C/man3/confstr.3:122 build/C/man3/crypt.3:123 build/C/man2/dup.2:154 build/C/man3/encrypt.3:115 build/C/man3/euidaccess.3:66 build/C/man3/exec.3:190 build/C/man2/execve.2:361 build/C/man2/fcntl.2:1334 build/C/man3/fexecve.3:74 build/C/man2/flock.2:117 build/C/man2/fork.2:185 build/C/man2/fsync.2:113 build/C/man2/get_thread_area.2:35 build/C/man3/getcwd.3:172 build/C/man2/getdomainname.2:80 build/C/man3/getdtablesize.3:63 build/C/man3/gethostid.3:81 build/C/man2/gethostname.2:94 build/C/man3/getlogin.3:103 build/C/man2/gettid.2:52 build/C/man2/idle.2:55 build/C/man2/ioctl.2:94 build/C/man2/ioperm.2:84 build/C/man3/lockf.3:121 build/C/man2/mincore.2:101 build/C/man2/mkdir.2:122 build/C/man2/nice.2:61 build/C/man2/pread.2:89 build/C/man2/set_thread_area.2:49 build/C/man2/setup.2:56 build/C/man2/swapon.2:116 build/C/man2/sysctl.2:81 build/C/man2/sysinfo.2:79 build/C/man3/tcgetpgrp.3:86 build/C/man2/truncate.2:115 build/C/man3/ualarm.3:84 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man3/usleep.3:82 build/C/man2/vhangup.2:55
518 #, no-wrap
519 msgid "ERRORS"
520 msgstr ""
521
522 #. type: Plain text
523 #: build/C/man2/access.2:190
524 msgid "B<access>()  and B<faccessat>()  shall fail if:"
525 msgstr ""
526
527 #. type: TP
528 #: build/C/man2/access.2:190 build/C/man2/chdir.2:81 build/C/man2/chdir.2:117 build/C/man2/chmod.2:243 build/C/man2/chown.2:236 build/C/man2/chroot.2:98 build/C/man2/execve.2:369 build/C/man2/execve.2:376 build/C/man2/execve.2:379 build/C/man2/execve.2:382 build/C/man3/getcwd.3:173 build/C/man3/gethostid.3:84 build/C/man2/mkdir.2:123 build/C/man2/truncate.2:118 build/C/man2/uselib.2:59
529 #, no-wrap
530 msgid "B<EACCES>"
531 msgstr ""
532
533 #. type: Plain text
534 #: build/C/man2/access.2:197
535 msgid ""
536 "The requested access would be denied to the file, or search permission is "
537 "denied for one of the directories in the path prefix of I<pathname>.  (See "
538 "also B<path_resolution>(7).)"
539 msgstr ""
540
541 #. type: TP
542 #: build/C/man2/access.2:197 build/C/man2/chdir.2:94 build/C/man2/chmod.2:255 build/C/man2/chown.2:245 build/C/man2/chroot.2:112 build/C/man2/execve.2:417 build/C/man2/mkdir.2:145 build/C/man2/truncate.2:152
543 #, no-wrap
544 msgid "B<ELOOP>"
545 msgstr ""
546
547 #. type: Plain text
548 #: build/C/man2/access.2:201 build/C/man2/chmod.2:259 build/C/man2/chown.2:249 build/C/man2/mkdir.2:149
549 msgid "Too many symbolic links were encountered in resolving I<pathname>."
550 msgstr ""
551
552 #. type: TP
553 #: build/C/man2/access.2:201 build/C/man2/chdir.2:98 build/C/man2/chmod.2:259 build/C/man2/chown.2:249 build/C/man2/chroot.2:116 build/C/man2/execve.2:425 build/C/man2/gethostname.2:109 build/C/man2/mkdir.2:153 build/C/man2/truncate.2:155
554 #, no-wrap
555 msgid "B<ENAMETOOLONG>"
556 msgstr ""
557
558 #. type: Plain text
559 #: build/C/man2/access.2:205 build/C/man2/chmod.2:263 build/C/man2/chown.2:253
560 msgid "I<pathname> is too long."
561 msgstr ""
562
563 #. type: TP
564 #: build/C/man2/access.2:205 build/C/man2/chdir.2:102 build/C/man2/chmod.2:263 build/C/man2/chown.2:253 build/C/man2/chown.2:279 build/C/man2/chroot.2:120 build/C/man2/execve.2:432 build/C/man3/getcwd.3:198 build/C/man3/getlogin.3:122 build/C/man2/mkdir.2:156 build/C/man2/swapon.2:147 build/C/man2/truncate.2:159
565 #, no-wrap
566 msgid "B<ENOENT>"
567 msgstr ""
568
569 #. type: Plain text
570 #: build/C/man2/access.2:210
571 msgid "A component of I<pathname> does not exist or is a dangling symbolic link."
572 msgstr ""
573
574 #. type: TP
575 #: build/C/man2/access.2:210 build/C/man2/access.2:252 build/C/man2/chdir.2:108 build/C/man2/chmod.2:269 build/C/man2/chmod.2:314 build/C/man2/chown.2:259 build/C/man2/chown.2:303 build/C/man2/chroot.2:126 build/C/man2/execve.2:446 build/C/man2/fcntl.2:1407 build/C/man2/mkdir.2:173 build/C/man2/mkdir.2:194 build/C/man2/sysctl.2:88 build/C/man2/truncate.2:162
576 #, no-wrap
577 msgid "B<ENOTDIR>"
578 msgstr ""
579
580 #. type: Plain text
581 #: build/C/man2/access.2:215 build/C/man2/mkdir.2:178
582 msgid "A component used as a directory in I<pathname> is not, in fact, a directory."
583 msgstr ""
584
585 #. type: TP
586 #: build/C/man2/access.2:215 build/C/man2/chmod.2:278 build/C/man2/chmod.2:296 build/C/man2/chown.2:266 build/C/man2/chown.2:285 build/C/man2/mkdir.2:183 build/C/man2/truncate.2:171
587 #, no-wrap
588 msgid "B<EROFS>"
589 msgstr ""
590
591 #. type: Plain text
592 #: build/C/man2/access.2:218
593 msgid "Write permission was requested for a file on a read-only filesystem."
594 msgstr ""
595
596 #. type: Plain text
597 #: build/C/man2/access.2:223
598 msgid "B<access>()  and B<faccessat>()  may fail if:"
599 msgstr ""
600
601 #. type: TP
602 #: build/C/man2/access.2:223 build/C/man2/chdir.2:87 build/C/man2/chmod.2:248 build/C/man2/chown.2:241 build/C/man2/chroot.2:105 build/C/man2/execve.2:396 build/C/man2/fcntl.2:1356 build/C/man2/get_thread_area.2:36 build/C/man3/getcwd.3:176 build/C/man2/getdomainname.2:83 build/C/man2/gethostname.2:95 build/C/man2/ioctl.2:99 build/C/man2/mincore.2:104 build/C/man2/mkdir.2:142 build/C/man2/set_thread_area.2:53 build/C/man2/sysctl.2:82 build/C/man2/sysinfo.2:80 build/C/man2/truncate.2:124 build/C/man2/uname.2:69
603 #, no-wrap
604 msgid "B<EFAULT>"
605 msgstr ""
606
607 #. type: Plain text
608 #: build/C/man2/access.2:227 build/C/man2/chmod.2:252 build/C/man2/chown.2:245 build/C/man2/mkdir.2:145
609 msgid "I<pathname> points outside your accessible address space."
610 msgstr ""
611
612 #. type: TP
613 #: build/C/man2/access.2:227 build/C/man2/access.2:248 build/C/man2/chmod.2:310 build/C/man2/chown.2:299 build/C/man3/confstr.3:123 build/C/man3/crypt.3:124 build/C/man2/dup.2:179 build/C/man2/execve.2:404 build/C/man2/fcntl.2:1372 build/C/man2/fcntl.2:1377 build/C/man2/fcntl.2:1387 build/C/man3/fexecve.3:78 build/C/man2/flock.2:127 build/C/man2/get_thread_area.2:39 build/C/man3/getcwd.3:180 build/C/man2/getdomainname.2:87 build/C/man2/getdomainname.2:99 build/C/man2/gethostname.2:99 build/C/man2/ioctl.2:103 build/C/man2/ioperm.2:85 build/C/man3/lockf.3:147 build/C/man2/mincore.2:108 build/C/man2/set_thread_area.2:50 build/C/man2/swapon.2:124 build/C/man2/swapon.2:129 build/C/man2/swapon.2:139 build/C/man3/tcgetpgrp.3:91 build/C/man2/truncate.2:141 build/C/man2/truncate.2:192 build/C/man3/ualarm.3:88 build/C/man3/usleep.3:87
614 #, no-wrap
615 msgid "B<EINVAL>"
616 msgstr ""
617
618 #. type: Plain text
619 #: build/C/man2/access.2:231
620 msgid "I<mode> was incorrectly specified."
621 msgstr ""
622
623 #. type: TP
624 #: build/C/man2/access.2:231 build/C/man2/chdir.2:91 build/C/man2/chmod.2:252 build/C/man2/chmod.2:290 build/C/man2/chown.2:276 build/C/man2/chroot.2:109 build/C/man2/close.2:81 build/C/man2/execve.2:408 build/C/man2/fsync.2:118 build/C/man2/ioperm.2:91 build/C/man2/truncate.2:146
625 #, no-wrap
626 msgid "B<EIO>"
627 msgstr ""
628
629 #. type: Plain text
630 #: build/C/man2/access.2:234 build/C/man2/chdir.2:94 build/C/man2/chmod.2:255 build/C/man2/chroot.2:112 build/C/man2/close.2:84 build/C/man2/execve.2:411
631 msgid "An I/O error occurred."
632 msgstr ""
633
634 #. type: TP
635 #: build/C/man2/access.2:234 build/C/man2/chdir.2:105 build/C/man2/chmod.2:266 build/C/man2/chown.2:256 build/C/man2/chroot.2:123 build/C/man2/execve.2:443 build/C/man2/fork.2:216 build/C/man3/getlogin.3:125 build/C/man2/ioperm.2:94 build/C/man2/mincore.2:112 build/C/man2/mincore.2:124 build/C/man2/mkdir.2:161 build/C/man2/swapon.2:152
636 #, no-wrap
637 msgid "B<ENOMEM>"
638 msgstr ""
639
640 #. type: Plain text
641 #: build/C/man2/access.2:237 build/C/man2/chdir.2:108 build/C/man2/chmod.2:269 build/C/man2/chown.2:259 build/C/man2/chroot.2:126 build/C/man2/execve.2:446 build/C/man2/mkdir.2:164
642 msgid "Insufficient kernel memory was available."
643 msgstr ""
644
645 #. type: TP
646 #: build/C/man2/access.2:237 build/C/man2/execve.2:461 build/C/man2/truncate.2:174
647 #, no-wrap
648 msgid "B<ETXTBSY>"
649 msgstr ""
650
651 #. type: Plain text
652 #: build/C/man2/access.2:241
653 msgid "Write access was requested to an executable which is being executed."
654 msgstr ""
655
656 #. type: Plain text
657 #: build/C/man2/access.2:244
658 msgid "The following additional errors can occur for B<faccessat>():"
659 msgstr ""
660
661 #. type: TP
662 #: build/C/man2/access.2:244 build/C/man2/chdir.2:121 build/C/man2/chmod.2:285 build/C/man2/chmod.2:306 build/C/man2/chown.2:273 build/C/man2/chown.2:295 build/C/man2/close.2:71 build/C/man2/dup.2:155 build/C/man2/fcntl.2:1342 build/C/man2/flock.2:118 build/C/man2/fsync.2:114 build/C/man2/ioctl.2:95 build/C/man3/lockf.3:130 build/C/man2/mkdir.2:190 build/C/man3/tcgetpgrp.3:87 build/C/man2/truncate.2:184
663 #, no-wrap
664 msgid "B<EBADF>"
665 msgstr ""
666
667 #. type: Plain text
668 #: build/C/man2/access.2:248 build/C/man2/chmod.2:310 build/C/man2/chown.2:299 build/C/man2/mkdir.2:194
669 msgid "I<dirfd> is not a valid file descriptor."
670 msgstr ""
671
672 #. type: Plain text
673 #: build/C/man2/access.2:252 build/C/man2/chmod.2:314 build/C/man2/chown.2:303
674 msgid "Invalid flag specified in I<flags>."
675 msgstr ""
676
677 #. type: Plain text
678 #: build/C/man2/access.2:258 build/C/man2/chmod.2:320 build/C/man2/chown.2:309 build/C/man2/mkdir.2:200
679 msgid ""
680 "I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
681 "file other than a directory."
682 msgstr ""
683
684 #. type: SH
685 #: build/C/man2/access.2:258 build/C/man2/chmod.2:326 build/C/man2/chown.2:309 build/C/man3/des_crypt.3:131 build/C/man2/dup.2:193 build/C/man3/euidaccess.3:69 build/C/man3/exec.3:195 build/C/man2/exit_group.2:41 build/C/man3/fexecve.3:91 build/C/man2/get_thread_area.2:42 build/C/man2/gettid.2:54 build/C/man2/idle.2:59 build/C/man2/mincore.2:132 build/C/man2/mkdir.2:200 build/C/man2/pread.2:104 build/C/man2/set_thread_area.2:59 build/C/man2/setup.2:60 build/C/man2/sysinfo.2:83
686 #, no-wrap
687 msgid "VERSIONS"
688 msgstr ""
689
690 #. type: Plain text
691 #: build/C/man2/access.2:262
692 msgid ""
693 "B<faccessat>()  was added to Linux in kernel 2.6.16; library support was "
694 "added to glibc in version 2.4."
695 msgstr ""
696
697 #. type: Plain text
698 #: build/C/man2/access.2:265
699 msgid "B<access>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
700 msgstr ""
701
702 #. type: Plain text
703 #: build/C/man2/access.2:268
704 msgid "B<faccessat>(): POSIX.1-2008."
705 msgstr ""
706
707 #. type: Plain text
708 #: build/C/man2/access.2:281
709 msgid ""
710 "B<Warning>: Using these calls to check if a user is authorized to, for "
711 "example, open a file before actually doing so using B<open>(2)  creates a "
712 "security hole, because the user might exploit the short time interval "
713 "between checking and opening the file to manipulate it.  B<For this reason, "
714 "the use of this system call should be avoided>.  (In the example just "
715 "described, a safer alternative would be to temporarily switch the process's "
716 "effective user ID to the real ID and then call B<open>(2).)"
717 msgstr ""
718
719 #. type: Plain text
720 #: build/C/man2/access.2:288
721 msgid ""
722 "B<access>()  always dereferences symbolic links.  If you need to check the "
723 "permissions on a symbolic link, use B<faccessat>(2)  with the flag "
724 "B<AT_SYMLINK_NOFOLLOW>."
725 msgstr ""
726
727 #. type: Plain text
728 #: build/C/man2/access.2:294
729 msgid ""
730 "These calls return an error if any of the access types in I<mode> is denied, "
731 "even if some of the other access types in I<mode> are permitted."
732 msgstr ""
733
734 #.  HPU-UX 11 and Tru64 5.1 do this.
735 #. type: Plain text
736 #: build/C/man2/access.2:301
737 msgid ""
738 "If the calling process has appropriate privileges (i.e., is superuser), "
739 "POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> "
740 "check even if none of the execute file permission bits are set.  Linux does "
741 "not do this."
742 msgstr ""
743
744 #. type: Plain text
745 #: build/C/man2/access.2:309
746 msgid ""
747 "A file is accessible only if the permissions on each of the directories in "
748 "the path prefix of I<pathname> grant search (i.e., execute) access.  If any "
749 "directory is inaccessible, then the B<access>()  call will fail, regardless "
750 "of the permissions on the file itself."
751 msgstr ""
752
753 #. type: Plain text
754 #: build/C/man2/access.2:317
755 msgid ""
756 "Only access bits are checked, not the file type or contents.  Therefore, if "
757 "a directory is found to be writable, it probably means that files can be "
758 "created in the directory, and not that the directory can be written as a "
759 "file.  Similarly, a DOS file may be found to be \"executable,\" but the "
760 "B<execve>(2)  call will still fail."
761 msgstr ""
762
763 #. type: Plain text
764 #: build/C/man2/access.2:326
765 msgid ""
766 "These calls may not work correctly on NFSv2 filesystems with UID mapping "
767 "enabled, because UID mapping is done on the server and hidden from the "
768 "client, which checks permissions.  (NFS versions 3 and higher perform the "
769 "check on the server.)  Similar problems can occur to FUSE mounts."
770 msgstr ""
771
772 #. type: SS
773 #: build/C/man2/access.2:326 build/C/man2/brk.2:140 build/C/man2/chmod.2:338 build/C/man2/gethostname.2:140 build/C/man2/uname.2:138
774 #, no-wrap
775 msgid "C library/kernel ABI differences"
776 msgstr ""
777
778 #. type: Plain text
779 #: build/C/man2/access.2:339
780 msgid ""
781 "The raw B<faccessat>()  system call takes only the first three arguments.  "
782 "The B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are actually implemented "
783 "within the glibc wrapper function for B<faccessat>().  If either of these "
784 "flags is specified, then the wrapper function employs B<fstatat>(2)  to "
785 "determine access permissions."
786 msgstr ""
787
788 #. type: SS
789 #: build/C/man2/access.2:339 build/C/man2/chmod.2:348 build/C/man2/chown.2:380 build/C/man3/crypt.3:189 build/C/man2/mkdir.2:223
790 #, no-wrap
791 msgid "Glibc notes"
792 msgstr ""
793
794 #. type: Plain text
795 #: build/C/man2/access.2:357
796 msgid ""
797 "On older kernels where B<faccessat>()  is unavailable (and when the "
798 "B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are not specified), the glibc "
799 "wrapper function falls back to the use of B<access>().  When I<pathname> is "
800 "a relative pathname, glibc constructs a pathname based on the symbolic link "
801 "in I</proc/self/fd> that corresponds to the I<dirfd> argument."
802 msgstr ""
803
804 #. type: SH
805 #: build/C/man2/access.2:357 build/C/man7/environ.7:209 build/C/man2/fcntl.2:1592 build/C/man3/gethostid.3:122 build/C/man3/getlogin.3:177 build/C/man3/getopt.3:369 build/C/man2/mincore.2:144 build/C/man2/pread.2:146 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:329 build/C/man2/sysctl.2:135 build/C/man2/truncate.2:249 build/C/man2/vfork.2:252
806 #, no-wrap
807 msgid "BUGS"
808 msgstr ""
809
810 #.  This behavior appears to have been an implementation accident.
811 #. type: Plain text
812 #: build/C/man2/access.2:380
813 msgid ""
814 "In kernel 2.4 (and earlier) there is some strangeness in the handling of "
815 "B<X_OK> tests for superuser.  If all categories of execute permission are "
816 "disabled for a nondirectory file, then the only B<access>()  test that "
817 "returns -1 is when I<mode> is specified as just B<X_OK>; if B<R_OK> or "
818 "B<W_OK> is also specified in I<mode>, then B<access>()  returns 0 for such "
819 "files.  Early 2.6 kernels (up to and including 2.6.3)  also behaved in the "
820 "same way as kernel 2.4."
821 msgstr ""
822
823 #. type: Plain text
824 #: build/C/man2/access.2:390
825 msgid ""
826 "In kernels before 2.6.20, these calls ignored the effect of the B<MS_NOEXEC> "
827 "flag if it was used to B<mount>(2)  the underlying filesystem.  Since kernel "
828 "2.6.20, the B<MS_NOEXEC> is honored"
829 msgstr ""
830
831 #. type: Plain text
832 #: build/C/man2/access.2:401
833 msgid ""
834 "B<chmod>(2), B<chown>(2), B<open>(2), B<setgid>(2), B<setuid>(2), "
835 "B<stat>(2), B<euidaccess>(3), B<credentials>(7), B<path_resolution>(7), "
836 "B<symlink>(7)"
837 msgstr ""
838
839 #. type: TH
840 #: build/C/man2/alarm.2:30
841 #, no-wrap
842 msgid "ALARM"
843 msgstr ""
844
845 #. type: TH
846 #: build/C/man2/alarm.2:30
847 #, no-wrap
848 msgid "2014-02-23"
849 msgstr ""
850
851 #. type: Plain text
852 #: build/C/man2/alarm.2:33
853 msgid "alarm - set an alarm clock for delivery of a signal"
854 msgstr ""
855
856 #. type: Plain text
857 #: build/C/man2/alarm.2:38
858 #, no-wrap
859 msgid "B<unsigned int alarm(unsigned int >I<seconds>B<);>\n"
860 msgstr ""
861
862 #. type: Plain text
863 #: build/C/man2/alarm.2:46
864 msgid ""
865 "B<alarm>()  arranges for a B<SIGALRM> signal to be delivered to the calling "
866 "process in I<seconds> seconds."
867 msgstr ""
868
869 #. type: Plain text
870 #: build/C/man2/alarm.2:50
871 msgid "If I<seconds> is zero, any pending alarm is canceled."
872 msgstr ""
873
874 #. type: Plain text
875 #: build/C/man2/alarm.2:54
876 msgid "In any event any previously set B<alarm>()  is canceled."
877 msgstr ""
878
879 #. type: Plain text
880 #: build/C/man2/alarm.2:59
881 msgid ""
882 "B<alarm>()  returns the number of seconds remaining until any previously "
883 "scheduled alarm was due to be delivered, or zero if there was no previously "
884 "scheduled alarm."
885 msgstr ""
886
887 #. type: Plain text
888 #: build/C/man2/alarm.2:61
889 msgid "SVr4, POSIX.1-2001, 4.3BSD."
890 msgstr ""
891
892 #. type: Plain text
893 #: build/C/man2/alarm.2:67
894 msgid ""
895 "B<alarm>()  and B<setitimer>(2)  share the same timer; calls to one will "
896 "interfere with use of the other."
897 msgstr ""
898
899 #. type: Plain text
900 #: build/C/man2/alarm.2:74
901 msgid ""
902 "Alarms created by B<alarm()> are preserved across B<execve>(2)  and are not "
903 "inherited by children created via B<fork>(2)."
904 msgstr ""
905
906 #. type: Plain text
907 #: build/C/man2/alarm.2:83
908 msgid ""
909 "B<sleep>(3)  may be implemented using B<SIGALRM>; mixing calls to B<alarm>()  "
910 "and B<sleep>(3)  is a bad idea."
911 msgstr ""
912
913 #. type: Plain text
914 #: build/C/man2/alarm.2:86
915 msgid ""
916 "Scheduling delays can, as ever, cause the execution of the process to be "
917 "delayed by an arbitrary amount of time."
918 msgstr ""
919
920 #. type: Plain text
921 #: build/C/man2/alarm.2:95
922 msgid ""
923 "B<gettimeofday>(2), B<pause>(2), B<select>(2), B<setitimer>(2), "
924 "B<sigaction>(2), B<signal>(2), B<sleep>(3), B<time>(7)"
925 msgstr ""
926
927 #. type: TH
928 #: build/C/man2/brk.2:29
929 #, no-wrap
930 msgid "BRK"
931 msgstr ""
932
933 #. type: Plain text
934 #: build/C/man2/brk.2:32
935 msgid "brk, sbrk - change data segment size"
936 msgstr ""
937
938 #. type: Plain text
939 #: build/C/man2/brk.2:34 build/C/man2/chdir.2:38 build/C/man2/chroot.2:38 build/C/man3/daemon.3:41 build/C/man3/encrypt.3:37 build/C/man3/exec.3:46 build/C/man2/execve.2:42 build/C/man2/fork.2:44 build/C/man2/fsync.2:43 build/C/man2/getdomainname.2:34 build/C/man3/getdtablesize.3:32 build/C/man3/gethostid.3:34 build/C/man2/gethostname.2:37 build/C/man3/getlogin.3:33 build/C/man2/getpagesize.2:30 build/C/man2/idle.2:37 build/C/man3/lockf.3:33 build/C/man2/mincore.2:39 build/C/man2/nice.2:36 build/C/man2/pread.2:30 build/C/man2/setup.2:39 build/C/man2/swapon.2:47 build/C/man3/tcgetpgrp.3:30 build/C/man2/truncate.2:48 build/C/man2/uselib.2:36 build/C/man2/vfork.2:35 build/C/man2/vhangup.2:33
940 msgid "B<#include E<lt>unistd.hE<gt>>"
941 msgstr ""
942
943 #. type: Plain text
944 #: build/C/man2/brk.2:36
945 msgid "B<int brk(void *>I<addr>B<);>"
946 msgstr ""
947
948 #. type: Plain text
949 #: build/C/man2/brk.2:38
950 msgid "B<void *sbrk(intptr_t >I<increment>B<);>"
951 msgstr ""
952
953 #. type: Plain text
954 #: build/C/man2/brk.2:46
955 msgid "B<brk>(), B<sbrk>():"
956 msgstr ""
957
958 #. type: TP
959 #: build/C/man2/brk.2:49 build/C/man3/getcwd.3:60 build/C/man3/getdtablesize.3:44 build/C/man2/getpagesize.2:42 build/C/man3/ualarm.3:43 build/C/man3/usleep.3:52 build/C/man2/vfork.2:47
960 #, no-wrap
961 msgid "Since glibc 2.12:"
962 msgstr ""
963
964 #. type: Plain text
965 #: build/C/man2/brk.2:56
966 #, no-wrap
967 msgid ""
968 "_BSD_SOURCE || _SVID_SOURCE ||\n"
969 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
970 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
971 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
972 msgstr ""
973
974 #. type: Plain text
975 #: build/C/man2/brk.2:61
976 msgid ""
977 "Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ "
978 "500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
979 msgstr ""
980
981 #. type: Plain text
982 #: build/C/man2/brk.2:76
983 msgid ""
984 "B<brk>()  and B<sbrk>()  change the location of the I<program break>, which "
985 "defines the end of the process's data segment (i.e., the program break is "
986 "the first location after the end of the uninitialized data segment).  "
987 "Increasing the program break has the effect of allocating memory to the "
988 "process; decreasing the break deallocates memory."
989 msgstr ""
990
991 #. type: Plain text
992 #: build/C/man2/brk.2:83
993 msgid ""
994 "B<brk>()  sets the end of the data segment to the value specified by "
995 "I<addr>, when that value is reasonable, the system has enough memory, and "
996 "the process does not exceed its maximum data size (see B<setrlimit>(2))."
997 msgstr ""
998
999 #. type: Plain text
1000 #: build/C/man2/brk.2:93
1001 msgid ""
1002 "B<sbrk>()  increments the program's data space by I<increment> bytes.  "
1003 "Calling B<sbrk>()  with an I<increment> of 0 can be used to find the current "
1004 "location of the program break."
1005 msgstr ""
1006
1007 #. type: Plain text
1008 #: build/C/man2/brk.2:101
1009 msgid ""
1010 "On success, B<brk>()  returns zero.  On error, -1 is returned, and I<errno> "
1011 "is set to B<ENOMEM>."
1012 msgstr ""
1013
1014 #. type: Plain text
1015 #: build/C/man2/brk.2:113
1016 msgid ""
1017 "On success, B<sbrk>()  returns the previous program break.  (If the break "
1018 "was increased, then this value is a pointer to the start of the newly "
1019 "allocated memory).  On error, I<(void\\ *)\\ -1> is returned, and I<errno> "
1020 "is set to B<ENOMEM>."
1021 msgstr ""
1022
1023 #
1024 #.  .BR brk ()
1025 #.  and
1026 #.  .BR sbrk ()
1027 #.  are not defined in the C Standard and are deliberately excluded from the
1028 #.  POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
1029 #. type: Plain text
1030 #: build/C/man2/brk.2:121
1031 msgid "4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001."
1032 msgstr ""
1033
1034 #. type: Plain text
1035 #: build/C/man2/brk.2:130
1036 msgid ""
1037 "Avoid using B<brk>()  and B<sbrk>(): the B<malloc>(3)  memory allocation "
1038 "package is the portable and comfortable way of allocating memory."
1039 msgstr ""
1040
1041 #.  One sees
1042 #.  \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
1043 #.  \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
1044 #.  \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
1045 #.  \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
1046 #.  Tru64 5.1, glibc2.2).
1047 #. type: Plain text
1048 #: build/C/man2/brk.2:140
1049 msgid ""
1050 "Various systems use various types for the argument of B<sbrk>().  Common are "
1051 "I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>."
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man2/brk.2:156
1056 msgid ""
1057 "The return value described above for B<brk>()  is the behavior provided by "
1058 "the glibc wrapper function for the Linux B<brk>()  system call.  (On most "
1059 "other implementations, the return value from B<brk>()  is the same; this "
1060 "return value was also specified in SUSv2.)  However, the actual Linux system "
1061 "call returns the new program break on success.  On failure, the system call "
1062 "returns the current break.  The glibc wrapper function does some work (i.e., "
1063 "checks whether the new break is less than I<addr>)  to provide the 0 and -1 "
1064 "return values described above."
1065 msgstr ""
1066
1067 #. type: Plain text
1068 #: build/C/man2/brk.2:163
1069 msgid ""
1070 "On Linux, B<sbrk>()  is implemented as a library function that uses the "
1071 "B<brk>()  system call, and does some internal bookkeeping so that it can "
1072 "return the old break value."
1073 msgstr ""
1074
1075 #. type: Plain text
1076 #: build/C/man2/brk.2:168
1077 msgid "B<execve>(2), B<getrlimit>(2), B<end>(3), B<malloc>(3)"
1078 msgstr ""
1079
1080 #. type: TH
1081 #: build/C/man2/chdir.2:33
1082 #, no-wrap
1083 msgid "CHDIR"
1084 msgstr ""
1085
1086 #. type: TH
1087 #: build/C/man2/chdir.2:33
1088 #, no-wrap
1089 msgid "2010-11-25"
1090 msgstr ""
1091
1092 #. type: Plain text
1093 #: build/C/man2/chdir.2:36
1094 msgid "chdir, fchdir - change working directory"
1095 msgstr ""
1096
1097 #. type: Plain text
1098 #: build/C/man2/chdir.2:40
1099 msgid "B<int chdir(const char *>I<path>B<);>"
1100 msgstr ""
1101
1102 #. type: Plain text
1103 #: build/C/man2/chdir.2:42
1104 msgid "B<int fchdir(int >I<fd>B<);>"
1105 msgstr ""
1106
1107 #. type: Plain text
1108 #: build/C/man2/chdir.2:49
1109 msgid "B<fchdir>():"
1110 msgstr ""
1111
1112 #. type: Plain text
1113 #: build/C/man2/chdir.2:54 build/C/man2/chmod.2:62 build/C/man2/chown.2:71 build/C/man3/gethostid.3:50 build/C/man2/truncate.2:66 build/C/man2/truncate.2:74
1114 msgid ""
1115 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
1116 "_XOPEN_SOURCE_EXTENDED"
1117 msgstr ""
1118
1119 #. type: Plain text
1120 #: build/C/man2/chdir.2:56 build/C/man2/chmod.2:64 build/C/man2/chown.2:73 build/C/man2/pread.2:50 build/C/man2/truncate.2:68
1121 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1122 msgstr ""
1123
1124 #. type: Plain text
1125 #: build/C/man2/chdir.2:64
1126 msgid ""
1127 "B<chdir>()  changes the current working directory of the calling process to "
1128 "the directory specified in I<path>."
1129 msgstr ""
1130
1131 #. type: Plain text
1132 #: build/C/man2/chdir.2:70
1133 msgid ""
1134 "B<fchdir>()  is identical to B<chdir>(); the only difference is that the "
1135 "directory is given as an open file descriptor."
1136 msgstr ""
1137
1138 #. type: Plain text
1139 #: build/C/man2/chdir.2:75 build/C/man2/chmod.2:236 build/C/man2/chown.2:229 build/C/man2/chroot.2:95 build/C/man2/flock.2:117 build/C/man2/getdomainname.2:80 build/C/man2/gethostname.2:94 build/C/man2/ioperm.2:84 build/C/man3/lockf.3:121 build/C/man2/swapon.2:116 build/C/man2/sysinfo.2:79 build/C/man2/truncate.2:115 build/C/man2/uname.2:68 build/C/man2/uselib.2:53 build/C/man2/vhangup.2:55
1140 msgid ""
1141 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1142 "appropriately."
1143 msgstr ""
1144
1145 #. type: Plain text
1146 #: build/C/man2/chdir.2:81
1147 msgid ""
1148 "Depending on the filesystem, other errors can be returned.  The more general "
1149 "errors for B<chdir>()  are listed below:"
1150 msgstr ""
1151
1152 #. type: Plain text
1153 #: build/C/man2/chdir.2:87
1154 msgid ""
1155 "Search permission is denied for one of the components of I<path>.  (See also "
1156 "B<path_resolution>(7).)"
1157 msgstr ""
1158
1159 #. type: Plain text
1160 #: build/C/man2/chdir.2:91 build/C/man2/chroot.2:109
1161 msgid "I<path> points outside your accessible address space."
1162 msgstr ""
1163
1164 #. type: Plain text
1165 #: build/C/man2/chdir.2:98 build/C/man2/chroot.2:116
1166 msgid "Too many symbolic links were encountered in resolving I<path>."
1167 msgstr ""
1168
1169 #. type: Plain text
1170 #: build/C/man2/chdir.2:102 build/C/man2/chroot.2:120
1171 msgid "I<path> is too long."
1172 msgstr ""
1173
1174 #. type: Plain text
1175 #: build/C/man2/chdir.2:105 build/C/man2/chmod.2:266 build/C/man2/chown.2:256 build/C/man2/chroot.2:123
1176 msgid "The file does not exist."
1177 msgstr ""
1178
1179 #. type: Plain text
1180 #: build/C/man2/chdir.2:113 build/C/man2/chroot.2:131
1181 msgid "A component of I<path> is not a directory."
1182 msgstr ""
1183
1184 #. type: Plain text
1185 #: build/C/man2/chdir.2:117
1186 msgid "The general errors for B<fchdir>()  are listed below:"
1187 msgstr ""
1188
1189 #. type: Plain text
1190 #: build/C/man2/chdir.2:121
1191 msgid "Search permission was denied on the directory open on I<fd>."
1192 msgstr ""
1193
1194 #. type: Plain text
1195 #: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:91
1196 msgid "I<fd> is not a valid file descriptor."
1197 msgstr ""
1198
1199 #. type: Plain text
1200 #: build/C/man2/chdir.2:127
1201 msgid "SVr4, 4.4BSD, POSIX.1-2001."
1202 msgstr ""
1203
1204 #. type: Plain text
1205 #: build/C/man2/chdir.2:130
1206 msgid ""
1207 "The current working directory is the starting point for interpreting "
1208 "relative pathnames (those not starting with \\(aq/\\(aq)."
1209 msgstr ""
1210
1211 #. type: Plain text
1212 #: build/C/man2/chdir.2:136
1213 msgid ""
1214 "A child process created via B<fork>(2)  inherits its parent's current "
1215 "working directory.  The current working directory is left unchanged by "
1216 "B<execve>(2)."
1217 msgstr ""
1218
1219 #. type: Plain text
1220 #: build/C/man2/chdir.2:140
1221 msgid "B<chroot>(2), B<getcwd>(3), B<path_resolution>(7)"
1222 msgstr ""
1223
1224 #. type: TH
1225 #: build/C/man2/chmod.2:32
1226 #, no-wrap
1227 msgid "CHMOD"
1228 msgstr ""
1229
1230 #. type: Plain text
1231 #: build/C/man2/chmod.2:35
1232 msgid "chmod, fchmod, fchmodat - change permissions of a file"
1233 msgstr ""
1234
1235 #. type: Plain text
1236 #: build/C/man2/chmod.2:38
1237 #, no-wrap
1238 msgid "B<#include E<lt>sys/stat.hE<gt>>\n"
1239 msgstr ""
1240
1241 #. type: Plain text
1242 #: build/C/man2/chmod.2:40
1243 #, no-wrap
1244 msgid "B<int chmod(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
1245 msgstr ""
1246
1247 #. type: Plain text
1248 #: build/C/man2/chmod.2:42
1249 #, no-wrap
1250 msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>\n"
1251 msgstr ""
1252
1253 #. type: Plain text
1254 #: build/C/man2/chmod.2:45
1255 #, no-wrap
1256 msgid ""
1257 "B<#include E<lt>fcntl.hE<gt>>           /* Definition of AT_* constants */\n"
1258 "B<#include E<lt>sys/stat.hE<gt>>\n"
1259 msgstr ""
1260
1261 #. type: Plain text
1262 #: build/C/man2/chmod.2:48
1263 #, no-wrap
1264 msgid ""
1265 "B<int fchmodat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
1266 ">I<mode>B<, int >I<flags>B<);>\n"
1267 msgstr ""
1268
1269 #. type: Plain text
1270 #: build/C/man2/chmod.2:58
1271 msgid "B<fchmod>():"
1272 msgstr ""
1273
1274 #. type: Plain text
1275 #: build/C/man2/chmod.2:68
1276 msgid "B<fchmodat>():"
1277 msgstr ""
1278
1279 #. type: Plain text
1280 #: build/C/man2/chmod.2:88
1281 msgid ""
1282 "The B<chmod>()  and B<fchmod>()  system calls change the permissions of a "
1283 "file.  They differ only in how the file is specified:"
1284 msgstr ""
1285
1286 #. type: IP
1287 #: build/C/man2/chmod.2:88 build/C/man2/chmod.2:93 build/C/man2/chown.2:96 build/C/man2/chown.2:101 build/C/man2/chown.2:105 build/C/man2/chown.2:353 build/C/man2/chown.2:358 build/C/man2/chown.2:364 build/C/man2/dup.2:106 build/C/man2/dup.2:112 build/C/man2/dup.2:129 build/C/man2/dup.2:138 build/C/man2/execve.2:122 build/C/man2/execve.2:126 build/C/man2/execve.2:129 build/C/man2/execve.2:132 build/C/man2/execve.2:135 build/C/man2/execve.2:138 build/C/man2/execve.2:141 build/C/man2/execve.2:144 build/C/man2/execve.2:147 build/C/man2/execve.2:150 build/C/man2/execve.2:154 build/C/man2/execve.2:158 build/C/man2/execve.2:167 build/C/man2/execve.2:174 build/C/man2/execve.2:179 build/C/man2/execve.2:186 build/C/man2/execve.2:193 build/C/man2/execve.2:200 build/C/man2/execve.2:207 build/C/man2/execve.2:211 build/C/man2/execve.2:214 build/C/man2/execve.2:222 build/C/man2/execve.2:226 build/C/man2/execve.2:231 build/C/man2/fcntl.2:449 build/C/man2/fcntl.2:465 build/C/man2/fork.2:52 build/C/man2/fork.2:56 build/C/man2/fork.2:58 build/C/man2/fork.2:62 build/C/man2/fork.2:68 build/C/man2/fork.2:71 build/C/man2/fork.2:74 build/C/man2/fork.2:82 build/C/man2/fork.2:87 build/C/man2/fork.2:99 build/C/man2/fork.2:106 build/C/man2/fork.2:112 build/C/man2/fork.2:119 build/C/man2/fork.2:125 build/C/man2/fork.2:130 build/C/man2/fork.2:138 build/C/man2/fork.2:147 build/C/man2/fork.2:161 build/C/man2/fork.2:170 build/C/man2/syscalls.2:87 build/C/man2/syscalls.2:90 build/C/man2/syscalls.2:96 build/C/man2/syscalls.2:112 build/C/man2/syscalls.2:118 build/C/man2/syscalls.2:124 build/C/man2/syscalls.2:130 build/C/man2/syscalls.2:137 build/C/man2/syscalls.2:705 build/C/man2/syscalls.2:726 build/C/man2/syscalls.2:737 build/C/man2/syscalls.2:744 build/C/man2/syscalls.2:755 build/C/man2/syscalls.2:767 build/C/man2/syscalls.2:788 build/C/man2/syscalls.2:796 build/C/man2/vfork.2:193 build/C/man2/vfork.2:197
1288 #, no-wrap
1289 msgid "*"
1290 msgstr ""
1291
1292 #. type: Plain text
1293 #: build/C/man2/chmod.2:93
1294 msgid ""
1295 "B<chmod>()  changes the permissions of the file specified whose pathname is "
1296 "given in I<pathname>, which is dereferenced if it is a symbolic link."
1297 msgstr ""
1298
1299 #. type: Plain text
1300 #: build/C/man2/chmod.2:97
1301 msgid ""
1302 "B<fchmod>()  changes the permissions of the file referred to by the open "
1303 "file descriptor I<fd>."
1304 msgstr ""
1305
1306 #. type: Plain text
1307 #: build/C/man2/chmod.2:102
1308 msgid ""
1309 "The new file permissions are specified in I<mode>, which is a bit mask "
1310 "created by ORing together zero or more of the following:"
1311 msgstr ""
1312
1313 #. type: TP
1314 #: build/C/man2/chmod.2:102
1315 #, no-wrap
1316 msgid "B<S_ISUID>  (04000)"
1317 msgstr ""
1318
1319 #. type: Plain text
1320 #: build/C/man2/chmod.2:106
1321 msgid "set-user-ID (set process effective user ID on B<execve>(2))"
1322 msgstr ""
1323
1324 #. type: TP
1325 #: build/C/man2/chmod.2:106
1326 #, no-wrap
1327 msgid "B<S_ISGID>  (02000)"
1328 msgstr ""
1329
1330 #. type: Plain text
1331 #: build/C/man2/chmod.2:116
1332 msgid ""
1333 "set-group-ID (set process effective group ID on B<execve>(2); mandatory "
1334 "locking, as described in B<fcntl>(2); take a new file's group from parent "
1335 "directory, as described in B<chown>(2)  and B<mkdir>(2))"
1336 msgstr ""
1337
1338 #. type: TP
1339 #: build/C/man2/chmod.2:116
1340 #, no-wrap
1341 msgid "B<S_ISVTX>  (01000)"
1342 msgstr ""
1343
1344 #. type: Plain text
1345 #: build/C/man2/chmod.2:120
1346 msgid "sticky bit (restricted deletion flag, as described in B<unlink>(2))"
1347 msgstr ""
1348
1349 #. type: TP
1350 #: build/C/man2/chmod.2:120
1351 #, no-wrap
1352 msgid "B<S_IRUSR>  (00400)"
1353 msgstr ""
1354
1355 #. type: Plain text
1356 #: build/C/man2/chmod.2:123
1357 msgid "read by owner"
1358 msgstr ""
1359
1360 #. type: TP
1361 #: build/C/man2/chmod.2:123
1362 #, no-wrap
1363 msgid "B<S_IWUSR>  (00200)"
1364 msgstr ""
1365
1366 #. type: Plain text
1367 #: build/C/man2/chmod.2:126
1368 msgid "write by owner"
1369 msgstr ""
1370
1371 #. type: TP
1372 #: build/C/man2/chmod.2:126
1373 #, no-wrap
1374 msgid "B<S_IXUSR>  (00100)"
1375 msgstr ""
1376
1377 #. type: Plain text
1378 #: build/C/man2/chmod.2:130
1379 msgid ""
1380 "execute/search by owner (\"search\" applies for directories, and means that "
1381 "entries within the directory can be accessed)"
1382 msgstr ""
1383
1384 #. type: TP
1385 #: build/C/man2/chmod.2:130
1386 #, no-wrap
1387 msgid "B<S_IRGRP>  (00040)"
1388 msgstr ""
1389
1390 #. type: Plain text
1391 #: build/C/man2/chmod.2:133
1392 msgid "read by group"
1393 msgstr ""
1394
1395 #. type: TP
1396 #: build/C/man2/chmod.2:133
1397 #, no-wrap
1398 msgid "B<S_IWGRP>  (00020)"
1399 msgstr ""
1400
1401 #. type: Plain text
1402 #: build/C/man2/chmod.2:136
1403 msgid "write by group"
1404 msgstr ""
1405
1406 #. type: TP
1407 #: build/C/man2/chmod.2:136
1408 #, no-wrap
1409 msgid "B<S_IXGRP>  (00010)"
1410 msgstr ""
1411
1412 #. type: Plain text
1413 #: build/C/man2/chmod.2:139
1414 msgid "execute/search by group"
1415 msgstr ""
1416
1417 #. type: TP
1418 #: build/C/man2/chmod.2:139
1419 #, no-wrap
1420 msgid "B<S_IROTH>  (00004)"
1421 msgstr ""
1422
1423 #. type: Plain text
1424 #: build/C/man2/chmod.2:142
1425 msgid "read by others"
1426 msgstr ""
1427
1428 #. type: TP
1429 #: build/C/man2/chmod.2:142
1430 #, no-wrap
1431 msgid "B<S_IWOTH>  (00002)"
1432 msgstr ""
1433
1434 #. type: Plain text
1435 #: build/C/man2/chmod.2:145
1436 msgid "write by others"
1437 msgstr ""
1438
1439 #. type: TP
1440 #: build/C/man2/chmod.2:145
1441 #, no-wrap
1442 msgid "B<S_IXOTH>  (00001)"
1443 msgstr ""
1444
1445 #. type: Plain text
1446 #: build/C/man2/chmod.2:148
1447 msgid "execute/search by others"
1448 msgstr ""
1449
1450 #. type: Plain text
1451 #: build/C/man2/chmod.2:153
1452 msgid ""
1453 "The effective UID of the calling process must match the owner of the file, "
1454 "or the process must be privileged (Linux: it must have the B<CAP_FOWNER> "
1455 "capability)."
1456 msgstr ""
1457
1458 #. type: Plain text
1459 #: build/C/man2/chmod.2:162
1460 msgid ""
1461 "If the calling process is not privileged (Linux: does not have the "
1462 "B<CAP_FSETID> capability), and the group of the file does not match the "
1463 "effective group ID of the process or one of its supplementary group IDs, the "
1464 "B<S_ISGID> bit will be turned off, but this will not cause an error to be "
1465 "returned."
1466 msgstr ""
1467
1468 #. type: Plain text
1469 #: build/C/man2/chmod.2:174
1470 msgid ""
1471 "As a security measure, depending on the filesystem, the set-user-ID and "
1472 "set-group-ID execution bits may be turned off if a file is written.  (On "
1473 "Linux this occurs if the writing process does not have the B<CAP_FSETID> "
1474 "capability.)  On some filesystems, only the superuser can set the sticky "
1475 "bit, which may have a special meaning.  For the sticky bit, and for "
1476 "set-user-ID and set-group-ID bits on directories, see B<stat>(2)."
1477 msgstr ""
1478
1479 #. type: Plain text
1480 #: build/C/man2/chmod.2:182
1481 msgid ""
1482 "On NFS filesystems, restricting the permissions will immediately influence "
1483 "already open files, because the access control is done on the server, but "
1484 "open files are maintained by the client.  Widening the permissions may be "
1485 "delayed for other clients if attribute caching is enabled on them."
1486 msgstr ""
1487
1488 #. type: SS
1489 #: build/C/man2/chmod.2:182
1490 #, no-wrap
1491 msgid "fchmodat()"
1492 msgstr ""
1493
1494 #. type: Plain text
1495 #: build/C/man2/chmod.2:188
1496 msgid ""
1497 "The B<fchmodat>()  system call operates in exactly the same way as "
1498 "B<chmod>(), except for the differences described here."
1499 msgstr ""
1500
1501 #. type: Plain text
1502 #: build/C/man2/chmod.2:198
1503 msgid ""
1504 "If the pathname given in I<pathname> is relative, then it is interpreted "
1505 "relative to the directory referred to by the file descriptor I<dirfd> "
1506 "(rather than relative to the current working directory of the calling "
1507 "process, as is done by B<chmod>()  for a relative pathname)."
1508 msgstr ""
1509
1510 #. type: Plain text
1511 #: build/C/man2/chmod.2:210
1512 msgid ""
1513 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
1514 "then I<pathname> is interpreted relative to the current working directory of "
1515 "the calling process (like B<chmod>())."
1516 msgstr ""
1517
1518 #. type: Plain text
1519 #: build/C/man2/chmod.2:219
1520 msgid "I<flags> can either be 0, or include the following flag:"
1521 msgstr ""
1522
1523 #. type: Plain text
1524 #: build/C/man2/chmod.2:226
1525 msgid ""
1526 "If I<pathname> is a symbolic link, do not dereference it: instead operate on "
1527 "the link itself.  This flag is not currently implemented."
1528 msgstr ""
1529
1530 #. type: Plain text
1531 #: build/C/man2/chmod.2:231
1532 msgid "See B<openat>(2)  for an explanation of the need for B<fchmodat>()."
1533 msgstr ""
1534
1535 #. type: Plain text
1536 #: build/C/man2/chmod.2:239 build/C/man2/chown.2:232
1537 msgid ""
1538 "Depending on the filesystem, errors other than those listed below can be "
1539 "returned."
1540 msgstr ""
1541
1542 #. type: Plain text
1543 #: build/C/man2/chmod.2:243
1544 msgid "The more general errors for B<chmod>()  are listed below:"
1545 msgstr ""
1546
1547 #.  Also search permission is required on the final component,
1548 #.  maybe just to guarantee that it is a directory?
1549 #. type: Plain text
1550 #: build/C/man2/chmod.2:248 build/C/man2/chown.2:241 build/C/man2/chroot.2:105
1551 msgid ""
1552 "Search permission is denied on a component of the path prefix.  (See also "
1553 "B<path_resolution>(7).)"
1554 msgstr ""
1555
1556 #. type: Plain text
1557 #: build/C/man2/chmod.2:272 build/C/man2/chown.2:262 build/C/man2/truncate.2:165
1558 msgid "A component of the path prefix is not a directory."
1559 msgstr ""
1560
1561 #. type: TP
1562 #: build/C/man2/chmod.2:272 build/C/man2/chmod.2:293 build/C/man2/chown.2:262 build/C/man2/chown.2:282 build/C/man2/chroot.2:131 build/C/man3/crypt.3:169 build/C/man2/execve.2:451 build/C/man2/execve.2:457 build/C/man2/fcntl.2:1415 build/C/man2/getdomainname.2:91 build/C/man3/gethostid.3:88 build/C/man2/gethostname.2:117 build/C/man2/idle.2:56 build/C/man2/ioperm.2:98 build/C/man2/mkdir.2:178 build/C/man2/nice.2:62 build/C/man2/setup.2:57 build/C/man2/swapon.2:155 build/C/man3/tcgetpgrp.3:104 build/C/man2/truncate.2:165 build/C/man2/vhangup.2:56
1563 #, no-wrap
1564 msgid "B<EPERM>"
1565 msgstr ""
1566
1567 #. type: Plain text
1568 #: build/C/man2/chmod.2:278
1569 msgid ""
1570 "The effective UID does not match the owner of the file, and the process is "
1571 "not privileged (Linux: it does not have the B<CAP_FOWNER> capability)."
1572 msgstr ""
1573
1574 #. type: Plain text
1575 #: build/C/man2/chmod.2:281 build/C/man2/chown.2:269 build/C/man2/truncate.2:174
1576 msgid "The named file resides on a read-only filesystem."
1577 msgstr ""
1578
1579 #. type: Plain text
1580 #: build/C/man2/chmod.2:285
1581 msgid "The general errors for B<fchmod>()  are listed below:"
1582 msgstr ""
1583
1584 #. type: Plain text
1585 #: build/C/man2/chmod.2:290
1586 msgid "The file descriptor I<fd> is not valid."
1587 msgstr ""
1588
1589 #. type: Plain text
1590 #: build/C/man2/chmod.2:293 build/C/man2/chmod.2:296 build/C/man2/chmod.2:299 build/C/man2/chown.2:282 build/C/man2/chown.2:285 build/C/man2/chown.2:288
1591 msgid "See above."
1592 msgstr ""
1593
1594 #. type: Plain text
1595 #: build/C/man2/chmod.2:306
1596 msgid ""
1597 "The same errors that occur for B<chmod>()  can also occur for "
1598 "B<fchmodat>().  The following additional errors can occur for B<fchmodat>():"
1599 msgstr ""
1600
1601 #. type: TP
1602 #: build/C/man2/chmod.2:320
1603 #, no-wrap
1604 msgid "B<ENOTSUP>"
1605 msgstr ""
1606
1607 #. type: Plain text
1608 #: build/C/man2/chmod.2:326
1609 msgid "I<flags> specified B<AT_SYMLINK_NOFOLLOW>, which is not supported."
1610 msgstr ""
1611
1612 #. type: Plain text
1613 #: build/C/man2/chmod.2:330
1614 msgid ""
1615 "B<fchmodat>()  was added to Linux in kernel 2.6.16; library support was "
1616 "added to glibc in version 2.4."
1617 msgstr ""
1618
1619 #. type: Plain text
1620 #: build/C/man2/chmod.2:334
1621 msgid "B<chmod>(), B<fchmod>(): 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008."
1622 msgstr ""
1623
1624 #. type: Plain text
1625 #: build/C/man2/chmod.2:337
1626 msgid "B<fchmodat>(): POSIX.1-2008."
1627 msgstr ""
1628
1629 #. type: Plain text
1630 #: build/C/man2/chmod.2:348
1631 msgid ""
1632 "The GNU C library B<fchmodat>()  wrapper function implements the "
1633 "POSIX-specified interface described in this page.  This interface differs "
1634 "from the underlying Linux system call, which does I<not> have a I<flags> "
1635 "argument."
1636 msgstr ""
1637
1638 #. type: Plain text
1639 #: build/C/man2/chmod.2:361
1640 msgid ""
1641 "On older kernels where B<fchmodat>()  is unavailable, the glibc wrapper "
1642 "function falls back to the use of B<chmod>().  When I<pathname> is a "
1643 "relative pathname, glibc constructs a pathname based on the symbolic link in "
1644 "I</proc/self/fd> that corresponds to the I<dirfd> argument."
1645 msgstr ""
1646
1647 #. type: Plain text
1648 #: build/C/man2/chmod.2:368
1649 msgid ""
1650 "B<chown>(2), B<execve>(2), B<open>(2), B<stat>(2), B<path_resolution>(7), "
1651 "B<symlink>(7)"
1652 msgstr ""
1653
1654 #. type: TH
1655 #: build/C/man2/chown.2:38
1656 #, no-wrap
1657 msgid "CHOWN"
1658 msgstr ""
1659
1660 #. type: Plain text
1661 #: build/C/man2/chown.2:41
1662 msgid "chown, fchown, lchown, fchownat - change ownership of a file"
1663 msgstr ""
1664
1665 #. type: Plain text
1666 #: build/C/man2/chown.2:46
1667 #, no-wrap
1668 msgid ""
1669 "B<int chown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
1670 ">I<group>B<);>\n"
1671 msgstr ""
1672
1673 #. type: Plain text
1674 #: build/C/man2/chown.2:48
1675 #, no-wrap
1676 msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>\n"
1677 msgstr ""
1678
1679 #. type: Plain text
1680 #: build/C/man2/chown.2:50
1681 #, no-wrap
1682 msgid ""
1683 "B<int lchown(const char *>I<pathname>B<, uid_t >I<owner>B<, gid_t "
1684 ">I<group>B<);>\n"
1685 msgstr ""
1686
1687 #. type: Plain text
1688 #: build/C/man2/chown.2:56
1689 #, no-wrap
1690 msgid ""
1691 "B<int fchownat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
1692 "B<             uid_t >I<owner>B<, gid_t >I<group>B<, int >I<flags>B<);>\n"
1693 msgstr ""
1694
1695 #. type: Plain text
1696 #: build/C/man2/chown.2:66
1697 msgid "B<fchown>(), B<lchown>():"
1698 msgstr ""
1699
1700 #. type: Plain text
1701 #: build/C/man2/chown.2:76
1702 msgid "B<fchownat>():"
1703 msgstr ""
1704
1705 #. type: Plain text
1706 #: build/C/man2/chown.2:96
1707 msgid ""
1708 "These system calls change the owner and group of a file.  The B<chown>(), "
1709 "B<fchown>(), and B<lchown>()  system calls differ only in how the file is "
1710 "specified:"
1711 msgstr ""
1712
1713 #. type: Plain text
1714 #: build/C/man2/chown.2:101
1715 msgid ""
1716 "B<chown>()  changes the ownership of the file specified by I<pathname>, "
1717 "which is dereferenced if it is a symbolic link."
1718 msgstr ""
1719
1720 #. type: Plain text
1721 #: build/C/man2/chown.2:105
1722 msgid ""
1723 "B<fchown>()  changes the ownership of the file referred to by the open file "
1724 "descriptor I<fd>."
1725 msgstr ""
1726
1727 #. type: Plain text
1728 #: build/C/man2/chown.2:110
1729 msgid "B<lchown>()  is like B<chown>(), but does not dereference symbolic links."
1730 msgstr ""
1731
1732 #. type: Plain text
1733 #: build/C/man2/chown.2:119
1734 msgid ""
1735 "Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may "
1736 "change the owner of a file.  The owner of a file may change the group of the "
1737 "file to any group of which that owner is a member.  A privileged process "
1738 "(Linux: with B<CAP_CHOWN>)  may change the group arbitrarily."
1739 msgstr ""
1740
1741 #. type: Plain text
1742 #: build/C/man2/chown.2:125
1743 msgid "If the I<owner> or I<group> is specified as -1, then that ID is not changed."
1744 msgstr ""
1745
1746 #.  In Linux 2.0 kernels, superuser was like everyone else
1747 #.  In 2.2, up to 2.2.12, these bits were not cleared for superuser.
1748 #.  Since 2.2.13, superuser is once more like everyone else.
1749 #. type: Plain text
1750 #: build/C/man2/chown.2:145
1751 msgid ""
1752 "When the owner or group of an executable file are changed by an unprivileged "
1753 "user the B<S_ISUID> and B<S_ISGID> mode bits are cleared.  POSIX does not "
1754 "specify whether this also should happen when root does the B<chown>(); the "
1755 "Linux behavior depends on the kernel version.  In case of a "
1756 "non-group-executable file (i.e., one for which the B<S_IXGRP> bit is not "
1757 "set) the B<S_ISGID> bit indicates mandatory locking, and is not cleared by a "
1758 "B<chown>()."
1759 msgstr ""
1760
1761 #. type: SS
1762 #: build/C/man2/chown.2:145
1763 #, no-wrap
1764 msgid "fchownat()"
1765 msgstr ""
1766
1767 #. type: Plain text
1768 #: build/C/man2/chown.2:151
1769 msgid ""
1770 "The B<fchownat>()  system call operates in exactly the same way as "
1771 "B<chown>(), except for the differences described here."
1772 msgstr ""
1773
1774 #. type: Plain text
1775 #: build/C/man2/chown.2:161
1776 msgid ""
1777 "If the pathname given in I<pathname> is relative, then it is interpreted "
1778 "relative to the directory referred to by the file descriptor I<dirfd> "
1779 "(rather than relative to the current working directory of the calling "
1780 "process, as is done by B<chown>()  for a relative pathname)."
1781 msgstr ""
1782
1783 #. type: Plain text
1784 #: build/C/man2/chown.2:173
1785 msgid ""
1786 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
1787 "then I<pathname> is interpreted relative to the current working directory of "
1788 "the calling process (like B<chown>())."
1789 msgstr ""
1790
1791 #. type: Plain text
1792 #: build/C/man2/chown.2:184
1793 msgid ""
1794 "The I<flags> argument is a bit mask created by ORing together 0 or more of "
1795 "the following values;"
1796 msgstr ""
1797
1798 #. type: TP
1799 #: build/C/man2/chown.2:184
1800 #, no-wrap
1801 msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
1802 msgstr ""
1803
1804 #.  commit 65cfc6722361570bfe255698d9cd4dccaf47570d
1805 #.  Before glibc 2.16, defining _ATFILE_SOURCE sufficed
1806 #. type: Plain text
1807 #: build/C/man2/chown.2:207
1808 msgid ""
1809 "If I<pathname> is an empty string, operate on the file referred to by "
1810 "I<dirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> "
1811 "flag).  In this case, I<dirfd> can refer to any type of file, not just a "
1812 "directory.  If I<dirfd> is B<AT_FDCWD>, the call operates on the current "
1813 "working directory.  This flag is Linux-specific; define B<_GNU_SOURCE> to "
1814 "obtain its definition."
1815 msgstr ""
1816
1817 #. type: Plain text
1818 #: build/C/man2/chown.2:219
1819 msgid ""
1820 "If I<pathname> is a symbolic link, do not dereference it: instead operate on "
1821 "the link itself, like B<lchown>().  (By default, B<fchownat>()  dereferences "
1822 "symbolic links, like B<chown>().)"
1823 msgstr ""
1824
1825 #. type: Plain text
1826 #: build/C/man2/chown.2:224
1827 msgid "See B<openat>(2)  for an explanation of the need for B<fchownat>()."
1828 msgstr ""
1829
1830 #. type: Plain text
1831 #: build/C/man2/chown.2:236
1832 msgid "The more general errors for B<chown>()  are listed below."
1833 msgstr ""
1834
1835 #. type: Plain text
1836 #: build/C/man2/chown.2:266
1837 msgid ""
1838 "The calling process did not have the required permissions (see above) to "
1839 "change owner and/or group."
1840 msgstr ""
1841
1842 #. type: Plain text
1843 #: build/C/man2/chown.2:273
1844 msgid "The general errors for B<fchown>()  are listed below:"
1845 msgstr ""
1846
1847 #. type: Plain text
1848 #: build/C/man2/chown.2:276
1849 msgid "The descriptor is not valid."
1850 msgstr ""
1851
1852 #. type: Plain text
1853 #: build/C/man2/chown.2:279
1854 msgid "A low-level I/O error occurred while modifying the inode."
1855 msgstr ""
1856
1857 #. type: Plain text
1858 #: build/C/man2/chown.2:295
1859 msgid ""
1860 "The same errors that occur for B<chown>()  can also occur for "
1861 "B<fchownat>().  The following additional errors can occur for B<fchownat>():"
1862 msgstr ""
1863
1864 #. type: Plain text
1865 #: build/C/man2/chown.2:313
1866 msgid ""
1867 "B<fchownat>()  was added to Linux in kernel 2.6.16; library support was "
1868 "added to glibc in version 2.4."
1869 msgstr ""
1870
1871 #. type: Plain text
1872 #: build/C/man2/chown.2:318
1873 msgid ""
1874 "B<chown>(), B<fchown>(), B<lchown>(): 4.4BSD, SVr4, POSIX.1-2001, "
1875 "POSIX.1-2008."
1876 msgstr ""
1877
1878 #.  chown():
1879 #.  SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no
1880 #.  ENOMEM.  POSIX.1 does not document ENOMEM or ELOOP error conditions.
1881 #.  fchown():
1882 #.  SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK
1883 #.  error conditions.
1884 #. type: Plain text
1885 #: build/C/man2/chown.2:327
1886 msgid ""
1887 "The 4.4BSD version can be used only by the superuser (that is, ordinary "
1888 "users cannot give away files)."
1889 msgstr ""
1890
1891 #. type: Plain text
1892 #: build/C/man2/chown.2:330
1893 msgid "B<fchownat>(): POSIX.1-2008."
1894 msgstr ""
1895
1896 #. type: SS
1897 #: build/C/man2/chown.2:331
1898 #, no-wrap
1899 msgid "Ownership of new files"
1900 msgstr ""
1901
1902 #. type: Plain text
1903 #: build/C/man2/chown.2:353
1904 msgid ""
1905 "When a new file is created (by, for example, B<open>(2)  or B<mkdir>(2)), "
1906 "its owner is made the same as the filesystem user ID of the creating "
1907 "process.  The group of the file depends on a range of factors, including the "
1908 "type of filesystem, the options used to mount the filesystem, and whether or "
1909 "not the set-group-ID permission bit is enabled on the parent directory.  If "
1910 "the filesystem supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
1911 "bsdgroups>)  and I<-o\\ nogrpid> (or, synonymously I<-o\\ sysvgroups>)  "
1912 "B<mount>(8)  options, then the rules are as follows:"
1913 msgstr ""
1914
1915 #. type: Plain text
1916 #: build/C/man2/chown.2:358
1917 msgid ""
1918 "If the filesystem is mounted with I<-o\\ grpid>, then the group of a new "
1919 "file is made the same as that of the parent directory."
1920 msgstr ""
1921
1922 #. type: Plain text
1923 #: build/C/man2/chown.2:364
1924 msgid ""
1925 "If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1926 "is disabled on the parent directory, then the group of a new file is made "
1927 "the same as the process's filesystem GID."
1928 msgstr ""
1929
1930 #. type: Plain text
1931 #: build/C/man2/chown.2:370
1932 msgid ""
1933 "If the filesystem is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
1934 "is enabled on the parent directory, then the group of a new file is made the "
1935 "same as that of the parent directory."
1936 msgstr ""
1937
1938 #. type: Plain text
1939 #: build/C/man2/chown.2:380
1940 msgid ""
1941 "As at Linux 2.6.25, the I<-o\\ grpid> and I<-o\\ nogrpid> mount options are "
1942 "supported by ext2, ext3, ext4, and XFS.  Filesystems that don't support "
1943 "these mount options follow the I<-o\\ nogrpid> rules."
1944 msgstr ""
1945
1946 #. type: Plain text
1947 #: build/C/man2/chown.2:395
1948 msgid ""
1949 "On older kernels where B<fchownat>()  is unavailable, the glibc wrapper "
1950 "function falls back to the use of B<chown>()  and B<lchown>().  When "
1951 "I<pathname> is a relative pathname, glibc constructs a pathname based on the "
1952 "symbolic link in I</proc/self/fd> that corresponds to the I<dirfd> argument."
1953 msgstr ""
1954
1955 #. type: SS
1956 #: build/C/man2/chown.2:395
1957 #, no-wrap
1958 msgid "NFS"
1959 msgstr ""
1960
1961 #. type: Plain text
1962 #: build/C/man2/chown.2:408
1963 msgid ""
1964 "The B<chown>()  semantics are deliberately violated on NFS filesystems which "
1965 "have UID mapping enabled.  Additionally, the semantics of all system calls "
1966 "which access the file contents are violated, because B<chown>()  may cause "
1967 "immediate access revocation on already open files.  Client side caching may "
1968 "lead to a delay between the time where ownership have been changed to allow "
1969 "access for a user and the time where the file can actually be accessed by "
1970 "the user on other clients."
1971 msgstr ""
1972
1973 #. type: SS
1974 #: build/C/man2/chown.2:408
1975 #, no-wrap
1976 msgid "Historical details"
1977 msgstr ""
1978
1979 #. type: Plain text
1980 #: build/C/man2/chown.2:427
1981 msgid ""
1982 "The original Linux B<chown>(), B<fchown>(), and B<lchown>()  system calls "
1983 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
1984 "B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs.  The "
1985 "glibc B<chown>(), B<fchown>(), and B<lchown>()  wrapper functions "
1986 "transparently deal with the variations across kernel versions."
1987 msgstr ""
1988
1989 #. type: Plain text
1990 #: build/C/man2/chown.2:442
1991 msgid ""
1992 "In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>()  "
1993 "did not follow symbolic links.  Since Linux 2.1.81, B<chown>()  does follow "
1994 "symbolic links, and there is a new system call B<lchown>()  that does not "
1995 "follow symbolic links.  Since Linux 2.1.86, this new call (that has the same "
1996 "semantics as the old B<chown>())  has got the same syscall number, and "
1997 "B<chown>()  got the newly introduced number."
1998 msgstr ""
1999
2000 #. type: Plain text
2001 #: build/C/man2/chown.2:451
2002 msgid ""
2003 "The following program changes the ownership of the file named in its second "
2004 "command-line argument to the value specified in its first command-line "
2005 "argument.  The new owner can be specified either as a numeric user ID, or as "
2006 "a username (which is converted to a user ID by using B<getpwnam>(3)  to "
2007 "perform a lookup in the system password file)."
2008 msgstr ""
2009
2010 #. type: SS
2011 #: build/C/man2/chown.2:451
2012 #, no-wrap
2013 msgid "Program source"
2014 msgstr ""
2015
2016 #. type: Plain text
2017 #: build/C/man2/chown.2:457
2018 #, no-wrap
2019 msgid ""
2020 "#include E<lt>pwd.hE<gt>\n"
2021 "#include E<lt>stdio.hE<gt>\n"
2022 "#include E<lt>stdlib.hE<gt>\n"
2023 "#include E<lt>unistd.hE<gt>\n"
2024 msgstr ""
2025
2026 #. type: Plain text
2027 #: build/C/man2/chown.2:464
2028 #, no-wrap
2029 msgid ""
2030 "int\n"
2031 "main(int argc, char *argv[])\n"
2032 "{\n"
2033 "    uid_t uid;\n"
2034 "    struct passwd *pwd;\n"
2035 "    char *endptr;\n"
2036 msgstr ""
2037
2038 #. type: Plain text
2039 #: build/C/man2/chown.2:469
2040 #, no-wrap
2041 msgid ""
2042 "    if (argc != 3 || argv[1][0] == \\(aq\\e0\\(aq) {\n"
2043 "        fprintf(stderr, \"%s E<lt>ownerE<gt> E<lt>fileE<gt>\\en\", "
2044 "argv[0]);\n"
2045 "        exit(EXIT_FAILURE);\n"
2046 "    }\n"
2047 msgstr ""
2048
2049 #. type: Plain text
2050 #: build/C/man2/chown.2:471
2051 #, no-wrap
2052 msgid "    uid = strtol(argv[1], &endptr, 10);  /* Allow a numeric string */\n"
2053 msgstr ""
2054
2055 #. type: Plain text
2056 #: build/C/man2/chown.2:478
2057 #, no-wrap
2058 msgid ""
2059 "    if (*endptr != \\(aq\\e0\\(aq) {         /* Was not pure numeric string "
2060 "*/\n"
2061 "        pwd = getpwnam(argv[1]);   /* Try getting UID for username */\n"
2062 "        if (pwd == NULL) {\n"
2063 "            perror(\"getpwnam\");\n"
2064 "            exit(EXIT_FAILURE);\n"
2065 "        }\n"
2066 msgstr ""
2067
2068 #. type: Plain text
2069 #: build/C/man2/chown.2:481
2070 #, no-wrap
2071 msgid ""
2072 "        uid = pwd-E<gt>pw_uid;\n"
2073 "    }\n"
2074 msgstr ""
2075
2076 #. type: Plain text
2077 #: build/C/man2/chown.2:486
2078 #, no-wrap
2079 msgid ""
2080 "    if (chown(argv[2], uid, -1) == -1) {\n"
2081 "        perror(\"chown\");\n"
2082 "        exit(EXIT_FAILURE);\n"
2083 "    }\n"
2084 msgstr ""
2085
2086 #. type: Plain text
2087 #: build/C/man2/chown.2:489 build/C/man2/execve.2:677 build/C/man3/getopt.3:430 build/C/man3/getopt.3:515
2088 #, no-wrap
2089 msgid ""
2090 "    exit(EXIT_SUCCESS);\n"
2091 "}\n"
2092 msgstr ""
2093
2094 #. type: Plain text
2095 #: build/C/man2/chown.2:495
2096 msgid "B<chmod>(2), B<flock>(2), B<path_resolution>(7), B<symlink>(7)"
2097 msgstr ""
2098
2099 #. type: TH
2100 #: build/C/man2/chroot.2:33
2101 #, no-wrap
2102 msgid "CHROOT"
2103 msgstr ""
2104
2105 #. type: TH
2106 #: build/C/man2/chroot.2:33 build/C/man3/gethostid.3:29
2107 #, no-wrap
2108 msgid "2010-09-20"
2109 msgstr ""
2110
2111 #. type: Plain text
2112 #: build/C/man2/chroot.2:36
2113 msgid "chroot - change root directory"
2114 msgstr ""
2115
2116 #. type: Plain text
2117 #: build/C/man2/chroot.2:40
2118 msgid "B<int chroot(const char *>I<path>B<);>"
2119 msgstr ""
2120
2121 #. type: Plain text
2122 #: build/C/man2/chroot.2:47
2123 msgid "B<chroot>():"
2124 msgstr ""
2125
2126 #. type: TP
2127 #: build/C/man2/chroot.2:50
2128 #, no-wrap
2129 msgid "Since glibc 2.2.2:"
2130 msgstr ""
2131
2132 #. type: Plain text
2133 #: build/C/man2/chroot.2:57
2134 #, no-wrap
2135 msgid ""
2136 "_BSD_SOURCE ||\n"
2137 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
2138 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
2139 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
2140 msgstr ""
2141
2142 #. type: Plain text
2143 #: build/C/man2/chroot.2:60
2144 msgid "Before glibc 2.2.2: none"
2145 msgstr ""
2146
2147 #. type: Plain text
2148 #: build/C/man2/chroot.2:69
2149 msgid ""
2150 "B<chroot>()  changes the root directory of the calling process to that "
2151 "specified in I<path>.  This directory will be used for pathnames beginning "
2152 "with I</>.  The root directory is inherited by all children of the calling "
2153 "process."
2154 msgstr ""
2155
2156 #. type: Plain text
2157 #: build/C/man2/chroot.2:74
2158 msgid ""
2159 "Only a privileged process (Linux: one with the B<CAP_SYS_CHROOT> capability) "
2160 "may call B<chroot>()."
2161 msgstr ""
2162
2163 #. type: Plain text
2164 #: build/C/man2/chroot.2:77
2165 msgid ""
2166 "This call changes an ingredient in the pathname resolution process and does "
2167 "nothing else."
2168 msgstr ""
2169
2170 #. type: Plain text
2171 #: build/C/man2/chroot.2:83
2172 msgid ""
2173 "This call does not change the current working directory, so that after the "
2174 "call \\(aqI<.>\\(aq can be outside the tree rooted at \\(aqI</>\\(aq.  In "
2175 "particular, the superuser can escape from a \"chroot jail\" by doing:"
2176 msgstr ""
2177
2178 #. type: Plain text
2179 #: build/C/man2/chroot.2:86
2180 #, no-wrap
2181 msgid "    mkdir foo; chroot foo; cd ..\n"
2182 msgstr ""
2183
2184 #. type: Plain text
2185 #: build/C/man2/chroot.2:90
2186 msgid ""
2187 "This call does not close open file descriptors, and such file descriptors "
2188 "may allow access to files outside the chroot tree."
2189 msgstr ""
2190
2191 #. type: Plain text
2192 #: build/C/man2/chroot.2:98
2193 msgid ""
2194 "Depending on the filesystem, other errors can be returned.  The more general "
2195 "errors are listed below:"
2196 msgstr ""
2197
2198 #. type: Plain text
2199 #: build/C/man2/chroot.2:134
2200 msgid "The caller has insufficient privilege."
2201 msgstr ""
2202
2203 #.  SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions.
2204 #.  X/OPEN does not document EIO, ENOMEM or EFAULT error conditions.
2205 #. type: Plain text
2206 #: build/C/man2/chroot.2:139
2207 msgid ""
2208 "SVr4, 4.4BSD, SUSv2 (marked LEGACY).  This function is not part of "
2209 "POSIX.1-2001."
2210 msgstr ""
2211
2212 #. type: Plain text
2213 #: build/C/man2/chroot.2:145
2214 msgid ""
2215 "A child process created via B<fork>(2)  inherits its parent's root "
2216 "directory.  The root directory is left unchanged by B<execve>(2)."
2217 msgstr ""
2218
2219 #.  FIXME . eventually say something about containers,
2220 #.  virtual servers, etc.?
2221 #. type: Plain text
2222 #: build/C/man2/chroot.2:151
2223 msgid "FreeBSD has a stronger B<jail>()  system call."
2224 msgstr ""
2225
2226 #. type: Plain text
2227 #: build/C/man2/chroot.2:154
2228 msgid "B<chdir>(2), B<path_resolution>(7)"
2229 msgstr ""
2230
2231 #. type: TH
2232 #: build/C/man2/close.2:35
2233 #, no-wrap
2234 msgid "CLOSE"
2235 msgstr ""
2236
2237 #. type: TH
2238 #: build/C/man2/close.2:35
2239 #, no-wrap
2240 msgid "2013-12-30"
2241 msgstr ""
2242
2243 #. type: Plain text
2244 #: build/C/man2/close.2:38
2245 msgid "close - close a file descriptor"
2246 msgstr ""
2247
2248 #. type: Plain text
2249 #: build/C/man2/close.2:43
2250 #, no-wrap
2251 msgid "B<int close(int >I<fd>B<);>\n"
2252 msgstr ""
2253
2254 #. type: Plain text
2255 #: build/C/man2/close.2:53
2256 msgid ""
2257 "B<close>()  closes a file descriptor, so that it no longer refers to any "
2258 "file and may be reused.  Any record locks (see B<fcntl>(2))  held on the "
2259 "file it was associated with, and owned by the process, are removed "
2260 "(regardless of the file descriptor that was used to obtain the lock)."
2261 msgstr ""
2262
2263 #. type: Plain text
2264 #: build/C/man2/close.2:64
2265 msgid ""
2266 "If I<fd> is the last file descriptor referring to the underlying open file "
2267 "description (see B<open>(2)), the resources associated with the open file "
2268 "description are freed; if the descriptor was the last reference to a file "
2269 "which has been removed using B<unlink>(2), the file is deleted."
2270 msgstr ""
2271
2272 #. type: Plain text
2273 #: build/C/man2/close.2:70
2274 msgid ""
2275 "B<close>()  returns zero on success.  On error, -1 is returned, and I<errno> "
2276 "is set appropriately."
2277 msgstr ""
2278
2279 #. type: Plain text
2280 #: build/C/man2/close.2:75
2281 msgid "I<fd> isn't a valid open file descriptor."
2282 msgstr ""
2283
2284 #. type: TP
2285 #: build/C/man2/close.2:75 build/C/man2/dup.2:171 build/C/man2/fcntl.2:1360 build/C/man2/flock.2:122 build/C/man2/truncate.2:134 build/C/man3/ualarm.3:85 build/C/man3/usleep.3:83
2286 #, no-wrap
2287 msgid "B<EINTR>"
2288 msgstr ""
2289
2290 #. type: Plain text
2291 #: build/C/man2/close.2:81
2292 msgid "The B<close>()  call was interrupted by a signal; see B<signal>(7)."
2293 msgstr ""
2294
2295 #. type: Plain text
2296 #: build/C/man2/close.2:87 build/C/man2/fork.2:228 build/C/man3/swab.3:79 build/C/man2/umask.2:97
2297 msgid "SVr4, 4.3BSD, POSIX.1-2001."
2298 msgstr ""
2299
2300 #. type: Plain text
2301 #: build/C/man2/close.2:107
2302 msgid ""
2303 "Not checking the return value of B<close>()  is a common but nevertheless "
2304 "serious programming error.  It is quite possible that errors on a previous "
2305 "B<write>(2)  operation are first reported at the final B<close>().  Not "
2306 "checking the return value when closing the file may lead to silent loss of "
2307 "data.  This can especially be observed with NFS and with disk quota.  Note "
2308 "that the return value should only be used for diagnostics.  In particular "
2309 "B<close>()  should not be retried after an B<EINTR> since this may cause a "
2310 "reused descriptor from another thread to be closed."
2311 msgstr ""
2312
2313 #. type: Plain text
2314 #: build/C/man2/close.2:116
2315 msgid ""
2316 "A successful close does not guarantee that the data has been successfully "
2317 "saved to disk, as the kernel defers writes.  It is not common for a "
2318 "filesystem to flush the buffers when the stream is closed.  If you need to "
2319 "be sure that the data is physically stored, use B<fsync>(2).  (It will "
2320 "depend on the disk hardware at this point.)"
2321 msgstr ""
2322
2323 #.  Date: Tue, 4 Sep 2007 13:57:35 +0200
2324 #.  From: Fredrik Noring <noring@nocrew.org>
2325 #.  One such race involves signals and ERESTARTSYS. If a file descriptor
2326 #.  in use by a system call is closed and then reused by e.g. an
2327 #.  independent open() in some unrelated thread, before the original system
2328 #.  call has restarted after ERESTARTSYS, the original system call will
2329 #.  later restart with the reused file descriptor. This is most likely a
2330 #.  serious programming error.
2331 #. type: Plain text
2332 #: build/C/man2/close.2:131
2333 msgid ""
2334 "It is probably unwise to close file descriptors while they may be in use by "
2335 "system calls in other threads in the same process.  Since a file descriptor "
2336 "may be reused, there are some obscure race conditions that may cause "
2337 "unintended side effects."
2338 msgstr ""
2339
2340 #. type: Plain text
2341 #: build/C/man2/close.2:138
2342 msgid ""
2343 "B<fcntl>(2), B<fsync>(2), B<open>(2), B<shutdown>(2), B<unlink>(2), "
2344 "B<fclose>(3)"
2345 msgstr ""
2346
2347 #. type: TH
2348 #: build/C/man3/confstr.3:32
2349 #, no-wrap
2350 msgid "CONFSTR"
2351 msgstr ""
2352
2353 #. type: TH
2354 #: build/C/man3/confstr.3:32
2355 #, no-wrap
2356 msgid "2014-03-20"
2357 msgstr ""
2358
2359 #. type: TH
2360 #: build/C/man3/confstr.3:32 build/C/man3/daemon.3:36 build/C/man3/exec.3:41 build/C/man3/fpathconf.3:41 build/C/man3/get_nprocs_conf.3:26 build/C/man3/getcwd.3:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:41 build/C/man3/getumask.3:28 build/C/man3/getusershell.3:30 build/C/man3/lockf.3:28 build/C/man3/sleep.3:26 build/C/man3/sysconf.3:27 build/C/man3/tcgetpgrp.3:25
2361 #, no-wrap
2362 msgid "GNU"
2363 msgstr ""
2364
2365 #. type: Plain text
2366 #: build/C/man3/confstr.3:35
2367 msgid "confstr - get configuration dependent string variables"
2368 msgstr ""
2369
2370 #. type: Plain text
2371 #: build/C/man3/confstr.3:40
2372 #, no-wrap
2373 msgid "B<size_t confstr(int >I<name>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
2374 msgstr ""
2375
2376 #. type: Plain text
2377 #: build/C/man3/confstr.3:49
2378 msgid "B<confstr>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
2379 msgstr ""
2380
2381 #. type: Plain text
2382 #: build/C/man3/confstr.3:52
2383 msgid "B<confstr>()  gets the value of configuration-dependent string variables."
2384 msgstr ""
2385
2386 #. type: Plain text
2387 #: build/C/man3/confstr.3:57
2388 msgid ""
2389 "The I<name> argument is the system variable to be queried.  The following "
2390 "variables are supported:"
2391 msgstr ""
2392
2393 #. type: TP
2394 #: build/C/man3/confstr.3:57
2395 #, no-wrap
2396 msgid "B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)"
2397 msgstr ""
2398
2399 #. type: Plain text
2400 #: build/C/man3/confstr.3:61
2401 msgid ""
2402 "A string which identifies the GNU C library version on this system (e.g, "
2403 "\"glibc 2.3.4\")."
2404 msgstr ""
2405
2406 #. type: TP
2407 #: build/C/man3/confstr.3:61
2408 #, no-wrap
2409 msgid "B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)"
2410 msgstr ""
2411
2412 #. type: Plain text
2413 #: build/C/man3/confstr.3:65
2414 msgid ""
2415 "A string which identifies the POSIX implementation supplied by this C "
2416 "library (e.g, \"NPTL 2.3.4\" or \"linuxthreads-0.10\")."
2417 msgstr ""
2418
2419 #. type: TP
2420 #: build/C/man3/confstr.3:65
2421 #, no-wrap
2422 msgid "B<_CS_PATH>"
2423 msgstr ""
2424
2425 #. type: Plain text
2426 #: build/C/man3/confstr.3:71
2427 msgid ""
2428 "A value for the B<PATH> variable which indicates where all the POSIX.2 "
2429 "standard utilities can be found."
2430 msgstr ""
2431
2432 #. type: Plain text
2433 #: build/C/man3/confstr.3:87
2434 msgid ""
2435 "If I<buf> is not NULL and I<len> is not zero, B<confstr>()  copies the value "
2436 "of the string to I<buf> truncated to I<len - 1> bytes if necessary, with a "
2437 "null byte (\\(aq\\e0\\(aq) as terminator.  This can be detected by comparing "
2438 "the return value of B<confstr>()  against I<len>."
2439 msgstr ""
2440
2441 #. type: Plain text
2442 #: build/C/man3/confstr.3:95
2443 msgid ""
2444 "If I<len> is zero and I<buf> is NULL, B<confstr>()  just returns the value "
2445 "as defined below."
2446 msgstr ""
2447
2448 #. type: Plain text
2449 #: build/C/man3/confstr.3:107
2450 msgid ""
2451 "If I<name> is a valid configuration variable, B<confstr>()  returns the "
2452 "number of bytes (including the terminating null byte)  that would be "
2453 "required to hold the entire value of that variable.  This value may be "
2454 "greater than I<len>, which means that the value in I<buf> is truncated."
2455 msgstr ""
2456
2457 #. type: Plain text
2458 #: build/C/man3/confstr.3:122
2459 msgid ""
2460 "If I<name> is a valid configuration variable, but that variable does not "
2461 "have a value, then B<confstr>()  returns 0.  If I<name> does not correspond "
2462 "to a valid configuration variable, B<confstr>()  returns 0, and I<errno> is "
2463 "set to B<EINVAL>."
2464 msgstr ""
2465
2466 #. type: Plain text
2467 #: build/C/man3/confstr.3:128
2468 msgid "The value of I<name> is invalid."
2469 msgstr ""
2470
2471 #. type: Plain text
2472 #: build/C/man3/confstr.3:130 build/C/man3/fpathconf.3:171 build/C/man2/pread.2:117 build/C/man3/sleep.3:46 build/C/man3/sysconf.3:329 build/C/man3/tcgetpgrp.3:118
2473 msgid "POSIX.1-2001."
2474 msgstr ""
2475
2476 #. type: Plain text
2477 #: build/C/man3/confstr.3:133
2478 msgid ""
2479 "The following code fragment determines the path where to find the POSIX.2 "
2480 "system utilities:"
2481 msgstr ""
2482
2483 #. type: Plain text
2484 #: build/C/man3/confstr.3:139
2485 #, no-wrap
2486 msgid ""
2487 "char *pathbuf;\n"
2488 "size_t n;\n"
2489 msgstr ""
2490
2491 #. type: Plain text
2492 #: build/C/man3/confstr.3:145
2493 #, no-wrap
2494 msgid ""
2495 "n = confstr(_CS_PATH, NULL, (size_t) 0);\n"
2496 "pathbuf = malloc(n);\n"
2497 "if (pathbuf == NULL)\n"
2498 "    abort();\n"
2499 "confstr(_CS_PATH, pathbuf, n);\n"
2500 msgstr ""
2501
2502 #. type: Plain text
2503 #: build/C/man3/confstr.3:155
2504 msgid ""
2505 "B<getconf>(1), B<sh>(1), B<exec>(3), B<fpathconf>(3)  B<sysconf>(3)  "
2506 "B<pathconf>(3)  B<system>(3)"
2507 msgstr ""
2508
2509 #. type: TH
2510 #: build/C/man3/crypt.3:36
2511 #, no-wrap
2512 msgid "CRYPT"
2513 msgstr ""
2514
2515 #. type: TH
2516 #: build/C/man3/crypt.3:36
2517 #, no-wrap
2518 msgid "2014-02-26"
2519 msgstr ""
2520
2521 #. type: Plain text
2522 #: build/C/man3/crypt.3:39
2523 msgid "crypt, crypt_r - password and data encryption"
2524 msgstr ""
2525
2526 #. type: Plain text
2527 #: build/C/man3/crypt.3:42
2528 #, no-wrap
2529 msgid "B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
2530 msgstr ""
2531
2532 #. type: Plain text
2533 #: build/C/man3/crypt.3:46
2534 #, no-wrap
2535 msgid "B<char *crypt(const char *>I<key>B<, const char *>I<salt>B<);>\n"
2536 msgstr ""
2537
2538 #. type: Plain text
2539 #: build/C/man3/crypt.3:48
2540 #, no-wrap
2541 msgid "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2542 msgstr ""
2543
2544 #. type: Plain text
2545 #: build/C/man3/crypt.3:50
2546 #, no-wrap
2547 msgid "B<#include E<lt>crypt.hE<gt>>\n"
2548 msgstr ""
2549
2550 #. type: Plain text
2551 #: build/C/man3/crypt.3:53
2552 #, no-wrap
2553 msgid ""
2554 "B<char *crypt_r(const char *>I<key>B<, const char *>I<salt>B<,>\n"
2555 "B<              struct crypt_data *>I<data>B<);>\n"
2556 msgstr ""
2557
2558 #. type: Plain text
2559 #: build/C/man3/crypt.3:56
2560 msgid "Link with I<-lcrypt>."
2561 msgstr ""
2562
2563 #. type: Plain text
2564 #: build/C/man3/crypt.3:62
2565 msgid ""
2566 "B<crypt>()  is the password encryption function.  It is based on the Data "
2567 "Encryption Standard algorithm with variations intended (among other things) "
2568 "to discourage use of hardware implementations of a key search."
2569 msgstr ""
2570
2571 #. type: Plain text
2572 #: build/C/man3/crypt.3:65
2573 msgid "I<key> is a user's typed password."
2574 msgstr ""
2575
2576 #. type: Plain text
2577 #: build/C/man3/crypt.3:71
2578 msgid ""
2579 "I<salt> is a two-character string chosen from the set [B<a-zA-Z0-9./>].  "
2580 "This string is used to perturb the algorithm in one of 4096 different ways."
2581 msgstr ""
2582
2583 #. type: Plain text
2584 #: build/C/man3/crypt.3:82
2585 msgid ""
2586 "By taking the lowest 7 bits of each of the first eight characters of the "
2587 "I<key>, a 56-bit key is obtained.  This 56-bit key is used to encrypt "
2588 "repeatedly a constant string (usually a string consisting of all zeros).  "
2589 "The returned value points to the encrypted password, a series of 13 "
2590 "printable ASCII characters (the first two characters represent the salt "
2591 "itself).  The return value points to static data whose content is "
2592 "overwritten by each call."
2593 msgstr ""
2594
2595 #. type: Plain text
2596 #: build/C/man3/crypt.3:84
2597 msgid "Warning: The key space consists of"
2598 msgstr ""
2599
2600 #. type: Plain text
2601 #: build/C/man3/crypt.3:99
2602 msgid ""
2603 "equal 7.2e16 possible values.  Exhaustive searches of this key space are "
2604 "possible using massively parallel computers.  Software, such as B<crack>(1), "
2605 "is available which will search the portion of this key space that is "
2606 "generally used by humans for passwords.  Hence, password selection should, "
2607 "at minimum, avoid common words and names.  The use of a B<passwd>(1)  "
2608 "program that checks for crackable passwords during the selection process is "
2609 "recommended."
2610 msgstr ""
2611
2612 #. type: Plain text
2613 #: build/C/man3/crypt.3:108
2614 msgid ""
2615 "The DES algorithm itself has a few quirks which make the use of the "
2616 "B<crypt>()  interface a very poor choice for anything other than password "
2617 "authentication.  If you are planning on using the B<crypt>()  interface for "
2618 "a cryptography project, don't do it: get a good book on encryption and one "
2619 "of the widely available DES libraries."
2620 msgstr ""
2621
2622 #. type: Plain text
2623 #: build/C/man3/crypt.3:120
2624 msgid ""
2625 "B<crypt_r>()  is a reentrant version of B<crypt>().  The structure pointed "
2626 "to by I<data> is used to store result data and bookkeeping information.  "
2627 "Other than allocating it, the only thing that the caller should do with this "
2628 "structure is to set I<data-E<gt>initialized> to zero before the first call "
2629 "to B<crypt_r>()."
2630 msgstr ""
2631
2632 #. type: Plain text
2633 #: build/C/man3/crypt.3:123
2634 msgid ""
2635 "On success, a pointer to the encrypted password is returned.  On error, NULL "
2636 "is returned."
2637 msgstr ""
2638
2639 #. type: Plain text
2640 #: build/C/man3/crypt.3:128
2641 msgid "I<salt> has the wrong format."
2642 msgstr ""
2643
2644 #. type: TP
2645 #: build/C/man3/crypt.3:130 build/C/man3/encrypt.3:120 build/C/man3/fexecve.3:86 build/C/man2/fork.2:220
2646 #, no-wrap
2647 msgid "B<ENOSYS>"
2648 msgstr ""
2649
2650 #.  This level of detail is not necessary in this man page. . .
2651 #.  .PP
2652 #.  When encrypting a plain text P using DES with the key K results in the
2653 #.  encrypted text C, then the complementary plain text P' being encrypted
2654 #.  using the complementary key K' will result in the complementary encrypted
2655 #.  text C'.
2656 #.  .PP
2657 #.  Weak keys are keys which stay invariant under the DES key transformation.
2658 #.  The four known weak keys 0101010101010101, fefefefefefefefe,
2659 #.  1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided.
2660 #.  .PP
2661 #.  There are six known half weak key pairs, which keys lead to the same
2662 #.  encrypted data.  Keys which are part of such key clusters should be
2663 #.  avoided.
2664 #.  Sorry, I could not find out what they are.
2665 #. "
2666 #.  .PP
2667 #.  Heavily redundant data causes trouble with DES encryption, when used in the
2668 #.  .I codebook
2669 #.  mode that
2670 #.  .BR crypt ()
2671 #.  implements.  The
2672 #.  .BR crypt ()
2673 #.  interface should be used only for its intended purpose of password
2674 #.  verification, and should not be used as part of a data encryption tool.
2675 #.  .PP
2676 #.  The first and last three output bits of the fourth S-box can be
2677 #.  represented as function of their input bits.  Empiric studies have
2678 #.  shown that S-boxes partially compute the same output for similar input.
2679 #.  It is suspected that this may contain a back door which could allow the
2680 #.  NSA to decrypt DES encrypted data.
2681 #.  .PP
2682 #.  Making encrypted data computed using crypt() publicly available has
2683 #.  to be considered insecure for the given reasons.
2684 #. type: Plain text
2685 #: build/C/man3/crypt.3:169
2686 msgid ""
2687 "The B<crypt>()  function was not implemented, probably because of "
2688 "U.S.A. export restrictions."
2689 msgstr ""
2690
2691 #. type: Plain text
2692 #: build/C/man3/crypt.3:174
2693 msgid ""
2694 "I</proc/sys/crypto/fips_enabled> has a nonzero value, and an attempt was "
2695 "made to use a weak encryption type, such as DES."
2696 msgstr ""
2697
2698 #. type: SH
2699 #: build/C/man3/crypt.3:174 build/C/man3/daemon.3:91 build/C/man3/des_crypt.3:134 build/C/man3/encrypt.3:124 build/C/man3/euidaccess.3:73 build/C/man3/getdtablesize.3:69 build/C/man3/getlogin.3:140 build/C/man3/getusershell.3:93 build/C/man3/lockf.3:154 build/C/man3/swab.3:72 build/C/man3/tcgetpgrp.3:109 build/C/man3/ualarm.3:92 build/C/man3/usleep.3:91
2700 #, no-wrap
2701 msgid "ATTRIBUTES"
2702 msgstr ""
2703
2704 #. type: SS
2705 #: build/C/man3/crypt.3:175 build/C/man3/daemon.3:92 build/C/man3/des_crypt.3:135 build/C/man3/encrypt.3:125 build/C/man3/euidaccess.3:74 build/C/man3/getdtablesize.3:70 build/C/man3/getlogin.3:141 build/C/man3/getusershell.3:94 build/C/man3/lockf.3:155 build/C/man3/swab.3:73 build/C/man3/tcgetpgrp.3:110 build/C/man3/ualarm.3:93 build/C/man3/usleep.3:92
2706 #, no-wrap
2707 msgid "Multithreading (see pthreads(7))"
2708 msgstr ""
2709
2710 #. type: Plain text
2711 #: build/C/man3/crypt.3:179
2712 msgid "The B<crypt>()  function is not thread-safe."
2713 msgstr ""
2714
2715 #. type: Plain text
2716 #: build/C/man3/crypt.3:183
2717 msgid "The B<crypt_r>()  function is thread-safe."
2718 msgstr ""
2719
2720 #. type: Plain text
2721 #: build/C/man3/crypt.3:188
2722 msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001.  B<crypt_r>()  is a GNU extension."
2723 msgstr ""
2724
2725 #. type: Plain text
2726 #: build/C/man3/crypt.3:192
2727 msgid ""
2728 "The glibc2 version of this function supports additional encryption "
2729 "algorithms."
2730 msgstr ""
2731
2732 #. type: Plain text
2733 #: build/C/man3/crypt.3:197
2734 msgid ""
2735 "If I<salt> is a character string starting with the characters \"$I<id>$\" "
2736 "followed by a string terminated by \"$\":"
2737 msgstr ""
2738
2739 #. type: Plain text
2740 #: build/C/man3/crypt.3:200
2741 msgid "$I<id>$I<salt>$I<encrypted>"
2742 msgstr ""
2743
2744 #. type: Plain text
2745 #: build/C/man3/crypt.3:209
2746 msgid ""
2747 "then instead of using the DES machine, I<id> identifies the encryption "
2748 "method used and this then determines how the rest of the password string is "
2749 "interpreted.  The following values of I<id> are supported:"
2750 msgstr ""
2751
2752 #. type: tbl table
2753 #: build/C/man3/crypt.3:212
2754 #, no-wrap
2755 msgid "ID  | Method\n"
2756 msgstr ""
2757
2758 #. type: tbl table
2759 #: build/C/man3/crypt.3:213 build/C/man2/syscall.2:158 build/C/man2/syscall.2:190
2760 #, no-wrap
2761 msgid "_\n"
2762 msgstr ""
2763
2764 #. type: tbl table
2765 #: build/C/man3/crypt.3:214
2766 #, no-wrap
2767 msgid "1   | MD5\n"
2768 msgstr ""
2769
2770 #. type: tbl table
2771 #: build/C/man3/crypt.3:215
2772 #, no-wrap
2773 msgid "2a  | Blowfish (not in mainline glibc; added in some\n"
2774 msgstr ""
2775
2776 #. type: tbl table
2777 #: build/C/man3/crypt.3:216
2778 #, no-wrap
2779 msgid "    | Linux distributions)\n"
2780 msgstr ""
2781
2782 #.  openSUSE has Blowfish, but AFAICS, this option is not supported
2783 #.  natively by glibc -- mtk, Jul 08
2784 #
2785 #.  md5 | Sun MD5
2786 #.  glibc doesn't appear to natively support Sun MD5; I don't know
2787 #.  if any distros add the support.
2788 #. type: tbl table
2789 #: build/C/man3/crypt.3:223
2790 #, no-wrap
2791 msgid "5   | SHA-256 (since glibc 2.7)\n"
2792 msgstr ""
2793
2794 #. type: tbl table
2795 #: build/C/man3/crypt.3:224
2796 #, no-wrap
2797 msgid "6   | SHA-512 (since glibc 2.7)\n"
2798 msgstr ""
2799
2800 #. type: Plain text
2801 #: build/C/man3/crypt.3:231
2802 msgid ""
2803 "So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and "
2804 "$6$I<salt>$I<encrypted> is an SHA-512 encoded one."
2805 msgstr ""
2806
2807 #. type: Plain text
2808 #: build/C/man3/crypt.3:236
2809 msgid ""
2810 "\"I<salt>\" stands for the up to 16 characters following \"$I<id>$\" in the "
2811 "salt.  The encrypted part of the password string is the actual computed "
2812 "password.  The size of this string is fixed:"
2813 msgstr ""
2814
2815 #. type: tbl table
2816 #: build/C/man3/crypt.3:238
2817 #, no-wrap
2818 msgid "MD5     | 22 characters\n"
2819 msgstr ""
2820
2821 #. type: tbl table
2822 #: build/C/man3/crypt.3:239
2823 #, no-wrap
2824 msgid "SHA-256 | 43 characters\n"
2825 msgstr ""
2826
2827 #. type: tbl table
2828 #: build/C/man3/crypt.3:240
2829 #, no-wrap
2830 msgid "SHA-512 | 86 characters\n"
2831 msgstr ""
2832
2833 #. type: Plain text
2834 #: build/C/man3/crypt.3:249
2835 msgid ""
2836 "The characters in \"I<salt>\" and \"I<encrypted>\" are drawn from the set "
2837 "[B<a-zA-Z0-9./>].  In the MD5 and SHA implementations the entire I<key> is "
2838 "significant (instead of only the first 8 bytes in DES)."
2839 msgstr ""
2840
2841 #. type: Plain text
2842 #: build/C/man3/crypt.3:255
2843 msgid "B<login>(1), B<passwd>(1), B<encrypt>(3), B<getpass>(3), B<passwd>(5)"
2844 msgstr ""
2845
2846 #. type: TH
2847 #: build/C/man3/daemon.3:36
2848 #, no-wrap
2849 msgid "DAEMON"
2850 msgstr ""
2851
2852 #. type: TH
2853 #: build/C/man3/daemon.3:36
2854 #, no-wrap
2855 msgid "2013-10-28"
2856 msgstr ""
2857
2858 #. type: Plain text
2859 #: build/C/man3/daemon.3:39
2860 msgid "daemon - run in the background"
2861 msgstr ""
2862
2863 #. type: Plain text
2864 #: build/C/man3/daemon.3:43
2865 msgid "B<int daemon(int >I<nochdir>B<, int >I<noclose>B<);>"
2866 msgstr ""
2867
2868 #. type: Plain text
2869 #: build/C/man3/daemon.3:51
2870 msgid "B<daemon>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
2871 msgstr ""
2872
2873 #. type: Plain text
2874 #: build/C/man3/daemon.3:56
2875 msgid ""
2876 "The B<daemon>()  function is for programs wishing to detach themselves from "
2877 "the controlling terminal and run in the background as system daemons."
2878 msgstr ""
2879
2880 #. type: Plain text
2881 #: build/C/man3/daemon.3:64
2882 msgid ""
2883 "If I<nochdir> is zero, B<daemon>()  changes the calling process's current "
2884 "working directory to the root directory (\"/\"); otherwise, the current "
2885 "working directory is left unchanged."
2886 msgstr ""
2887
2888 #. type: Plain text
2889 #: build/C/man3/daemon.3:73
2890 msgid ""
2891 "If I<noclose> is zero, B<daemon>()  redirects standard input, standard "
2892 "output and standard error to I</dev/null>; otherwise, no changes are made to "
2893 "these file descriptors."
2894 msgstr ""
2895
2896 #.  not .IR in order not to underline _
2897 #. type: Plain text
2898 #: build/C/man3/daemon.3:91
2899 msgid ""
2900 "(This function forks, and if the B<fork>(2)  succeeds, the parent calls "
2901 "B<_exit>(2), so that further errors are seen by the child only.)  On success "
2902 "B<daemon>()  returns zero.  If an error occurs, B<daemon>()  returns -1 and "
2903 "sets I<errno> to any of the errors specified for the B<fork>(2)  and "
2904 "B<setsid>(2)."
2905 msgstr ""
2906
2907 #. type: Plain text
2908 #: build/C/man3/daemon.3:96
2909 msgid "The B<daemon>()  function is thread-safe."
2910 msgstr ""
2911
2912 #. type: Plain text
2913 #: build/C/man3/daemon.3:102
2914 msgid ""
2915 "Not in POSIX.1-2001.  A similar function appears on the BSDs.  The "
2916 "B<daemon>()  function first appeared in 4.4BSD."
2917 msgstr ""
2918
2919 #. type: Plain text
2920 #: build/C/man3/daemon.3:110
2921 msgid ""
2922 "The glibc implementation can also return -1 when I</dev/null> exists but is "
2923 "not a character device with the expected major and minor numbers.  In this "
2924 "case, I<errno> need not be set."
2925 msgstr ""
2926
2927 #. type: Plain text
2928 #: build/C/man3/daemon.3:113
2929 msgid "B<fork>(2), B<setsid>(2)"
2930 msgstr ""
2931
2932 #. type: TH
2933 #: build/C/man3/des_crypt.3:14
2934 #, no-wrap
2935 msgid "DES_CRYPT"
2936 msgstr ""
2937
2938 #. type: Plain text
2939 #: build/C/man3/des_crypt.3:18
2940 msgid ""
2941 "des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - fast DES "
2942 "encryption"
2943 msgstr ""
2944
2945 #.  Sun version
2946 #.  .B #include <des_crypt.h>
2947 #. type: Plain text
2948 #: build/C/man3/des_crypt.3:23
2949 #, no-wrap
2950 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
2951 msgstr ""
2952
2953 #. type: Plain text
2954 #: build/C/man3/des_crypt.3:26
2955 #, no-wrap
2956 msgid ""
2957 "B<int ecb_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2958 ">I<datalen>B<,>\n"
2959 "B<              unsigned >I<mode>B<);>\n"
2960 msgstr ""
2961
2962 #. type: Plain text
2963 #: build/C/man3/des_crypt.3:29
2964 #, no-wrap
2965 msgid ""
2966 "B<int cbc_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
2967 ">I<datalen>B<,>\n"
2968 "B<              unsigned >I<mode>B<, char *>I<ivec>B<);>\n"
2969 msgstr ""
2970
2971 #. type: Plain text
2972 #: build/C/man3/des_crypt.3:31
2973 #, no-wrap
2974 msgid "B<void des_setparity(char *>I<key>B<);>\n"
2975 msgstr ""
2976
2977 #. type: Plain text
2978 #: build/C/man3/des_crypt.3:33
2979 #, no-wrap
2980 msgid "B<int DES_FAILED(int >I<status>B<);>\n"
2981 msgstr ""
2982
2983 #. type: Plain text
2984 #: build/C/man3/des_crypt.3:63
2985 msgid ""
2986 "B<ecb_crypt>()  and B<cbc_crypt>()  implement the NBS DES (Data Encryption "
2987 "Standard).  These routines are faster and more general purpose than "
2988 "B<crypt>(3).  They also are able to utilize DES hardware if it is "
2989 "available.  B<ecb_crypt>()  encrypts in ECB (Electronic Code Book)  mode, "
2990 "which encrypts blocks of data independently.  B<cbc_crypt>()  encrypts in "
2991 "CBC (Cipher Block Chaining)  mode, which chains together successive blocks.  "
2992 "CBC mode protects against insertions, deletions and substitutions of "
2993 "blocks.  Also, regularities in the clear text will not appear in the cipher "
2994 "text."
2995 msgstr ""
2996
2997 #. type: Plain text
2998 #: build/C/man3/des_crypt.3:106
2999 msgid ""
3000 "Here is how to use these routines.  The first argument, I<key>, is the "
3001 "8-byte encryption key with parity.  To set the key's parity, which for DES "
3002 "is in the low bit of each byte, use B<des_setparity>().  The second "
3003 "argument, I<data>, contains the data to be encrypted or decrypted.  The "
3004 "third argument, I<datalen>, is the length in bytes of I<data>, which must be "
3005 "a multiple of 8.  The fourth argument, I<mode>, is formed by ORing together "
3006 "some things.  For the encryption direction OR in either B<DES_ENCRYPT> or "
3007 "B<DES_DECRYPT>.  For software versus hardware encryption, OR in either "
3008 "B<DES_HW> or B<DES_SW>.  If B<DES_HW> is specified, and there is no "
3009 "hardware, then the encryption is performed in software and the routine "
3010 "returns B<DESERR_NOHWDEVICE>.  For B<cbc_crypt>(), the argument I<ivec> is "
3011 "the 8-byte initialization vector for the chaining.  It is updated to the "
3012 "next initialization vector upon return."
3013 msgstr ""
3014
3015 #. type: TP
3016 #: build/C/man3/des_crypt.3:108
3017 #, no-wrap
3018 msgid "B<DESERR_NONE>"
3019 msgstr ""
3020
3021 #. type: Plain text
3022 #: build/C/man3/des_crypt.3:111
3023 msgid "No error."
3024 msgstr ""
3025
3026 #. type: TP
3027 #: build/C/man3/des_crypt.3:111
3028 #, no-wrap
3029 msgid "B<DESERR_NOHWDEVICE>"
3030 msgstr ""
3031
3032 #. type: Plain text
3033 #: build/C/man3/des_crypt.3:114
3034 msgid ""
3035 "Encryption succeeded, but done in software instead of the requested "
3036 "hardware."
3037 msgstr ""
3038
3039 #. type: TP
3040 #: build/C/man3/des_crypt.3:114
3041 #, no-wrap
3042 msgid "B<DESERR_HWERROR>"
3043 msgstr ""
3044
3045 #. type: Plain text
3046 #: build/C/man3/des_crypt.3:117
3047 msgid "An error occurred in the hardware or driver."
3048 msgstr ""
3049
3050 #. type: TP
3051 #: build/C/man3/des_crypt.3:117
3052 #, no-wrap
3053 msgid "B<DESERR_BADPARAM>"
3054 msgstr ""
3055
3056 #. type: Plain text
3057 #: build/C/man3/des_crypt.3:120
3058 msgid "Bad argument to routine."
3059 msgstr ""
3060
3061 #.  .BR DES_FAILED\c
3062 #.  .BR ( stat )
3063 #.  So far the Sun page
3064 #.  Some additions - aeb
3065 #. type: Plain text
3066 #: build/C/man3/des_crypt.3:131
3067 msgid ""
3068 "Given a result status I<stat>, the macro B<DES_FAILED(>I<stat>B<)> is false "
3069 "only for the first two statuses."
3070 msgstr ""
3071
3072 #. type: Plain text
3073 #: build/C/man3/des_crypt.3:134
3074 msgid "These functions are present in glibc 2.1 and later."
3075 msgstr ""
3076
3077 #. type: Plain text
3078 #: build/C/man3/des_crypt.3:142
3079 msgid ""
3080 "The B<ecb_crypt>(), B<cbc_crypt>(), and B<des_setparity>()  functions are "
3081 "thread-safe."
3082 msgstr ""
3083
3084 #. type: Plain text
3085 #: build/C/man3/des_crypt.3:145
3086 msgid "4.3BSD.  Not in POSIX.1-2001."
3087 msgstr ""
3088
3089 #. type: Plain text
3090 #: build/C/man3/des_crypt.3:149
3091 msgid "B<des>(1), B<crypt>(3), B<xcrypt>(3)"
3092 msgstr ""
3093
3094 #. type: TH
3095 #: build/C/man2/dup.2:37
3096 #, no-wrap
3097 msgid "DUP"
3098 msgstr ""
3099
3100 #. type: TH
3101 #: build/C/man2/dup.2:37
3102 #, no-wrap
3103 msgid "2014-07-08"
3104 msgstr ""
3105
3106 #. type: Plain text
3107 #: build/C/man2/dup.2:40
3108 msgid "dup, dup2, dup3 - duplicate a file descriptor"
3109 msgstr ""
3110
3111 #. type: Plain text
3112 #: build/C/man2/dup.2:46
3113 #, no-wrap
3114 msgid ""
3115 "B<int dup(int >I<oldfd>B<);>\n"
3116 "B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n"
3117 msgstr ""
3118
3119 #. type: Plain text
3120 #: build/C/man2/dup.2:50
3121 #, no-wrap
3122 msgid ""
3123 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
3124 "B<#include E<lt>fcntl.hE<gt>>              /* Obtain O_* constant "
3125 "definitions */\n"
3126 "B<#include E<lt>unistd.hE<gt>>\n"
3127 msgstr ""
3128
3129 #. type: Plain text
3130 #: build/C/man2/dup.2:52
3131 #, no-wrap
3132 msgid "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n"
3133 msgstr ""
3134
3135 #. type: Plain text
3136 #: build/C/man2/dup.2:59
3137 msgid ""
3138 "The B<dup>()  system call creates a copy of the file descriptor I<oldfd>, "
3139 "using the lowest-numbered unused descriptor for the new descriptor."
3140 msgstr ""
3141
3142 #. type: Plain text
3143 #: build/C/man2/dup.2:68
3144 msgid ""
3145 "After a successful return, the old and new file descriptors may be used "
3146 "interchangeably.  They refer to the same open file description (see "
3147 "B<open>(2))  and thus share file offset and file status flags; for example, "
3148 "if the file offset is modified by using B<lseek>(2)  on one of the "
3149 "descriptors, the offset is also changed for the other."
3150 msgstr ""
3151
3152 #. type: Plain text
3153 #: build/C/man2/dup.2:77
3154 msgid ""
3155 "The two descriptors do not share file descriptor flags (the close-on-exec "
3156 "flag).  The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2))  for the "
3157 "duplicate descriptor is off."
3158 msgstr ""
3159
3160 #. type: SS
3161 #: build/C/man2/dup.2:77
3162 #, no-wrap
3163 msgid "dup2()"
3164 msgstr ""
3165
3166 #. type: Plain text
3167 #: build/C/man2/dup.2:88
3168 msgid ""
3169 "The B<dup2>()  system call performs the same task as B<dup>(), but instead "
3170 "of using the lowest-numbered unused file descriptor, it uses the descriptor "
3171 "number specified in I<newfd>.  If the descriptor I<newfd> was previously "
3172 "open, it is silently closed before being reused."
3173 msgstr ""
3174
3175 #. type: Plain text
3176 #: build/C/man2/dup.2:104
3177 msgid ""
3178 "The steps of closing and reusing the file descriptor I<newfd> are performed "
3179 "I<atomically>.  This is important, because trying to implement equivalent "
3180 "functionality using B<close>(2)  and B<dup>()  would be subject to race "
3181 "conditions, whereby I<newfd> might be reused between the two steps.  Such "
3182 "reuse could happen because the main program is interrupted by a signal "
3183 "handler that allocates a file descriptor, or because a parallel thread "
3184 "allocates a file descriptor."
3185 msgstr ""
3186
3187 #. type: Plain text
3188 #: build/C/man2/dup.2:106
3189 msgid "Note the following points:"
3190 msgstr ""
3191
3192 #. type: Plain text
3193 #: build/C/man2/dup.2:112
3194 msgid ""
3195 "If I<oldfd> is not a valid file descriptor, then the call fails, and "
3196 "I<newfd> is not closed."
3197 msgstr ""
3198
3199 #. type: Plain text
3200 #: build/C/man2/dup.2:124
3201 msgid ""
3202 "If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
3203 "I<oldfd>, then B<dup2>()  does nothing, and returns I<newfd>."
3204 msgstr ""
3205
3206 #. type: SS
3207 #: build/C/man2/dup.2:124
3208 #, no-wrap
3209 msgid "dup3()"
3210 msgstr ""
3211
3212 #. type: Plain text
3213 #: build/C/man2/dup.2:129
3214 msgid "B<dup3>()  is the same as B<dup2>(), except that:"
3215 msgstr ""
3216
3217 #. type: Plain text
3218 #: build/C/man2/dup.2:138
3219 msgid ""
3220 "The caller can force the close-on-exec flag to be set for the new file "
3221 "descriptor by specifying B<O_CLOEXEC> in I<flags>.  See the description of "
3222 "the same flag in B<open>(2)  for reasons why this may be useful."
3223 msgstr ""
3224
3225 #.  FIXME . To confirm with Al Viro that this was intended, and its rationale
3226 #. type: Plain text
3227 #: build/C/man2/dup.2:148
3228 msgid "If I<oldfd> equals I<newfd>, then B<dup3>()  fails with the error B<EINVAL>."
3229 msgstr ""
3230
3231 #. type: Plain text
3232 #: build/C/man2/dup.2:154
3233 msgid ""
3234 "On success, these system calls return the new descriptor.  On error, -1 is "
3235 "returned, and I<errno> is set appropriately."
3236 msgstr ""
3237
3238 #. type: Plain text
3239 #: build/C/man2/dup.2:161
3240 msgid ""
3241 "I<oldfd> isn't an open file descriptor, or I<newfd> is out of the allowed "
3242 "range for file descriptors."
3243 msgstr ""
3244
3245 #. type: TP
3246 #: build/C/man2/dup.2:161 build/C/man2/swapon.2:117
3247 #, no-wrap
3248 msgid "B<EBUSY>"
3249 msgstr ""
3250
3251 #. type: Plain text
3252 #: build/C/man2/dup.2:171
3253 msgid ""
3254 "(Linux only) This may be returned by B<dup2>()  or B<dup3>()  during a race "
3255 "condition with B<open>(2)  and B<dup>()."
3256 msgstr ""
3257
3258 #. type: Plain text
3259 #: build/C/man2/dup.2:179
3260 msgid ""
3261 "The B<dup2>()  or B<dup3>()  call was interrupted by a signal; see "
3262 "B<signal>(7)."
3263 msgstr ""
3264
3265 #.  FIXME . To confirm with Al Viro that this was intended, and its rationale
3266 #. type: Plain text
3267 #: build/C/man2/dup.2:189
3268 msgid ""
3269 "(B<dup3>())  I<flags> contain an invalid value.  Or, I<oldfd> was equal to "
3270 "I<newfd>."
3271 msgstr ""
3272
3273 #. type: TP
3274 #: build/C/man2/dup.2:189 build/C/man2/execve.2:422 build/C/man2/fcntl.2:1398 build/C/man3/getlogin.3:105
3275 #, no-wrap
3276 msgid "B<EMFILE>"
3277 msgstr ""
3278
3279 #. type: Plain text
3280 #: build/C/man2/dup.2:193
3281 msgid ""
3282 "The process already has the maximum number of file descriptors open and "
3283 "tried to open a new one."
3284 msgstr ""
3285
3286 #. type: Plain text
3287 #: build/C/man2/dup.2:198
3288 msgid ""
3289 "B<dup3>()  was added to Linux in version 2.6.27; glibc support is available "
3290 "starting with version 2.9."
3291 msgstr ""
3292
3293 #. type: Plain text
3294 #: build/C/man2/dup.2:202
3295 msgid "B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001."
3296 msgstr ""
3297
3298 #.  SVr4 documents additional
3299 #.  EINTR and ENOLINK error conditions.  POSIX.1 adds EINTR.
3300 #.  The EBUSY return is Linux-specific.
3301 #. type: Plain text
3302 #: build/C/man2/dup.2:208
3303 msgid "B<dup3>()  is Linux-specific."
3304 msgstr ""
3305
3306 #. type: Plain text
3307 #: build/C/man2/dup.2:222
3308 msgid ""
3309 "The error returned by B<dup2>()  is different from that returned by "
3310 "B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range.  On some "
3311 "systems, B<dup2>()  also sometimes returns B<EINVAL> like B<F_DUPFD>."
3312 msgstr ""
3313
3314 #. type: Plain text
3315 #: build/C/man2/dup.2:238
3316 msgid ""
3317 "If I<newfd> was open, any errors that would have been reported at "
3318 "B<close>(2)  time are lost.  If this is of concern, then\\(emunless the "
3319 "program is single-threaded and does not allocate file descriptors in signal "
3320 "handlers\\(emthe correct approach is I<not> to close I<newfd> before calling "
3321 "B<dup2>(), because of the race condition described above.  Instead, code "
3322 "something like the following could be used:"
3323 msgstr ""
3324
3325 #. type: Plain text
3326 #: build/C/man2/dup.2:243
3327 #, no-wrap
3328 msgid ""
3329 "    /* Obtain a duplicate of 'newfd' that can subsequently\n"
3330 "       be used to check for close() errors; an EBADF error\n"
3331 "       means that 'newfd' was not open. */\n"
3332 msgstr ""
3333
3334 #. type: Plain text
3335 #: build/C/man2/dup.2:248
3336 #, no-wrap
3337 msgid ""
3338 "    tmpfd = dup(newfd);\n"
3339 "    if (tmpfd == -1 && errno != EBADF) {\n"
3340 "        /* Handle unexpected dup() error */\n"
3341 "    }\n"
3342 msgstr ""
3343
3344 #. type: Plain text
3345 #: build/C/man2/dup.2:250
3346 #, no-wrap
3347 msgid "    /* Atomically duplicate 'oldfd' on 'newfd' */\n"
3348 msgstr ""
3349
3350 #. type: Plain text
3351 #: build/C/man2/dup.2:254
3352 #, no-wrap
3353 msgid ""
3354 "    if (dup2(oldfd, newfd) == -1) {\n"
3355 "        /* Handle dup2() error */\n"
3356 "    }\n"
3357 msgstr ""
3358
3359 #. type: Plain text
3360 #: build/C/man2/dup.2:257
3361 #, no-wrap
3362 msgid ""
3363 "    /* Now check for close() errors on the file originally\n"
3364 "       referred to by 'newfd' */\n"
3365 msgstr ""
3366
3367 #. type: Plain text
3368 #: build/C/man2/dup.2:263
3369 #, no-wrap
3370 msgid ""
3371 "    if (tmpfd != -1) {\n"
3372 "        if (close(tmpfd) == -1) {\n"
3373 "            /* Handle errors from close */\n"
3374 "        }\n"
3375 "    }\n"
3376 msgstr ""
3377
3378 #. type: Plain text
3379 #: build/C/man2/dup.2:268
3380 msgid "B<close>(2), B<fcntl>(2), B<open>(2)"
3381 msgstr ""
3382
3383 #. type: TH
3384 #: build/C/man3/encrypt.3:30
3385 #, no-wrap
3386 msgid "ENCRYPT"
3387 msgstr ""
3388
3389 #. type: TH
3390 #: build/C/man3/encrypt.3:30
3391 #, no-wrap
3392 msgid "2013-07-22"
3393 msgstr ""
3394
3395 #. type: Plain text
3396 #: build/C/man3/encrypt.3:33
3397 msgid "encrypt, setkey, encrypt_r, setkey_r - encrypt 64-bit messages"
3398 msgstr ""
3399
3400 #. type: Plain text
3401 #: build/C/man3/encrypt.3:35 build/C/man3/encrypt.3:41
3402 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
3403 msgstr ""
3404
3405 #. type: Plain text
3406 #: build/C/man3/encrypt.3:39
3407 msgid "B<void encrypt(char >I<block>B<[64], int >I<edflag>B<);>"
3408 msgstr ""
3409
3410 #. type: Plain text
3411 #: build/C/man3/encrypt.3:43
3412 msgid "B<#include E<lt>stdlib.hE<gt>>"
3413 msgstr ""
3414
3415 #. type: Plain text
3416 #: build/C/man3/encrypt.3:45
3417 msgid "B<void setkey(const char *>I<key>B<);>"
3418 msgstr ""
3419
3420 #. type: Plain text
3421 #: build/C/man3/encrypt.3:47 build/C/man3/getumask.3:33
3422 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
3423 msgstr ""
3424
3425 #. type: Plain text
3426 #: build/C/man3/encrypt.3:49
3427 msgid "B<#include E<lt>crypt.hE<gt>>"
3428 msgstr ""
3429
3430 #. type: Plain text
3431 #: build/C/man3/encrypt.3:51
3432 msgid "B<void setkey_r(const char *>I<key>B<, struct crypt_data *>I<data>B<);>"
3433 msgstr ""
3434
3435 #. type: Plain text
3436 #: build/C/man3/encrypt.3:54
3437 msgid ""
3438 "B<void encrypt_r(char *>I<block>B<, int >I<edflag>B<, struct crypt_data "
3439 "*>I<data>B<);>"
3440 msgstr ""
3441
3442 #. type: Plain text
3443 #: build/C/man3/encrypt.3:56
3444 msgid "Each of these requires linking with I<-lcrypt>."
3445 msgstr ""
3446
3447 #. type: Plain text
3448 #: build/C/man3/encrypt.3:68
3449 msgid ""
3450 "These functions encrypt and decrypt 64-bit messages.  The B<setkey>()  "
3451 "function sets the key used by B<encrypt>().  The I<key> argument used here "
3452 "is an array of 64 bytes, each of which has numerical value 1 or 0.  The "
3453 "bytes key[n] where n=8*i-1 are ignored, so that the effective key length is "
3454 "56 bits."
3455 msgstr ""
3456
3457 #. type: Plain text
3458 #: build/C/man3/encrypt.3:80
3459 msgid ""
3460 "The B<encrypt>()  function modifies the passed buffer, encoding if I<edflag> "
3461 "is 0, and decoding if 1 is being passed.  Like the I<key> argument, also "
3462 "I<block> is a bit vector representation of the actual value that is "
3463 "encoded.  The result is returned in that same vector."
3464 msgstr ""
3465
3466 #. type: Plain text
3467 #: build/C/man3/encrypt.3:90
3468 msgid ""
3469 "These two functions are not reentrant, that is, the key data is kept in "
3470 "static storage.  The functions B<setkey_r>()  and B<encrypt_r>()  are the "
3471 "reentrant versions.  They use the following structure to hold the key data:"
3472 msgstr ""
3473
3474 #. type: Plain text
3475 #: build/C/man3/encrypt.3:105
3476 #, no-wrap
3477 msgid ""
3478 "struct crypt_data {\n"
3479 "    char     keysched[16 * 8];\n"
3480 "    char     sb0[32768];\n"
3481 "    char     sb1[32768];\n"
3482 "    char     sb2[32768];\n"
3483 "    char     sb3[32768];\n"
3484 "    char     crypt_3_buf[14];\n"
3485 "    char     current_salt[2];\n"
3486 "    long int current_saltbits;\n"
3487 "    int      direction;\n"
3488 "    int      initialized;\n"
3489 "};\n"
3490 msgstr ""
3491
3492 #. type: Plain text
3493 #: build/C/man3/encrypt.3:113
3494 msgid "Before calling B<setkey_r>()  set I<data-E<gt>initialized> to zero."
3495 msgstr ""
3496
3497 #. type: Plain text
3498 #: build/C/man3/encrypt.3:115
3499 msgid "These functions do not return any value."
3500 msgstr ""
3501
3502 #. type: Plain text
3503 #: build/C/man3/encrypt.3:120
3504 msgid ""
3505 "Set I<errno> to zero before calling the above functions.  On success, it is "
3506 "unchanged."
3507 msgstr ""
3508
3509 #. type: Plain text
3510 #: build/C/man3/encrypt.3:124
3511 msgid ""
3512 "The function is not provided.  (For example because of former USA export "
3513 "restrictions.)"
3514 msgstr ""
3515
3516 #. type: Plain text
3517 #: build/C/man3/encrypt.3:131
3518 msgid "The B<encrypt>()  and B<setkey>()  functions are not thread-safe."
3519 msgstr ""
3520
3521 #. type: Plain text
3522 #: build/C/man3/encrypt.3:137
3523 msgid "The B<encrypt_r>()  and B<setkey_r>()  functions are thread-safe."
3524 msgstr ""
3525
3526 #. type: Plain text
3527 #: build/C/man3/encrypt.3:148
3528 msgid ""
3529 "The functions B<encrypt>()  and B<setkey>()  conform to SVr4, SUSv2, and "
3530 "POSIX.1-2001.  The functions B<encrypt_r>()  and B<setkey_r>()  are GNU "
3531 "extensions."
3532 msgstr ""
3533
3534 #. type: Plain text
3535 #: build/C/man3/encrypt.3:150
3536 msgid "In glibc 2.2, these functions use the DES algorithm."
3537 msgstr ""
3538
3539 #. type: Plain text
3540 #: build/C/man3/encrypt.3:157
3541 msgid ""
3542 "You need to link with libcrypt to compile this example with glibc.  To do "
3543 "useful work, the I<key[]> and I<txt[]> arrays must be filled with a useful "
3544 "bit pattern."
3545 msgstr ""
3546
3547 #. type: Plain text
3548 #: build/C/man3/encrypt.3:162
3549 #, no-wrap
3550 msgid ""
3551 "#define _XOPEN_SOURCE\n"
3552 "#include E<lt>unistd.hE<gt>\n"
3553 "#include E<lt>stdlib.hE<gt>\n"
3554 msgstr ""
3555
3556 #. type: Plain text
3557 #: build/C/man3/encrypt.3:168
3558 #, no-wrap
3559 msgid ""
3560 "int\n"
3561 "main(void)\n"
3562 "{\n"
3563 "    char key[64];      /* bit pattern for key */\n"
3564 "    char txt[64];      /* bit pattern for messages */\n"
3565 msgstr ""
3566
3567 #. type: Plain text
3568 #: build/C/man3/encrypt.3:173
3569 #, no-wrap
3570 msgid ""
3571 "    setkey(key);\n"
3572 "    encrypt(txt, 0);   /* encode */\n"
3573 "    encrypt(txt, 1);   /* decode */\n"
3574 "}\n"
3575 msgstr ""
3576
3577 #.  .BR fcrypt (3)
3578 #. type: Plain text
3579 #: build/C/man3/encrypt.3:179
3580 msgid "B<cbc_crypt>(3), B<crypt>(3), B<ecb_crypt>(3),"
3581 msgstr ""
3582
3583 #. type: TH
3584 #: build/C/man7/environ.7:34
3585 #, no-wrap
3586 msgid "ENVIRON"
3587 msgstr ""
3588
3589 #. type: Plain text
3590 #: build/C/man7/environ.7:37
3591 msgid "environ - user environment"
3592 msgstr ""
3593
3594 #. type: Plain text
3595 #: build/C/man7/environ.7:40
3596 #, no-wrap
3597 msgid "B<extern char **>I<environ>B<;>\n"
3598 msgstr ""
3599
3600 #. type: Plain text
3601 #: build/C/man7/environ.7:56
3602 msgid ""
3603 "The variable I<environ> points to an array of pointers to strings called the "
3604 "\"environment\".  The last pointer in this array has the value NULL.  (This "
3605 "variable must be declared in the user program, but is declared in the header "
3606 "file I<E<lt>unistd.hE<gt>> if the B<_GNU_SOURCE> feature test macro is "
3607 "defined.)  This array of strings is made available to the process by the "
3608 "B<exec>(3)  call that started the process."
3609 msgstr ""
3610
3611 #. type: Plain text
3612 #: build/C/man7/environ.7:61
3613 msgid ""
3614 "By convention the strings in I<environ> have the form "
3615 "\"I<name>B<=>I<value>\".  Common examples are:"
3616 msgstr ""
3617
3618 #. type: TP
3619 #: build/C/man7/environ.7:61
3620 #, no-wrap
3621 msgid "B<USER>"
3622 msgstr ""
3623
3624 #. type: Plain text
3625 #: build/C/man7/environ.7:64
3626 msgid "The name of the logged-in user (used by some BSD-derived programs)."
3627 msgstr ""
3628
3629 #. type: TP
3630 #: build/C/man7/environ.7:64
3631 #, no-wrap
3632 msgid "B<LOGNAME>"
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man7/environ.7:67
3637 msgid "The name of the logged-in user (used by some System-V derived programs)."
3638 msgstr ""
3639
3640 #. type: TP
3641 #: build/C/man7/environ.7:67
3642 #, no-wrap
3643 msgid "B<HOME>"
3644 msgstr ""
3645
3646 #. type: Plain text
3647 #: build/C/man7/environ.7:73
3648 msgid ""
3649 "A user's login directory, set by B<login>(1)  from the password file "
3650 "B<passwd>(5)."
3651 msgstr ""
3652
3653 #. type: TP
3654 #: build/C/man7/environ.7:73
3655 #, no-wrap
3656 msgid "B<LANG>"
3657 msgstr ""
3658
3659 #. type: Plain text
3660 #: build/C/man7/environ.7:91
3661 msgid ""
3662 "The name of a locale to use for locale categories when not overridden by "
3663 "B<LC_ALL> or more specific environment variables such as B<LC_COLLATE>, "
3664 "B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, and B<LC_TIME> "
3665 "(see B<locale>(7)  for further details of the B<LC_*> environment "
3666 "variables)."
3667 msgstr ""
3668
3669 #. type: TP
3670 #: build/C/man7/environ.7:91
3671 #, no-wrap
3672 msgid "B<PATH>"
3673 msgstr ""
3674
3675 #. type: Plain text
3676 #: build/C/man7/environ.7:106
3677 msgid ""
3678 "The sequence of directory prefixes that B<sh>(1)  and many other programs "
3679 "apply in searching for a file known by an incomplete pathname.  The prefixes "
3680 "are separated by \\(aqB<:>\\(aq.  (Similarly one has B<CDPATH> used by some "
3681 "shells to find the target of a change directory command, B<MANPATH> used by "
3682 "B<man>(1)  to find manual pages, and so on)"
3683 msgstr ""
3684
3685 #. type: TP
3686 #: build/C/man7/environ.7:106
3687 #, no-wrap
3688 msgid "B<PWD>"
3689 msgstr ""
3690
3691 #. type: Plain text
3692 #: build/C/man7/environ.7:110
3693 msgid "The current working directory.  Set by some shells."
3694 msgstr ""
3695
3696 #. type: TP
3697 #: build/C/man7/environ.7:110
3698 #, no-wrap
3699 msgid "B<SHELL>"
3700 msgstr ""
3701
3702 #. type: Plain text
3703 #: build/C/man7/environ.7:113
3704 msgid "The pathname of the user's login shell."
3705 msgstr ""
3706
3707 #. type: TP
3708 #: build/C/man7/environ.7:113
3709 #, no-wrap
3710 msgid "B<TERM>"
3711 msgstr ""
3712
3713 #. type: Plain text
3714 #: build/C/man7/environ.7:116
3715 msgid "The terminal type for which output is to be prepared."
3716 msgstr ""
3717
3718 #. type: TP
3719 #: build/C/man7/environ.7:116
3720 #, no-wrap
3721 msgid "B<PAGER>"
3722 msgstr ""
3723
3724 #. type: Plain text
3725 #: build/C/man7/environ.7:119
3726 msgid "The user's preferred utility to display text files."
3727 msgstr ""
3728
3729 #. type: TP
3730 #: build/C/man7/environ.7:119
3731 #, no-wrap
3732 msgid "B<EDITOR>/B<VISUAL>"
3733 msgstr ""
3734
3735 #.  .TP
3736 #.  .B BROWSER
3737 #.  The user's preferred utility to browse URLs. Sequence of colon-separated
3738 #.  browser commands. See http://www.catb.org/~esr/BROWSER/ .
3739 #. type: Plain text
3740 #: build/C/man7/environ.7:126
3741 msgid "The user's preferred utility to edit text files."
3742 msgstr ""
3743
3744 #. type: Plain text
3745 #: build/C/man7/environ.7:144
3746 msgid ""
3747 "Further names may be placed in the environment by the I<export> command and "
3748 "\"name=value\" in B<sh>(1), or by the I<setenv> command if you use "
3749 "B<csh>(1).  Arguments may also be placed in the environment at the point of "
3750 "an B<exec>(3).  A C program can manipulate its environment using the "
3751 "functions B<getenv>(3), B<putenv>(3), B<setenv>(3), and B<unsetenv>(3)."
3752 msgstr ""
3753
3754 #. type: Plain text
3755 #: build/C/man7/environ.7:148
3756 msgid ""
3757 "Note that the behavior of many programs and library routines is influenced "
3758 "by the presence or value of certain environment variables.  A random "
3759 "collection:"
3760 msgstr ""
3761
3762 #. type: Plain text
3763 #: build/C/man7/environ.7:157
3764 msgid ""
3765 "The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, "
3766 "B<LC_MESSAGES>, and so on influence locale handling; see B<catopen>(3), "
3767 "B<gettext>(3), and B<locale>(7)."
3768 msgstr ""
3769
3770 #. type: Plain text
3771 #: build/C/man7/environ.7:164
3772 msgid ""
3773 "B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3)  and "
3774 "other routines, and the temporary directory used by B<sort>(1)  and other "
3775 "programs."
3776 msgstr ""
3777
3778 #. type: Plain text
3779 #: build/C/man7/environ.7:168
3780 msgid ""
3781 "B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the "
3782 "behavior of the dynamic loader/linker."
3783 msgstr ""
3784
3785 #. type: Plain text
3786 #: build/C/man7/environ.7:172
3787 msgid ""
3788 "B<POSIXLY_CORRECT> makes certain programs and library routines follow the "
3789 "prescriptions of POSIX."
3790 msgstr ""
3791
3792 #. type: Plain text
3793 #: build/C/man7/environ.7:178
3794 msgid "The behavior of B<malloc>(3)  is influenced by B<MALLOC_*> variables."
3795 msgstr ""
3796
3797 #. type: Plain text
3798 #: build/C/man7/environ.7:184
3799 msgid ""
3800 "The variable B<HOSTALIASES> gives the name of a file containing aliases to "
3801 "be used with B<gethostbyname>(3)."
3802 msgstr ""
3803
3804 #. type: Plain text
3805 #: build/C/man7/environ.7:195
3806 msgid ""
3807 "B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3)  and "
3808 "through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), "
3809 "B<strftime>(3).  See also B<tzselect>(8)."
3810 msgstr ""
3811
3812 #. type: Plain text
3813 #: build/C/man7/environ.7:199
3814 msgid ""
3815 "B<TERMCAP> gives information on how to address a given terminal (or gives "
3816 "the name of a file containing such information)."
3817 msgstr ""
3818
3819 #. type: Plain text
3820 #: build/C/man7/environ.7:202
3821 msgid ""
3822 "B<COLUMNS> and B<LINES> tell applications about the window size, possibly "
3823 "overriding the actual size."
3824 msgstr ""
3825
3826 #. type: Plain text
3827 #: build/C/man7/environ.7:207
3828 msgid ""
3829 "B<PRINTER> or B<LPDEST> may specify the desired printer to use.  See "
3830 "B<lpr>(1)."
3831 msgstr ""
3832
3833 #. type: Plain text
3834 #: build/C/man7/environ.7:209
3835 msgid "Etc."
3836 msgstr ""
3837
3838 #. type: Plain text
3839 #: build/C/man7/environ.7:214
3840 msgid ""
3841 "Clearly there is a security risk here.  Many a system command has been "
3842 "tricked into mischief by a user who specified unusual values for B<IFS> or "
3843 "B<LD_LIBRARY_PATH>."
3844 msgstr ""
3845
3846 #. type: Plain text
3847 #: build/C/man7/environ.7:247
3848 msgid ""
3849 "There is also the risk of name space pollution.  Programs like I<make> and "
3850 "I<autoconf> allow overriding of default utility names from the environment "
3851 "with similarly named variables in all caps.  Thus one uses B<CC> to select "
3852 "the desired C compiler (and similarly B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, "
3853 "B<LEX>, B<RM>, B<YACC>, etc.).  However, in some traditional uses such an "
3854 "environment variable gives options for the program instead of a pathname.  "
3855 "Thus, one has B<MORE>, B<LESS>, and B<GZIP>.  Such usage is considered "
3856 "mistaken, and to be avoided in new programs.  The authors of I<gzip> should "
3857 "consider renaming their option to B<GZIP_OPT>."
3858 msgstr ""
3859
3860 #. type: Plain text
3861 #: build/C/man7/environ.7:264
3862 msgid ""
3863 "B<env>(1), B<bash>(1), B<csh>(1), B<login>(1), B<printenv>(1), B<sh>(1), "
3864 "B<tcsh>(1), B<execve>(2), B<clearenv>(3), B<exec>(3), B<getenv>(3), "
3865 "B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<locale>(7), B<ld.so>(8)"
3866 msgstr ""
3867
3868 #. type: TH
3869 #: build/C/man3/euidaccess.3:25
3870 #, no-wrap
3871 msgid "EUIDACCESS"
3872 msgstr ""
3873
3874 #. type: TH
3875 #: build/C/man3/euidaccess.3:25
3876 #, no-wrap
3877 msgid "2013-09-25"
3878 msgstr ""
3879
3880 #. type: Plain text
3881 #: build/C/man3/euidaccess.3:28
3882 msgid "euidaccess, eaccess - check effective user's permissions for a file"
3883 msgstr ""
3884
3885 #. type: Plain text
3886 #: build/C/man3/euidaccess.3:32
3887 #, no-wrap
3888 msgid ""
3889 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
3890 "B<#include E<lt>unistd.hE<gt>>\n"
3891 msgstr ""
3892
3893 #. type: Plain text
3894 #: build/C/man3/euidaccess.3:35
3895 #, no-wrap
3896 msgid ""
3897 "B<int euidaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3898 "B<int eaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
3899 msgstr ""
3900
3901 #. type: Plain text
3902 #: build/C/man3/euidaccess.3:47
3903 msgid ""
3904 "Like B<access>(2), B<euidaccess>()  checks permissions and existence of the "
3905 "file identified by its argument I<pathname>.  However, whereas B<access>(2)  "
3906 "performs checks using the real user and group identifiers of the process, "
3907 "B<euidaccess>()  uses the effective identifiers."
3908 msgstr ""
3909
3910 #. type: Plain text
3911 #: build/C/man3/euidaccess.3:53
3912 msgid ""
3913 "I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK>, "
3914 "and B<F_OK>, with the same meanings as for B<access>(2)."
3915 msgstr ""
3916
3917 #. type: Plain text
3918 #: build/C/man3/euidaccess.3:58
3919 msgid ""
3920 "B<eaccess>()  is a synonym for B<euidaccess>(), provided for compatibility "
3921 "with some other systems."
3922 msgstr ""
3923
3924 #. type: Plain text
3925 #: build/C/man3/euidaccess.3:66
3926 msgid ""
3927 "On success (all requested permissions granted), zero is returned.  On error "
3928 "(at least one bit in I<mode> asked for a permission that is denied, or some "
3929 "other error occurred), -1 is returned, and I<errno> is set appropriately."
3930 msgstr ""
3931
3932 #. type: Plain text
3933 #: build/C/man3/euidaccess.3:69
3934 msgid "As for B<access>(2)."
3935 msgstr ""
3936
3937 #. type: Plain text
3938 #: build/C/man3/euidaccess.3:73
3939 msgid "The B<eaccess>()  function was added to glibc in version 2.4."
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man3/euidaccess.3:80
3944 msgid "The B<euidaccess>()  and B<eaccess>()  functions are thread-safe."
3945 msgstr ""
3946
3947 #.  e.g., FreeBSD 6.1.
3948 #. type: Plain text
3949 #: build/C/man3/euidaccess.3:86
3950 msgid ""
3951 "These functions are nonstandard.  Some other systems have an B<eaccess>()  "
3952 "function."
3953 msgstr ""
3954
3955 #. type: Plain text
3956 #: build/C/man3/euidaccess.3:93
3957 msgid ""
3958 "I<Warning>: Using this function to check a process's permissions on a file "
3959 "before performing some operation based on that information leads to race "
3960 "conditions: the file permissions may change between the two steps.  "
3961 "Generally, it is safer just to attempt the desired operation and handle any "
3962 "permission error that occurs."
3963 msgstr ""
3964
3965 #. type: Plain text
3966 #: build/C/man3/euidaccess.3:101
3967 msgid ""
3968 "This function always dereferences symbolic links.  If you need to check the "
3969 "permissions on a symbolic link, use B<faccessat>(2)  with the flags "
3970 "B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW>."
3971 msgstr ""
3972
3973 #. type: Plain text
3974 #: build/C/man3/euidaccess.3:112
3975 msgid ""
3976 "B<access>(2), B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), "
3977 "B<setgid>(2), B<setuid>(2), B<stat>(2), B<credentials>(7), "
3978 "B<path_resolution>(7)"
3979 msgstr ""
3980
3981 #. type: TH
3982 #: build/C/man3/exec.3:41
3983 #, no-wrap
3984 msgid "EXEC"
3985 msgstr ""
3986
3987 #. type: TH
3988 #: build/C/man3/exec.3:41
3989 #, no-wrap
3990 msgid "2010-09-25"
3991 msgstr ""
3992
3993 #. type: Plain text
3994 #: build/C/man3/exec.3:44
3995 msgid "execl, execlp, execle, execv, execvp, execvpe - execute a file"
3996 msgstr ""
3997
3998 #. type: Plain text
3999 #: build/C/man3/exec.3:48
4000 msgid "B<extern char **environ;>"
4001 msgstr ""
4002
4003 #. type: Plain text
4004 #: build/C/man3/exec.3:50
4005 msgid "B<int execl(const char *>I<path>B<, const char *>I<arg>B<, ...);>"
4006 msgstr ""
4007
4008 #. type: Plain text
4009 #: build/C/man3/exec.3:52
4010 msgid "B<int execlp(const char *>I<file>B<, const char *>I<arg>B<, ...);>"
4011 msgstr ""
4012
4013 #. type: Plain text
4014 #: build/C/man3/exec.3:54
4015 msgid "B<int execle(const char *>I<path>B<, const char *>I<arg>B<,>"
4016 msgstr ""
4017
4018 #. type: Plain text
4019 #: build/C/man3/exec.3:56
4020 msgid "B< ..., char * const >I<envp>B<[]);>"
4021 msgstr ""
4022
4023 #. type: Plain text
4024 #: build/C/man3/exec.3:58
4025 msgid "B<int execv(const char *>I<path>B<, char *const >I<argv>B<[]);>"
4026 msgstr ""
4027
4028 #. type: Plain text
4029 #: build/C/man3/exec.3:60
4030 msgid "B<int execvp(const char *>I<file>B<, char *const >I<argv>B<[]);>"
4031 msgstr ""
4032
4033 #. type: Plain text
4034 #: build/C/man3/exec.3:62
4035 msgid "B<int execvpe(const char *>I<file>B<, char *const >I<argv>B<[],>"
4036 msgstr ""
4037
4038 #. type: Plain text
4039 #: build/C/man3/exec.3:64 build/C/man2/execve.2:46
4040 msgid "B< char *const >I<envp>B<[]);>"
4041 msgstr ""
4042
4043 #. type: Plain text
4044 #: build/C/man3/exec.3:72
4045 msgid "B<execvpe>(): _GNU_SOURCE"
4046 msgstr ""
4047
4048 #. type: Plain text
4049 #: build/C/man3/exec.3:82
4050 msgid ""
4051 "The B<exec>()  family of functions replaces the current process image with a "
4052 "new process image.  The functions described in this manual page are "
4053 "front-ends for B<execve>(2).  (See the manual page for B<execve>(2)  for "
4054 "further details about the replacement of the current process image.)"
4055 msgstr ""
4056
4057 #. type: Plain text
4058 #: build/C/man3/exec.3:85
4059 msgid ""
4060 "The initial argument for these functions is the name of a file that is to be "
4061 "executed."
4062 msgstr ""
4063
4064 #. type: Plain text
4065 #: build/C/man3/exec.3:107
4066 msgid ""
4067 "The I<const char\\ *arg> and subsequent ellipses in the B<execl>(), "
4068 "B<execlp>(), and B<execle>()  functions can be thought of as I<arg0>, "
4069 "I<arg1>, \\&..., I<argn>.  Together they describe a list of one or more "
4070 "pointers to null-terminated strings that represent the argument list "
4071 "available to the executed program.  The first argument, by convention, "
4072 "should point to the filename associated with the file being executed.  The "
4073 "list of arguments I<must> be terminated by a null pointer, and, since these "
4074 "are variadic functions, this pointer must be cast I<(char\\ *) NULL>."
4075 msgstr ""
4076
4077 #. type: Plain text
4078 #: build/C/man3/exec.3:120
4079 msgid ""
4080 "The B<execv>(), B<execvp>(), and B<execvpe>()  functions provide an array of "
4081 "pointers to null-terminated strings that represent the argument list "
4082 "available to the new program.  The first argument, by convention, should "
4083 "point to the filename associated with the file being executed.  The array of "
4084 "pointers I<must> be terminated by a null pointer."
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man3/exec.3:137
4089 msgid ""
4090 "The B<execle>()  and B<execvpe>()  functions allow the caller to specify the "
4091 "environment of the executed program via the argument I<envp>.  The I<envp> "
4092 "argument is an array of pointers to null-terminated strings and I<must> be "
4093 "terminated by a null pointer.  The other functions take the environment for "
4094 "the new process image from the external variable I<environ> in the calling "
4095 "process."
4096 msgstr ""
4097
4098 #. type: SS
4099 #: build/C/man3/exec.3:137
4100 #, no-wrap
4101 msgid "Special semantics for execlp() and execvp()"
4102 msgstr ""
4103
4104 #. type: Plain text
4105 #: build/C/man3/exec.3:157
4106 msgid ""
4107 "The B<execlp>(), B<execvp>(), and B<execvpe>()  functions duplicate the "
4108 "actions of the shell in searching for an executable file if the specified "
4109 "filename does not contain a slash (/) character.  The file is sought in the "
4110 "colon-separated list of directory pathnames specified in the B<PATH> "
4111 "environment variable.  If this variable isn't defined, the path list "
4112 "defaults to the current directory followed by the list of directories "
4113 "returned by I<confstr(_CS_PATH)>.  (This B<confstr>(3)  call typically "
4114 "returns the value \"/bin:/usr/bin\".)"
4115 msgstr ""
4116
4117 #. type: Plain text
4118 #: build/C/man3/exec.3:161
4119 msgid ""
4120 "If the specified filename includes a slash character, then B<PATH> is "
4121 "ignored, and the file at the specified pathname is executed."
4122 msgstr ""
4123
4124 #. type: Plain text
4125 #: build/C/man3/exec.3:163
4126 msgid "In addition, certain errors are treated specially."
4127 msgstr ""
4128
4129 #. type: Plain text
4130 #: build/C/man3/exec.3:174
4131 msgid ""
4132 "If permission is denied for a file (the attempted B<execve>(2)  failed with "
4133 "the error B<EACCES>), these functions will continue searching the rest of "
4134 "the search path.  If no other file is found, however, they will return with "
4135 "I<errno> set to B<EACCES>."
4136 msgstr ""
4137
4138 #. type: Plain text
4139 #: build/C/man3/exec.3:183
4140 msgid ""
4141 "If the header of a file isn't recognized (the attempted B<execve>(2)  failed "
4142 "with the error B<ENOEXEC>), these functions will execute the shell "
4143 "(I</bin/sh>)  with the path of the file as its first argument.  (If this "
4144 "attempt fails, no further searching is done.)"
4145 msgstr ""
4146
4147 #. type: Plain text
4148 #: build/C/man3/exec.3:190
4149 msgid ""
4150 "The B<exec>()  functions return only if an error has occurred.  The return "
4151 "value is -1, and I<errno> is set to indicate the error."
4152 msgstr ""
4153
4154 #. type: Plain text
4155 #: build/C/man3/exec.3:195
4156 msgid ""
4157 "All of these functions may fail and set I<errno> for any of the errors "
4158 "specified for B<execve>(2)."
4159 msgstr ""
4160
4161 #. type: Plain text
4162 #: build/C/man3/exec.3:199
4163 msgid "The B<execvpe>()  function first appeared in glibc 2.11."
4164 msgstr ""
4165
4166 #. type: Plain text
4167 #: build/C/man3/exec.3:201
4168 msgid "POSIX.1-2001, POSIX.1-2008."
4169 msgstr ""
4170
4171 #. type: Plain text
4172 #: build/C/man3/exec.3:205
4173 msgid "The B<execvpe>()  function is a GNU extension."
4174 msgstr ""
4175
4176 #. type: Plain text
4177 #: build/C/man3/exec.3:215
4178 msgid ""
4179 "On some other systems, the default path (used when the environment does not "
4180 "contain the variable B<PATH>) has the current working directory listed after "
4181 "I</bin> and I</usr/bin>, as an anti-Trojan-horse measure.  Linux uses here "
4182 "the traditional \"current directory first\" default path."
4183 msgstr ""
4184
4185 #. type: Plain text
4186 #: build/C/man3/exec.3:229
4187 msgid ""
4188 "The behavior of B<execlp>()  and B<execvp>()  when errors occur while "
4189 "attempting to execute the file is historic practice, but has not "
4190 "traditionally been documented and is not specified by the POSIX standard.  "
4191 "BSD (and possibly other systems) do an automatic sleep and retry if "
4192 "B<ETXTBSY> is encountered.  Linux treats it as a hard error and returns "
4193 "immediately."
4194 msgstr ""
4195
4196 #. type: Plain text
4197 #: build/C/man3/exec.3:241
4198 msgid ""
4199 "Traditionally, the functions B<execlp>()  and B<execvp>()  ignored all "
4200 "errors except for the ones described above and B<ENOMEM> and B<E2BIG>, upon "
4201 "which they returned.  They now return if any error other than the ones "
4202 "described above occurs."
4203 msgstr ""
4204
4205 #. type: Plain text
4206 #: build/C/man3/exec.3:248
4207 msgid ""
4208 "B<sh>(1), B<execve>(2), B<fork>(2), B<ptrace>(2), B<fexecve>(3), "
4209 "B<environ>(7)"
4210 msgstr ""
4211
4212 #. type: TH
4213 #: build/C/man2/execve.2:37
4214 #, no-wrap
4215 msgid "EXECVE"
4216 msgstr ""
4217
4218 #. type: TH
4219 #: build/C/man2/execve.2:37
4220 #, no-wrap
4221 msgid "2014-10-02"
4222 msgstr ""
4223
4224 #. type: Plain text
4225 #: build/C/man2/execve.2:40
4226 msgid "execve - execute program"
4227 msgstr ""
4228
4229 #. type: Plain text
4230 #: build/C/man2/execve.2:44
4231 msgid "B<int execve(const char *>I<filename>B<, char *const >I<argv>B<[], >"
4232 msgstr ""
4233
4234 #. type: Plain text
4235 #: build/C/man2/execve.2:51
4236 msgid ""
4237 "B<execve>()  executes the program pointed to by I<filename>.  I<filename> "
4238 "must be either a binary executable, or a script starting with a line of the "
4239 "form:"
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man2/execve.2:55 build/C/man2/execve.2:265
4244 #, no-wrap
4245 msgid "B<#!> I<interpreter >[optional-arg]\n"
4246 msgstr ""
4247
4248 #. type: Plain text
4249 #: build/C/man2/execve.2:59
4250 msgid "For details of the latter case, see \"Interpreter scripts\" below."
4251 msgstr ""
4252
4253 #. type: Plain text
4254 #: build/C/man2/execve.2:68
4255 msgid ""
4256 "I<argv> is an array of argument strings passed to the new program.  By "
4257 "convention, the first of these strings should contain the filename "
4258 "associated with the file being executed.  I<envp> is an array of strings, "
4259 "conventionally of the form B<key=value>, which are passed as environment to "
4260 "the new program.  Both I<argv> and I<envp> must be terminated by a null "
4261 "pointer.  The argument vector and environment can be accessed by the called "
4262 "program's main function, when it is defined as:"
4263 msgstr ""
4264
4265 #. type: Plain text
4266 #: build/C/man2/execve.2:72
4267 #, no-wrap
4268 msgid "int main(int argc, char *argv[], char *envp[])\n"
4269 msgstr ""
4270
4271 #. type: Plain text
4272 #: build/C/man2/execve.2:79
4273 msgid ""
4274 "B<execve>()  does not return on success, and the text, data, bss, and stack "
4275 "of the calling process are overwritten by that of the program loaded."
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man2/execve.2:83
4280 msgid ""
4281 "If the current program is being ptraced, a B<SIGTRAP> is sent to it after a "
4282 "successful B<execve>()."
4283 msgstr ""
4284
4285 #. type: Plain text
4286 #: build/C/man2/execve.2:98
4287 msgid ""
4288 "If the set-user-ID bit is set on the program file pointed to by I<filename>, "
4289 "and the underlying filesystem is not mounted I<nosuid> (the B<MS_NOSUID> "
4290 "flag for B<mount>(2)), and the calling process is not being ptraced, then "
4291 "the effective user ID of the calling process is changed to that of the owner "
4292 "of the program file.  Similarly, when the set-group-ID bit of the program "
4293 "file is set the effective group ID of the calling process is set to the "
4294 "group of the program file."
4295 msgstr ""
4296
4297 #. type: Plain text
4298 #: build/C/man2/execve.2:103
4299 msgid ""
4300 "The effective user ID of the process is copied to the saved set-user-ID; "
4301 "similarly, the effective group ID is copied to the saved set-group-ID.  This "
4302 "copying takes place after any effective ID changes that occur because of the "
4303 "set-user-ID and set-group-ID permission bits."
4304 msgstr ""
4305
4306 #. type: Plain text
4307 #: build/C/man2/execve.2:111
4308 msgid ""
4309 "If the executable is an a.out dynamically linked binary executable "
4310 "containing shared-library stubs, the Linux dynamic linker B<ld.so>(8)  is "
4311 "called at the start of execution to bring needed shared libraries into "
4312 "memory and link the executable with them."
4313 msgstr ""
4314
4315 #. type: Plain text
4316 #: build/C/man2/execve.2:118
4317 msgid ""
4318 "If the executable is a dynamically linked ELF executable, the interpreter "
4319 "named in the PT_INTERP segment is used to load the needed shared libraries.  "
4320 "This interpreter is typically I</lib/ld-linux.so.2> for binaries linked with "
4321 "glibc."
4322 msgstr ""
4323
4324 #. type: Plain text
4325 #: build/C/man2/execve.2:122
4326 msgid ""
4327 "All process attributes are preserved during an B<execve>(), except the "
4328 "following:"
4329 msgstr ""
4330
4331 #. type: Plain text
4332 #: build/C/man2/execve.2:126
4333 msgid ""
4334 "The dispositions of any signals that are being caught are reset to the "
4335 "default (B<signal>(7))."
4336 msgstr ""
4337
4338 #. type: Plain text
4339 #: build/C/man2/execve.2:129
4340 msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
4341 msgstr ""
4342
4343 #. type: Plain text
4344 #: build/C/man2/execve.2:132
4345 msgid "Memory mappings are not preserved (B<mmap>(2))."
4346 msgstr ""
4347
4348 #. type: Plain text
4349 #: build/C/man2/execve.2:135
4350 msgid "Attached System\\ V shared memory segments are detached (B<shmat>(2))."
4351 msgstr ""
4352
4353 #. type: Plain text
4354 #: build/C/man2/execve.2:138
4355 msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
4356 msgstr ""
4357
4358 #. type: Plain text
4359 #: build/C/man2/execve.2:141
4360 msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
4361 msgstr ""
4362
4363 #. type: Plain text
4364 #: build/C/man2/execve.2:144
4365 msgid "Any open POSIX named semaphores are closed (B<sem_overview>(7))."
4366 msgstr ""
4367
4368 #. type: Plain text
4369 #: build/C/man2/execve.2:147
4370 msgid "POSIX timers are not preserved (B<timer_create>(2))."
4371 msgstr ""
4372
4373 #. type: Plain text
4374 #: build/C/man2/execve.2:150
4375 msgid "Any open directory streams are closed (B<opendir>(3))."
4376 msgstr ""
4377
4378 #. type: Plain text
4379 #: build/C/man2/execve.2:154
4380 msgid "Memory locks are not preserved (B<mlock>(2), B<mlockall>(2))."
4381 msgstr ""
4382
4383 #. type: Plain text
4384 #: build/C/man2/execve.2:158
4385 msgid "Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3))."
4386 msgstr ""
4387
4388 #. type: Plain text
4389 #: build/C/man2/execve.2:161
4390 msgid "The floating-point environment is reset to the default (see B<fenv>(3))."
4391 msgstr ""
4392
4393 #. type: Plain text
4394 #: build/C/man2/execve.2:167
4395 msgid ""
4396 "The process attributes in the preceding list are all specified in "
4397 "POSIX.1-2001.  The following Linux-specific process attributes are also not "
4398 "preserved during an B<execve>():"
4399 msgstr ""
4400
4401 #. type: Plain text
4402 #: build/C/man2/execve.2:174
4403 msgid ""
4404 "The B<prctl>(2)  B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or "
4405 "set-group ID program is being executed, in which case it is cleared."
4406 msgstr ""
4407
4408 #. type: Plain text
4409 #: build/C/man2/execve.2:179
4410 msgid "The B<prctl>(2)  B<PR_SET_KEEPCAPS> flag is cleared."
4411 msgstr ""
4412
4413 #. type: Plain text
4414 #: build/C/man2/execve.2:186
4415 msgid ""
4416 "(Since Linux 2.4.36 / 2.6.23)  If a set-user-ID or set-group-ID program is "
4417 "being executed, then the parent death signal set by B<prctl>(2)  "
4418 "B<PR_SET_PDEATHSIG> flag is cleared."
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man2/execve.2:193
4423 msgid ""
4424 "The process name, as set by B<prctl>(2)  B<PR_SET_NAME> (and displayed by "
4425 "I<ps\\ -o comm>), is reset to the name of the new executable file."
4426 msgstr ""
4427
4428 #. type: Plain text
4429 #: build/C/man2/execve.2:200
4430 msgid ""
4431 "The B<SECBIT_KEEP_CAPS> I<securebits> flag is cleared.  See "
4432 "B<capabilities>(7)."
4433 msgstr ""
4434
4435 #. type: Plain text
4436 #: build/C/man2/execve.2:205
4437 msgid "The termination signal is reset to B<SIGCHLD> (see B<clone>(2))."
4438 msgstr ""
4439
4440 #. type: Plain text
4441 #: build/C/man2/execve.2:207 build/C/man2/fork.2:138
4442 msgid "Note the following further points:"
4443 msgstr ""
4444
4445 #. type: Plain text
4446 #: build/C/man2/execve.2:211
4447 msgid ""
4448 "All threads other than the calling thread are destroyed during an "
4449 "B<execve>().  Mutexes, condition variables, and other pthreads objects are "
4450 "not preserved."
4451 msgstr ""
4452
4453 #. type: Plain text
4454 #: build/C/man2/execve.2:214
4455 msgid ""
4456 "The equivalent of I<setlocale(LC_ALL, \"C\")> is executed at program "
4457 "start-up."
4458 msgstr ""
4459
4460 #. type: Plain text
4461 #: build/C/man2/execve.2:222
4462 msgid ""
4463 "POSIX.1-2001 specifies that the dispositions of any signals that are ignored "
4464 "or set to the default are left unchanged.  POSIX.1-2001 specifies one "
4465 "exception: if B<SIGCHLD> is being ignored, then an implementation may leave "
4466 "the disposition unchanged or reset it to the default; Linux does the former."
4467 msgstr ""
4468
4469 #. type: Plain text
4470 #: build/C/man2/execve.2:226
4471 msgid ""
4472 "Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), "
4473 "B<aio_write>(3))."
4474 msgstr ""
4475
4476 #. type: Plain text
4477 #: build/C/man2/execve.2:231
4478 msgid "For the handling of capabilities during B<execve>(), see B<capabilities>(7)."
4479 msgstr ""
4480
4481 #.  On Linux it appears that these file descriptors are
4482 #.  always open after an execve(), and it looks like
4483 #.  Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
4484 #. type: Plain text
4485 #: build/C/man2/execve.2:258
4486 msgid ""
4487 "By default, file descriptors remain open across an B<execve>().  File "
4488 "descriptors that are marked close-on-exec are closed; see the description of "
4489 "B<FD_CLOEXEC> in B<fcntl>(2).  (If a file descriptor is closed, this will "
4490 "cause the release of all record locks obtained on the underlying file by "
4491 "this process.  See B<fcntl>(2)  for details.)  POSIX.1-2001 says that if "
4492 "file descriptors 0, 1, and 2 would otherwise be closed after a successful "
4493 "B<execve>(), and the process would gain privilege because the set-user_ID or "
4494 "set-group_ID permission bit was set on the executed file, then the system "
4495 "may open an unspecified file for each of these file descriptors.  As a "
4496 "general principle, no portable program, whether privileged or not, can "
4497 "assume that these three file descriptors will remain closed across an "
4498 "B<execve>()."
4499 msgstr ""
4500
4501 #. type: SS
4502 #: build/C/man2/execve.2:258 build/C/man2/execve.2:528
4503 #, no-wrap
4504 msgid "Interpreter scripts"
4505 msgstr ""
4506
4507 #. type: Plain text
4508 #: build/C/man2/execve.2:261
4509 msgid ""
4510 "An interpreter script is a text file that has execute permission enabled and "
4511 "whose first line is of the form:"
4512 msgstr ""
4513
4514 #. type: Plain text
4515 #: build/C/man2/execve.2:279
4516 msgid ""
4517 "The I<interpreter> must be a valid pathname for an executable which is not "
4518 "itself a script.  If the I<filename> argument of B<execve>()  specifies an "
4519 "interpreter script, then I<interpreter> will be invoked with the following "
4520 "arguments:"
4521 msgstr ""
4522
4523 #. type: Plain text
4524 #: build/C/man2/execve.2:283
4525 #, no-wrap
4526 msgid "I<interpreter> [optional-arg] I<filename> arg...\n"
4527 msgstr ""
4528
4529 #. type: Plain text
4530 #: build/C/man2/execve.2:294
4531 msgid ""
4532 "where I<arg...> is the series of words pointed to by the I<argv> argument of "
4533 "B<execve>(), starting at I<argv>[1]."
4534 msgstr ""
4535
4536 #. type: Plain text
4537 #: build/C/man2/execve.2:299
4538 msgid ""
4539 "For portable use, I<optional-arg> should either be absent, or be specified "
4540 "as a single word (i.e., it should not contain white space); see NOTES below."
4541 msgstr ""
4542
4543 #. type: SS
4544 #: build/C/man2/execve.2:299
4545 #, no-wrap
4546 msgid "Limits on size of arguments and environment"
4547 msgstr ""
4548
4549 #. type: Plain text
4550 #: build/C/man2/execve.2:312
4551 msgid ""
4552 "Most UNIX implementations impose some limit on the total size of the "
4553 "command-line argument (I<argv>)  and environment (I<envp>)  strings that may "
4554 "be passed to a new program.  POSIX.1 allows an implementation to advertise "
4555 "this limit using the B<ARG_MAX> constant (either defined in "
4556 "I<E<lt>limits.hE<gt>> or available at run time using the call "
4557 "I<sysconf(_SC_ARG_MAX)>)."
4558 msgstr ""
4559
4560 #. type: Plain text
4561 #: build/C/man2/execve.2:319
4562 msgid ""
4563 "On Linux prior to kernel 2.6.23, the memory used to store the environment "
4564 "and argument strings was limited to 32 pages (defined by the kernel constant "
4565 "B<MAX_ARG_PAGES>).  On architectures with a 4-kB page size, this yields a "
4566 "maximum size of 128 kB."
4567 msgstr ""
4568
4569 #.  For some background on the changes to ARG_MAX in kernels 2.6.23 and
4570 #.  2.6.25, see:
4571 #.      http://sourceware.org/bugzilla/show_bug.cgi?id=5786
4572 #.      http://bugzilla.kernel.org/show_bug.cgi?id=10095
4573 #.      http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101,
4574 #.      checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.
4575 #.  Ollie: That doesn't include the lists of pointers, though,
4576 #.  so the actual usage is a bit higher (1 pointer per argument).
4577 #. type: Plain text
4578 #: build/C/man2/execve.2:355
4579 msgid ""
4580 "On kernel 2.6.23 and later, most architectures support a size limit derived "
4581 "from the soft B<RLIMIT_STACK> resource limit (see B<getrlimit>(2))  that is "
4582 "in force at the time of the B<execve>()  call.  (Architectures with no "
4583 "memory management unit are excepted: they maintain the limit that was in "
4584 "effect before kernel 2.6.23.)  This change allows programs to have a much "
4585 "larger argument and/or environment list.  For these architectures, the total "
4586 "size is limited to 1/4 of the allowed stack size.  (Imposing the 1/4-limit "
4587 "ensures that the new program always has some stack space.)  Since Linux "
4588 "2.6.25, the kernel places a floor of 32 pages on this size limit, so that, "
4589 "even when B<RLIMIT_STACK> is set very low, applications are guaranteed to "
4590 "have at least as much argument and environment space as was provided by "
4591 "Linux 2.6.23 and earlier.  (This guarantee was not provided in Linux 2.6.23 "
4592 "and 2.6.24.)  Additionally, the limit per string is 32 pages (the kernel "
4593 "constant B<MAX_ARG_STRLEN>), and the maximum number of strings is "
4594 "0x7FFFFFFF."
4595 msgstr ""
4596
4597 #. type: Plain text
4598 #: build/C/man2/execve.2:361
4599 msgid ""
4600 "On success, B<execve>()  does not return, on error -1 is returned, and "
4601 "I<errno> is set appropriately."
4602 msgstr ""
4603
4604 #. type: TP
4605 #: build/C/man2/execve.2:362
4606 #, no-wrap
4607 msgid "B<E2BIG>"
4608 msgstr ""
4609
4610 #. type: Plain text
4611 #: build/C/man2/execve.2:369
4612 msgid ""
4613 "The total number of bytes in the environment (I<envp>)  and argument list "
4614 "(I<argv>)  is too large."
4615 msgstr ""
4616
4617 #. type: Plain text
4618 #: build/C/man2/execve.2:376
4619 msgid ""
4620 "Search permission is denied on a component of the path prefix of I<filename> "
4621 "or the name of a script interpreter.  (See also B<path_resolution>(7).)"
4622 msgstr ""
4623
4624 #. type: Plain text
4625 #: build/C/man2/execve.2:379
4626 msgid "The file or a script interpreter is not a regular file."
4627 msgstr ""
4628
4629 #. type: Plain text
4630 #: build/C/man2/execve.2:382
4631 msgid "Execute permission is denied for the file or a script or ELF interpreter."
4632 msgstr ""
4633
4634 #. type: Plain text
4635 #: build/C/man2/execve.2:386
4636 msgid "The filesystem is mounted I<noexec>."
4637 msgstr ""
4638
4639 #. type: TP
4640 #: build/C/man2/execve.2:386
4641 #, no-wrap
4642 msgid "B<EAGAIN> (since Linux 3.1)"
4643 msgstr ""
4644
4645 #.  commit 72fa59970f8698023045ab0713d66f3f4f96945c
4646 #. type: Plain text
4647 #: build/C/man2/execve.2:396
4648 msgid ""
4649 "Having changed its real UID using one of the B<set*uid>()  calls, the caller "
4650 "was\\(emand is now still\\(emabove its B<RLIMIT_NPROC> resource limit (see "
4651 "B<setrlimit>(2)).  For a more detailed explanation of this error, see NOTES."
4652 msgstr ""
4653
4654 #. type: Plain text
4655 #: build/C/man2/execve.2:404
4656 msgid ""
4657 "I<filename> or one of the pointers in the vectors I<argv> or I<envp> points "
4658 "outside your accessible address space."
4659 msgstr ""
4660
4661 #. type: Plain text
4662 #: build/C/man2/execve.2:408
4663 msgid ""
4664 "An ELF executable had more than one PT_INTERP segment (i.e., tried to name "
4665 "more than one interpreter)."
4666 msgstr ""
4667
4668 #. type: TP
4669 #: build/C/man2/execve.2:411 build/C/man2/truncate.2:149
4670 #, no-wrap
4671 msgid "B<EISDIR>"
4672 msgstr ""
4673
4674 #. type: Plain text
4675 #: build/C/man2/execve.2:414
4676 msgid "An ELF interpreter was a directory."
4677 msgstr ""
4678
4679 #. type: TP
4680 #: build/C/man2/execve.2:414
4681 #, no-wrap
4682 msgid "B<ELIBBAD>"
4683 msgstr ""
4684
4685 #. type: Plain text
4686 #: build/C/man2/execve.2:417
4687 msgid "An ELF interpreter was not in a recognized format."
4688 msgstr ""
4689
4690 #. type: Plain text
4691 #: build/C/man2/execve.2:422
4692 msgid ""
4693 "Too many symbolic links were encountered in resolving I<filename> or the "
4694 "name of a script or ELF interpreter."
4695 msgstr ""
4696
4697 #. type: Plain text
4698 #: build/C/man2/execve.2:425
4699 msgid "The process has the maximum number of files open."
4700 msgstr ""
4701
4702 #. type: Plain text
4703 #: build/C/man2/execve.2:429
4704 msgid "I<filename> is too long."
4705 msgstr ""
4706
4707 #. type: TP
4708 #: build/C/man2/execve.2:429 build/C/man3/getlogin.3:108 build/C/man2/swapon.2:144 build/C/man2/uselib.2:67
4709 #, no-wrap
4710 msgid "B<ENFILE>"
4711 msgstr ""
4712
4713 #. type: Plain text
4714 #: build/C/man2/execve.2:432 build/C/man2/swapon.2:147 build/C/man2/uselib.2:70
4715 msgid "The system limit on the total number of open files has been reached."
4716 msgstr ""
4717
4718 #. type: Plain text
4719 #: build/C/man2/execve.2:438
4720 msgid ""
4721 "The file I<filename> or a script or ELF interpreter does not exist, or a "
4722 "shared library needed for file or interpreter cannot be found."
4723 msgstr ""
4724
4725 #. type: TP
4726 #: build/C/man2/execve.2:438 build/C/man2/uselib.2:70
4727 #, no-wrap
4728 msgid "B<ENOEXEC>"
4729 msgstr ""
4730
4731 #. type: Plain text
4732 #: build/C/man2/execve.2:443
4733 msgid ""
4734 "An executable is not in a recognized format, is for the wrong architecture, "
4735 "or has some other format error that means it cannot be executed."
4736 msgstr ""
4737
4738 #. type: Plain text
4739 #: build/C/man2/execve.2:451
4740 msgid ""
4741 "A component of the path prefix of I<filename> or a script or ELF interpreter "
4742 "is not a directory."
4743 msgstr ""
4744
4745 #. type: Plain text
4746 #: build/C/man2/execve.2:457
4747 msgid ""
4748 "The filesystem is mounted I<nosuid>, the user is not the superuser, and the "
4749 "file has the set-user-ID or set-group-ID bit set."
4750 msgstr ""
4751
4752 #. type: Plain text
4753 #: build/C/man2/execve.2:461
4754 msgid ""
4755 "The process is being traced, the user is not the superuser and the file has "
4756 "the set-user-ID or set-group-ID bit set."
4757 msgstr ""
4758
4759 #. type: Plain text
4760 #: build/C/man2/execve.2:464
4761 msgid "Executable was open for writing by one or more processes."
4762 msgstr ""
4763
4764 #.  SVr4 documents additional error
4765 #.  conditions EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX does not
4766 #.  document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL,
4767 #.  EISDIR or ELIBBAD error conditions.
4768 #. type: Plain text
4769 #: build/C/man2/execve.2:472
4770 msgid ""
4771 "SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2001 does not document the #! behavior "
4772 "but is otherwise compatible."
4773 msgstr ""
4774
4775 #. type: Plain text
4776 #: build/C/man2/execve.2:475
4777 msgid "Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d."
4778 msgstr ""
4779
4780 #.  e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
4781 #.  HP-UX 11 is like Linux -- mtk, Apr 2007
4782 #.  Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
4783 #.  Bug rejected (because fix would constitute an ABI change).
4784 #. type: Plain text
4785 #: build/C/man2/execve.2:502
4786 msgid ""
4787 "The result of mounting a filesystem I<nosuid> varies across Linux kernel "
4788 "versions: some will refuse execution of set-user-ID and set-group-ID "
4789 "executables when this would give the user powers she did not have already "
4790 "(and return B<EPERM>), some will just ignore the set-user-ID and "
4791 "set-group-ID bits and B<exec>()  successfully.  On Linux, I<argv> and "
4792 "I<envp> can be specified as NULL.  In both cases, this has the same effect "
4793 "as specifying the argument as a pointer to a list containing a single null "
4794 "pointer.  B<Do not take advantage of this misfeature!> It is nonstandard and "
4795 "nonportable: on most other UNIX systems doing this will result in an error "
4796 "(B<EFAULT>)."
4797 msgstr ""
4798
4799 #. type: Plain text
4800 #: build/C/man2/execve.2:513
4801 msgid ""
4802 "POSIX.1-2001 says that values returned by B<sysconf>(3)  should be invariant "
4803 "over the lifetime of a process.  However, since Linux 2.6.23, if the "
4804 "B<RLIMIT_STACK> resource limit changes, then the value reported by "
4805 "B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
4806 "for holding command-line arguments and environment variables has changed."
4807 msgstr ""
4808
4809 #. type: Plain text
4810 #: build/C/man2/execve.2:528
4811 msgid ""
4812 "In most cases where B<execve>()  fails, control returns to the original "
4813 "executable image, and the caller of B<execve>()  can then handle the error.  "
4814 "However, in (rare) cases (typically caused by resource exhaustion), failure "
4815 "may occur past the point of no return: the original executable image has "
4816 "been torn down, but the new image could not be completely built.  In such "
4817 "cases, the kernel kills the process with a B<SIGKILL> signal."
4818 msgstr ""
4819
4820 #. type: Plain text
4821 #: build/C/man2/execve.2:531
4822 msgid ""
4823 "A maximum line length of 127 characters is allowed for the first line in an "
4824 "interpreter scripts."
4825 msgstr ""
4826
4827 #.  e.g., Solaris 8
4828 #.  e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
4829 #. type: Plain text
4830 #: build/C/man2/execve.2:550
4831 msgid ""
4832 "The semantics of the I<optional-arg> argument of an interpreter script vary "
4833 "across implementations.  On Linux, the entire string following the "
4834 "I<interpreter> name is passed as a single argument to the interpreter, and "
4835 "this string can include white space.  However, behavior differs on some "
4836 "other systems.  Some systems use the first white space to terminate "
4837 "I<optional-arg>.  On some systems, an interpreter script can have multiple "
4838 "arguments, and white spaces in I<optional-arg> are used to delimit the "
4839 "arguments."
4840 msgstr ""
4841
4842 #
4843 #.  .SH BUGS
4844 #.  Some Linux versions have failed to check permissions on ELF
4845 #.  interpreters.  This is a security hole, because it allows users to
4846 #.  open any file, such as a rewinding tape device, for reading.  Some
4847 #.  Linux versions have also had other security holes in
4848 #.  .BR execve ()
4849 #.  that could be exploited for denial of service by a suitably crafted
4850 #.  ELF binary. There are no known problems with 2.0.34 or 2.2.15.
4851 #. type: Plain text
4852 #: build/C/man2/execve.2:561
4853 msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
4854 msgstr ""
4855
4856 #. type: SS
4857 #: build/C/man2/execve.2:561
4858 #, no-wrap
4859 msgid "execve() and EAGAIN"
4860 msgstr ""
4861
4862 #. type: Plain text
4863 #: build/C/man2/execve.2:567
4864 msgid ""
4865 "A more detailed explanation of the B<EAGAIN> error that can occur (since "
4866 "Linux 3.1) when calling B<execve>()  is as follows."
4867 msgstr ""
4868
4869 #.  commit 909cc4ae86f3380152a18e2a3c44523893ee11c4
4870 #. type: Plain text
4871 #: build/C/man2/execve.2:589
4872 msgid ""
4873 "The B<EAGAIN> error can occur when a I<preceding> call to B<setuid>(2), "
4874 "B<setreuid>(2), or B<setresuid>(2)  caused the real user ID of the process "
4875 "to change, and that change caused the process to exceed its B<RLIMIT_NPROC> "
4876 "resource limit (i.e., the number of processes belonging to the new real UID "
4877 "exceeds the resource limit).  From Linux 2.6.0 to 3.0, this caused the "
4878 "B<set*uid>()  call to fail.  (Prior to 2.6, the resource limit was not "
4879 "imposed on processes that changed their user IDs.)"
4880 msgstr ""
4881
4882 #. type: Plain text
4883 #: build/C/man2/execve.2:620
4884 msgid ""
4885 "Since Linux 3.1, the scenario just described no longer causes the "
4886 "B<set*uid>()  call to fail, because it too often led to security holes where "
4887 "buggy applications didn't check the return status and assumed that\\(emif "
4888 "the caller had root privileges\\(emthe call would always succeed.  Instead, "
4889 "the B<set*uid>()  calls now successfully change the real UID, but the kernel "
4890 "sets an internal flag, named B<PF_NPROC_EXCEEDED>, to note that the "
4891 "B<RLIMIT_NPROC> resource limit has been exceeded.  If the "
4892 "B<PF_NPROC_EXCEEDED> flag is set and the resource limit is still exceeded at "
4893 "the time of a subsequent B<execve>()  call, that call fails with the error "
4894 "B<EAGAIN>.  This kernel logic ensures that the B<RLIMIT_NPROC> resource "
4895 "limit is still enforced for the common privileged daemon "
4896 "workflow\\(emnamely, B<fork>(2)  + B<set*uid>()  + B<execve>()."
4897 msgstr ""
4898
4899 #. type: Plain text
4900 #: build/C/man2/execve.2:636
4901 msgid ""
4902 "If the resource limit was not still exceeded at the time of the B<execve>()  "
4903 "call (because other processes belonging to this real UID terminated between "
4904 "the B<set*uid()> call and the B<execve>()  call), then the B<execve>()  call "
4905 "succeeds and the kernel clears the B<PF_NPROC_EXCEEDED> process flag.  The "
4906 "flag is also cleared if a subsequent call to B<fork>(2)  by this process "
4907 "succeeds."
4908 msgstr ""
4909
4910 #. type: SS
4911 #: build/C/man2/execve.2:636
4912 #, no-wrap
4913 msgid "Historical"
4914 msgstr ""
4915
4916 #
4917 #.  .SH BUGS
4918 #.  Some Linux versions have failed to check permissions on ELF
4919 #.  interpreters.  This is a security hole, because it allows users to
4920 #.  open any file, such as a rewinding tape device, for reading.  Some
4921 #.  Linux versions have also had other security holes in
4922 #.  .BR execve ()
4923 #.  that could be exploited for denial of service by a suitably crafted
4924 #.  ELF binary. There are no known problems with 2.0.34 or 2.2.15.
4925 #. type: Plain text
4926 #: build/C/man2/execve.2:656
4927 msgid ""
4928 "With UNIX\\ V6, the argument list of an B<exec>()  call was ended by 0, "
4929 "while the argument list of I<main> was ended by -1.  Thus, this argument "
4930 "list was not directly usable in a further B<exec>()  call.  Since UNIX\\ V7, "
4931 "both are NULL."
4932 msgstr ""
4933
4934 #. type: Plain text
4935 #: build/C/man2/execve.2:659
4936 msgid ""
4937 "The following program is designed to be execed by the second program below.  "
4938 "It just echoes its command-line arguments, one per line."
4939 msgstr ""
4940
4941 #. type: Plain text
4942 #: build/C/man2/execve.2:663
4943 #, no-wrap
4944 msgid "/* myecho.c */\n"
4945 msgstr ""
4946
4947 #. type: Plain text
4948 #: build/C/man2/execve.2:666
4949 #, no-wrap
4950 msgid ""
4951 "#include E<lt>stdio.hE<gt>\n"
4952 "#include E<lt>stdlib.hE<gt>\n"
4953 msgstr ""
4954
4955 #. type: Plain text
4956 #: build/C/man2/execve.2:671
4957 #, no-wrap
4958 msgid ""
4959 "int\n"
4960 "main(int argc, char *argv[])\n"
4961 "{\n"
4962 "    int j;\n"
4963 msgstr ""
4964
4965 #. type: Plain text
4966 #: build/C/man2/execve.2:674
4967 #, no-wrap
4968 msgid ""
4969 "    for (j = 0; j E<lt> argc; j++)\n"
4970 "        printf(\"argv[%d]: %s\\en\", j, argv[j]);\n"
4971 msgstr ""
4972
4973 #. type: Plain text
4974 #: build/C/man2/execve.2:682
4975 msgid ""
4976 "This program can be used to exec the program named in its command-line "
4977 "argument:"
4978 msgstr ""
4979
4980 #. type: Plain text
4981 #: build/C/man2/execve.2:686
4982 #, no-wrap
4983 msgid "/* execve.c */\n"
4984 msgstr ""
4985
4986 #. type: Plain text
4987 #: build/C/man2/execve.2:690
4988 #, no-wrap
4989 msgid ""
4990 "#include E<lt>stdio.hE<gt>\n"
4991 "#include E<lt>stdlib.hE<gt>\n"
4992 "#include E<lt>unistd.hE<gt>\n"
4993 msgstr ""
4994
4995 #. type: Plain text
4996 #: build/C/man2/execve.2:696
4997 #, no-wrap
4998 msgid ""
4999 "int\n"
5000 "main(int argc, char *argv[])\n"
5001 "{\n"
5002 "    char *newargv[] = { NULL, \"hello\", \"world\", NULL };\n"
5003 "    char *newenviron[] = { NULL };\n"
5004 msgstr ""
5005
5006 #. type: Plain text
5007 #: build/C/man2/execve.2:701
5008 #, no-wrap
5009 msgid ""
5010 "    if (argc != 2) {\n"
5011 "        fprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", "
5012 "argv[0]);\n"
5013 "        exit(EXIT_FAILURE);\n"
5014 "    }\n"
5015 msgstr ""
5016
5017 #. type: Plain text
5018 #: build/C/man2/execve.2:703
5019 #, no-wrap
5020 msgid "    newargv[0] = argv[1];\n"
5021 msgstr ""
5022
5023 #. type: Plain text
5024 #: build/C/man2/execve.2:708
5025 #, no-wrap
5026 msgid ""
5027 "    execve(argv[1], newargv, newenviron);\n"
5028 "    perror(\"execve\");   /* execve() only returns on error */\n"
5029 "    exit(EXIT_FAILURE);\n"
5030 "}\n"
5031 msgstr ""
5032
5033 #. type: Plain text
5034 #: build/C/man2/execve.2:712
5035 msgid "We can use the second program to exec the first as follows:"
5036 msgstr ""
5037
5038 #. type: Plain text
5039 #: build/C/man2/execve.2:721
5040 #, no-wrap
5041 msgid ""
5042 "$B< cc myecho.c -o myecho>\n"
5043 "$B< cc execve.c -o execve>\n"
5044 "$B< ./execve ./myecho>\n"
5045 "argv[0]: ./myecho\n"
5046 "argv[1]: hello\n"
5047 "argv[2]: world\n"
5048 msgstr ""
5049
5050 #. type: Plain text
5051 #: build/C/man2/execve.2:729
5052 msgid ""
5053 "We can also use these programs to demonstrate the use of a script "
5054 "interpreter.  To do this we create a script whose \"interpreter\" is our "
5055 "I<myecho> program:"
5056 msgstr ""
5057
5058 #. type: Plain text
5059 #: build/C/man2/execve.2:736
5060 #, no-wrap
5061 msgid ""
5062 "$B< cat E<gt> script>\n"
5063 "B<#!./myecho script-arg>\n"
5064 "B<^D>\n"
5065 "$B< chmod +x script>\n"
5066 msgstr ""
5067
5068 #. type: Plain text
5069 #: build/C/man2/execve.2:740
5070 msgid "We can then use our program to exec the script:"
5071 msgstr ""
5072
5073 #. type: Plain text
5074 #: build/C/man2/execve.2:749
5075 #, no-wrap
5076 msgid ""
5077 "$B< ./execve ./script>\n"
5078 "argv[0]: ./myecho\n"
5079 "argv[1]: script-arg\n"
5080 "argv[2]: ./script\n"
5081 "argv[3]: hello\n"
5082 "argv[4]: world\n"
5083 msgstr ""
5084
5085 #. type: Plain text
5086 #: build/C/man2/execve.2:762
5087 msgid ""
5088 "B<chmod>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), B<fexecve>(3), "
5089 "B<getopt>(3), B<credentials>(7), B<environ>(7), B<path_resolution>(7), "
5090 "B<ld.so>(8)"
5091 msgstr ""
5092
5093 #. type: TH
5094 #: build/C/man2/exit_group.2:25
5095 #, no-wrap
5096 msgid "EXIT_GROUP"
5097 msgstr ""
5098
5099 #. type: TH
5100 #: build/C/man2/exit_group.2:25
5101 #, no-wrap
5102 msgid "2008-11-27"
5103 msgstr ""
5104
5105 #. type: Plain text
5106 #: build/C/man2/exit_group.2:28
5107 msgid "exit_group - exit all threads in a process"
5108 msgstr ""
5109
5110 #. type: Plain text
5111 #: build/C/man2/exit_group.2:31
5112 #, no-wrap
5113 msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
5114 msgstr ""
5115
5116 #. type: Plain text
5117 #: build/C/man2/exit_group.2:33
5118 #, no-wrap
5119 msgid "B<void exit_group(int >I<status>B<);>\n"
5120 msgstr ""
5121
5122 #. type: Plain text
5123 #: build/C/man2/exit_group.2:39
5124 msgid ""
5125 "This system call is equivalent to B<exit>(2)  except that it terminates not "
5126 "only the calling thread, but all threads in the calling process's thread "
5127 "group."
5128 msgstr ""
5129
5130 #. type: Plain text
5131 #: build/C/man2/exit_group.2:41
5132 msgid "This system call does not return."
5133 msgstr ""
5134
5135 #. type: Plain text
5136 #: build/C/man2/exit_group.2:43
5137 msgid "This call is present since Linux 2.5.35."
5138 msgstr ""
5139
5140 #. type: Plain text
5141 #: build/C/man2/exit_group.2:45
5142 msgid "This call is Linux-specific."
5143 msgstr ""
5144
5145 #. type: Plain text
5146 #: build/C/man2/exit_group.2:49
5147 msgid ""
5148 "Since glibc 2.3, this is the system call invoked when the B<exit>(2)  "
5149 "wrapper function is called."
5150 msgstr ""
5151
5152 #. type: Plain text
5153 #: build/C/man2/exit_group.2:51
5154 msgid "B<exit>(2)"
5155 msgstr ""
5156
5157 #. type: TH
5158 #: build/C/man2/fcntl.2:62
5159 #, no-wrap
5160 msgid "FCNTL"
5161 msgstr ""
5162
5163 #. type: TH
5164 #: build/C/man2/fcntl.2:62
5165 #, no-wrap
5166 msgid "2014-09-06"
5167 msgstr ""
5168
5169 #. type: Plain text
5170 #: build/C/man2/fcntl.2:65
5171 msgid "fcntl - manipulate file descriptor"
5172 msgstr ""
5173
5174 #. type: Plain text
5175 #: build/C/man2/fcntl.2:69
5176 #, no-wrap
5177 msgid ""
5178 "B<#include E<lt>unistd.hE<gt>>\n"
5179 "B<#include E<lt>fcntl.hE<gt>>\n"
5180 msgstr ""
5181
5182 #. type: Plain text
5183 #: build/C/man2/fcntl.2:71
5184 #, no-wrap
5185 msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n"
5186 msgstr ""
5187
5188 #. type: Plain text
5189 #: build/C/man2/fcntl.2:78
5190 msgid ""
5191 "B<fcntl>()  performs one of the operations described below on the open file "
5192 "descriptor I<fd>.  The operation is determined by I<cmd>."
5193 msgstr ""
5194
5195 #. type: Plain text
5196 #: build/C/man2/fcntl.2:92
5197 msgid ""
5198 "B<fcntl>()  can take an optional third argument.  Whether or not this "
5199 "argument is required is determined by I<cmd>.  The required argument type is "
5200 "indicated in parentheses after each I<cmd> name (in most cases, the required "
5201 "type is I<int>, and we identify the argument using the name I<arg>), or "
5202 "I<void> is specified if the argument is not required."
5203 msgstr ""
5204
5205 #. type: Plain text
5206 #: build/C/man2/fcntl.2:103
5207 msgid ""
5208 "Certain of the operations below are supported only since a particular Linux "
5209 "kernel version.  The preferred method of checking whether the host kernel "
5210 "supports a particular operation is to invoke B<fcntl>()  with the desired "
5211 "I<cmd> value and then test whether the call failed with B<EINVAL>, "
5212 "indicating that the kernel does not recognize this value."
5213 msgstr ""
5214
5215 #. type: SS
5216 #: build/C/man2/fcntl.2:103
5217 #, no-wrap
5218 msgid "Duplicating a file descriptor"
5219 msgstr ""
5220
5221 #. type: TP
5222 #: build/C/man2/fcntl.2:104
5223 #, no-wrap
5224 msgid "B<F_DUPFD> (I<int>)"
5225 msgstr ""
5226
5227 #. type: Plain text
5228 #: build/C/man2/fcntl.2:114
5229 msgid ""
5230 "Find the lowest numbered available file descriptor greater than or equal to "
5231 "I<arg> and make it be a copy of I<fd>.  This is different from B<dup2>(2), "
5232 "which uses exactly the descriptor specified."
5233 msgstr ""
5234
5235 #. type: Plain text
5236 #: build/C/man2/fcntl.2:116
5237 msgid "On success, the new descriptor is returned."
5238 msgstr ""
5239
5240 #. type: Plain text
5241 #: build/C/man2/fcntl.2:120
5242 msgid "See B<dup>(2)  for further details."
5243 msgstr ""
5244
5245 #. type: TP
5246 #: build/C/man2/fcntl.2:120
5247 #, no-wrap
5248 msgid "B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)"
5249 msgstr ""
5250
5251 #. type: Plain text
5252 #: build/C/man2/fcntl.2:137
5253 msgid ""
5254 "As for B<F_DUPFD>, but additionally set the close-on-exec flag for the "
5255 "duplicate descriptor.  Specifying this flag permits a program to avoid an "
5256 "additional B<fcntl>()  B<F_SETFD> operation to set the B<FD_CLOEXEC> flag.  "
5257 "For an explanation of why this flag is useful, see the description of "
5258 "B<O_CLOEXEC> in B<open>(2)."
5259 msgstr ""
5260
5261 #. type: SS
5262 #: build/C/man2/fcntl.2:137
5263 #, no-wrap
5264 msgid "File descriptor flags"
5265 msgstr ""
5266
5267 #. type: Plain text
5268 #: build/C/man2/fcntl.2:148
5269 msgid ""
5270 "The following commands manipulate the flags associated with a file "
5271 "descriptor.  Currently, only one such flag is defined: B<FD_CLOEXEC>, the "
5272 "close-on-exec flag.  If the B<FD_CLOEXEC> bit is 0, the file descriptor will "
5273 "remain open across an B<execve>(2), otherwise it will be closed."
5274 msgstr ""
5275
5276 #. type: TP
5277 #: build/C/man2/fcntl.2:148
5278 #, no-wrap
5279 msgid "B<F_GETFD> (I<void>)"
5280 msgstr ""
5281
5282 #. type: Plain text
5283 #: build/C/man2/fcntl.2:153
5284 msgid "Read the file descriptor flags; I<arg> is ignored."
5285 msgstr ""
5286
5287 #. type: TP
5288 #: build/C/man2/fcntl.2:153
5289 #, no-wrap
5290 msgid "B<F_SETFD> (I<int>)"
5291 msgstr ""
5292
5293 #. type: Plain text
5294 #: build/C/man2/fcntl.2:157
5295 msgid "Set the file descriptor flags to the value specified by I<arg>."
5296 msgstr ""
5297
5298 #. type: Plain text
5299 #: build/C/man2/fcntl.2:172
5300 msgid ""
5301 "In multithreaded programs, using B<fcntl>()  B<F_SETFD> to set the "
5302 "close-on-exec flag at the same time as another thread performs a B<fork>(2)  "
5303 "plus B<execve>(2)  is vulnerable to a race condition that may "
5304 "unintentionally leak the file descriptor to the program executed in the "
5305 "child process.  See the discussion of the B<O_CLOEXEC> flag in B<open>(2)  "
5306 "for details and a remedy to the problem."
5307 msgstr ""
5308
5309 #. type: SS
5310 #: build/C/man2/fcntl.2:172
5311 #, no-wrap
5312 msgid "File status flags"
5313 msgstr ""
5314
5315 #.  or
5316 #.  .BR creat (2),
5317 #. type: Plain text
5318 #: build/C/man2/fcntl.2:187
5319 msgid ""
5320 "Each open file description has certain associated status flags, initialized "
5321 "by B<open>(2)  and possibly modified by B<fcntl>().  Duplicated file "
5322 "descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer "
5323 "to the same open file description, and thus share the same file status "
5324 "flags."
5325 msgstr ""
5326
5327 #. type: Plain text
5328 #: build/C/man2/fcntl.2:190
5329 msgid "The file status flags and their semantics are described in B<open>(2)."
5330 msgstr ""
5331
5332 #. type: TP
5333 #: build/C/man2/fcntl.2:190
5334 #, no-wrap
5335 msgid "B<F_GETFL> (I<void>)"
5336 msgstr ""
5337
5338 #. type: Plain text
5339 #: build/C/man2/fcntl.2:195
5340 msgid "Get the file access mode and the file status flags; I<arg> is ignored."
5341 msgstr ""
5342
5343 #. type: TP
5344 #: build/C/man2/fcntl.2:195
5345 #, no-wrap
5346 msgid "B<F_SETFL> (I<int>)"
5347 msgstr ""
5348
5349 #. type: Plain text
5350 #: build/C/man2/fcntl.2:220
5351 msgid ""
5352 "Set the file status flags to the value specified by I<arg>.  File access "
5353 "mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>)  and file creation flags (i.e., "
5354 "B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>)  in I<arg> are ignored.  On "
5355 "Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, "
5356 "B<O_NOATIME>, and B<O_NONBLOCK> flags.  It is not possible to change the "
5357 "B<O_DSYNC> and B<O_SYNC> flags; see BUGS, below."
5358 msgstr ""
5359
5360 #. type: SS
5361 #: build/C/man2/fcntl.2:220
5362 #, no-wrap
5363 msgid "Advisory record locking"
5364 msgstr ""
5365
5366 #. type: Plain text
5367 #: build/C/man2/fcntl.2:225
5368 msgid ""
5369 "Linux implements traditional (\"process-associated\") UNIX record locks, as "
5370 "standardized by POSIX.  For a Linux-specific alternative with better "
5371 "semantics, see the discussion of open file description locks below."
5372 msgstr ""
5373
5374 #. type: Plain text
5375 #: build/C/man2/fcntl.2:236
5376 msgid ""
5377 "B<F_SETLK>, B<F_SETLKW>, and B<F_GETLK> are used to acquire, release, and "
5378 "test for the existence of record locks (also known as byte-range, "
5379 "file-segment, or file-region locks).  The third argument, I<lock>, is a "
5380 "pointer to a structure that has at least the following fields (in "
5381 "unspecified order)."
5382 msgstr ""
5383
5384 #. type: Plain text
5385 #: build/C/man2/fcntl.2:251
5386 #, no-wrap
5387 msgid ""
5388 "struct flock {\n"
5389 "    ...\n"
5390 "    short l_type;    /* Type of lock: F_RDLCK,\n"
5391 "                        F_WRLCK, F_UNLCK */\n"
5392 "    short l_whence;  /* How to interpret l_start:\n"
5393 "                        SEEK_SET, SEEK_CUR, SEEK_END */\n"
5394 "    off_t l_start;   /* Starting offset for lock */\n"
5395 "    off_t l_len;     /* Number of bytes to lock */\n"
5396 "    pid_t l_pid;     /* PID of process blocking our lock\n"
5397 "                        (set by F_GETLK and F_OFD_GETLK) */\n"
5398 "    ...\n"
5399 "};\n"
5400 msgstr ""
5401
5402 #. type: Plain text
5403 #: build/C/man2/fcntl.2:259
5404 msgid ""
5405 "The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify "
5406 "the range of bytes we wish to lock.  Bytes past the end of the file may be "
5407 "locked, but not bytes before the start of the file."
5408 msgstr ""
5409
5410 #. type: Plain text
5411 #: build/C/man2/fcntl.2:279
5412 msgid ""
5413 "I<l_start> is the starting offset for the lock, and is interpreted relative "
5414 "to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the "
5415 "current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file "
5416 "(if I<l_whence> is B<SEEK_END>).  In the final two cases, I<l_start> can be "
5417 "a negative number provided the offset does not lie before the start of the "
5418 "file."
5419 msgstr ""
5420
5421 #. type: Plain text
5422 #: build/C/man2/fcntl.2:294
5423 msgid ""
5424 "I<l_len> specifies the number of bytes to be locked.  If I<l_len> is "
5425 "positive, then the range to be locked covers bytes I<l_start> up to and "
5426 "including I<l_start>+I<l_len>-1.  Specifying 0 for I<l_len> has the special "
5427 "meaning: lock all bytes starting at the location specified by I<l_whence> "
5428 "and I<l_start> through to the end of file, no matter how large the file "
5429 "grows."
5430 msgstr ""
5431
5432 #. type: Plain text
5433 #: build/C/man2/fcntl.2:307
5434 msgid ""
5435 "POSIX.1-2001 allows (but does not require)  an implementation to support a "
5436 "negative I<l_len> value; if I<l_len> is negative, the interval described by "
5437 "I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1.  "
5438 "This is supported by Linux since kernel versions 2.4.21 and 2.5.49."
5439 msgstr ""
5440
5441 #. type: Plain text
5442 #: build/C/man2/fcntl.2:326
5443 msgid ""
5444 "The I<l_type> field can be used to place a read (B<F_RDLCK>)  or a write "
5445 "(B<F_WRLCK>)  lock on a file.  Any number of processes may hold a read lock "
5446 "(shared lock)  on a file region, but only one process may hold a write lock "
5447 "(exclusive lock).  An exclusive lock excludes all other locks, both shared "
5448 "and exclusive.  A single process can hold only one type of lock on a file "
5449 "region; if a new lock is applied to an already-locked region, then the "
5450 "existing lock is converted to the new lock type.  (Such conversions may "
5451 "involve splitting, shrinking, or coalescing with an existing lock if the "
5452 "byte range specified by the new lock does not precisely coincide with the "
5453 "range of the existing lock.)"
5454 msgstr ""
5455
5456 #. type: TP
5457 #: build/C/man2/fcntl.2:326
5458 #, no-wrap
5459 msgid "B<F_SETLK> (I<struct flock *>)"
5460 msgstr ""
5461
5462 #. type: Plain text
5463 #: build/C/man2/fcntl.2:351
5464 msgid ""
5465 "Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>)  or release a "
5466 "lock (when I<l_type> is B<F_UNLCK>)  on the bytes specified by the "
5467 "I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If a conflicting "
5468 "lock is held by another process, this call returns -1 and sets I<errno> to "
5469 "B<EACCES> or B<EAGAIN>.  (The error returned in this case differs across "
5470 "implementations, so POSIX requires a portable application to check for both "
5471 "errors.)"
5472 msgstr ""
5473
5474 #. type: TP
5475 #: build/C/man2/fcntl.2:351
5476 #, no-wrap
5477 msgid "B<F_SETLKW> (I<struct flock *>)"
5478 msgstr ""
5479
5480 #. type: Plain text
5481 #: build/C/man2/fcntl.2:365
5482 msgid ""
5483 "As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait "
5484 "for that lock to be released.  If a signal is caught while waiting, then the "
5485 "call is interrupted and (after the signal handler has returned)  returns "
5486 "immediately (with return value -1 and I<errno> set to B<EINTR>; see "
5487 "B<signal>(7))."
5488 msgstr ""
5489
5490 #. type: TP
5491 #: build/C/man2/fcntl.2:365
5492 #, no-wrap
5493 msgid "B<F_GETLK> (I<struct flock *>)"
5494 msgstr ""
5495
5496 #. type: Plain text
5497 #: build/C/man2/fcntl.2:379
5498 msgid ""
5499 "On input to this call, I<lock> describes a lock we would like to place on "
5500 "the file.  If the lock could be placed, B<fcntl>()  does not actually place "
5501 "it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
5502 "other fields of the structure unchanged."
5503 msgstr ""
5504
5505 #. type: Plain text
5506 #: build/C/man2/fcntl.2:396
5507 msgid ""
5508 "If one or more incompatible locks would prevent this lock being placed, then "
5509 "B<fcntl>()  returns details about one of those locks in the I<l_type>, "
5510 "I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If the conflicting "
5511 "lock is a traditional (process-associated) record lock, then the I<l_pid> "
5512 "field is set to the PID of the process holding that lock.  If the "
5513 "conflicting lock is an open file description lock, then I<l_pid> is set to "
5514 "-1.  Note that the returned information may already be out of date by the "
5515 "time the caller inspects it."
5516 msgstr ""
5517
5518 #. type: Plain text
5519 #: build/C/man2/fcntl.2:404
5520 msgid ""
5521 "In order to place a read lock, I<fd> must be open for reading.  In order to "
5522 "place a write lock, I<fd> must be open for writing.  To place both types of "
5523 "lock, open a file read-write."
5524 msgstr ""
5525
5526 #. type: Plain text
5527 #: build/C/man2/fcntl.2:427
5528 msgid ""
5529 "When placing locks with B<F_SETLKW>, the kernel detects I<deadlocks>, "
5530 "whereby two or more processes have their lock requests mutually blocked by "
5531 "locks held by the other processes.  For example, suppose process A holds a "
5532 "write lock on byte 100 of a file, and process B holds a write lock on byte "
5533 "200.  If each process then attempts to lock the byte already locked by the "
5534 "other process using B<F_SETLKW>, then, without deadlock detection, both "
5535 "processes would remain blocked indefinitely.  When the kernel detects such "
5536 "deadlocks, it causes one of the blocking lock requests to immediately fail "
5537 "with the error B<EDEADLK>; an application that encounters such an error "
5538 "should release some of its locks to allow other applications to proceed "
5539 "before attempting regain the locks that it requires.  Circular deadlocks "
5540 "involving more than two processes are also detected.  Note, however, that "
5541 "there are limitations to the kernel's deadlock-detection algorithm; see "
5542 "BUGS."
5543 msgstr ""
5544
5545 #. type: Plain text
5546 #: build/C/man2/fcntl.2:431
5547 msgid ""
5548 "As well as being removed by an explicit B<F_UNLCK>, record locks are "
5549 "automatically released when the process terminates."
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man2/fcntl.2:436
5554 msgid ""
5555 "Record locks are not inherited by a child created via B<fork>(2), but are "
5556 "preserved across an B<execve>(2)."
5557 msgstr ""
5558
5559 #. type: Plain text
5560 #: build/C/man2/fcntl.2:445
5561 msgid ""
5562 "Because of the buffering performed by the B<stdio>(3)  library, the use of "
5563 "record locking with routines in that package should be avoided; use "
5564 "B<read>(2)  and B<write>(2)  instead."
5565 msgstr ""
5566
5567 #. type: Plain text
5568 #: build/C/man2/fcntl.2:449
5569 msgid ""
5570 "The record locks described above are associated with the process (unlike the "
5571 "open file description locks described below).  This has some unfortunate "
5572 "consequences:"
5573 msgstr ""
5574
5575 #.  (Additional file descriptors referring to the same file
5576 #.  may have been obtained by calls to
5577 #.  .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
5578 #. type: Plain text
5579 #: build/C/man2/fcntl.2:465
5580 msgid ""
5581 "If a process closes I<any> file descriptor referring to a file, then all of "
5582 "the process's locks on that file are released, regardless of the file "
5583 "descriptor(s) on which the locks were obtained.  This is bad: it means that "
5584 "a process can lose its locks on a file such as I</etc/passwd> or "
5585 "I</etc/mtab> when for some reason a library function decides to open, read, "
5586 "and close the same file."
5587 msgstr ""
5588
5589 #. type: Plain text
5590 #: build/C/man2/fcntl.2:470
5591 msgid ""
5592 "The threads in a process share locks.  In other words, a multithreaded "
5593 "program can't use record locking to ensure that threads don't simultaneously "
5594 "access the same region of a file."
5595 msgstr ""
5596
5597 #. type: Plain text
5598 #: build/C/man2/fcntl.2:472
5599 msgid "Open file description locks solve both of these problems."
5600 msgstr ""
5601
5602 #. type: SS
5603 #: build/C/man2/fcntl.2:472
5604 #, no-wrap
5605 msgid "Open file description locks (non-POSIX)"
5606 msgstr ""
5607
5608 #. type: Plain text
5609 #: build/C/man2/fcntl.2:479
5610 msgid ""
5611 "Open file description locks are advisory byte-range locks whose operation is "
5612 "in most respects identical to the traditional record locks described above.  "
5613 "This lock type is Linux-specific, and available since Linux 3.15.  For an "
5614 "explanation of open file descriptions, see B<open>(2)."
5615 msgstr ""
5616
5617 #. type: Plain text
5618 #: build/C/man2/fcntl.2:497
5619 msgid ""
5620 "The principal difference between the two lock types is that whereas "
5621 "traditional record locks are associated with a process, open file "
5622 "description locks are associated with the open file description on which "
5623 "they are acquired, much like locks acquired with B<flock>(2).  Consequently "
5624 "(and unlike traditional advisory record locks), open file description locks "
5625 "are inherited across B<fork>(2)  (and B<clone>(2)  with B<CLONE_FILES>), and "
5626 "are only automatically released on the last close of the open file "
5627 "description, instead of being released on any close of the file."
5628 msgstr ""
5629
5630 #. type: Plain text
5631 #: build/C/man2/fcntl.2:500
5632 msgid ""
5633 "Open file description locks always conflict with traditional record locks, "
5634 "even when they are acquired by the same process on the same file descriptor."
5635 msgstr ""
5636
5637 #. type: Plain text
5638 #: build/C/man2/fcntl.2:513
5639 msgid ""
5640 "Open file description locks placed via the same open file description (i.e., "
5641 "via the same file descriptor, or via a duplicate of the file descriptor "
5642 "created by B<fork>(2), B<dup>(2), B<fcntl>(2)  B<F_DUPFD>, and so on) are "
5643 "always compatible: if a new lock is placed on an already locked region, then "
5644 "the existing lock is converted to the new lock type.  (Such conversions may "
5645 "result in splitting, shrinking, or coalescing with an existing lock as "
5646 "discussed above.)"
5647 msgstr ""
5648
5649 #. type: Plain text
5650 #: build/C/man2/fcntl.2:521
5651 msgid ""
5652 "On the other hand, open file description locks may conflict with each other "
5653 "when they are acquired via different open file descriptions.  Thus, the "
5654 "threads in a multithreaded program can use open file description locks to "
5655 "synchronize access to a file region by having each thread perform its own "
5656 "B<open>(2)  on the file and applying locks via the resulting file "
5657 "descriptor."
5658 msgstr ""
5659
5660 #. type: Plain text
5661 #: build/C/man2/fcntl.2:532
5662 msgid ""
5663 "As with traditional advisory locks, the third argument to B<fcntl>(), "
5664 "I<lock>, is a pointer to an I<flock> structure.  By contrast with "
5665 "traditional record locks, the I<l_pid> field of that structure must be set "
5666 "to zero when using the commands described below."
5667 msgstr ""
5668
5669 #. type: Plain text
5670 #: build/C/man2/fcntl.2:535
5671 msgid ""
5672 "The commands for working with open file description locks are analogous to "
5673 "those used with traditional locks:"
5674 msgstr ""
5675
5676 #. type: TP
5677 #: build/C/man2/fcntl.2:535
5678 #, no-wrap
5679 msgid "B<F_OFD_SETLK> (I<struct flock *>)"
5680 msgstr ""
5681
5682 #. type: Plain text
5683 #: build/C/man2/fcntl.2:556
5684 msgid ""
5685 "Acquire an open file description lock (when I<l_type> is B<F_RDLCK> or "
5686 "B<F_WRLCK>)  or release an open file description lock (when I<l_type> is "
5687 "B<F_UNLCK>)  on the bytes specified by the I<l_whence>, I<l_start>, and "
5688 "I<l_len> fields of I<lock>.  If a conflicting lock is held by another "
5689 "process, this call returns -1 and sets I<errno> to B<EAGAIN>."
5690 msgstr ""
5691
5692 #. type: TP
5693 #: build/C/man2/fcntl.2:556
5694 #, no-wrap
5695 msgid "B<F_OFD_SETLKW> (I<struct flock *>)"
5696 msgstr ""
5697
5698 #. type: Plain text
5699 #: build/C/man2/fcntl.2:570
5700 msgid ""
5701 "As for B<F_OFD_SETLK>, but if a conflicting lock is held on the file, then "
5702 "wait for that lock to be released.  If a signal is caught while waiting, "
5703 "then the call is interrupted and (after the signal handler has returned) "
5704 "returns immediately (with return value -1 and I<errno> set to B<EINTR>; see "
5705 "B<signal>(7))."
5706 msgstr ""
5707
5708 #. type: TP
5709 #: build/C/man2/fcntl.2:570
5710 #, no-wrap
5711 msgid "B<F_OFD_GETLK> (I<struct flock *>)"
5712 msgstr ""
5713
5714 #. type: Plain text
5715 #: build/C/man2/fcntl.2:589
5716 msgid ""
5717 "On input to this call, I<lock> describes an open file description lock we "
5718 "would like to place on the file.  If the lock could be placed, B<fcntl>()  "
5719 "does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of "
5720 "I<lock> and leaves the other fields of the structure unchanged.  If one or "
5721 "more incompatible locks would prevent this lock being placed, then details "
5722 "about one of these locks are returned via I<lock>, as described above for "
5723 "B<F_GETLK>."
5724 msgstr ""
5725
5726 #.  commit 57b65325fe34ec4c917bc4e555144b4a94d9e1f7
5727 #. type: Plain text
5728 #: build/C/man2/fcntl.2:596
5729 msgid ""
5730 "In the current implementation, no deadlock detection is performed for open "
5731 "file description locks.  (This contrasts with process-associated record "
5732 "locks, for which the kernel does perform deadlock detection.)"
5733 msgstr ""
5734
5735 #. type: SS
5736 #: build/C/man2/fcntl.2:596 build/C/man2/fcntl.2:1668
5737 #, no-wrap
5738 msgid "Mandatory locking"
5739 msgstr ""
5740
5741 #. type: Plain text
5742 #: build/C/man2/fcntl.2:600
5743 msgid ""
5744 "I<Warning>: the Linux implementation of mandatory locking is unreliable.  "
5745 "See BUGS below."
5746 msgstr ""
5747
5748 #. type: Plain text
5749 #: build/C/man2/fcntl.2:605
5750 msgid ""
5751 "By default, both traditional (process-associated) and open file description "
5752 "record locks are advisory.  Advisory locks are not enforced and are useful "
5753 "only between cooperating processes."
5754 msgstr ""
5755
5756 #. type: Plain text
5757 #: build/C/man2/fcntl.2:625
5758 msgid ""
5759 "Both lock types can also be mandatory.  Mandatory locks are enforced for all "
5760 "processes.  If a process tries to perform an incompatible access (e.g., "
5761 "B<read>(2)  or B<write>(2))  on a file region that has an incompatible "
5762 "mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag "
5763 "is enabled for its open file description.  If the B<O_NONBLOCK> flag is not "
5764 "enabled, then the system call is blocked until the lock is removed or "
5765 "converted to a mode that is compatible with the access.  If the "
5766 "B<O_NONBLOCK> flag is enabled, then the system call fails with the error "
5767 "B<EAGAIN>."
5768 msgstr ""
5769
5770 #. type: Plain text
5771 #: build/C/man2/fcntl.2:642
5772 msgid ""
5773 "To make use of mandatory locks, mandatory locking must be enabled both on "
5774 "the filesystem that contains the file to be locked, and on the file itself.  "
5775 "Mandatory locking is enabled on a filesystem using the \"-o mand\" option to "
5776 "B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2).  Mandatory locking "
5777 "is enabled on a file by disabling group execute permission on the file and "
5778 "enabling the set-group-ID permission bit (see B<chmod>(1)  and B<chmod>(2))."
5779 msgstr ""
5780
5781 #. type: Plain text
5782 #: build/C/man2/fcntl.2:646
5783 msgid ""
5784 "Mandatory locking is not specified by POSIX.  Some other systems also "
5785 "support mandatory locking, although the details of how to enable it vary "
5786 "across systems."
5787 msgstr ""
5788
5789 #. type: SS
5790 #: build/C/man2/fcntl.2:646
5791 #, no-wrap
5792 msgid "Managing signals"
5793 msgstr ""
5794
5795 #. type: Plain text
5796 #: build/C/man2/fcntl.2:655
5797 msgid ""
5798 "B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
5799 "B<F_SETSIG> are used to manage I/O availability signals:"
5800 msgstr ""
5801
5802 #. type: TP
5803 #: build/C/man2/fcntl.2:655
5804 #, no-wrap
5805 msgid "B<F_GETOWN> (I<void>)"
5806 msgstr ""
5807
5808 #. type: Plain text
5809 #: build/C/man2/fcntl.2:668
5810 msgid ""
5811 "Return (as the function result)  the process ID or process group currently "
5812 "receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
5813 "I<fd>.  Process IDs are returned as positive values; process group IDs are "
5814 "returned as negative values (but see BUGS below).  I<arg> is ignored."
5815 msgstr ""
5816
5817 #. type: TP
5818 #: build/C/man2/fcntl.2:668
5819 #, no-wrap
5820 msgid "B<F_SETOWN> (I<int>)"
5821 msgstr ""
5822
5823 #. type: Plain text
5824 #: build/C/man2/fcntl.2:685
5825 msgid ""
5826 "Set the process ID or process group ID that will receive B<SIGIO> and "
5827 "B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
5828 "I<arg>.  A process ID is specified as a positive value; a process group ID "
5829 "is specified as a negative value.  Most commonly, the calling process "
5830 "specifies itself as the owner (that is, I<arg> is specified as "
5831 "B<getpid>(2))."
5832 msgstr ""
5833
5834 #.  From glibc.info:
5835 #. type: Plain text
5836 #: build/C/man2/fcntl.2:702
5837 msgid ""
5838 "If you set the B<O_ASYNC> status flag on a file descriptor by using the "
5839 "B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
5840 "or output becomes possible on that file descriptor.  B<F_SETSIG> can be used "
5841 "to obtain delivery of a signal other than B<SIGIO>.  If this permission "
5842 "check fails, then the signal is silently discarded."
5843 msgstr ""
5844
5845 #. type: Plain text
5846 #: build/C/man2/fcntl.2:710
5847 msgid ""
5848 "Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
5849 "subject to the same permissions checks as are described for B<kill>(2), "
5850 "where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
5851 "below)."
5852 msgstr ""
5853
5854 #.  The following appears to be rubbish.  It doesn't seem to
5855 #.  be true according to the kernel source, and I can write
5856 #.  a program that gets a terminal-generated SIGIO even though
5857 #.  it is not the foreground process group of the terminal.
5858 #.  -- MTK, 8 Apr 05
5859 #
5860 #.  If the file descriptor
5861 #.  .I fd
5862 #.  refers to a terminal device, then SIGIO
5863 #.  signals are sent to the foreground process group of the terminal.
5864 #. type: Plain text
5865 #: build/C/man2/fcntl.2:734
5866 msgid ""
5867 "If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
5868 "the recipient of B<SIGURG> signals that are delivered when out-of-band data "
5869 "arrives on that socket.  (B<SIGURG> is sent in any situation where "
5870 "B<select>(2)  would report the socket as having an \"exceptional "
5871 "condition\".)"
5872 msgstr ""
5873
5874 #. type: Plain text
5875 #: build/C/man2/fcntl.2:737
5876 msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
5877 msgstr ""
5878
5879 #.  The relevant place in the (2.6) kernel source is the
5880 #.  'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
5881 #.  send_sigurg()/send_sigurg_to_task() bypasses
5882 #.  kill_fasync()/send_sigio()/send_sigio_to_task()
5883 #.  to directly call send_group_sig_info()
5884 #.      -- MTK, Apr 2005 (kernel 2.6.11)
5885 #. type: Plain text
5886 #: build/C/man2/fcntl.2:777
5887 msgid ""
5888 "If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
5889 "running with a threading library that supports thread groups (e.g., NPTL), "
5890 "then a positive value given to B<F_SETOWN> has a different meaning: instead "
5891 "of being a process ID identifying a whole process, it is a thread ID "
5892 "identifying a specific thread within a process.  Consequently, it may be "
5893 "necessary to pass B<F_SETOWN> the result of B<gettid>(2)  instead of "
5894 "B<getpid>(2)  to get sensible results when B<F_SETSIG> is used.  (In current "
5895 "Linux threading implementations, a main thread's thread ID is the same as "
5896 "its process ID.  This means that a single-threaded program can equally use "
5897 "B<gettid>(2)  or B<getpid>(2)  in this scenario.)  Note, however, that the "
5898 "statements in this paragraph do not apply to the B<SIGURG> signal generated "
5899 "for out-of-band data on a socket: this signal is always sent to either a "
5900 "process or a process group, depending on the value given to B<F_SETOWN>."
5901 msgstr ""
5902
5903 #. type: Plain text
5904 #: build/C/man2/fcntl.2:788
5905 msgid ""
5906 "The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
5907 "restored.  From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
5908 "and B<SIGURG> signals at a particular thread."
5909 msgstr ""
5910
5911 #. type: TP
5912 #: build/C/man2/fcntl.2:788
5913 #, no-wrap
5914 msgid "B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5915 msgstr ""
5916
5917 #. type: Plain text
5918 #: build/C/man2/fcntl.2:797
5919 msgid ""
5920 "Return the current file descriptor owner settings as defined by a previous "
5921 "B<F_SETOWN_EX> operation.  The information is returned in the structure "
5922 "pointed to by I<arg>, which has the following form:"
5923 msgstr ""
5924
5925 #. type: Plain text
5926 #: build/C/man2/fcntl.2:804
5927 #, no-wrap
5928 msgid ""
5929 "struct f_owner_ex {\n"
5930 "    int   type;\n"
5931 "    pid_t pid;\n"
5932 "};\n"
5933 msgstr ""
5934
5935 #. type: Plain text
5936 #: build/C/man2/fcntl.2:821
5937 msgid ""
5938 "The I<type> field will have one of the values B<F_OWNER_TID>, "
5939 "B<F_OWNER_PID>, or B<F_OWNER_PGRP>.  The I<pid> field is a positive integer "
5940 "representing a thread ID, process ID, or process group ID.  See "
5941 "B<F_SETOWN_EX> for more details."
5942 msgstr ""
5943
5944 #. type: TP
5945 #: build/C/man2/fcntl.2:821
5946 #, no-wrap
5947 msgid "B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
5948 msgstr ""
5949
5950 #. type: Plain text
5951 #: build/C/man2/fcntl.2:837
5952 msgid ""
5953 "This operation performs a similar task to B<F_SETOWN>.  It allows the caller "
5954 "to direct I/O availability signals to a specific thread, process, or process "
5955 "group.  The caller specifies the target of signals via I<arg>, which is a "
5956 "pointer to a I<f_owner_ex> structure.  The I<type> field has one of the "
5957 "following values, which define how I<pid> is interpreted:"
5958 msgstr ""
5959
5960 #. type: TP
5961 #: build/C/man2/fcntl.2:838
5962 #, no-wrap
5963 msgid "B<F_OWNER_TID>"
5964 msgstr ""
5965
5966 #. type: Plain text
5967 #: build/C/man2/fcntl.2:847
5968 msgid ""
5969 "Send the signal to the thread whose thread ID (the value returned by a call "
5970 "to B<clone>(2)  or B<gettid>(2))  is specified in I<pid>."
5971 msgstr ""
5972
5973 #. type: TP
5974 #: build/C/man2/fcntl.2:847
5975 #, no-wrap
5976 msgid "B<F_OWNER_PID>"
5977 msgstr ""
5978
5979 #. type: Plain text
5980 #: build/C/man2/fcntl.2:852
5981 msgid "Send the signal to the process whose ID is specified in I<pid>."
5982 msgstr ""
5983
5984 #. type: TP
5985 #: build/C/man2/fcntl.2:852
5986 #, no-wrap
5987 msgid "B<F_OWNER_PGRP>"
5988 msgstr ""
5989
5990 #. type: Plain text
5991 #: build/C/man2/fcntl.2:860
5992 msgid ""
5993 "Send the signal to the process group whose ID is specified in I<pid>.  (Note "
5994 "that, unlike with B<F_SETOWN>, a process group ID is specified as a positive "
5995 "value here.)"
5996 msgstr ""
5997
5998 #. type: TP
5999 #: build/C/man2/fcntl.2:861
6000 #, no-wrap
6001 msgid "B<F_GETSIG> (I<void>)"
6002 msgstr ""
6003
6004 #. type: Plain text
6005 #: build/C/man2/fcntl.2:876
6006 msgid ""
6007 "Return (as the function result)  the signal sent when input or output "
6008 "becomes possible.  A value of zero means B<SIGIO> is sent.  Any other value "
6009 "(including B<SIGIO>)  is the signal sent instead, and in this case "
6010 "additional info is available to the signal handler if installed with "
6011 "B<SA_SIGINFO>.  I<arg> is ignored."
6012 msgstr ""
6013
6014 #. type: TP
6015 #: build/C/man2/fcntl.2:876
6016 #, no-wrap
6017 msgid "B<F_SETSIG> (I<int>)"
6018 msgstr ""
6019
6020 #
6021 #.  The following was true only up until 2.6.11:
6022 #
6023 #.  Additionally, passing a nonzero value to
6024 #.  .B F_SETSIG
6025 #.  changes the signal recipient from a whole process to a specific thread
6026 #.  within a process.
6027 #.  See the description of
6028 #.  .B F_SETOWN
6029 #.  for more details.
6030 #. type: Plain text
6031 #: build/C/man2/fcntl.2:899
6032 msgid ""
6033 "Set the signal sent when input or output becomes possible to the value given "
6034 "in I<arg>.  A value of zero means to send the default B<SIGIO> signal.  Any "
6035 "other value (including B<SIGIO>)  is the signal to send instead, and in this "
6036 "case additional info is available to the signal handler if installed with "
6037 "B<SA_SIGINFO>."
6038 msgstr ""
6039
6040 #. type: Plain text
6041 #: build/C/man2/fcntl.2:927
6042 msgid ""
6043 "By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the "
6044 "signal handler (see B<sigaction>(2)), extra information about I/O events is "
6045 "passed to the handler in a I<siginfo_t> structure.  If the I<si_code> field "
6046 "indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file "
6047 "descriptor associated with the event.  Otherwise, there is no indication "
6048 "which file descriptors are pending, and you should use the usual mechanisms "
6049 "(B<select>(2), B<poll>(2), B<read>(2)  with B<O_NONBLOCK> set etc.) to "
6050 "determine which file descriptors are available for I/O."
6051 msgstr ""
6052
6053 #. type: Plain text
6054 #: build/C/man2/fcntl.2:936
6055 msgid ""
6056 "By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O "
6057 "events may be queued using the same signal numbers.  (Queuing is dependent "
6058 "on available memory).  Extra information is available if B<SA_SIGINFO> is "
6059 "set for the signal handler, as above."
6060 msgstr ""
6061
6062 #.  See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
6063 #. type: Plain text
6064 #: build/C/man2/fcntl.2:949
6065 msgid ""
6066 "Note that Linux imposes a limit on the number of real-time signals that may "
6067 "be queued to a process (see B<getrlimit>(2)  and B<signal>(7))  and if this "
6068 "limit is reached, then the kernel reverts to delivering B<SIGIO>, and this "
6069 "signal is delivered to the entire process rather than to a specific thread."
6070 msgstr ""
6071
6072 #. type: Plain text
6073 #: build/C/man2/fcntl.2:956
6074 msgid ""
6075 "Using these mechanisms, a program can implement fully asynchronous I/O "
6076 "without using B<select>(2)  or B<poll>(2)  most of the time."
6077 msgstr ""
6078
6079 #. type: Plain text
6080 #: build/C/man2/fcntl.2:980
6081 msgid ""
6082 "The use of B<O_ASYNC> is specific to BSD and Linux.  The only use of "
6083 "B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with the "
6084 "use of the B<SIGURG> signal on sockets.  (POSIX does not specify the "
6085 "B<SIGIO> signal.)  B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and "
6086 "B<F_SETSIG> are Linux-specific.  POSIX has asynchronous I/O and the "
6087 "I<aio_sigevent> structure to achieve similar things; these are also "
6088 "available in Linux as part of the GNU C Library (Glibc)."
6089 msgstr ""
6090
6091 #. type: SS
6092 #: build/C/man2/fcntl.2:980
6093 #, no-wrap
6094 msgid "Leases"
6095 msgstr ""
6096
6097 #. type: Plain text
6098 #: build/C/man2/fcntl.2:995
6099 msgid ""
6100 "B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) "
6101 "to establish a new lease, and retrieve the current lease, on the open file "
6102 "description referred to by the file descriptor I<fd>.  A file lease provides "
6103 "a mechanism whereby the process holding the lease (the \"lease holder\") is "
6104 "notified (via delivery of a signal)  when a process (the \"lease breaker\") "
6105 "tries to B<open>(2)  or B<truncate>(2)  the file referred to by that file "
6106 "descriptor."
6107 msgstr ""
6108
6109 #. type: TP
6110 #: build/C/man2/fcntl.2:995
6111 #, no-wrap
6112 msgid "B<F_SETLEASE> (I<int>)"
6113 msgstr ""
6114
6115 #. type: Plain text
6116 #: build/C/man2/fcntl.2:1000
6117 msgid ""
6118 "Set or remove a file lease according to which of the following values is "
6119 "specified in the integer I<arg>:"
6120 msgstr ""
6121
6122 #. type: TP
6123 #: build/C/man2/fcntl.2:1001
6124 #, no-wrap
6125 msgid "B<F_RDLCK>"
6126 msgstr ""
6127
6128 #.  The following became true in kernel 2.6.10:
6129 #.  See the man-pages-2.09 Changelog for further info.
6130 #. type: Plain text
6131 #: build/C/man2/fcntl.2:1010
6132 msgid ""
6133 "Take out a read lease.  This will cause the calling process to be notified "
6134 "when the file is opened for writing or is truncated.  A read lease can be "
6135 "placed only on a file descriptor that is opened read-only."
6136 msgstr ""
6137
6138 #. type: TP
6139 #: build/C/man2/fcntl.2:1010
6140 #, no-wrap
6141 msgid "B<F_WRLCK>"
6142 msgstr ""
6143
6144 #. type: Plain text
6145 #: build/C/man2/fcntl.2:1017
6146 msgid ""
6147 "Take out a write lease.  This will cause the caller to be notified when the "
6148 "file is opened for reading or writing or is truncated.  A write lease may be "
6149 "placed on a file only if there are no other open file descriptors for the "
6150 "file."
6151 msgstr ""
6152
6153 #. type: TP
6154 #: build/C/man2/fcntl.2:1017
6155 #, no-wrap
6156 msgid "B<F_UNLCK>"
6157 msgstr ""
6158
6159 #. type: Plain text
6160 #: build/C/man2/fcntl.2:1020
6161 msgid "Remove our lease from the file."
6162 msgstr ""
6163
6164 #. type: Plain text
6165 #: build/C/man2/fcntl.2:1034
6166 msgid ""
6167 "Leases are associated with an open file description (see B<open>(2)).  This "
6168 "means that duplicate file descriptors (created by, for example, B<fork>(2)  "
6169 "or B<dup>(2))  refer to the same lease, and this lease may be modified or "
6170 "released using any of these descriptors.  Furthermore, the lease is released "
6171 "by either an explicit B<F_UNLCK> operation on any of these duplicate "
6172 "descriptors, or when all such descriptors have been closed."
6173 msgstr ""
6174
6175 #. type: Plain text
6176 #: build/C/man2/fcntl.2:1041
6177 msgid ""
6178 "Leases may be taken out only on regular files.  An unprivileged process may "
6179 "take out a lease only on a file whose UID (owner) matches the filesystem UID "
6180 "of the process.  A process with the B<CAP_LEASE> capability may take out "
6181 "leases on arbitrary files."
6182 msgstr ""
6183
6184 #. type: TP
6185 #: build/C/man2/fcntl.2:1041
6186 #, no-wrap
6187 msgid "B<F_GETLEASE> (I<void>)"
6188 msgstr ""
6189
6190 #. type: Plain text
6191 #: build/C/man2/fcntl.2:1050
6192 msgid ""
6193 "Indicates what type of lease is associated with the file descriptor I<fd> by "
6194 "returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, "
6195 "respectively, a read lease , a write lease, or no lease.  I<arg> is ignored."
6196 msgstr ""
6197
6198 #. type: Plain text
6199 #: build/C/man2/fcntl.2:1081
6200 msgid ""
6201 "When a process (the \"lease breaker\") performs an B<open>(2)  or "
6202 "B<truncate>(2)  that conflicts with a lease established via B<F_SETLEASE>, "
6203 "the system call is blocked by the kernel and the kernel notifies the lease "
6204 "holder by sending it a signal (B<SIGIO> by default).  The lease holder "
6205 "should respond to receipt of this signal by doing whatever cleanup is "
6206 "required in preparation for the file to be accessed by another process "
6207 "(e.g., flushing cached buffers) and then either remove or downgrade its "
6208 "lease.  A lease is removed by performing an B<F_SETLEASE> command specifying "
6209 "I<arg> as B<F_UNLCK>.  If the lease holder currently holds a write lease on "
6210 "the file, and the lease breaker is opening the file for reading, then it is "
6211 "sufficient for the lease holder to downgrade the lease to a read lease.  "
6212 "This is done by performing an B<F_SETLEASE> command specifying I<arg> as "
6213 "B<F_RDLCK>."
6214 msgstr ""
6215
6216 #. type: Plain text
6217 #: build/C/man2/fcntl.2:1086
6218 msgid ""
6219 "If the lease holder fails to downgrade or remove the lease within the number "
6220 "of seconds specified in I</proc/sys/fs/lease-break-time>, then the kernel "
6221 "forcibly removes or downgrades the lease holder's lease."
6222 msgstr ""
6223
6224 #. type: Plain text
6225 #: build/C/man2/fcntl.2:1096
6226 msgid ""
6227 "Once a lease break has been initiated, B<F_GETLEASE> returns the target "
6228 "lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be "
6229 "compatible with the lease breaker)  until the lease holder voluntarily "
6230 "downgrades or removes the lease or the kernel forcibly does so after the "
6231 "lease break timer expires."
6232 msgstr ""
6233
6234 #. type: Plain text
6235 #: build/C/man2/fcntl.2:1100
6236 msgid ""
6237 "Once the lease has been voluntarily or forcibly removed or downgraded, and "
6238 "assuming the lease breaker has not unblocked its system call, the kernel "
6239 "permits the lease breaker's system call to proceed."
6240 msgstr ""
6241
6242 #. type: Plain text
6243 #: build/C/man2/fcntl.2:1121
6244 msgid ""
6245 "If the lease breaker's blocked B<open>(2)  or B<truncate>(2)  is interrupted "
6246 "by a signal handler, then the system call fails with the error B<EINTR>, but "
6247 "the other steps still occur as described above.  If the lease breaker is "
6248 "killed by a signal while blocked in B<open>(2)  or B<truncate>(2), then the "
6249 "other steps still occur as described above.  If the lease breaker specifies "
6250 "the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately "
6251 "fails with the error B<EWOULDBLOCK>, but the other steps still occur as "
6252 "described above."
6253 msgstr ""
6254
6255 #. type: Plain text
6256 #: build/C/man2/fcntl.2:1142
6257 msgid ""
6258 "The default signal used to notify the lease holder is B<SIGIO>, but this can "
6259 "be changed using the B<F_SETSIG> command to B<fcntl>().  If a B<F_SETSIG> "
6260 "command is performed (even one specifying B<SIGIO>), and the signal handler "
6261 "is established using B<SA_SIGINFO>, then the handler will receive a "
6262 "I<siginfo_t> structure as its second argument, and the I<si_fd> field of "
6263 "this argument will hold the descriptor of the leased file that has been "
6264 "accessed by another process.  (This is useful if the caller holds leases "
6265 "against multiple files)."
6266 msgstr ""
6267
6268 #. type: SS
6269 #: build/C/man2/fcntl.2:1142
6270 #, no-wrap
6271 msgid "File and directory change notification (dnotify)"
6272 msgstr ""
6273
6274 #. type: TP
6275 #: build/C/man2/fcntl.2:1143
6276 #, no-wrap
6277 msgid "B<F_NOTIFY> (I<int>)"
6278 msgstr ""
6279
6280 #. type: Plain text
6281 #: build/C/man2/fcntl.2:1153
6282 msgid ""
6283 "(Linux 2.4 onward)  Provide notification when the directory referred to by "
6284 "I<fd> or any of the files that it contains is changed.  The events to be "
6285 "notified are specified in I<arg>, which is a bit mask specified by ORing "
6286 "together zero or more of the following bits:"
6287 msgstr ""
6288
6289 #. type: TP
6290 #: build/C/man2/fcntl.2:1156
6291 #, no-wrap
6292 msgid "B<DN_ACCESS>"
6293 msgstr ""
6294
6295 #. type: Plain text
6296 #: build/C/man2/fcntl.2:1163
6297 msgid "A file was accessed (B<read>(2), B<pread>(2), B<readv>(2), and similar)"
6298 msgstr ""
6299
6300 #. type: TP
6301 #: build/C/man2/fcntl.2:1163
6302 #, no-wrap
6303 msgid "B<DN_MODIFY>"
6304 msgstr ""
6305
6306 #. type: Plain text
6307 #: build/C/man2/fcntl.2:1172
6308 msgid ""
6309 "A file was modified (B<write>(2), B<pwrite>(2), B<writev>(2), "
6310 "B<truncate>(2), B<ftruncate>(2), and similar)."
6311 msgstr ""
6312
6313 #. type: TP
6314 #: build/C/man2/fcntl.2:1172
6315 #, no-wrap
6316 msgid "B<DN_CREATE>"
6317 msgstr ""
6318
6319 #. type: Plain text
6320 #: build/C/man2/fcntl.2:1183
6321 msgid ""
6322 "A file was created (B<open>(2), B<creat>(2), B<mknod>(2), B<mkdir>(2), "
6323 "B<link>(2), B<symlink>(2), B<rename>(2)  into this directory)."
6324 msgstr ""
6325
6326 #. type: TP
6327 #: build/C/man2/fcntl.2:1183
6328 #, no-wrap
6329 msgid "B<DN_DELETE>"
6330 msgstr ""
6331
6332 #. type: Plain text
6333 #: build/C/man2/fcntl.2:1190
6334 msgid ""
6335 "A file was unlinked (B<unlink>(2), B<rename>(2)  to another directory, "
6336 "B<rmdir>(2))."
6337 msgstr ""
6338
6339 #. type: TP
6340 #: build/C/man2/fcntl.2:1190
6341 #, no-wrap
6342 msgid "B<DN_RENAME>"
6343 msgstr ""
6344
6345 #. type: Plain text
6346 #: build/C/man2/fcntl.2:1194
6347 msgid "A file was renamed within this directory (B<rename>(2))."
6348 msgstr ""
6349
6350 #. type: TP
6351 #: build/C/man2/fcntl.2:1194
6352 #, no-wrap
6353 msgid "B<DN_ATTRIB>"
6354 msgstr ""
6355
6356 #. type: Plain text
6357 #: build/C/man2/fcntl.2:1202
6358 msgid ""
6359 "The attributes of a file were changed (B<chown>(2), B<chmod>(2), "
6360 "B<utime>(2), B<utimensat>(2), and similar)."
6361 msgstr ""
6362
6363 #. type: Plain text
6364 #: build/C/man2/fcntl.2:1210
6365 msgid ""
6366 "(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro "
6367 "must be defined before including I<any> header files.)"
6368 msgstr ""
6369
6370 #. type: Plain text
6371 #: build/C/man2/fcntl.2:1218
6372 msgid ""
6373 "Directory notifications are normally \"one-shot\", and the application must "
6374 "reregister to receive further notifications.  Alternatively, if "
6375 "B<DN_MULTISHOT> is included in I<arg>, then notification will remain in "
6376 "effect until explicitly removed."
6377 msgstr ""
6378
6379 #.  The following does seem a poor API-design choice...
6380 #. type: Plain text
6381 #: build/C/man2/fcntl.2:1230
6382 msgid ""
6383 "A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> "
6384 "being added to the set already monitored.  To disable notification of all "
6385 "events, make an B<F_NOTIFY> call specifying I<arg> as 0."
6386 msgstr ""
6387
6388 #. type: Plain text
6389 #: build/C/man2/fcntl.2:1253
6390 msgid ""
6391 "Notification occurs via delivery of a signal.  The default signal is "
6392 "B<SIGIO>, but this can be changed using the B<F_SETSIG> command to "
6393 "B<fcntl>().  (Note that B<SIGIO> is one of the nonqueuing standard signals; "
6394 "switching to the use of a real-time signal means that multiple notifications "
6395 "can be queued to the process.)  In the latter case, the signal handler "
6396 "receives a I<siginfo_t> structure as its second argument (if the handler was "
6397 "established using B<SA_SIGINFO>)  and the I<si_fd> field of this structure "
6398 "contains the file descriptor which generated the notification (useful when "
6399 "establishing notification on multiple directories)."
6400 msgstr ""
6401
6402 #. type: Plain text
6403 #: build/C/man2/fcntl.2:1258
6404 msgid ""
6405 "Especially when using B<DN_MULTISHOT>, a real time signal should be used for "
6406 "notification, so that multiple notifications can be queued."
6407 msgstr ""
6408
6409 #. type: Plain text
6410 #: build/C/man2/fcntl.2:1267
6411 msgid ""
6412 "B<NOTE:> New applications should use the I<inotify> interface (available "
6413 "since kernel 2.6.13), which provides a much superior interface for obtaining "
6414 "notifications of filesystem events.  See B<inotify>(7)."
6415 msgstr ""
6416
6417 #. type: SS
6418 #: build/C/man2/fcntl.2:1267
6419 #, no-wrap
6420 msgid "Changing the capacity of a pipe"
6421 msgstr ""
6422
6423 #. type: TP
6424 #: build/C/man2/fcntl.2:1268
6425 #, no-wrap
6426 msgid "B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)"
6427 msgstr ""
6428
6429 #. type: Plain text
6430 #: build/C/man2/fcntl.2:1297
6431 msgid ""
6432 "Change the capacity of the pipe referred to by I<fd> to be at least I<arg> "
6433 "bytes.  An unprivileged process can adjust the pipe capacity to any value "
6434 "between the system page size and the limit defined in "
6435 "I</proc/sys/fs/pipe-max-size> (see B<proc>(5)).  Attempts to set the pipe "
6436 "capacity below the page size are silently rounded up to the page size.  "
6437 "Attempts by an unprivileged process to set the pipe capacity above the limit "
6438 "in I</proc/sys/fs/pipe-max-size> yield the error B<EPERM>; a privileged "
6439 "process (B<CAP_SYS_RESOURCE>)  can override the limit.  When allocating the "
6440 "buffer for the pipe, the kernel may use a capacity larger than I<arg>, if "
6441 "that is convenient for the implementation.  The actual capacity that is set "
6442 "is returned as the function result.  Attempting to set the pipe capacity "
6443 "smaller than the amount of buffer space currently used to store data "
6444 "produces the error B<EBUSY>."
6445 msgstr ""
6446
6447 #. type: TP
6448 #: build/C/man2/fcntl.2:1297
6449 #, no-wrap
6450 msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)"
6451 msgstr ""
6452
6453 #. type: Plain text
6454 #: build/C/man2/fcntl.2:1301
6455 msgid ""
6456 "Return (as the function result) the capacity of the pipe referred to by "
6457 "I<fd>."
6458 msgstr ""
6459
6460 #. type: Plain text
6461 #: build/C/man2/fcntl.2:1303
6462 msgid "For a successful call, the return value depends on the operation:"
6463 msgstr ""
6464
6465 #. type: TP
6466 #: build/C/man2/fcntl.2:1303
6467 #, no-wrap
6468 msgid "B<F_DUPFD>"
6469 msgstr ""
6470
6471 #. type: Plain text
6472 #: build/C/man2/fcntl.2:1306
6473 msgid "The new descriptor."
6474 msgstr ""
6475
6476 #. type: TP
6477 #: build/C/man2/fcntl.2:1306
6478 #, no-wrap
6479 msgid "B<F_GETFD>"
6480 msgstr ""
6481
6482 #. type: Plain text
6483 #: build/C/man2/fcntl.2:1309
6484 msgid "Value of file descriptor flags."
6485 msgstr ""
6486
6487 #. type: TP
6488 #: build/C/man2/fcntl.2:1309
6489 #, no-wrap
6490 msgid "B<F_GETFL>"
6491 msgstr ""
6492
6493 #. type: Plain text
6494 #: build/C/man2/fcntl.2:1312
6495 msgid "Value of file status flags."
6496 msgstr ""
6497
6498 #. type: TP
6499 #: build/C/man2/fcntl.2:1312
6500 #, no-wrap
6501 msgid "B<F_GETLEASE>"
6502 msgstr ""
6503
6504 #. type: Plain text
6505 #: build/C/man2/fcntl.2:1315
6506 msgid "Type of lease held on file descriptor."
6507 msgstr ""
6508
6509 #. type: TP
6510 #: build/C/man2/fcntl.2:1315
6511 #, no-wrap
6512 msgid "B<F_GETOWN>"
6513 msgstr ""
6514
6515 #. type: Plain text
6516 #: build/C/man2/fcntl.2:1318
6517 msgid "Value of descriptor owner."
6518 msgstr ""
6519
6520 #. type: TP
6521 #: build/C/man2/fcntl.2:1318
6522 #, no-wrap
6523 msgid "B<F_GETSIG>"
6524 msgstr ""
6525
6526 #. type: Plain text
6527 #: build/C/man2/fcntl.2:1324
6528 msgid ""
6529 "Value of signal sent when read or write becomes possible, or zero for "
6530 "traditional B<SIGIO> behavior."
6531 msgstr ""
6532
6533 #. type: TP
6534 #: build/C/man2/fcntl.2:1324
6535 #, no-wrap
6536 msgid "B<F_GETPIPE_SZ>, B<F_SETPIPE_SZ>"
6537 msgstr ""
6538
6539 #. type: Plain text
6540 #: build/C/man2/fcntl.2:1327
6541 msgid "The pipe capacity."
6542 msgstr ""
6543
6544 #. type: TP
6545 #: build/C/man2/fcntl.2:1327
6546 #, no-wrap
6547 msgid "All other commands"
6548 msgstr ""
6549
6550 #. type: Plain text
6551 #: build/C/man2/fcntl.2:1330
6552 msgid "Zero."
6553 msgstr ""
6554
6555 #. type: Plain text
6556 #: build/C/man2/fcntl.2:1334
6557 msgid "On error, -1 is returned, and I<errno> is set appropriately."
6558 msgstr ""
6559
6560 #. type: TP
6561 #: build/C/man2/fcntl.2:1335 build/C/man3/lockf.3:122
6562 #, no-wrap
6563 msgid "B<EACCES> or B<EAGAIN>"
6564 msgstr ""
6565
6566 #. type: Plain text
6567 #: build/C/man2/fcntl.2:1338
6568 msgid "Operation is prohibited by locks held by other processes."
6569 msgstr ""
6570
6571 #. type: TP
6572 #: build/C/man2/fcntl.2:1338 build/C/man2/fork.2:186 build/C/man2/fork.2:191 build/C/man2/fork.2:209
6573 #, no-wrap
6574 msgid "B<EAGAIN>"
6575 msgstr ""
6576
6577 #. type: Plain text
6578 #: build/C/man2/fcntl.2:1342
6579 msgid ""
6580 "The operation is prohibited because the file has been memory-mapped by "
6581 "another process."
6582 msgstr ""
6583
6584 #. type: Plain text
6585 #: build/C/man2/fcntl.2:1351
6586 msgid ""
6587 "I<fd> is not an open file descriptor, or the command was B<F_SETLK> or "
6588 "B<F_SETLKW> and the file descriptor open mode doesn't match with the type of "
6589 "lock requested."
6590 msgstr ""
6591
6592 #. type: TP
6593 #: build/C/man2/fcntl.2:1351 build/C/man3/lockf.3:142
6594 #, no-wrap
6595 msgid "B<EDEADLK>"
6596 msgstr ""
6597
6598 #. type: Plain text
6599 #: build/C/man2/fcntl.2:1356
6600 msgid ""
6601 "It was detected that the specified B<F_SETLKW> command would cause a "
6602 "deadlock."
6603 msgstr ""
6604
6605 #. type: Plain text
6606 #: build/C/man2/fcntl.2:1360
6607 msgid "I<lock> is outside your accessible address space."
6608 msgstr ""
6609
6610 #. type: Plain text
6611 #: build/C/man2/fcntl.2:1372
6612 msgid ""
6613 "For B<F_SETLKW>, the command was interrupted by a signal; see B<signal>(7).  "
6614 "For B<F_GETLK> and B<F_SETLK>, the command was interrupted by a signal "
6615 "before the lock was checked or acquired.  Most likely when locking a remote "
6616 "file (e.g., locking over NFS), but can sometimes happen locally."
6617 msgstr ""
6618
6619 #. type: Plain text
6620 #: build/C/man2/fcntl.2:1377
6621 msgid "The value specified in I<cmd> is not recognized by this kernel."
6622 msgstr ""
6623
6624 #. type: Plain text
6625 #: build/C/man2/fcntl.2:1387
6626 msgid ""
6627 "For B<F_DUPFD>, I<arg> is negative or is greater than the maximum allowable "
6628 "value.  For B<F_SETSIG>, I<arg> is not an allowable signal number."
6629 msgstr ""
6630
6631 #. type: Plain text
6632 #: build/C/man2/fcntl.2:1398
6633 msgid ""
6634 "I<cmd> is B<F_OFD_SETLK>, B<F_OFD_SETLKW>, or B<F_OFD_GETLK>, and I<l_pid> "
6635 "was not specified as zero."
6636 msgstr ""
6637
6638 #. type: Plain text
6639 #: build/C/man2/fcntl.2:1403
6640 msgid ""
6641 "For B<F_DUPFD>, the process already has the maximum number of file "
6642 "descriptors open."
6643 msgstr ""
6644
6645 #. type: TP
6646 #: build/C/man2/fcntl.2:1403 build/C/man2/flock.2:131 build/C/man3/lockf.3:151
6647 #, no-wrap
6648 msgid "B<ENOLCK>"
6649 msgstr ""
6650
6651 #. type: Plain text
6652 #: build/C/man2/fcntl.2:1407
6653 msgid ""
6654 "Too many segment locks open, lock table is full, or a remote locking "
6655 "protocol failed (e.g., locking over NFS)."
6656 msgstr ""
6657
6658 #. type: Plain text
6659 #: build/C/man2/fcntl.2:1415
6660 msgid ""
6661 "B<F_NOTIFY> was specified in I<cmd>, but I<fd> does not refer to a "
6662 "directory."
6663 msgstr ""
6664
6665 #. type: Plain text
6666 #: build/C/man2/fcntl.2:1420
6667 msgid ""
6668 "Attempted to clear the B<O_APPEND> flag on a file that has the append-only "
6669 "attribute set."
6670 msgstr ""
6671
6672 #. type: Plain text
6673 #: build/C/man2/fcntl.2:1433
6674 msgid ""
6675 "SVr4, 4.3BSD, POSIX.1-2001.  Only the operations B<F_DUPFD>, B<F_GETFD>, "
6676 "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> "
6677 "are specified in POSIX.1-2001."
6678 msgstr ""
6679
6680 #. type: Plain text
6681 #: build/C/man2/fcntl.2:1445
6682 msgid ""
6683 "B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001.  (To get their "
6684 "definitions, define either B<_BSD_SOURCE>, or B<_XOPEN_SOURCE> with the "
6685 "value 500 or greater, or B<_POSIX_C_SOURCE> with the value 200809L or "
6686 "greater.)"
6687 msgstr ""
6688
6689 #. type: Plain text
6690 #: build/C/man2/fcntl.2:1453
6691 msgid ""
6692 "B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008.  (To get this definition, "
6693 "define B<_POSIX_C_SOURCE> with the value 200809L or greater, or "
6694 "B<_XOPEN_SOURCE> with the value 700 or greater.)"
6695 msgstr ""
6696
6697 #.  .PP
6698 #.  SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions.
6699 #. type: Plain text
6700 #: build/C/man2/fcntl.2:1470
6701 msgid ""
6702 "B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, "
6703 "B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are "
6704 "Linux-specific.  (Define the B<_GNU_SOURCE> macro to obtain these "
6705 "definitions.)"
6706 msgstr ""
6707
6708 #. type: Plain text
6709 #: build/C/man2/fcntl.2:1479
6710 msgid ""
6711 "B<F_OFD_SETLK>, B<F_OFD_SETLKW>, and B<F_OFD_GETLK> are Linux-specific (and "
6712 "one must define B<_GNU_SOURCE> to obtain their definitions), but work is "
6713 "being done to have them included in the next version of POSIX.1."
6714 msgstr ""
6715
6716 #. type: Plain text
6717 #: build/C/man2/fcntl.2:1485 build/C/man2/fcntl.2:1511
6718 msgid ""
6719 "The errors returned by B<dup2>(2)  are different from those returned by "
6720 "B<F_DUPFD>."
6721 msgstr ""
6722
6723 #. type: SS
6724 #: build/C/man2/fcntl.2:1485
6725 #, no-wrap
6726 msgid "File locking"
6727 msgstr ""
6728
6729 #. type: Plain text
6730 #: build/C/man2/fcntl.2:1506 build/C/man2/fcntl.2:1550
6731 msgid ""
6732 "The original Linux B<fcntl>()  system call was not designed to handle large "
6733 "file offsets (in the I<flock> structure).  Consequently, an B<fcntl64>()  "
6734 "system call was added in Linux 2.4.  The newer system call employs a "
6735 "different structure for file locking, I<flock64>, and corresponding "
6736 "commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>.  However, these "
6737 "details can be ignored by applications using glibc, whose B<fcntl>()  "
6738 "wrapper function transparently employs the more recent system call where it "
6739 "is available."
6740 msgstr ""
6741
6742 #. type: SS
6743 #: build/C/man2/fcntl.2:1511
6744 #, no-wrap
6745 msgid "Record locks"
6746 msgstr ""
6747
6748 #. type: Plain text
6749 #: build/C/man2/fcntl.2:1517
6750 msgid ""
6751 "Since kernel 2.0, there is no interaction between the types of lock placed "
6752 "by B<flock>(2)  and B<fcntl>()."
6753 msgstr ""
6754
6755 #.  e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
6756 #.  documents it in fcntl(5).  mtk, May 2007
6757 #.  Also, FreeBSD documents it (Apr 2014).
6758 #. type: Plain text
6759 #: build/C/man2/fcntl.2:1529
6760 msgid ""
6761 "Several systems have more fields in I<struct flock> such as, for example, "
6762 "I<l_sysid>.  Clearly, I<l_pid> alone is not going to be very useful if the "
6763 "process holding the lock may live on a different machine."
6764 msgstr ""
6765
6766 #. type: SS
6767 #: build/C/man2/fcntl.2:1550
6768 #, no-wrap
6769 msgid "Record locking and NFS"
6770 msgstr ""
6771
6772 #
6773 #.  Neil Brown: With NFSv3 the failure mode is the reverse.  If
6774 #.      the server loses contact with a client then any lock stays in place
6775 #.      indefinitely ("why can't I read my mail"... I remember it well).
6776 #
6777 #
6778 #.  Jeff Layton:
6779 #.      Note that this is not a firm timeout. The server runs a job
6780 #.      periodically to clean out expired stateful objects, and it's likely
6781 #.      that there is some time (maybe even up to another whole lease period)
6782 #.      between when the timeout expires and the job actually runs. If the
6783 #.      client gets a RENEW in there within that window, its lease will be
6784 #.      renewed and its state preserved.
6785 #. type: Plain text
6786 #: build/C/man2/fcntl.2:1578
6787 msgid ""
6788 "Before Linux 3.12, if an NFSv4 client loses contact with the server for a "
6789 "period of time (defined as more than 90 seconds with no communication), it "
6790 "might lose and regain a lock without ever being aware of the fact.  (The "
6791 "period of time after which contact is assumed lost is known as the NFSv4 "
6792 "leasetime.  On a Linux NFS server, this can be determined by looking at "
6793 "I</proc/fs/nfsd/nfsv4leasetime>, which expresses the period in seconds.  The "
6794 "default value for this file is 90.)  This scenario potentially risks data "
6795 "corruption, since another process might acquire a lock in the intervening "
6796 "period and perform file I/O."
6797 msgstr ""
6798
6799 #.  commit ef1820f9be27b6ad158f433ab38002ab8131db4d
6800 #.  commit f6de7a39c181dfb8a2c534661a53c73afb3081cd
6801 #. type: Plain text
6802 #: build/C/man2/fcntl.2:1592
6803 msgid ""
6804 "Since Linux 3.12, if an NFSv4 client loses contact with the server, any I/O "
6805 "to the file by a process which \"thinks\" it holds a lock will fail until "
6806 "that process closes and reopens the file.  A kernel parameter, "
6807 "I<nfs.recover_lost_locks>, can be set to 1 to obtain the pre-3.12 behavior, "
6808 "whereby the client will attempt to recover lost locks when contact is "
6809 "reestablished with the server.  Because of the attendant risk of data "
6810 "corruption, this parameter defaults to 0 (disabled)."
6811 msgstr ""
6812
6813 #. type: SS
6814 #: build/C/man2/fcntl.2:1593
6815 #, no-wrap
6816 msgid "F_SETFL"
6817 msgstr ""
6818
6819 #.  FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
6820 #.  via fcntl(2), but currently Linux does not permit this
6821 #.  See http://bugzilla.kernel.org/show_bug.cgi?id=5994
6822 #. type: Plain text
6823 #: build/C/man2/fcntl.2:1605
6824 msgid ""
6825 "It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> "
6826 "and B<O_SYNC> flags.  Attempts to change the state of these flags are "
6827 "silently ignored."
6828 msgstr ""
6829
6830 #. type: SS
6831 #: build/C/man2/fcntl.2:1605
6832 #, no-wrap
6833 msgid "F_GETOWN"
6834 msgstr ""
6835
6836 #.  glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h
6837 #.  mtk, Dec 04: some limited testing on alpha and ia64 seems to
6838 #.  indicate that ANY negative PGID value will cause F_GETOWN
6839 #.  to misinterpret the return as an error. Some other architectures
6840 #.  seem to have the same range check as i386.
6841 #. type: Plain text
6842 #: build/C/man2/fcntl.2:1631
6843 msgid ""
6844 "A limitation of the Linux system call conventions on some architectures "
6845 "(notably i386) means that if a (negative)  process group ID to be returned "
6846 "by B<F_GETOWN> falls in the range -1 to -4095, then the return value is "
6847 "wrongly interpreted by glibc as an error in the system call; that is, the "
6848 "return value of B<fcntl>()  will be -1, and I<errno> will contain the "
6849 "(positive) process group ID.  The Linux-specific B<F_GETOWN_EX> operation "
6850 "avoids this problem.  Since glibc version 2.11, glibc makes the kernel "
6851 "B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using "
6852 "B<F_GETOWN_EX>."
6853 msgstr ""
6854
6855 #. type: SS
6856 #: build/C/man2/fcntl.2:1631
6857 #, no-wrap
6858 msgid "F_SETOWN"
6859 msgstr ""
6860
6861 #. type: Plain text
6862 #: build/C/man2/fcntl.2:1649
6863 msgid ""
6864 "In Linux 2.4 and earlier, there is bug that can occur when an unprivileged "
6865 "process uses B<F_SETOWN> to specify the owner of a socket file descriptor as "
6866 "a process (group) other than the caller.  In this case, B<fcntl>()  can "
6867 "return -1 with I<errno> set to B<EPERM>, even when the owner process (group) "
6868 "is one that the caller has permission to send signals to.  Despite this "
6869 "error return, the file descriptor owner is set, and signals will be sent to "
6870 "the owner."
6871 msgstr ""
6872
6873 #. type: SS
6874 #: build/C/man2/fcntl.2:1649
6875 #, no-wrap
6876 msgid "Deadlock detection"
6877 msgstr ""
6878
6879 #. type: Plain text
6880 #: build/C/man2/fcntl.2:1668
6881 msgid ""
6882 "The deadlock-detection algorithm employed by the kernel when dealing with "
6883 "B<F_SETLKW> requests can yield both false negatives (failures to detect "
6884 "deadlocks, leaving a set of deadlocked processes blocked indefinitely)  and "
6885 "false positives (B<EDEADLK> errors when there is no deadlock).  For example, "
6886 "the kernel limits the lock depth of its dependency search to 10 steps, "
6887 "meaning that circular deadlock chains that exceed that size will not be "
6888 "detected.  In addition, the kernel may falsely indicate a deadlock when two "
6889 "or more processes created using the B<clone>(2)  B<CLONE_FILES> flag place "
6890 "locks that appear (to the kernel) to conflict."
6891 msgstr ""
6892
6893 #.  http://marc.info/?l=linux-kernel&m=119013491707153&w=2
6894 #
6895 #.  Reconfirmed by Jeff Layton
6896 #.      From: Jeff Layton <jlayton <at> redhat.com>
6897 #.      Subject: Re: Status of fcntl() mandatory locking
6898 #.      Newsgroups: gmane.linux.file-systems
6899 #.      Date: 2014-04-28 10:07:57 GMT
6900 #.      http://thread.gmane.org/gmane.linux.file-systems/84481/focus=84518
6901 #. type: Plain text
6902 #: build/C/man2/fcntl.2:1690
6903 msgid ""
6904 "The Linux implementation of mandatory locking is subject to race conditions "
6905 "which render it unreliable: a B<write>(2)  call that overlaps with a lock "
6906 "may modify data after the mandatory lock is acquired; a B<read>(2)  call "
6907 "that overlaps with a lock may detect changes to data that were made only "
6908 "after a write lock was acquired.  Similar races exist between mandatory "
6909 "locks and B<mmap>(2).  It is therefore inadvisable to rely on mandatory "
6910 "locking."
6911 msgstr ""
6912
6913 #. type: Plain text
6914 #: build/C/man2/fcntl.2:1698
6915 msgid ""
6916 "B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), "
6917 "B<capabilities>(7), B<feature_test_macros>(7)"
6918 msgstr ""
6919
6920 #. type: Plain text
6921 #: build/C/man2/fcntl.2:1711
6922 msgid ""
6923 "I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux "
6924 "kernel source directory I<Documentation/filesystems/> (on older kernels, "
6925 "these files are directly under the I<Documentation/> directory, and "
6926 "I<mandatory-locking.txt> is called I<mandatory.txt>)"
6927 msgstr ""
6928
6929 #. type: TH
6930 #: build/C/man3/fexecve.3:25
6931 #, no-wrap
6932 msgid "FEXECVE"
6933 msgstr ""
6934
6935 #. type: TH
6936 #: build/C/man3/fexecve.3:25
6937 #, no-wrap
6938 msgid "2014-04-20"
6939 msgstr ""
6940
6941 #. type: Plain text
6942 #: build/C/man3/fexecve.3:28
6943 msgid "fexecve - execute program specified via file descriptor"
6944 msgstr ""
6945
6946 #. type: Plain text
6947 #: build/C/man3/fexecve.3:33
6948 #, no-wrap
6949 msgid ""
6950 "B<int fexecve(int >I<fd>B<, char *const >I<argv>B<[], char *const "
6951 ">I<envp>B<[]);>\n"
6952 msgstr ""
6953
6954 #. type: Plain text
6955 #: build/C/man3/fexecve.3:41
6956 msgid "B<fexecve>():"
6957 msgstr ""
6958
6959 #. type: Plain text
6960 #: build/C/man3/fexecve.3:50 build/C/man3/getcwd.3:54
6961 msgid "_GNU_SOURCE"
6962 msgstr ""
6963
6964 #.  POSIX.1-2008 specifies the O_EXEC flag for open as an alternative,
6965 #.  but Linux doesn't support this flag yet.
6966 #. type: Plain text
6967 #: build/C/man3/fexecve.3:67
6968 msgid ""
6969 "B<fexecve>()  performs the same task as B<execve>(2), with the difference "
6970 "that the file to be executed is specified via a file descriptor, I<fd>, "
6971 "rather than via a pathname.  The file descriptor I<fd> must be opened "
6972 "read-only, and the caller must have permission to execute the file that it "
6973 "refers to."
6974 msgstr ""
6975
6976 #. type: Plain text
6977 #: build/C/man3/fexecve.3:74
6978 msgid ""
6979 "A successful call to B<fexecve>()  never returns.  On error, the function "
6980 "does return, with a result value of -1, and I<errno> is set appropriately."
6981 msgstr ""
6982
6983 #. type: Plain text
6984 #: build/C/man3/fexecve.3:78
6985 msgid "Errors are as for B<execve>(2), with the following additions:"
6986 msgstr ""
6987
6988 #. type: Plain text
6989 #: build/C/man3/fexecve.3:86
6990 msgid ""
6991 "I<fd> is not a valid file descriptor, or I<argv> is NULL, or I<envp> is "
6992 "NULL."
6993 msgstr ""
6994
6995 #. type: Plain text
6996 #: build/C/man3/fexecve.3:91
6997 msgid "The I</proc> filesystem could not be accessed."
6998 msgstr ""
6999
7000 #. type: Plain text
7001 #: build/C/man3/fexecve.3:94
7002 msgid "B<fexecve>()  is implemented since glibc 2.3.2."
7003 msgstr ""
7004
7005 #. type: Plain text
7006 #: build/C/man3/fexecve.3:99
7007 msgid ""
7008 "POSIX.1-2008.  This function is not specified in POSIX.1-2001, and is not "
7009 "widely available on other systems.  It is specified in POSIX.1-2008."
7010 msgstr ""
7011
7012 #. type: Plain text
7013 #: build/C/man3/fexecve.3:107
7014 msgid ""
7015 "On Linux, B<fexecve>()  is implemented using the B<proc>(5)  filesystem, so "
7016 "I</proc> needs to be mounted and available at the time of the call."
7017 msgstr ""
7018
7019 #. type: Plain text
7020 #: build/C/man3/fexecve.3:120
7021 msgid ""
7022 "If I<fd> is a file descriptor that refers to an interpreter script and has "
7023 "been marked as close-on-exec (see the discussion of the B<FD_CLOEXEC> in "
7024 "B<fcntl>(2)), B<fexecve>()  will fail to execute the script, since, by the "
7025 "time the script interpreter tries to access the script file, I<fd> has "
7026 "already been closed."
7027 msgstr ""
7028
7029 #. type: Plain text
7030 #: build/C/man3/fexecve.3:137
7031 msgid ""
7032 "The idea behind B<fexecve>()  is to allow the caller to verify (checksum) "
7033 "the contents of an executable before executing it.  Simply opening the file, "
7034 "checksumming the contents, and then doing an B<execve>(2)  would not "
7035 "suffice, since, between the two steps, the filename, or a directory prefix "
7036 "of the pathname, could have been exchanged (by, for example, modifying the "
7037 "target of a symbolic link).  B<fexecve>()  does not mitigate the problem "
7038 "that the I<contents> of a file could be changed between the checksumming and "
7039 "the call to B<fexecve>(); for that, the solution is to ensure that the "
7040 "permissions on the file prevent it from being modified by malicious users."
7041 msgstr ""
7042
7043 #. type: Plain text
7044 #: build/C/man3/fexecve.3:139
7045 msgid "B<execve>(2)"
7046 msgstr ""
7047
7048 #. type: TH
7049 #: build/C/man2/flock.2:35
7050 #, no-wrap
7051 msgid "FLOCK"
7052 msgstr ""
7053
7054 #. type: TH
7055 #: build/C/man2/flock.2:35 build/C/man2/uname.2:27
7056 #, no-wrap
7057 msgid "2014-09-21"
7058 msgstr ""
7059
7060 #. type: Plain text
7061 #: build/C/man2/flock.2:38
7062 msgid "flock - apply or remove an advisory lock on an open file"
7063 msgstr ""
7064
7065 #. type: Plain text
7066 #: build/C/man2/flock.2:40
7067 msgid "B<#include E<lt>sys/file.hE<gt>>"
7068 msgstr ""
7069
7070 #. type: Plain text
7071 #: build/C/man2/flock.2:42
7072 msgid "B<int flock(int >I<fd>B<, int >I<operation>B<);>"
7073 msgstr ""
7074
7075 #. type: Plain text
7076 #: build/C/man2/flock.2:48
7077 msgid ""
7078 "Apply or remove an advisory lock on the open file specified by I<fd>.  The "
7079 "argument I<operation> is one of the following:"
7080 msgstr ""
7081
7082 #. type: TP
7083 #: build/C/man2/flock.2:49
7084 #, no-wrap
7085 msgid "B<LOCK_SH>"
7086 msgstr ""
7087
7088 #. type: Plain text
7089 #: build/C/man2/flock.2:54
7090 msgid ""
7091 "Place a shared lock.  More than one process may hold a shared lock for a "
7092 "given file at a given time."
7093 msgstr ""
7094
7095 #. type: TP
7096 #: build/C/man2/flock.2:54
7097 #, no-wrap
7098 msgid "B<LOCK_EX>"
7099 msgstr ""
7100
7101 #. type: Plain text
7102 #: build/C/man2/flock.2:59
7103 msgid ""
7104 "Place an exclusive lock.  Only one process may hold an exclusive lock for a "
7105 "given file at a given time."
7106 msgstr ""
7107
7108 #. type: TP
7109 #: build/C/man2/flock.2:59
7110 #, no-wrap
7111 msgid "B<LOCK_UN>"
7112 msgstr ""
7113
7114 #. type: Plain text
7115 #: build/C/man2/flock.2:62
7116 msgid "Remove an existing lock held by this process."
7117 msgstr ""
7118
7119 #. type: Plain text
7120 #: build/C/man2/flock.2:71
7121 msgid ""
7122 "A call to B<flock>()  may block if an incompatible lock is held by another "
7123 "process.  To make a nonblocking request, include B<LOCK_NB> (by ORing)  with "
7124 "any of the above operations."
7125 msgstr ""
7126
7127 #. type: Plain text
7128 #: build/C/man2/flock.2:73
7129 msgid "A single file may not simultaneously have both shared and exclusive locks."
7130 msgstr ""
7131
7132 #. type: Plain text
7133 #: build/C/man2/flock.2:88
7134 msgid ""
7135 "Locks created by B<flock>()  are associated with an open file description "
7136 "(see B<open>(2)).  This means that duplicate file descriptors (created by, "
7137 "for example, B<fork>(2)  or B<dup>(2))  refer to the same lock, and this "
7138 "lock may be modified or released using any of these descriptors.  "
7139 "Furthermore, the lock is released either by an explicit B<LOCK_UN> operation "
7140 "on any of these duplicate descriptors, or when all such descriptors have "
7141 "been closed."
7142 msgstr ""
7143
7144 #. type: Plain text
7145 #: build/C/man2/flock.2:97
7146 msgid ""
7147 "If a process uses B<open>(2)  (or similar) to obtain more than one "
7148 "descriptor for the same file, these descriptors are treated independently by "
7149 "B<flock>().  An attempt to lock the file using one of these file descriptors "
7150 "may be denied by a lock that the calling process has already placed via "
7151 "another descriptor."
7152 msgstr ""
7153
7154 #. type: Plain text
7155 #: build/C/man2/flock.2:104
7156 msgid ""
7157 "A process may hold only one type of lock (shared or exclusive)  on a file.  "
7158 "Subsequent B<flock>()  calls on an already locked file will convert an "
7159 "existing lock to the new lock mode."
7160 msgstr ""
7161
7162 #. type: Plain text
7163 #: build/C/man2/flock.2:109
7164 msgid "Locks created by B<flock>()  are preserved across an B<execve>(2)."
7165 msgstr ""
7166
7167 #. type: Plain text
7168 #: build/C/man2/flock.2:112
7169 msgid ""
7170 "A shared or exclusive lock can be placed on a file regardless of the mode in "
7171 "which the file was opened."
7172 msgstr ""
7173
7174 #. type: Plain text
7175 #: build/C/man2/flock.2:122
7176 msgid "I<fd> is not an open file descriptor."
7177 msgstr ""
7178
7179 #. type: Plain text
7180 #: build/C/man2/flock.2:127
7181 msgid ""
7182 "While waiting to acquire a lock, the call was interrupted by delivery of a "
7183 "signal caught by a handler; see B<signal>(7)."
7184 msgstr ""
7185
7186 #. type: Plain text
7187 #: build/C/man2/flock.2:131
7188 msgid "I<operation> is invalid."
7189 msgstr ""
7190
7191 #. type: Plain text
7192 #: build/C/man2/flock.2:134
7193 msgid "The kernel ran out of memory for allocating lock records."
7194 msgstr ""
7195
7196 #. type: TP
7197 #: build/C/man2/flock.2:134
7198 #, no-wrap
7199 msgid "B<EWOULDBLOCK>"
7200 msgstr ""
7201
7202 #. type: Plain text
7203 #: build/C/man2/flock.2:139
7204 msgid "The file is locked and the B<LOCK_NB> flag was selected."
7205 msgstr ""
7206
7207 #. type: Plain text
7208 #: build/C/man2/flock.2:148
7209 msgid ""
7210 "4.4BSD (the B<flock>()  call first appeared in 4.2BSD).  A version of "
7211 "B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most "
7212 "UNIX systems."
7213 msgstr ""
7214
7215 #.  E.g., according to the flock(2) man page, FreeBSD since at least 5.3
7216 #. type: Plain text
7217 #: build/C/man2/flock.2:171
7218 msgid ""
7219 "Since kernel 2.0, B<flock>()  is implemented as a system call in its own "
7220 "right rather than being emulated in the GNU C library as a call to "
7221 "B<fcntl>(2).  With this implementation, there is no interaction between the "
7222 "types of lock placed by B<flock>()  and B<fcntl>(2), and B<flock>()  does "
7223 "not detect deadlock.  (Note, however, that on some systems, such as the "
7224 "modern BSDs, B<flock>()  and B<fcntl>(2)  locks I<do> interact with one "
7225 "another.)"
7226 msgstr ""
7227
7228 #.  commit 5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2
7229 #. type: Plain text
7230 #: build/C/man2/flock.2:202
7231 msgid ""
7232 "In Linux kernels up to 2.6.11, B<flock>()  does not lock files over NFS "
7233 "(i.e., the scope of locks was limited to the local system).  Instead, one "
7234 "could use B<fcntl>(2)  byte-range locking, which does work over NFS, given a "
7235 "sufficiently recent version of Linux and a server which supports locking.  "
7236 "Since Linux 2.6.12, NFS clients support B<flock>()  locks by emulating them "
7237 "as byte-range locks on the entire file.  This means that B<fcntl>(2)  and "
7238 "B<flock>()  locks I<do> interact with one another over NFS.  Since Linux "
7239 "2.6.37, the kernel supports a compatibility mode that allows B<flock>()  "
7240 "locks (and also B<fcntl>(2)  byte region locks) to be treated as local; see "
7241 "the discussion of the I<local_lock> option in B<nfs>(5)."
7242 msgstr ""
7243
7244 #. type: Plain text
7245 #: build/C/man2/flock.2:208
7246 msgid ""
7247 "B<flock>()  places advisory locks only; given suitable permissions on a "
7248 "file, a process is free to ignore the use of B<flock>()  and perform I/O on "
7249 "the file."
7250 msgstr ""
7251
7252 #. type: Plain text
7253 #: build/C/man2/flock.2:221
7254 msgid ""
7255 "B<flock>()  and B<fcntl>(2)  locks have different semantics with respect to "
7256 "forked processes and B<dup>(2).  On systems that implement B<flock>()  using "
7257 "B<fcntl>(2), the semantics of B<flock>()  will be different from those "
7258 "described in this manual page."
7259 msgstr ""
7260
7261 #.  Kernel 2.5.21 changed things a little: during lock conversion
7262 #.  it is now the highest priority process that will get the lock -- mtk
7263 #. type: Plain text
7264 #: build/C/man2/flock.2:234
7265 msgid ""
7266 "Converting a lock (shared to exclusive, or vice versa) is not guaranteed to "
7267 "be atomic: the existing lock is first removed, and then a new lock is "
7268 "established.  Between these two steps, a pending lock request by another "
7269 "process may be granted, with the result that the conversion either blocks, "
7270 "or fails if B<LOCK_NB> was specified.  (This is the original BSD behavior, "
7271 "and occurs on many other implementations.)"
7272 msgstr ""
7273
7274 #. type: Plain text
7275 #: build/C/man2/flock.2:243
7276 msgid ""
7277 "B<flock>(1), B<close>(2), B<dup>(2), B<execve>(2), B<fcntl>(2), B<fork>(2), "
7278 "B<open>(2), B<lockf>(3)"
7279 msgstr ""
7280
7281 #. type: Plain text
7282 #: build/C/man2/flock.2:248
7283 msgid ""
7284 "I<Documentation/filesystems/locks.txt> in the Linux kernel source tree "
7285 "(I<Documentation/locks.txt> in older kernels)"
7286 msgstr ""
7287
7288 #. type: TH
7289 #: build/C/man2/fork.2:39
7290 #, no-wrap
7291 msgid "FORK"
7292 msgstr ""
7293
7294 #. type: TH
7295 #: build/C/man2/fork.2:39 build/C/man3/fpathconf.3:41 build/C/man2/swapon.2:42
7296 #, no-wrap
7297 msgid "2014-05-28"
7298 msgstr ""
7299
7300 #. type: Plain text
7301 #: build/C/man2/fork.2:42
7302 msgid "fork - create a child process"
7303 msgstr ""
7304
7305 #. type: Plain text
7306 #: build/C/man2/fork.2:46
7307 msgid "B<pid_t fork(void);>"
7308 msgstr ""
7309
7310 #. type: Plain text
7311 #: build/C/man2/fork.2:52
7312 msgid ""
7313 "B<fork>()  creates a new process by duplicating the calling process.  The "
7314 "new process, referred to as the I<child>, is an exact duplicate of the "
7315 "calling process, referred to as the I<parent>, except for the following "
7316 "points:"
7317 msgstr ""
7318
7319 #. type: Plain text
7320 #: build/C/man2/fork.2:56
7321 msgid ""
7322 "The child has its own unique process ID, and this PID does not match the ID "
7323 "of any existing process group (B<setpgid>(2))."
7324 msgstr ""
7325
7326 #. type: Plain text
7327 #: build/C/man2/fork.2:58
7328 msgid "The child's parent process ID is the same as the parent's process ID."
7329 msgstr ""
7330
7331 #. type: Plain text
7332 #: build/C/man2/fork.2:62
7333 msgid ""
7334 "The child does not inherit its parent's memory locks (B<mlock>(2), "
7335 "B<mlockall>(2))."
7336 msgstr ""
7337
7338 #. type: Plain text
7339 #: build/C/man2/fork.2:68
7340 msgid ""
7341 "Process resource utilizations (B<getrusage>(2))  and CPU time counters "
7342 "(B<times>(2))  are reset to zero in the child."
7343 msgstr ""
7344
7345 #. type: Plain text
7346 #: build/C/man2/fork.2:71
7347 msgid "The child's set of pending signals is initially empty (B<sigpending>(2))."
7348 msgstr ""
7349
7350 #. type: Plain text
7351 #: build/C/man2/fork.2:74
7352 msgid ""
7353 "The child does not inherit semaphore adjustments from its parent "
7354 "(B<semop>(2))."
7355 msgstr ""
7356
7357 #. type: Plain text
7358 #: build/C/man2/fork.2:82
7359 msgid ""
7360 "The child does not inherit process-associated record locks from its parent "
7361 "(B<fcntl>(2)).  (On the other hand, it does inherit B<fcntl>(2)  open file "
7362 "description locks and B<flock>(2)  locks from its parent.)"
7363 msgstr ""
7364
7365 #. type: Plain text
7366 #: build/C/man2/fork.2:87
7367 msgid ""
7368 "The child does not inherit timers from its parent (B<setitimer>(2), "
7369 "B<alarm>(2), B<timer_create>(2))."
7370 msgstr ""
7371
7372 #. type: Plain text
7373 #: build/C/man2/fork.2:94
7374 msgid ""
7375 "The child does not inherit outstanding asynchronous I/O operations from its "
7376 "parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any "
7377 "asynchronous I/O contexts from its parent (see B<io_setup>(2))."
7378 msgstr ""
7379
7380 #. type: Plain text
7381 #: build/C/man2/fork.2:99
7382 msgid ""
7383 "The process attributes in the preceding list are all specified in "
7384 "POSIX.1-2001.  The parent and child also differ with respect to the "
7385 "following Linux-specific process attributes:"
7386 msgstr ""
7387
7388 #. type: Plain text
7389 #: build/C/man2/fork.2:106
7390 msgid ""
7391 "The child does not inherit directory change notifications (dnotify)  from "
7392 "its parent (see the description of B<F_NOTIFY> in B<fcntl>(2))."
7393 msgstr ""
7394
7395 #. type: Plain text
7396 #: build/C/man2/fork.2:112
7397 msgid ""
7398 "The B<prctl>(2)  B<PR_SET_PDEATHSIG> setting is reset so that the child does "
7399 "not receive a signal when its parent terminates."
7400 msgstr ""
7401
7402 #. type: Plain text
7403 #: build/C/man2/fork.2:119
7404 msgid ""
7405 "The default timer slack value is set to the parent's current timer slack "
7406 "value.  See the description of B<PR_SET_TIMERSLACK> in B<prctl>(2)."
7407 msgstr ""
7408
7409 #. type: Plain text
7410 #: build/C/man2/fork.2:125
7411 msgid ""
7412 "Memory mappings that have been marked with the B<madvise>(2)  "
7413 "B<MADV_DONTFORK> flag are not inherited across a B<fork>()."
7414 msgstr ""
7415
7416 #. type: Plain text
7417 #: build/C/man2/fork.2:130
7418 msgid "The termination signal of the child is always B<SIGCHLD> (see B<clone>(2))."
7419 msgstr ""
7420
7421 #. type: Plain text
7422 #: build/C/man2/fork.2:136
7423 msgid ""
7424 "The port access permission bits set by B<ioperm>(2)  are not inherited by "
7425 "the child; the child must turn on any bits that it requires using "
7426 "B<ioperm>(2)."
7427 msgstr ""
7428
7429 #. type: Plain text
7430 #: build/C/man2/fork.2:147
7431 msgid ""
7432 "The child process is created with a single thread\\(emthe one that called "
7433 "B<fork>().  The entire virtual address space of the parent is replicated in "
7434 "the child, including the states of mutexes, condition variables, and other "
7435 "pthreads objects; the use of B<pthread_atfork>(3)  may be helpful for "
7436 "dealing with problems that this can cause."
7437 msgstr ""
7438
7439 #. type: Plain text
7440 #: build/C/man2/fork.2:161
7441 msgid ""
7442 "The child inherits copies of the parent's set of open file descriptors.  "
7443 "Each file descriptor in the child refers to the same open file description "
7444 "(see B<open>(2))  as the corresponding file descriptor in the parent.  This "
7445 "means that the two descriptors share open file status flags, current file "
7446 "offset, and signal-driven I/O attributes (see the description of B<F_SETOWN> "
7447 "and B<F_SETSIG> in B<fcntl>(2))."
7448 msgstr ""
7449
7450 #. type: Plain text
7451 #: build/C/man2/fork.2:170
7452 msgid ""
7453 "The child inherits copies of the parent's set of open message queue "
7454 "descriptors (see B<mq_overview>(7)).  Each descriptor in the child refers to "
7455 "the same open message queue description as the corresponding descriptor in "
7456 "the parent.  This means that the two descriptors share the same flags "
7457 "(I<mq_flags>)."
7458 msgstr ""
7459
7460 #. type: Plain text
7461 #: build/C/man2/fork.2:178
7462 msgid ""
7463 "The child inherits copies of the parent's set of open directory streams (see "
7464 "B<opendir>(3)).  POSIX.1-2001 says that the corresponding directory streams "
7465 "in the parent and child I<may> share the directory stream positioning; on "
7466 "Linux/glibc they do not."
7467 msgstr ""
7468
7469 #. type: Plain text
7470 #: build/C/man2/fork.2:185
7471 msgid ""
7472 "On success, the PID of the child process is returned in the parent, and 0 is "
7473 "returned in the child.  On failure, -1 is returned in the parent, no child "
7474 "process is created, and I<errno> is set appropriately."
7475 msgstr ""
7476
7477 #. type: Plain text
7478 #: build/C/man2/fork.2:191
7479 msgid ""
7480 "B<fork>()  cannot allocate sufficient memory to copy the parent's page "
7481 "tables and allocate a task structure for the child."
7482 msgstr ""
7483
7484 #.  NOTE! The following should match the description in pthread_create(3)
7485 #. type: Plain text
7486 #: build/C/man2/fork.2:209
7487 msgid ""
7488 "A system-imposed limit on the number of threads was encountered.  There are "
7489 "a number of limits that may trigger this error: the B<RLIMIT_NPROC> soft "
7490 "resource limit (set via B<setrlimit>(2)), which limits the number of "
7491 "processes and threads for a real user ID, was reached; the kernel's "
7492 "system-wide limit on the number of processes and threads, "
7493 "I</proc/sys/kernel/threads-max>, was reached (see B<proc>(5)); or the "
7494 "maximum number of PIDs, I</proc/sys/kernel/pid_max>, was reached (see "
7495 "B<proc>(5))."
7496 msgstr ""
7497
7498 #. type: Plain text
7499 #: build/C/man2/fork.2:216
7500 msgid ""
7501 "The caller is operating under the B<SCHED_DEADLINE> scheduling policy and "
7502 "does not have the reset-on-fork flag set.  See B<sched>(7)."
7503 msgstr ""
7504
7505 #. type: Plain text
7506 #: build/C/man2/fork.2:220
7507 msgid ""
7508 "B<fork>()  failed to allocate the necessary kernel structures because memory "
7509 "is tight."
7510 msgstr ""
7511
7512 #.  e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
7513 #. type: Plain text
7514 #: build/C/man2/fork.2:226
7515 msgid ""
7516 "B<fork>()  is not supported on this platform (for example, hardware without "
7517 "a Memory-Management Unit)."
7518 msgstr ""
7519
7520 #. type: Plain text
7521 #: build/C/man2/fork.2:235
7522 msgid ""
7523 "Under Linux, B<fork>()  is implemented using copy-on-write pages, so the "
7524 "only penalty that it incurs is the time and memory required to duplicate the "
7525 "parent's page tables, and to create a unique task structure for the child."
7526 msgstr ""
7527
7528 #.  nptl/sysdeps/unix/sysv/linux/fork.c
7529 #.  and does some magic to ensure that getpid(2) returns the right value.
7530 #. type: Plain text
7531 #: build/C/man2/fork.2:259
7532 msgid ""
7533 "Since version 2.3.3, rather than invoking the kernel's B<fork>()  system "
7534 "call, the glibc B<fork>()  wrapper that is provided as part of the NPTL "
7535 "threading implementation invokes B<clone>(2)  with flags that provide the "
7536 "same effect as the traditional system call.  (A call to B<fork>()  is "
7537 "equivalent to a call to B<clone>(2)  specifying I<flags> as just "
7538 "B<SIGCHLD>.)  The glibc wrapper invokes any fork handlers that have been "
7539 "established using B<pthread_atfork>(3)."
7540 msgstr ""
7541
7542 #. type: Plain text
7543 #: build/C/man2/fork.2:264
7544 msgid "See B<pipe>(2)  and B<wait>(2)."
7545 msgstr ""
7546
7547 #. type: Plain text
7548 #: build/C/man2/fork.2:275
7549 msgid ""
7550 "B<clone>(2), B<execve>(2), B<exit>(2), B<setrlimit>(2), B<unshare>(2), "
7551 "B<vfork>(2), B<wait>(2), B<daemon>(3), B<capabilities>(7), B<credentials>(7)"
7552 msgstr ""
7553
7554 #. type: TH
7555 #: build/C/man3/fpathconf.3:41
7556 #, no-wrap
7557 msgid "FPATHCONF"
7558 msgstr ""
7559
7560 #. type: Plain text
7561 #: build/C/man3/fpathconf.3:44
7562 msgid "fpathconf, pathconf - get configuration values for files"
7563 msgstr ""
7564
7565 #. type: Plain text
7566 #: build/C/man3/fpathconf.3:49
7567 #, no-wrap
7568 msgid "B<long fpathconf(int >I<fd>B<, int >I<name>B<);>\n"
7569 msgstr ""
7570
7571 #. type: Plain text
7572 #: build/C/man3/fpathconf.3:51
7573 #, no-wrap
7574 msgid "B<long pathconf(const char *>I<path>B<, int >I<name>B<);>\n"
7575 msgstr ""
7576
7577 #. type: Plain text
7578 #: build/C/man3/fpathconf.3:58
7579 msgid ""
7580 "B<fpathconf>()  gets a value for the configuration option I<name> for the "
7581 "open file descriptor I<fd>."
7582 msgstr ""
7583
7584 #. type: Plain text
7585 #: build/C/man3/fpathconf.3:64
7586 msgid ""
7587 "B<pathconf>()  gets a value for configuration option I<name> for the "
7588 "filename I<path>."
7589 msgstr ""
7590
7591 #. type: Plain text
7592 #: build/C/man3/fpathconf.3:73
7593 msgid ""
7594 "The corresponding macros defined in I<E<lt>unistd.hE<gt>> are minimum "
7595 "values; if an application wants to take advantage of values which may "
7596 "change, a call to B<fpathconf>()  or B<pathconf>()  can be made, which may "
7597 "yield more liberal results."
7598 msgstr ""
7599
7600 #. type: Plain text
7601 #: build/C/man3/fpathconf.3:78
7602 msgid ""
7603 "Setting I<name> equal to one of the following constants returns the "
7604 "following configuration options:"
7605 msgstr ""
7606
7607 #. type: TP
7608 #: build/C/man3/fpathconf.3:78
7609 #, no-wrap
7610 msgid "B<_PC_LINK_MAX>"
7611 msgstr ""
7612
7613 #. type: Plain text
7614 #: build/C/man3/fpathconf.3:88
7615 msgid ""
7616 "returns the maximum number of links to the file.  If I<fd> or I<path> refer "
7617 "to a directory, then the value applies to the whole directory.  The "
7618 "corresponding macro is B<_POSIX_LINK_MAX>."
7619 msgstr ""
7620
7621 #. type: TP
7622 #: build/C/man3/fpathconf.3:88
7623 #, no-wrap
7624 msgid "B<_PC_MAX_CANON>"
7625 msgstr ""
7626
7627 #. type: Plain text
7628 #: build/C/man3/fpathconf.3:97
7629 msgid ""
7630 "returns the maximum length of a formatted input line, where I<fd> or I<path> "
7631 "must refer to a terminal.  The corresponding macro is B<_POSIX_MAX_CANON>."
7632 msgstr ""
7633
7634 #. type: TP
7635 #: build/C/man3/fpathconf.3:97
7636 #, no-wrap
7637 msgid "B<_PC_MAX_INPUT>"
7638 msgstr ""
7639
7640 #. type: Plain text
7641 #: build/C/man3/fpathconf.3:106
7642 msgid ""
7643 "returns the maximum length of an input line, where I<fd> or I<path> must "
7644 "refer to a terminal.  The corresponding macro is B<_POSIX_MAX_INPUT>."
7645 msgstr ""
7646
7647 #. type: TP
7648 #: build/C/man3/fpathconf.3:106
7649 #, no-wrap
7650 msgid "B<_PC_NAME_MAX>"
7651 msgstr ""
7652
7653 #. type: Plain text
7654 #: build/C/man3/fpathconf.3:115
7655 msgid ""
7656 "returns the maximum length of a filename in the directory I<path> or I<fd> "
7657 "that the process is allowed to create.  The corresponding macro is "
7658 "B<_POSIX_NAME_MAX>."
7659 msgstr ""
7660
7661 #. type: TP
7662 #: build/C/man3/fpathconf.3:115
7663 #, no-wrap
7664 msgid "B<_PC_PATH_MAX>"
7665 msgstr ""
7666
7667 #. type: Plain text
7668 #: build/C/man3/fpathconf.3:124
7669 msgid ""
7670 "returns the maximum length of a relative pathname when I<path> or I<fd> is "
7671 "the current working directory.  The corresponding macro is "
7672 "B<_POSIX_PATH_MAX>."
7673 msgstr ""
7674
7675 #. type: TP
7676 #: build/C/man3/fpathconf.3:124
7677 #, no-wrap
7678 msgid "B<_PC_PIPE_BUF>"
7679 msgstr ""
7680
7681 #. type: Plain text
7682 #: build/C/man3/fpathconf.3:133
7683 msgid ""
7684 "returns the size of the pipe buffer, where I<fd> must refer to a pipe or "
7685 "FIFO and I<path> must refer to a FIFO.  The corresponding macro is "
7686 "B<_POSIX_PIPE_BUF>."
7687 msgstr ""
7688
7689 #. type: TP
7690 #: build/C/man3/fpathconf.3:133
7691 #, no-wrap
7692 msgid "B<_PC_CHOWN_RESTRICTED>"
7693 msgstr ""
7694
7695 #. type: Plain text
7696 #: build/C/man3/fpathconf.3:146
7697 msgid ""
7698 "returns nonzero if the B<chown>(2)  call may not be used on this file.  If "
7699 "I<fd> or I<path> refer to a directory, then this applies to all files in "
7700 "that directory.  The corresponding macro is B<_POSIX_CHOWN_RESTRICTED>."
7701 msgstr ""
7702
7703 #. type: TP
7704 #: build/C/man3/fpathconf.3:146
7705 #, no-wrap
7706 msgid "B<_PC_NO_TRUNC>"
7707 msgstr ""
7708
7709 #. type: Plain text
7710 #: build/C/man3/fpathconf.3:153
7711 msgid ""
7712 "returns nonzero if accessing filenames longer than B<_POSIX_NAME_MAX> "
7713 "generates an error.  The corresponding macro is B<_POSIX_NO_TRUNC>."
7714 msgstr ""
7715
7716 #. type: TP
7717 #: build/C/man3/fpathconf.3:153
7718 #, no-wrap
7719 msgid "B<_PC_VDISABLE>"
7720 msgstr ""
7721
7722 #. type: Plain text
7723 #: build/C/man3/fpathconf.3:160
7724 msgid ""
7725 "returns nonzero if special character processing can be disabled, where I<fd> "
7726 "or I<path> must refer to a terminal."
7727 msgstr ""
7728
7729 #. type: Plain text
7730 #: build/C/man3/fpathconf.3:169
7731 msgid ""
7732 "The limit is returned, if one exists.  If the system does not have a limit "
7733 "for the requested resource, -1 is returned, and I<errno> is unchanged.  If "
7734 "there is an error, -1 is returned, and I<errno> is set to reflect the nature "
7735 "of the error."
7736 msgstr ""
7737
7738 #. type: Plain text
7739 #: build/C/man3/fpathconf.3:177
7740 msgid ""
7741 "Files with name lengths longer than the value returned for I<name> equal to "
7742 "B<_PC_NAME_MAX> may exist in the given directory."
7743 msgstr ""
7744
7745 #. type: Plain text
7746 #: build/C/man3/fpathconf.3:180 build/C/man3/sysconf.3:338
7747 msgid ""
7748 "Some returned values may be huge; they are not suitable for allocating "
7749 "memory."
7750 msgstr ""
7751
7752 #. type: Plain text
7753 #: build/C/man3/fpathconf.3:186
7754 msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<confstr>(3), B<sysconf>(3)"
7755 msgstr ""
7756
7757 #. type: TH
7758 #: build/C/man2/fsync.2:38
7759 #, no-wrap
7760 msgid "FSYNC"
7761 msgstr ""
7762
7763 #. type: Plain text
7764 #: build/C/man2/fsync.2:41
7765 msgid "fsync, fdatasync - synchronize a file's in-core state with storage device"
7766 msgstr ""
7767
7768 #. type: Plain text
7769 #: build/C/man2/fsync.2:45
7770 msgid "B<int fsync(int >I<fd>B<);>"
7771 msgstr ""
7772
7773 #. type: Plain text
7774 #: build/C/man2/fsync.2:47
7775 msgid "B<int fdatasync(int >I<fd>B<);>"
7776 msgstr ""
7777
7778 #. type: Plain text
7779 #: build/C/man2/fsync.2:55
7780 msgid "B<fsync>(): _BSD_SOURCE || _XOPEN_SOURCE"
7781 msgstr ""
7782
7783 #.  _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
7784 #. type: Plain text
7785 #: build/C/man2/fsync.2:58
7786 #, no-wrap
7787 msgid "         || /* since glibc 2.8: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L\n"
7788 msgstr ""
7789
7790 #. type: Plain text
7791 #: build/C/man2/fsync.2:61
7792 msgid ""
7793 "B<fdatasync>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L || _XOPEN_SOURCE\\ "
7794 "E<gt>=\\ 500"
7795 msgstr ""
7796
7797 #. type: Plain text
7798 #: build/C/man2/fsync.2:74
7799 msgid ""
7800 "B<fsync>()  transfers (\"flushes\") all modified in-core data of (i.e., "
7801 "modified buffer cache pages for) the file referred to by the file descriptor "
7802 "I<fd> to the disk device (or other permanent storage device) so that all "
7803 "changed information can be retrieved even after the system crashed or was "
7804 "rebooted.  This includes writing through or flushing a disk cache if "
7805 "present.  The call blocks until the device reports that the transfer has "
7806 "completed.  It also flushes metadata information associated with the file "
7807 "(see B<stat>(2))."
7808 msgstr ""
7809
7810 #. type: Plain text
7811 #: build/C/man2/fsync.2:82
7812 msgid ""
7813 "Calling B<fsync>()  does not necessarily ensure that the entry in the "
7814 "directory containing the file has also reached disk.  For that an explicit "
7815 "B<fsync>()  on a file descriptor for the directory is also needed."
7816 msgstr ""
7817
7818 #. type: Plain text
7819 #: build/C/man2/fsync.2:103
7820 msgid ""
7821 "B<fdatasync>()  is similar to B<fsync>(), but does not flush modified "
7822 "metadata unless that metadata is needed in order to allow a subsequent data "
7823 "retrieval to be correctly handled.  For example, changes to I<st_atime> or "
7824 "I<st_mtime> (respectively, time of last access and time of last "
7825 "modification; see B<stat>(2))  do not require flushing because they are not "
7826 "necessary for a subsequent data read to be handled correctly.  On the other "
7827 "hand, a change to the file size (I<st_size>, as made by say "
7828 "B<ftruncate>(2)), would require a metadata flush."
7829 msgstr ""
7830
7831 #. type: Plain text
7832 #: build/C/man2/fsync.2:108
7833 msgid ""
7834 "The aim of B<fdatasync>()  is to reduce disk activity for applications that "
7835 "do not require all metadata to be synchronized with the disk."
7836 msgstr ""
7837
7838 #. type: Plain text
7839 #: build/C/man2/fsync.2:113
7840 msgid ""
7841 "On success, these system calls return zero.  On error, -1 is returned, and "
7842 "I<errno> is set appropriately."
7843 msgstr ""
7844
7845 #. type: Plain text
7846 #: build/C/man2/fsync.2:118
7847 msgid "I<fd> is not a valid open file descriptor."
7848 msgstr ""
7849
7850 #. type: Plain text
7851 #: build/C/man2/fsync.2:121
7852 msgid "An error occurred during synchronization."
7853 msgstr ""
7854
7855 #. type: TP
7856 #: build/C/man2/fsync.2:121
7857 #, no-wrap
7858 msgid "B<EROFS>, B<EINVAL>"
7859 msgstr ""
7860
7861 #. type: Plain text
7862 #: build/C/man2/fsync.2:125
7863 msgid "I<fd> is bound to a special file which does not support synchronization."
7864 msgstr ""
7865
7866 #. type: Plain text
7867 #: build/C/man2/fsync.2:127
7868 msgid "4.3BSD, POSIX.1-2001."
7869 msgstr ""
7870
7871 #. type: SH
7872 #: build/C/man2/fsync.2:127
7873 #, no-wrap
7874 msgid "AVAILABILITY"
7875 msgstr ""
7876
7877 #.  POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
7878 #.  -1: unavailable, 0: ask using sysconf().
7879 #.  glibc defines them to 1.
7880 #. type: Plain text
7881 #: build/C/man2/fsync.2:140
7882 msgid ""
7883 "On POSIX systems on which B<fdatasync>()  is available, "
7884 "B<_POSIX_SYNCHRONIZED_IO> is defined in I<E<lt>unistd.hE<gt>> to a value "
7885 "greater than 0.  (See also B<sysconf>(3).)"
7886 msgstr ""
7887
7888 #. type: Plain text
7889 #: build/C/man2/fsync.2:146
7890 msgid ""
7891 "On some UNIX systems (but not Linux), I<fd> must be a I<writable> file "
7892 "descriptor."
7893 msgstr ""
7894
7895 #. type: Plain text
7896 #: build/C/man2/fsync.2:152
7897 msgid ""
7898 "In Linux 2.2 and earlier, B<fdatasync>()  is equivalent to B<fsync>(), and "
7899 "so has no performance advantage."
7900 msgstr ""
7901
7902 #. type: Plain text
7903 #: build/C/man2/fsync.2:162
7904 msgid ""
7905 "The B<fsync>()  implementations in older kernels and lesser used filesystems "
7906 "does not know how to flush disk caches.  In these cases disk caches need to "
7907 "be disabled using B<hdparm>(8)  or B<sdparm>(8)  to guarantee safe "
7908 "operation."
7909 msgstr ""
7910
7911 #. type: Plain text
7912 #: build/C/man2/fsync.2:170
7913 msgid ""
7914 "B<bdflush>(2), B<open>(2), B<sync>(2), B<sync_file_range>(2), B<hdparm>(8), "
7915 "B<mount>(8), B<sync>(1)"
7916 msgstr ""
7917
7918 #. type: TH
7919 #: build/C/man3/get_nprocs_conf.3:26
7920 #, no-wrap
7921 msgid "GET_NPROCS"
7922 msgstr ""
7923
7924 #. type: TH
7925 #: build/C/man3/get_nprocs_conf.3:26
7926 #, no-wrap
7927 msgid "2012-03-20"
7928 msgstr ""
7929
7930 #. type: Plain text
7931 #: build/C/man3/get_nprocs_conf.3:29
7932 msgid "get_nprocs, get_nprocs_conf - get number of processors"
7933 msgstr ""
7934
7935 #. type: Plain text
7936 #: build/C/man3/get_nprocs_conf.3:31 build/C/man2/sysinfo.2:19
7937 msgid "B<#include E<lt>sys/sysinfo.hE<gt>>"
7938 msgstr ""
7939
7940 #. type: Plain text
7941 #: build/C/man3/get_nprocs_conf.3:33
7942 msgid "B<int get_nprocs(void);>"
7943 msgstr ""
7944
7945 #. type: Plain text
7946 #: build/C/man3/get_nprocs_conf.3:35
7947 msgid "B<int get_nprocs_conf(void);>"
7948 msgstr ""
7949
7950 #. type: Plain text
7951 #: build/C/man3/get_nprocs_conf.3:39
7952 msgid ""
7953 "The function B<get_nprocs_conf>()  returns the number of processors "
7954 "configured by the operating system."
7955 msgstr ""
7956
7957 #. type: Plain text
7958 #: build/C/man3/get_nprocs_conf.3:46
7959 msgid ""
7960 "The function B<get_nprocs>()  returns the number of processors currently "
7961 "available in the system.  This may be less than the number returned by "
7962 "B<get_nprocs_conf>()  because processors may be offline (e.g., on "
7963 "hotpluggable systems)."
7964 msgstr ""
7965
7966 #. type: Plain text
7967 #: build/C/man3/get_nprocs_conf.3:48
7968 msgid "As given in DESCRIPTION."
7969 msgstr ""
7970
7971 #. type: Plain text
7972 #: build/C/man3/get_nprocs_conf.3:50 build/C/man3/getopt.3:350
7973 msgid "These functions are GNU extensions."
7974 msgstr ""
7975
7976 #.  glibc 2.15
7977 #. type: Plain text
7978 #: build/C/man3/get_nprocs_conf.3:57
7979 msgid ""
7980 "The current implementation of these functions is rather expensive, since "
7981 "they open and parse files in the I</sys> filesystem each time they are "
7982 "called."
7983 msgstr ""
7984
7985 #. type: Plain text
7986 #: build/C/man3/get_nprocs_conf.3:62
7987 msgid ""
7988 "The following B<sysconf>(3)  calls make use of the functions documented on "
7989 "this page to return the same information."
7990 msgstr ""
7991
7992 #. type: Plain text
7993 #: build/C/man3/get_nprocs_conf.3:66
7994 #, no-wrap
7995 msgid ""
7996 "    np = sysconf(_SC_NPROCESSORS_CONF);     /* processors configured */\n"
7997 "    np = sysconf(_SC_NPROCESSORS_ONLN);     /* processors available */\n"
7998 msgstr ""
7999
8000 #. type: Plain text
8001 #: build/C/man3/get_nprocs_conf.3:73
8002 msgid ""
8003 "The following example shows how B<get_nprocs>()  and B<get_nprocs_conf>()  "
8004 "can be used."
8005 msgstr ""
8006
8007 #. type: Plain text
8008 #: build/C/man3/get_nprocs_conf.3:77
8009 #, no-wrap
8010 msgid ""
8011 "#include E<lt>stdio.hE<gt>\n"
8012 "#include E<lt>sys/sysinfo.hE<gt>\n"
8013 msgstr ""
8014
8015 #. type: Plain text
8016 #: build/C/man3/get_nprocs_conf.3:86
8017 #, no-wrap
8018 msgid ""
8019 "int\n"
8020 "main(int argc, char *argv[])\n"
8021 "{\n"
8022 "    printf(\"This system has %d processors configured and \"\n"
8023 "            \"%d processors available.\\en\",\n"
8024 "            get_nprocs_conf(), get_nprocs());\n"
8025 "    return 0;\n"
8026 "}\n"
8027 msgstr ""
8028
8029 #. type: TH
8030 #: build/C/man2/get_thread_area.2:8
8031 #, no-wrap
8032 msgid "GET_THREAD_AREA"
8033 msgstr ""
8034
8035 #. type: TH
8036 #: build/C/man2/get_thread_area.2:8 build/C/man2/set_thread_area.2:8
8037 #, no-wrap
8038 msgid "2012-07-13"
8039 msgstr ""
8040
8041 #. type: Plain text
8042 #: build/C/man2/get_thread_area.2:11
8043 msgid "get_thread_area - get a thread-local storage (TLS) area"
8044 msgstr ""
8045
8046 #. type: Plain text
8047 #: build/C/man2/get_thread_area.2:15 build/C/man2/set_thread_area.2:15
8048 msgid "B<#include E<lt>asm/ldt.hE<gt>>"
8049 msgstr ""
8050
8051 #. type: Plain text
8052 #: build/C/man2/get_thread_area.2:17
8053 msgid "B<int get_thread_area(struct user_desc *>I<u_info>B<);>"
8054 msgstr ""
8055
8056 #. type: Plain text
8057 #: build/C/man2/get_thread_area.2:20 build/C/man2/gettid.2:38 build/C/man2/set_thread_area.2:20 build/C/man2/sysctl.2:44
8058 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
8059 msgstr ""
8060
8061 #. type: Plain text
8062 #: build/C/man2/get_thread_area.2:29
8063 msgid ""
8064 "B<get_thread_area>()  returns an entry in the current thread's thread-local "
8065 "storage (TLS) array.  The index of the entry corresponds to the value of "
8066 "I<u_info-E<gt>entry_number>, passed in by the user.  If the value is in "
8067 "bounds, B<get_thread_area>()  copies the corresponding TLS entry into the "
8068 "area pointed to by I<u_info>."
8069 msgstr ""
8070
8071 #. type: Plain text
8072 #: build/C/man2/get_thread_area.2:35
8073 msgid ""
8074 "B<get_thread_area>()  returns 0 on success.  Otherwise, it returns -1 and "
8075 "sets I<errno> appropriately."
8076 msgstr ""
8077
8078 #. type: Plain text
8079 #: build/C/man2/get_thread_area.2:39 build/C/man2/set_thread_area.2:56
8080 msgid "I<u_info> is an invalid pointer."
8081 msgstr ""
8082
8083 #. type: Plain text
8084 #: build/C/man2/get_thread_area.2:42 build/C/man2/set_thread_area.2:53
8085 msgid "I<u_info-E<gt>entry_number> is out of bounds."
8086 msgstr ""
8087
8088 #. type: Plain text
8089 #: build/C/man2/get_thread_area.2:46
8090 msgid "A version of B<get_thread_area>()  first appeared in Linux 2.5.32."
8091 msgstr ""
8092
8093 #. type: Plain text
8094 #: build/C/man2/get_thread_area.2:50
8095 msgid ""
8096 "B<get_thread_area>()  is Linux-specific and should not be used in programs "
8097 "that are intended to be portable."
8098 msgstr ""
8099
8100 #. type: Plain text
8101 #: build/C/man2/get_thread_area.2:55
8102 msgid ""
8103 "Glibc does not provide a wrapper for this system call, since it is generally "
8104 "intended for use only by threading libraries.  In the unlikely event that "
8105 "you want to call it directly, use B<syscall>(2)."
8106 msgstr ""
8107
8108 #. type: Plain text
8109 #: build/C/man2/get_thread_area.2:58
8110 msgid "B<modify_ldt>(2), B<set_thread_area>(2)"
8111 msgstr ""
8112
8113 #. type: TH
8114 #: build/C/man3/getcwd.3:32
8115 #, no-wrap
8116 msgid "GETCWD"
8117 msgstr ""
8118
8119 #. type: Plain text
8120 #: build/C/man3/getcwd.3:35
8121 msgid "getcwd, getwd, get_current_dir_name - get current working directory"
8122 msgstr ""
8123
8124 #. type: Plain text
8125 #: build/C/man3/getcwd.3:40
8126 #, no-wrap
8127 msgid "B<char *getcwd(char *>I<buf>B<, size_t >I<size>B<);>\n"
8128 msgstr ""
8129
8130 #. type: Plain text
8131 #: build/C/man3/getcwd.3:42
8132 #, no-wrap
8133 msgid "B<char *getwd(char *>I<buf>B<);>\n"
8134 msgstr ""
8135
8136 #. type: Plain text
8137 #: build/C/man3/getcwd.3:44
8138 #, no-wrap
8139 msgid "B<char *get_current_dir_name(void);>\n"
8140 msgstr ""
8141
8142 #. type: Plain text
8143 #: build/C/man3/getcwd.3:52
8144 msgid "B<get_current_dir_name>():"
8145 msgstr ""
8146
8147 #. type: Plain text
8148 #: build/C/man3/getcwd.3:57
8149 msgid "B<getwd>():"
8150 msgstr ""
8151
8152 #. type: Plain text
8153 #: build/C/man3/getcwd.3:67 build/C/man3/ualarm.3:50 build/C/man3/usleep.3:59 build/C/man2/vfork.2:54
8154 #, no-wrap
8155 msgid ""
8156 "_BSD_SOURCE ||\n"
8157 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
8158 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
8159 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)\n"
8160 msgstr ""
8161
8162 #. type: Plain text
8163 #: build/C/man3/getcwd.3:72 build/C/man3/getdtablesize.3:54 build/C/man2/getpagesize.2:52 build/C/man3/ualarm.3:55 build/C/man3/usleep.3:64 build/C/man2/vfork.2:59
8164 msgid ""
8165 "Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
8166 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
8167 msgstr ""
8168
8169 #. type: Plain text
8170 #: build/C/man3/getcwd.3:82
8171 msgid ""
8172 "These functions return a null-terminated string containing an absolute "
8173 "pathname that is the current working directory of the calling process.  The "
8174 "pathname is returned as the function result and via the argument I<buf>, if "
8175 "present."
8176 msgstr ""
8177
8178 #. type: Plain text
8179 #: build/C/man3/getcwd.3:90
8180 msgid ""
8181 "The B<getcwd>()  function copies an absolute pathname of the current working "
8182 "directory to the array pointed to by I<buf>, which is of length I<size>."
8183 msgstr ""
8184
8185 #. type: Plain text
8186 #: build/C/man3/getcwd.3:100
8187 msgid ""
8188 "If the length of the absolute pathname of the current working directory, "
8189 "including the terminating null byte, exceeds I<size> bytes, NULL is "
8190 "returned, and I<errno> is set to B<ERANGE>; an application should check for "
8191 "this error, and allocate a larger buffer if necessary."
8192 msgstr ""
8193
8194 #. type: Plain text
8195 #: build/C/man3/getcwd.3:118
8196 msgid ""
8197 "As an extension to the POSIX.1-2001 standard, glibc's B<getcwd>()  allocates "
8198 "the buffer dynamically using B<malloc>(3)  if I<buf> is NULL.  In this case, "
8199 "the allocated buffer has the length I<size> unless I<size> is zero, when "
8200 "I<buf> is allocated as big as necessary.  The caller should B<free>(3)  the "
8201 "returned buffer."
8202 msgstr ""
8203
8204 #. type: Plain text
8205 #: build/C/man3/getcwd.3:131
8206 msgid ""
8207 "B<get_current_dir_name>()  will B<malloc>(3)  an array big enough to hold "
8208 "the absolute pathname of the current working directory.  If the environment "
8209 "variable B<PWD> is set, and its value is correct, then that value will be "
8210 "returned.  The caller should B<free>(3)  the returned buffer."
8211 msgstr ""
8212
8213 #. type: Plain text
8214 #: build/C/man3/getcwd.3:156
8215 msgid ""
8216 "B<getwd>()  does not B<malloc>(3)  any memory.  The I<buf> argument should "
8217 "be a pointer to an array at least B<PATH_MAX> bytes long.  If the length of "
8218 "the absolute pathname of the current working directory, including the "
8219 "terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and "
8220 "I<errno> is set to B<ENAMETOOLONG>.  (Note that on some systems, B<PATH_MAX> "
8221 "may not be a compile-time constant; furthermore, its value may depend on the "
8222 "filesystem, see B<pathconf>(3).)  For portability and security reasons, use "
8223 "of B<getwd>()  is deprecated."
8224 msgstr ""
8225
8226 #. type: Plain text
8227 #: build/C/man3/getcwd.3:165
8228 msgid ""
8229 "On success, these functions return a pointer to a string containing the "
8230 "pathname of the current working directory.  In the case B<getcwd>()  and "
8231 "B<getwd>()  this is the same value as I<buf>."
8232 msgstr ""
8233
8234 #. type: Plain text
8235 #: build/C/man3/getcwd.3:172
8236 msgid ""
8237 "On failure, these functions return NULL, and I<errno> is set to indicate the "
8238 "error.  The contents of the array pointed to by I<buf> are undefined on "
8239 "error."
8240 msgstr ""
8241
8242 #. type: Plain text
8243 #: build/C/man3/getcwd.3:176
8244 msgid "Permission to read or search a component of the filename was denied."
8245 msgstr ""
8246
8247 #. type: Plain text
8248 #: build/C/man3/getcwd.3:180
8249 msgid "I<buf> points to a bad address."
8250 msgstr ""
8251
8252 #. type: Plain text
8253 #: build/C/man3/getcwd.3:187
8254 msgid "The I<size> argument is zero and I<buf> is not a null pointer."
8255 msgstr ""
8256
8257 #. type: TP
8258 #: build/C/man3/getcwd.3:187
8259 #, no-wrap
8260 msgid "EINVAL"
8261 msgstr ""
8262
8263 #. type: Plain text
8264 #: build/C/man3/getcwd.3:192
8265 msgid "B<getwd>(): I<buf> is NULL."
8266 msgstr ""
8267
8268 #. type: TP
8269 #: build/C/man3/getcwd.3:192
8270 #, no-wrap
8271 msgid "ENAMETOOLONG"
8272 msgstr ""
8273
8274 #. type: Plain text
8275 #: build/C/man3/getcwd.3:198
8276 msgid ""
8277 "B<getwd>(): The size of the null-terminated absolute pathname string exceeds "
8278 "B<PATH_MAX> bytes."
8279 msgstr ""
8280
8281 #. type: Plain text
8282 #: build/C/man3/getcwd.3:201
8283 msgid "The current working directory has been unlinked."
8284 msgstr ""
8285
8286 #. type: TP
8287 #: build/C/man3/getcwd.3:201 build/C/man3/getlogin.3:114
8288 #, no-wrap
8289 msgid "B<ERANGE>"
8290 msgstr ""
8291
8292 #. type: Plain text
8293 #: build/C/man3/getcwd.3:208
8294 msgid ""
8295 "The I<size> argument is less than the length of the absolute pathname of the "
8296 "working directory, including the terminating null byte.  You need to "
8297 "allocate a bigger array and try again."
8298 msgstr ""
8299
8300 #. type: Plain text
8301 #: build/C/man3/getcwd.3:216
8302 msgid ""
8303 "B<getcwd>()  conforms to POSIX.1-2001.  Note however that POSIX.1-2001 "
8304 "leaves the behavior of B<getcwd>()  unspecified if I<buf> is NULL."
8305 msgstr ""
8306
8307 #. type: Plain text
8308 #: build/C/man3/getcwd.3:227
8309 msgid ""
8310 "B<getwd>()  is present in POSIX.1-2001, but marked LEGACY.  POSIX.1-2008 "
8311 "removes the specification of B<getwd>().  Use B<getcwd>()  instead.  "
8312 "POSIX.1-2001 does not define any errors for B<getwd>()."
8313 msgstr ""
8314
8315 #. type: Plain text
8316 #: build/C/man3/getcwd.3:230
8317 msgid "B<get_current_dir_name>()  is a GNU extension."
8318 msgstr ""
8319
8320 #. type: Plain text
8321 #: build/C/man3/getcwd.3:241
8322 msgid ""
8323 "Under Linux, the function B<getcwd>()  is a system call (since 2.1.92).  On "
8324 "older systems it would query I</proc/self/cwd>.  If both system call and "
8325 "proc filesystem are missing, a generic implementation is called.  Only in "
8326 "that case can these calls fail under Linux with B<EACCES>."
8327 msgstr ""
8328
8329 #. type: Plain text
8330 #: build/C/man3/getcwd.3:249
8331 msgid ""
8332 "These functions are often used to save the location of the current working "
8333 "directory for the purpose of returning to it later.  Opening the current "
8334 "directory (\".\") and calling B<fchdir>(2)  to return is usually a faster "
8335 "and more reliable alternative when sufficiently many file descriptors are "
8336 "available, especially on platforms other than Linux."
8337 msgstr ""
8338
8339 #. type: Plain text
8340 #: build/C/man3/getcwd.3:256
8341 msgid ""
8342 "B<chdir>(2), B<fchdir>(2), B<open>(2), B<unlink>(2), B<free>(3), "
8343 "B<malloc>(3)"
8344 msgstr ""
8345
8346 #. type: TH
8347 #: build/C/man2/getdomainname.2:29
8348 #, no-wrap
8349 msgid "GETDOMAINNAME"
8350 msgstr ""
8351
8352 #. type: TH
8353 #: build/C/man2/getdomainname.2:29
8354 #, no-wrap
8355 msgid "2012-10-25"
8356 msgstr ""
8357
8358 #. type: Plain text
8359 #: build/C/man2/getdomainname.2:32
8360 msgid "getdomainname, setdomainname - get/set NIS domain name"
8361 msgstr ""
8362
8363 #. type: Plain text
8364 #: build/C/man2/getdomainname.2:36
8365 msgid "B<int getdomainname(char *>I<name>B<, size_t >I<len>B<);>"
8366 msgstr ""
8367
8368 #. type: Plain text
8369 #: build/C/man2/getdomainname.2:38
8370 msgid "B<int setdomainname(const char *>I<name>B<, size_t >I<len>B<);>"
8371 msgstr ""
8372
8373 #. type: Plain text
8374 #: build/C/man2/getdomainname.2:47
8375 msgid "B<getdomainname>(), B<setdomainname>():"
8376 msgstr ""
8377
8378 #. type: Plain text
8379 #: build/C/man2/getdomainname.2:49 build/C/man3/gethostid.3:54 build/C/man2/gethostname.2:60 build/C/man3/getusershell.3:55
8380 msgid "_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
8381 msgstr ""
8382
8383 #. type: Plain text
8384 #: build/C/man2/getdomainname.2:54
8385 msgid ""
8386 "These functions are used to access or to change the NIS domain name of the "
8387 "host system."
8388 msgstr ""
8389
8390 #. type: Plain text
8391 #: build/C/man2/getdomainname.2:65
8392 msgid ""
8393 "B<setdomainname>()  sets the domain name to the value given in the character "
8394 "array I<name>.  The I<len> argument specifies the number of bytes in "
8395 "I<name>.  (Thus, I<name> does not require a terminating null byte.)"
8396 msgstr ""
8397
8398 #. type: Plain text
8399 #: build/C/man2/getdomainname.2:75
8400 msgid ""
8401 "B<getdomainname>()  returns the null-terminated domain name in the character "
8402 "array I<name>, which has a length of I<len> bytes.  If the null-terminated "
8403 "domain name requires more than I<len> bytes, B<getdomainname>()  returns the "
8404 "first I<len> bytes (glibc) or gives an error (libc)."
8405 msgstr ""
8406
8407 #. type: Plain text
8408 #: build/C/man2/getdomainname.2:83
8409 msgid "B<setdomainname>()  can fail with the following errors:"
8410 msgstr ""
8411
8412 #. type: Plain text
8413 #: build/C/man2/getdomainname.2:87
8414 msgid "I<name> pointed outside of user address space."
8415 msgstr ""
8416
8417 #. type: Plain text
8418 #: build/C/man2/getdomainname.2:91
8419 msgid "I<len> was negative or too large."
8420 msgstr ""
8421
8422 #. type: Plain text
8423 #: build/C/man2/getdomainname.2:96
8424 msgid ""
8425 "the caller is unprivileged (Linux: does not have the B<CAP_SYS_ADMIN> "
8426 "capability)."
8427 msgstr ""
8428
8429 #. type: Plain text
8430 #: build/C/man2/getdomainname.2:99
8431 msgid "B<getdomainname>()  can fail with the following errors:"
8432 msgstr ""
8433
8434 #. type: Plain text
8435 #: build/C/man2/getdomainname.2:110
8436 msgid ""
8437 "For B<getdomainname>()  under libc: I<name> is NULL or I<name> is longer "
8438 "than I<len> bytes."
8439 msgstr ""
8440
8441 #.  But they appear on most systems...
8442 #. type: Plain text
8443 #: build/C/man2/getdomainname.2:113
8444 msgid "POSIX does not specify these calls."
8445 msgstr ""
8446
8447 #. type: Plain text
8448 #: build/C/man2/getdomainname.2:117
8449 msgid ""
8450 "Since Linux 1.0, the limit on the length of a domain name, including the "
8451 "terminating null byte, is 64 bytes.  In older kernels, it was 8 bytes."
8452 msgstr ""
8453
8454 #. type: Plain text
8455 #: build/C/man2/getdomainname.2:127
8456 msgid ""
8457 "On most Linux architectures (including x86), there is no B<getdomainname>()  "
8458 "system call; instead, glibc implements B<getdomainname>()  as a library "
8459 "function that returns a copy of the I<domainname> field returned from a call "
8460 "to B<uname>(2)."
8461 msgstr ""
8462
8463 #. type: Plain text
8464 #: build/C/man2/getdomainname.2:131
8465 msgid "B<gethostname>(2), B<sethostname>(2), B<uname>(2)"
8466 msgstr ""
8467
8468 #. type: TH
8469 #: build/C/man3/getdtablesize.3:27
8470 #, no-wrap
8471 msgid "GETDTABLESIZE"
8472 msgstr ""
8473
8474 #. type: Plain text
8475 #: build/C/man3/getdtablesize.3:30
8476 msgid "getdtablesize - get descriptor table size"
8477 msgstr ""
8478
8479 #. type: Plain text
8480 #: build/C/man3/getdtablesize.3:34
8481 msgid "B<int getdtablesize(void);>"
8482 msgstr ""
8483
8484 #. type: Plain text
8485 #: build/C/man3/getdtablesize.3:41
8486 msgid "B<getdtablesize>():"
8487 msgstr ""
8488
8489 #. type: Plain text
8490 #: build/C/man3/getdtablesize.3:49 build/C/man2/getpagesize.2:47
8491 #, no-wrap
8492 msgid ""
8493 "_BSD_SOURCE ||\n"
8494 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
8495 msgstr ""
8496
8497 #. type: Plain text
8498 #: build/C/man3/getdtablesize.3:61
8499 msgid ""
8500 "B<getdtablesize>()  returns the maximum number of files a process can have "
8501 "open, one more than the largest possible value for a file descriptor."
8502 msgstr ""
8503
8504 #. type: Plain text
8505 #: build/C/man3/getdtablesize.3:63
8506 msgid "The current limit on the number of open files per process."
8507 msgstr ""
8508
8509 #. type: Plain text
8510 #: build/C/man3/getdtablesize.3:69
8511 msgid ""
8512 "On Linux, B<getdtablesize>()  can return any of the errors described for "
8513 "B<getrlimit>(2); see NOTES below."
8514 msgstr ""
8515
8516 #. type: Plain text
8517 #: build/C/man3/getdtablesize.3:74
8518 msgid "The B<getdtablesize>()  function is thread-safe."
8519 msgstr ""
8520
8521 #. type: Plain text
8522 #: build/C/man3/getdtablesize.3:82
8523 msgid ""
8524 "SVr4, 4.4BSD (the B<getdtablesize>()  function first appeared in 4.2BSD).  "
8525 "It is not specified in POSIX.1-2001; portable applications should employ "
8526 "I<sysconf(_SC_OPEN_MAX)> instead of this call."
8527 msgstr ""
8528
8529 #.  The libc4 and libc5 versions return
8530 #.  .B OPEN_MAX
8531 #.  (set to 256 since Linux 0.98.4).
8532 #. type: Plain text
8533 #: build/C/man3/getdtablesize.3:95
8534 msgid ""
8535 "B<getdtablesize>()  is implemented as a libc library function.  The glibc "
8536 "version calls B<getrlimit>(2)  and returns the current B<RLIMIT_NOFILE> "
8537 "limit, or B<OPEN_MAX> when that fails."
8538 msgstr ""
8539
8540 #. type: Plain text
8541 #: build/C/man3/getdtablesize.3:100
8542 msgid "B<close>(2), B<dup>(2), B<getrlimit>(2), B<open>(2)"
8543 msgstr ""
8544
8545 #. type: TH
8546 #: build/C/man3/gethostid.3:29
8547 #, no-wrap
8548 msgid "GETHOSTID"
8549 msgstr ""
8550
8551 #. type: Plain text
8552 #: build/C/man3/gethostid.3:32
8553 msgid "gethostid, sethostid - get or set the unique identifier of the current host"
8554 msgstr ""
8555
8556 #. type: Plain text
8557 #: build/C/man3/gethostid.3:36
8558 msgid "B<long gethostid(void);>"
8559 msgstr ""
8560
8561 #. type: Plain text
8562 #: build/C/man3/gethostid.3:38
8563 msgid "B<int sethostid(long >I<hostid>B<);>"
8564 msgstr ""
8565
8566 #. type: Plain text
8567 #: build/C/man3/gethostid.3:47
8568 msgid "B<gethostid>():"
8569 msgstr ""
8570
8571 #. type: Plain text
8572 #: build/C/man3/gethostid.3:52
8573 msgid "B<sethostid>():"
8574 msgstr ""
8575
8576 #. type: Plain text
8577 #: build/C/man3/gethostid.3:67
8578 msgid ""
8579 "B<gethostid>()  and B<sethostid>()  respectively get or set a unique 32-bit "
8580 "identifier for the current machine.  The 32-bit identifier is intended to be "
8581 "unique among all UNIX systems in existence.  This normally resembles the "
8582 "Internet address for the local machine, as returned by B<gethostbyname>(3), "
8583 "and thus usually never needs to be set."
8584 msgstr ""
8585
8586 #. type: Plain text
8587 #: build/C/man3/gethostid.3:71
8588 msgid "The B<sethostid>()  call is restricted to the superuser."
8589 msgstr ""
8590
8591 #. type: Plain text
8592 #: build/C/man3/gethostid.3:75
8593 msgid ""
8594 "B<gethostid>()  returns the 32-bit identifier for the current host as set by "
8595 "B<sethostid>()."
8596 msgstr ""
8597
8598 #. type: Plain text
8599 #: build/C/man3/gethostid.3:81
8600 msgid ""
8601 "On success, B<sethostid>()  returns 0; on error, -1 is returned, and "
8602 "I<errno> is set to indicate the error."
8603 msgstr ""
8604
8605 #. type: Plain text
8606 #: build/C/man3/gethostid.3:84
8607 msgid "B<sethostid>()  can fail with the following errors:"
8608 msgstr ""
8609
8610 #. type: Plain text
8611 #: build/C/man3/gethostid.3:88
8612 msgid ""
8613 "The caller did not have permission to write to the file used to store the "
8614 "host ID."
8615 msgstr ""
8616
8617 #. type: Plain text
8618 #: build/C/man3/gethostid.3:92
8619 msgid ""
8620 "The calling process's effective user or group ID is not the same as its "
8621 "corresponding real ID."
8622 msgstr ""
8623
8624 #. type: Plain text
8625 #: build/C/man3/gethostid.3:102
8626 msgid ""
8627 "4.2BSD; these functions were dropped in 4.4BSD.  SVr4 includes "
8628 "B<gethostid>()  but not B<sethostid>().  POSIX.1-2001 specifies "
8629 "B<gethostid>()  but not B<sethostid>()."
8630 msgstr ""
8631
8632 #.  libc5 used /etc/hostid; libc4 didn't have these functions
8633 #. type: Plain text
8634 #: build/C/man3/gethostid.3:111
8635 msgid ""
8636 "In the glibc implementation, the I<hostid> is stored in the file "
8637 "I</etc/hostid>.  (In glibc versions before 2.2, the file I</var/adm/hostid> "
8638 "was used.)"
8639 msgstr ""
8640
8641 #. type: Plain text
8642 #: build/C/man3/gethostid.3:122
8643 msgid ""
8644 "In the glibc implementation, if B<gethostid>()  cannot open the file "
8645 "containing the host ID, then it obtains the hostname using "
8646 "B<gethostname>(2), passes that hostname to B<gethostbyname_r>(3)  in order "
8647 "to obtain the host's IPv4 address, and returns a value obtained by "
8648 "bit-twiddling the IPv4 address.  (This value may not be unique.)"
8649 msgstr ""
8650
8651 #. type: Plain text
8652 #: build/C/man3/gethostid.3:124
8653 msgid "It is impossible to ensure that the identifier is globally unique."
8654 msgstr ""
8655
8656 #. type: Plain text
8657 #: build/C/man3/gethostid.3:127
8658 msgid "B<hostid>(1), B<gethostbyname>(3)"
8659 msgstr ""
8660
8661 #. type: TH
8662 #: build/C/man2/gethostname.2:32
8663 #, no-wrap
8664 msgid "GETHOSTNAME"
8665 msgstr ""
8666
8667 #. type: Plain text
8668 #: build/C/man2/gethostname.2:35
8669 msgid "gethostname, sethostname - get/set hostname"
8670 msgstr ""
8671
8672 #. type: Plain text
8673 #: build/C/man2/gethostname.2:39
8674 msgid "B<int gethostname(char *>I<name>B<, size_t >I<len>B<);>"
8675 msgstr ""
8676
8677 #. type: Plain text
8678 #: build/C/man2/gethostname.2:41
8679 msgid "B<int sethostname(const char *>I<name>B<, size_t >I<len>B<);>"
8680 msgstr ""
8681
8682 #. type: Plain text
8683 #: build/C/man2/gethostname.2:50
8684 msgid "B<gethostname>():"
8685 msgstr ""
8686
8687 #. type: Plain text
8688 #: build/C/man2/gethostname.2:53
8689 msgid "Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
8690 msgstr ""
8691
8692 #. type: Plain text
8693 #: build/C/man2/gethostname.2:55
8694 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
8695 msgstr ""
8696
8697 #. type: Plain text
8698 #: build/C/man2/gethostname.2:58
8699 msgid "B<sethostname>():"
8700 msgstr ""
8701
8702 #. type: Plain text
8703 #: build/C/man2/gethostname.2:66
8704 msgid ""
8705 "These system calls are used to access or to change the hostname of the "
8706 "current processor."
8707 msgstr ""
8708
8709 #. type: Plain text
8710 #: build/C/man2/gethostname.2:77
8711 msgid ""
8712 "B<sethostname>()  sets the hostname to the value given in the character "
8713 "array I<name>.  The I<len> argument specifies the number of bytes in "
8714 "I<name>.  (Thus, I<name> does not require a terminating null byte.)"
8715 msgstr ""
8716
8717 #. type: Plain text
8718 #: build/C/man2/gethostname.2:89
8719 msgid ""
8720 "B<gethostname>()  returns the null-terminated hostname in the character "
8721 "array I<name>, which has a length of I<len> bytes.  If the null-terminated "
8722 "hostname is too large to fit, then the name is truncated, and no error is "
8723 "returned (but see NOTES below).  POSIX.1-2001 says that if such truncation "
8724 "occurs, then it is unspecified whether the returned buffer includes a "
8725 "terminating null byte."
8726 msgstr ""
8727
8728 #. type: Plain text
8729 #: build/C/man2/gethostname.2:99
8730 msgid "I<name> is an invalid address."
8731 msgstr ""
8732
8733 #.  Can't occur for gethostbyname() wrapper, since 'len' has an
8734 #.  unsigned type; can occur for the underlying system call.
8735 #. type: Plain text
8736 #: build/C/man2/gethostname.2:109
8737 msgid ""
8738 "I<len> is negative or, for B<sethostname>(), I<len> is larger than the "
8739 "maximum allowed size."
8740 msgstr ""
8741
8742 #. type: Plain text
8743 #: build/C/man2/gethostname.2:117
8744 msgid ""
8745 "(glibc B<gethostname>())  I<len> is smaller than the actual size.  (Before "
8746 "version 2.1, glibc uses B<EINVAL> for this case.)"
8747 msgstr ""
8748
8749 #. type: Plain text
8750 #: build/C/man2/gethostname.2:124
8751 msgid ""
8752 "For B<sethostname>(), the caller did not have the B<CAP_SYS_ADMIN> "
8753 "capability."
8754 msgstr ""
8755
8756 #. type: Plain text
8757 #: build/C/man2/gethostname.2:130
8758 msgid ""
8759 "SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).  POSIX.1-2001 "
8760 "specifies B<gethostname>()  but not B<sethostname>()."
8761 msgstr ""
8762
8763 #. type: Plain text
8764 #: build/C/man2/gethostname.2:140
8765 msgid ""
8766 "SUSv2 guarantees that \"Host names are limited to 255 bytes\".  POSIX.1-2001 "
8767 "guarantees that \"Host names (not including the terminating null byte) are "
8768 "limited to B<HOST_NAME_MAX> bytes\".  On Linux, B<HOST_NAME_MAX> is defined "
8769 "with the value 64, which has been the limit since Linux 1.0 (earlier kernels "
8770 "imposed a limit of 8 bytes)."
8771 msgstr ""
8772
8773 #. type: Plain text
8774 #: build/C/man2/gethostname.2:163
8775 msgid ""
8776 "The GNU C library does not employ the B<gethostname>()  system call; "
8777 "instead, it implements B<gethostname>()  as a library function that calls "
8778 "B<uname>(2)  and copies up to I<len> bytes from the returned I<nodename> "
8779 "field into I<name>.  Having performed the copy, the function then checks if "
8780 "the length of the I<nodename> was greater than or equal to I<len>, and if it "
8781 "is, then the function returns -1 with I<errno> set to B<ENAMETOOLONG>; in "
8782 "this case, a terminating null byte is not included in the returned I<name>."
8783 msgstr ""
8784
8785 #.  At least glibc 2.0 and 2.1, older versions not checked
8786 #. type: Plain text
8787 #: build/C/man2/gethostname.2:176
8788 msgid ""
8789 "Versions of glibc before 2.2 handle the case where the length of the "
8790 "I<nodename> was greater than or equal to I<len> differently: nothing is "
8791 "copied into I<name> and the function returns -1 with I<errno> set to "
8792 "B<ENAMETOOLONG>."
8793 msgstr ""
8794
8795 #. type: Plain text
8796 #: build/C/man2/gethostname.2:180
8797 msgid "B<getdomainname>(2), B<setdomainname>(2), B<uname>(2)"
8798 msgstr ""
8799
8800 #. type: TH
8801 #: build/C/man3/getlogin.3:28
8802 #, no-wrap
8803 msgid "GETLOGIN"
8804 msgstr ""
8805
8806 #. type: TH
8807 #: build/C/man3/getlogin.3:28
8808 #, no-wrap
8809 msgid "2013-04-19"
8810 msgstr ""
8811
8812 #. type: Plain text
8813 #: build/C/man3/getlogin.3:31
8814 msgid "getlogin, getlogin_r, cuserid - get username"
8815 msgstr ""
8816
8817 #. type: Plain text
8818 #: build/C/man3/getlogin.3:35
8819 msgid "B<char *getlogin(void);>"
8820 msgstr ""
8821
8822 #. type: Plain text
8823 #: build/C/man3/getlogin.3:37
8824 msgid "B<int getlogin_r(char *>I<buf>B<, size_t >I<bufsize>B<);>"
8825 msgstr ""
8826
8827 #. type: Plain text
8828 #: build/C/man3/getlogin.3:39
8829 msgid "B<#include E<lt>stdio.hE<gt>>"
8830 msgstr ""
8831
8832 #. type: Plain text
8833 #: build/C/man3/getlogin.3:41
8834 msgid "B<char *cuserid(char *>I<string>B<);>"
8835 msgstr ""
8836
8837 #. type: Plain text
8838 #: build/C/man3/getlogin.3:49
8839 msgid "B<getlogin_r>(): _REENTRANT || _POSIX_C_SOURCE\\ E<gt>=\\ 199506L"
8840 msgstr ""
8841
8842 #. type: Plain text
8843 #: build/C/man3/getlogin.3:52
8844 msgid "B<cuserid>(): _XOPEN_SOURCE"
8845 msgstr ""
8846
8847 #. type: Plain text
8848 #: build/C/man3/getlogin.3:61
8849 msgid ""
8850 "B<getlogin>()  returns a pointer to a string containing the name of the user "
8851 "logged in on the controlling terminal of the process, or a null pointer if "
8852 "this information cannot be determined.  The string is statically allocated "
8853 "and might be overwritten on subsequent calls to this function or to "
8854 "B<cuserid>()."
8855 msgstr ""
8856
8857 #. type: Plain text
8858 #: build/C/man3/getlogin.3:67
8859 msgid ""
8860 "B<getlogin_r>()  returns this same username in the array I<buf> of size "
8861 "I<bufsize>."
8862 msgstr ""
8863
8864 #. type: Plain text
8865 #: build/C/man3/getlogin.3:79
8866 msgid ""
8867 "B<cuserid>()  returns a pointer to a string containing a username associated "
8868 "with the effective user ID of the process.  If I<string> is not a null "
8869 "pointer, it should be an array that can hold at least B<L_cuserid> "
8870 "characters; the string is returned in this array.  Otherwise, a pointer to a "
8871 "string in a static area is returned.  This string is statically allocated "
8872 "and might be overwritten on subsequent calls to this function or to "
8873 "B<getlogin>()."
8874 msgstr ""
8875
8876 #. type: Plain text
8877 #: build/C/man3/getlogin.3:83
8878 msgid ""
8879 "The macro B<L_cuserid> is an integer constant that indicates how long an "
8880 "array you might need to store a username.  B<L_cuserid> is declared in "
8881 "I<E<lt>stdio.hE<gt>>."
8882 msgstr ""
8883
8884 #. type: Plain text
8885 #: build/C/man3/getlogin.3:90
8886 msgid ""
8887 "These functions let your program identify positively the user who is running "
8888 "(B<cuserid>())  or the user who logged in this session (B<getlogin>()).  "
8889 "(These can differ when set-user-ID programs are involved.)"
8890 msgstr ""
8891
8892 #. type: Plain text
8893 #: build/C/man3/getlogin.3:95
8894 msgid ""
8895 "For most purposes, it is more useful to use the environment variable "
8896 "B<LOGNAME> to find out who the user is.  This is more flexible precisely "
8897 "because the user can set B<LOGNAME> arbitrarily."
8898 msgstr ""
8899
8900 #. type: Plain text
8901 #: build/C/man3/getlogin.3:103
8902 msgid ""
8903 "B<getlogin>()  returns a pointer to the username when successful, and NULL "
8904 "on failure, with I<errno> set to indicate the cause of the error.  "
8905 "B<getlogin_r>()  returns 0 when successful, and nonzero on failure."
8906 msgstr ""
8907
8908 #. type: Plain text
8909 #: build/C/man3/getlogin.3:105
8910 msgid "POSIX specifies"
8911 msgstr ""
8912
8913 #. type: Plain text
8914 #: build/C/man3/getlogin.3:108
8915 msgid "The calling process already has the maximum allowed number of open files."
8916 msgstr ""
8917
8918 #. type: Plain text
8919 #: build/C/man3/getlogin.3:111
8920 msgid "The system already has the maximum allowed number of open files."
8921 msgstr ""
8922
8923 #. type: TP
8924 #: build/C/man3/getlogin.3:111
8925 #, no-wrap
8926 msgid "B<ENXIO>"
8927 msgstr ""
8928
8929 #. type: Plain text
8930 #: build/C/man3/getlogin.3:114
8931 msgid "The calling process has no controlling terminal."
8932 msgstr ""
8933
8934 #. type: Plain text
8935 #: build/C/man3/getlogin.3:120
8936 msgid ""
8937 "(getlogin_r)  The length of the username, including the terminating null "
8938 "byte (\\(aq\\e0\\(aq), is larger than I<bufsize>."
8939 msgstr ""
8940
8941 #. type: Plain text
8942 #: build/C/man3/getlogin.3:122
8943 msgid "Linux/glibc also has"
8944 msgstr ""
8945
8946 #. type: Plain text
8947 #: build/C/man3/getlogin.3:125
8948 msgid "There was no corresponding entry in the utmp-file."
8949 msgstr ""
8950
8951 #. type: Plain text
8952 #: build/C/man3/getlogin.3:128
8953 msgid "Insufficient memory to allocate passwd structure."
8954 msgstr ""
8955
8956 #. type: TP
8957 #: build/C/man3/getlogin.3:128 build/C/man2/ioctl.2:109 build/C/man2/ioctl.2:113 build/C/man3/tcgetpgrp.3:95
8958 #, no-wrap
8959 msgid "B<ENOTTY>"
8960 msgstr ""
8961
8962 #. type: Plain text
8963 #: build/C/man3/getlogin.3:132
8964 msgid "Standard input didn't refer to a terminal.  (See BUGS.)"
8965 msgstr ""
8966
8967 #. type: TP
8968 #: build/C/man3/getlogin.3:133
8969 #, no-wrap
8970 msgid "I</etc/passwd>"
8971 msgstr ""
8972
8973 #. type: Plain text
8974 #: build/C/man3/getlogin.3:136
8975 msgid "password database file"
8976 msgstr ""
8977
8978 #. type: TP
8979 #: build/C/man3/getlogin.3:136
8980 #, no-wrap
8981 msgid "I</var/run/utmp>"
8982 msgstr ""
8983
8984 #. type: Plain text
8985 #: build/C/man3/getlogin.3:140
8986 msgid "(traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)"
8987 msgstr ""
8988
8989 #. type: Plain text
8990 #: build/C/man3/getlogin.3:145
8991 msgid "The B<getlogin>()  function is not thread-safe."
8992 msgstr ""
8993
8994 #. type: Plain text
8995 #: build/C/man3/getlogin.3:149
8996 msgid "The B<getlogin_r>()  function is thread-safe."
8997 msgstr ""
8998
8999 #. type: Plain text
9000 #: build/C/man3/getlogin.3:154
9001 msgid ""
9002 "The B<cuserid>()  function is thread-safe with exceptions.  It is not "
9003 "thread-safe if called with a NULL parameter."
9004 msgstr ""
9005
9006 #. type: Plain text
9007 #: build/C/man3/getlogin.3:159
9008 msgid "B<getlogin>()  and B<getlogin_r>()  specified in POSIX.1-2001."
9009 msgstr ""
9010
9011 #. type: Plain text
9012 #: build/C/man3/getlogin.3:170
9013 msgid ""
9014 "System V has a B<cuserid>()  function which uses the real user ID rather "
9015 "than the effective user ID.  The B<cuserid>()  function was included in the "
9016 "1988 version of POSIX, but removed from the 1990 version.  It was present in "
9017 "SUSv2, but removed in POSIX.1-2001."
9018 msgstr ""
9019
9020 #. type: Plain text
9021 #: build/C/man3/getlogin.3:177
9022 msgid ""
9023 "OpenBSD has B<getlogin>()  and B<setlogin>(), and a username associated with "
9024 "a session, even if it has no controlling terminal."
9025 msgstr ""
9026
9027 #. type: Plain text
9028 #: build/C/man3/getlogin.3:189
9029 msgid ""
9030 "Unfortunately, it is often rather easy to fool B<getlogin>().  Sometimes it "
9031 "does not work at all, because some program messed up the utmp file.  Often, "
9032 "it gives only the first 8 characters of the login name.  The user currently "
9033 "logged in on the controlling terminal of our program need not be the user "
9034 "who started it.  Avoid B<getlogin>()  for security-related purposes."
9035 msgstr ""
9036
9037 #. type: Plain text
9038 #: build/C/man3/getlogin.3:199
9039 msgid ""
9040 "Note that glibc does not follow the POSIX specification and uses I<stdin> "
9041 "instead of I</dev/tty>.  A bug.  (Other recent systems, like SunOS 5.8 and "
9042 "HP-UX 11.11 and FreeBSD 4.8 all return the login name also when I<stdin> is "
9043 "redirected.)"
9044 msgstr ""
9045
9046 #. type: Plain text
9047 #: build/C/man3/getlogin.3:209
9048 msgid ""
9049 "Nobody knows precisely what B<cuserid>()  does; avoid it in portable "
9050 "programs.  Or avoid it altogether: use I<getpwuid(geteuid())> instead, if "
9051 "that is what you meant.  B<Do not use> B<cuserid>()."
9052 msgstr ""
9053
9054 #. type: Plain text
9055 #: build/C/man3/getlogin.3:213
9056 msgid "B<geteuid>(2), B<getuid>(2), B<utmp>(5)"
9057 msgstr ""
9058
9059 #. type: TH
9060 #: build/C/man3/getopt.3:41
9061 #, no-wrap
9062 msgid "GETOPT"
9063 msgstr ""
9064
9065 #. type: TH
9066 #: build/C/man3/getopt.3:41 build/C/man2/ioctl.2:41 build/C/man2/syscall.2:40 build/C/man2/syscalls.2:31 build/C/man3/sysconf.3:27
9067 #, no-wrap
9068 msgid "2014-12-31"
9069 msgstr ""
9070
9071 #. type: Plain text
9072 #: build/C/man3/getopt.3:45
9073 msgid ""
9074 "getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - "
9075 "Parse command-line options"
9076 msgstr ""
9077
9078 #. type: Plain text
9079 #: build/C/man3/getopt.3:51
9080 #, no-wrap
9081 msgid ""
9082 "B<int getopt(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9083 "B<           const char *>I<optstring>B<);>\n"
9084 msgstr ""
9085
9086 #. type: Plain text
9087 #: build/C/man3/getopt.3:54
9088 #, no-wrap
9089 msgid ""
9090 "B<extern char *>I<optarg>B<;>\n"
9091 "B<extern int >I<optind>B<, >I<opterr>B<, >I<optopt>B<;>\n"
9092 msgstr ""
9093
9094 #. type: Plain text
9095 #: build/C/man3/getopt.3:56
9096 #, no-wrap
9097 msgid "B<#include E<lt>getopt.hE<gt>>\n"
9098 msgstr ""
9099
9100 #. type: Plain text
9101 #: build/C/man3/getopt.3:60
9102 #, no-wrap
9103 msgid ""
9104 "B<int getopt_long(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9105 "B<           const char *>I<optstring>B<,>\n"
9106 "B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
9107 msgstr ""
9108
9109 #. type: Plain text
9110 #: build/C/man3/getopt.3:64
9111 #, no-wrap
9112 msgid ""
9113 "B<int getopt_long_only(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
9114 "B<           const char *>I<optstring>B<,>\n"
9115 "B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
9116 msgstr ""
9117
9118 #. type: Plain text
9119 #: build/C/man3/getopt.3:74
9120 msgid "B<getopt>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
9121 msgstr ""
9122
9123 #. type: Plain text
9124 #: build/C/man3/getopt.3:78
9125 msgid "B<getopt_long>(), B<getopt_long_only>(): _GNU_SOURCE"
9126 msgstr ""
9127
9128 #. type: Plain text
9129 #: build/C/man3/getopt.3:99
9130 msgid ""
9131 "The B<getopt>()  function parses the command-line arguments.  Its arguments "
9132 "I<argc> and I<argv> are the argument count and array as passed to the "
9133 "I<main>()  function on program invocation.  An element of I<argv> that "
9134 "starts with \\(aq-\\(aq (and is not exactly \"-\" or \"--\")  is an option "
9135 "element.  The characters of this element (aside from the initial "
9136 "\\(aq-\\(aq) are option characters.  If B<getopt>()  is called repeatedly, "
9137 "it returns successively each of the option characters from each of the "
9138 "option elements."
9139 msgstr ""
9140
9141 #. type: Plain text
9142 #: build/C/man3/getopt.3:108
9143 msgid ""
9144 "The variable I<optind> is the index of the next element to be processed in "
9145 "I<argv>.  The system initializes this value to 1.  The caller can reset it "
9146 "to 1 to restart scanning of the same I<argv>, or when scanning a new "
9147 "argument vector."
9148 msgstr ""
9149
9150 #. type: Plain text
9151 #: build/C/man3/getopt.3:118
9152 msgid ""
9153 "If B<getopt>()  finds another option character, it returns that character, "
9154 "updating the external variable I<optind> and a static variable I<nextchar> "
9155 "so that the next call to B<getopt>()  can resume the scan with the following "
9156 "option character or I<argv>-element."
9157 msgstr ""
9158
9159 #. type: Plain text
9160 #: build/C/man3/getopt.3:124
9161 msgid ""
9162 "If there are no more option characters, B<getopt>()  returns -1.  Then "
9163 "I<optind> is the index in I<argv> of the first I<argv>-element that is not "
9164 "an option."
9165 msgstr ""
9166
9167 #. type: Plain text
9168 #: build/C/man3/getopt.3:151
9169 msgid ""
9170 "I<optstring> is a string containing the legitimate option characters.  If "
9171 "such a character is followed by a colon, the option requires an argument, so "
9172 "B<getopt>()  places a pointer to the following text in the same "
9173 "I<argv>-element, or the text of the following I<argv>-element, in "
9174 "I<optarg>.  Two colons mean an option takes an optional arg; if there is "
9175 "text in the current I<argv>-element (i.e., in the same word as the option "
9176 "name itself, for example, \"-oarg\"), then it is returned in I<optarg>, "
9177 "otherwise I<optarg> is set to zero.  This is a GNU extension.  If "
9178 "I<optstring> contains B<W> followed by a semicolon, then B<-W foo> is "
9179 "treated as the long option B<--foo>.  (The B<-W> option is reserved by "
9180 "POSIX.2 for implementation extensions.)  This behavior is a GNU extension, "
9181 "not available with libraries before glibc 2."
9182 msgstr ""
9183
9184 #. type: Plain text
9185 #: build/C/man3/getopt.3:169
9186 msgid ""
9187 "By default, B<getopt>()  permutes the contents of I<argv> as it scans, so "
9188 "that eventually all the nonoptions are at the end.  Two other modes are also "
9189 "implemented.  If the first character of I<optstring> is \\(aq+\\(aq or the "
9190 "environment variable B<POSIXLY_CORRECT> is set, then option processing stops "
9191 "as soon as a nonoption argument is encountered.  If the first character of "
9192 "I<optstring> is \\(aq-\\(aq, then each nonoption I<argv>-element is handled "
9193 "as if it were the argument of an option with character code 1.  (This is "
9194 "used by programs that were written to expect options and other "
9195 "I<argv>-elements in any order and that care about the ordering of the two.)  "
9196 "The special argument \"--\" forces an end of option-scanning regardless of "
9197 "the scanning mode."
9198 msgstr ""
9199
9200 #. type: Plain text
9201 #: build/C/man3/getopt.3:177
9202 msgid ""
9203 "If B<getopt>()  does not recognize an option character, it prints an error "
9204 "message to I<stderr>, stores the character in I<optopt>, and returns "
9205 "\\(aq?\\(aq.  The calling program may prevent the error message by setting "
9206 "I<opterr> to 0."
9207 msgstr ""
9208
9209 #. type: Plain text
9210 #: build/C/man3/getopt.3:196
9211 msgid ""
9212 "If B<getopt>()  finds an option character in I<argv> that was not included "
9213 "in I<optstring>, or if it detects a missing option argument, it returns "
9214 "\\(aq?\\(aq and sets the external variable I<optopt> to the actual option "
9215 "character.  If the first character (following any optional \\(aq+\\(aq or "
9216 "\\(aq-\\(aq described above)  of I<optstring> is a colon (\\(aq:\\(aq), then "
9217 "B<getopt>()  returns \\(aq:\\(aq instead of \\(aq?\\(aq to indicate a "
9218 "missing option argument.  If an error was detected, and the first character "
9219 "of I<optstring> is not a colon, and the external variable I<opterr> is "
9220 "nonzero (which is the default), B<getopt>()  prints an error message."
9221 msgstr ""
9222
9223 #. type: SS
9224 #: build/C/man3/getopt.3:196
9225 #, no-wrap
9226 msgid "getopt_long() and getopt_long_only()"
9227 msgstr ""
9228
9229 #. type: Plain text
9230 #: build/C/man3/getopt.3:212
9231 msgid ""
9232 "The B<getopt_long>()  function works like B<getopt>()  except that it also "
9233 "accepts long options, started with two dashes.  (If the program accepts only "
9234 "long options, then I<optstring> should be specified as an empty string "
9235 "(\"\"), not NULL.)  Long option names may be abbreviated if the abbreviation "
9236 "is unique or is an exact match for some defined option.  A long option may "
9237 "take a parameter, of the form B<--arg=param> or B<--arg param>."
9238 msgstr ""
9239
9240 #. type: Plain text
9241 #: build/C/man3/getopt.3:219
9242 msgid ""
9243 "I<longopts> is a pointer to the first element of an array of I<struct "
9244 "option> declared in I<E<lt>getopt.hE<gt>> as"
9245 msgstr ""
9246
9247 #. type: Plain text
9248 #: build/C/man3/getopt.3:228
9249 #, no-wrap
9250 msgid ""
9251 "struct option {\n"
9252 "    const char *name;\n"
9253 "    int         has_arg;\n"
9254 "    int        *flag;\n"
9255 "    int         val;\n"
9256 "};\n"
9257 msgstr ""
9258
9259 #. type: Plain text
9260 #: build/C/man3/getopt.3:232
9261 msgid "The meanings of the different fields are:"
9262 msgstr ""
9263
9264 #. type: TP
9265 #: build/C/man3/getopt.3:232
9266 #, no-wrap
9267 msgid "I<name>"
9268 msgstr ""
9269
9270 #. type: Plain text
9271 #: build/C/man3/getopt.3:235
9272 msgid "is the name of the long option."
9273 msgstr ""
9274
9275 #. type: TP
9276 #: build/C/man3/getopt.3:235
9277 #, no-wrap
9278 msgid "I<has_arg>"
9279 msgstr ""
9280
9281 #. type: Plain text
9282 #: build/C/man3/getopt.3:241
9283 msgid ""
9284 "is: B<no_argument> (or 0) if the option does not take an argument; "
9285 "B<required_argument> (or 1) if the option requires an argument; or "
9286 "B<optional_argument> (or 2) if the option takes an optional argument."
9287 msgstr ""
9288
9289 #. type: TP
9290 #: build/C/man3/getopt.3:241
9291 #, no-wrap
9292 msgid "I<flag>"
9293 msgstr ""
9294
9295 #. type: Plain text
9296 #: build/C/man3/getopt.3:255
9297 msgid ""
9298 "specifies how results are returned for a long option.  If I<flag> is NULL, "
9299 "then B<getopt_long>()  returns I<val>.  (For example, the calling program "
9300 "may set I<val> to the equivalent short option character.)  Otherwise, "
9301 "B<getopt_long>()  returns 0, and I<flag> points to a variable which is set "
9302 "to I<val> if the option is found, but left unchanged if the option is not "
9303 "found."
9304 msgstr ""
9305
9306 #. type: TP
9307 #: build/C/man3/getopt.3:255
9308 #, no-wrap
9309 msgid "I<val>"
9310 msgstr ""
9311
9312 #. type: Plain text
9313 #: build/C/man3/getopt.3:259
9314 msgid "is the value to return, or to load into the variable pointed to by I<flag>."
9315 msgstr ""
9316
9317 #. type: Plain text
9318 #: build/C/man3/getopt.3:261
9319 msgid "The last element of the array has to be filled with zeros."
9320 msgstr ""
9321
9322 #. type: Plain text
9323 #: build/C/man3/getopt.3:265
9324 msgid ""
9325 "If I<longindex> is not NULL, it points to a variable which is set to the "
9326 "index of the long option relative to I<longopts>."
9327 msgstr ""
9328
9329 #. type: Plain text
9330 #: build/C/man3/getopt.3:274
9331 msgid ""
9332 "B<getopt_long_only>()  is like B<getopt_long>(), but \\(aq-\\(aq as well as "
9333 "\"--\" can indicate a long option.  If an option that starts with "
9334 "\\(aq-\\(aq (not \"--\") doesn't match a long option, but does match a short "
9335 "option, it is parsed as a short option instead."
9336 msgstr ""
9337
9338 #. type: Plain text
9339 #: build/C/man3/getopt.3:292
9340 msgid ""
9341 "If an option was successfully found, then B<getopt>()  returns the option "
9342 "character.  If all command-line options have been parsed, then B<getopt>()  "
9343 "returns -1.  If B<getopt>()  encounters an option character that was not in "
9344 "I<optstring>, then \\(aq?\\(aq is returned.  If B<getopt>()  encounters an "
9345 "option with a missing argument, then the return value depends on the first "
9346 "character in I<optstring>: if it is \\(aq:\\(aq, then \\(aq:\\(aq is "
9347 "returned; otherwise \\(aq?\\(aq is returned."
9348 msgstr ""
9349
9350 #. type: Plain text
9351 #: build/C/man3/getopt.3:304
9352 msgid ""
9353 "B<getopt_long>()  and B<getopt_long_only>()  also return the option "
9354 "character when a short option is recognized.  For a long option, they return "
9355 "I<val> if I<flag> is NULL, and 0 otherwise.  Error and -1 returns are the "
9356 "same as for B<getopt>(), plus \\(aq?\\(aq for an ambiguous match or an "
9357 "extraneous parameter."
9358 msgstr ""
9359
9360 #. type: SH
9361 #: build/C/man3/getopt.3:304
9362 #, no-wrap
9363 msgid "ENVIRONMENT"
9364 msgstr ""
9365
9366 #. type: TP
9367 #: build/C/man3/getopt.3:305
9368 #, no-wrap
9369 msgid "B<POSIXLY_CORRECT>"
9370 msgstr ""
9371
9372 #. type: Plain text
9373 #: build/C/man3/getopt.3:309
9374 msgid ""
9375 "If this is set, then option processing stops as soon as a nonoption argument "
9376 "is encountered."
9377 msgstr ""
9378
9379 #. type: TP
9380 #: build/C/man3/getopt.3:309
9381 #, no-wrap
9382 msgid "B<_E<lt>PIDE<gt>_GNU_nonoption_argv_flags_>"
9383 msgstr ""
9384
9385 #. type: Plain text
9386 #: build/C/man3/getopt.3:318
9387 msgid ""
9388 "This variable was used by B<bash>(1)  2.0 to communicate to glibc which "
9389 "arguments are the results of wildcard expansion and so should not be "
9390 "considered as options.  This behavior was removed in B<bash>(1)  version "
9391 "2.01, but the support remains in glibc."
9392 msgstr ""
9393
9394 #. type: TP
9395 #: build/C/man3/getopt.3:319
9396 #, no-wrap
9397 msgid "B<getopt>():"
9398 msgstr ""
9399
9400 #. type: Plain text
9401 #: build/C/man3/getopt.3:329
9402 msgid ""
9403 "POSIX.2 and POSIX.1-2001, provided the environment variable "
9404 "B<POSIXLY_CORRECT> is set.  Otherwise, the elements of I<argv> aren't really "
9405 "const, because we permute them.  We pretend they're const in the prototype "
9406 "to be compatible with other systems."
9407 msgstr ""
9408
9409 #. type: Plain text
9410 #: build/C/man3/getopt.3:333
9411 msgid "The use of \\(aq+\\(aq and \\(aq-\\(aq in I<optstring> is a GNU extension."
9412 msgstr ""
9413
9414 #. type: Plain text
9415 #: build/C/man3/getopt.3:347
9416 msgid ""
9417 "On some older implementations, B<getopt>()  was declared in "
9418 "I<E<lt>stdio.hE<gt>>.  SUSv1 permitted the declaration to appear in either "
9419 "I<E<lt>unistd.hE<gt>> or I<E<lt>stdio.hE<gt>>.  POSIX.1-2001 marked the use "
9420 "of I<E<lt>stdio.hE<gt>> for this purpose as LEGACY.  POSIX.1-2001 does not "
9421 "allow the declaration to appear in I<E<lt>stdio.hE<gt>>."
9422 msgstr ""
9423
9424 #. type: TP
9425 #: build/C/man3/getopt.3:347
9426 #, no-wrap
9427 msgid "B<getopt_long>() and B<getopt_long_only>():"
9428 msgstr ""
9429
9430 #. type: Plain text
9431 #: build/C/man3/getopt.3:369
9432 msgid ""
9433 "A program that scans multiple argument vectors, or rescans the same vector "
9434 "more than once, and wants to make use of GNU extensions such as \\(aq+\\(aq "
9435 "and \\(aq-\\(aq at the start of I<optstring>, or changes the value of "
9436 "B<POSIXLY_CORRECT> between scans, must reinitialize B<getopt>()  by "
9437 "resetting I<optind> to 0, rather than the traditional value of 1.  "
9438 "(Resetting to 0 forces the invocation of an internal initialization routine "
9439 "that rechecks B<POSIXLY_CORRECT> and checks for GNU extensions in "
9440 "I<optstring>.)"
9441 msgstr ""
9442
9443 #. type: Plain text
9444 #: build/C/man3/getopt.3:376
9445 msgid ""
9446 "The POSIX.2 specification of B<getopt>()  has a technical error described in "
9447 "POSIX.2 Interpretation 150.  The GNU implementation (and probably all other "
9448 "implementations) implements the correct behavior rather than that specified."
9449 msgstr ""
9450
9451 #. type: SS
9452 #: build/C/man3/getopt.3:377
9453 #, no-wrap
9454 msgid "getopt()"
9455 msgstr ""
9456
9457 #. type: Plain text
9458 #: build/C/man3/getopt.3:385
9459 msgid ""
9460 "The following trivial example program uses B<getopt>()  to handle two "
9461 "program options: I<-n>, with no associated value; and I<-t val>, which "
9462 "expects an associated value."
9463 msgstr ""
9464
9465 #. type: Plain text
9466 #: build/C/man3/getopt.3:390
9467 #, no-wrap
9468 msgid ""
9469 "#include E<lt>unistd.hE<gt>\n"
9470 "#include E<lt>stdlib.hE<gt>\n"
9471 "#include E<lt>stdio.hE<gt>\n"
9472 msgstr ""
9473
9474 #. type: Plain text
9475 #: build/C/man3/getopt.3:396
9476 #, no-wrap
9477 msgid ""
9478 "int\n"
9479 "main(int argc, char *argv[])\n"
9480 "{\n"
9481 "    int flags, opt;\n"
9482 "    int nsecs, tfnd;\n"
9483 msgstr ""
9484
9485 #. type: Plain text
9486 #: build/C/man3/getopt.3:415
9487 #, no-wrap
9488 msgid ""
9489 "    nsecs = 0;\n"
9490 "    tfnd = 0;\n"
9491 "    flags = 0;\n"
9492 "    while ((opt = getopt(argc, argv, \"nt:\")) != -1) {\n"
9493 "        switch (opt) {\n"
9494 "        case \\(aqn\\(aq:\n"
9495 "            flags = 1;\n"
9496 "            break;\n"
9497 "        case \\(aqt\\(aq:\n"
9498 "            nsecs = atoi(optarg);\n"
9499 "            tfnd = 1;\n"
9500 "            break;\n"
9501 "        default: /* \\(aq?\\(aq */\n"
9502 "            fprintf(stderr, \"Usage: %s [-t nsecs] [-n] name\\en\",\n"
9503 "                    argv[0]);\n"
9504 "            exit(EXIT_FAILURE);\n"
9505 "        }\n"
9506 "    }\n"
9507 msgstr ""
9508
9509 #. type: Plain text
9510 #: build/C/man3/getopt.3:418
9511 #, no-wrap
9512 msgid ""
9513 "    printf(\"flags=%d; tfnd=%d; nsecs=%d; optind=%d\\en\",\n"
9514 "            flags, tfnd, nsecs, optind);\n"
9515 msgstr ""
9516
9517 #. type: Plain text
9518 #: build/C/man3/getopt.3:423
9519 #, no-wrap
9520 msgid ""
9521 "    if (optind E<gt>= argc) {\n"
9522 "        fprintf(stderr, \"Expected argument after options\\en\");\n"
9523 "        exit(EXIT_FAILURE);\n"
9524 "    }\n"
9525 msgstr ""
9526
9527 #. type: Plain text
9528 #: build/C/man3/getopt.3:425
9529 #, no-wrap
9530 msgid "    printf(\"name argument = %s\\en\", argv[optind]);\n"
9531 msgstr ""
9532
9533 #. type: Plain text
9534 #: build/C/man3/getopt.3:427
9535 #, no-wrap
9536 msgid "    /* Other code omitted */\n"
9537 msgstr ""
9538
9539 #. type: SS
9540 #: build/C/man3/getopt.3:431
9541 #, no-wrap
9542 msgid "getopt_long()"
9543 msgstr ""
9544
9545 #. type: Plain text
9546 #: build/C/man3/getopt.3:435
9547 msgid ""
9548 "The following example program illustrates the use of B<getopt_long>()  with "
9549 "most of its features."
9550 msgstr ""
9551
9552 #. type: Plain text
9553 #: build/C/man3/getopt.3:440
9554 #, no-wrap
9555 msgid ""
9556 "#include E<lt>stdio.hE<gt>     /* for printf */\n"
9557 "#include E<lt>stdlib.hE<gt>    /* for exit */\n"
9558 "#include E<lt>getopt.hE<gt>\n"
9559 msgstr ""
9560
9561 #. type: Plain text
9562 #: build/C/man3/getopt.3:446
9563 #, no-wrap
9564 msgid ""
9565 "int\n"
9566 "main(int argc, char **argv)\n"
9567 "{\n"
9568 "    int c;\n"
9569 "    int digit_optind = 0;\n"
9570 msgstr ""
9571
9572 #. type: Plain text
9573 #: build/C/man3/getopt.3:459
9574 #, no-wrap
9575 msgid ""
9576 "    while (1) {\n"
9577 "        int this_option_optind = optind ? optind : 1;\n"
9578 "        int option_index = 0;\n"
9579 "        static struct option long_options[] = {\n"
9580 "            {\"add\",     required_argument, 0,  0 },\n"
9581 "            {\"append\",  no_argument,       0,  0 },\n"
9582 "            {\"delete\",  required_argument, 0,  0 },\n"
9583 "            {\"verbose\", no_argument,       0,  0 },\n"
9584 "            {\"create\",  required_argument, 0, \\(aqc\\(aq},\n"
9585 "            {\"file\",    required_argument, 0,  0 },\n"
9586 "            {0,         0,                 0,  0 }\n"
9587 "        };\n"
9588 msgstr ""
9589
9590 #. type: Plain text
9591 #: build/C/man3/getopt.3:464
9592 #, no-wrap
9593 msgid ""
9594 "        c = getopt_long(argc, argv, \"abc:d:012\",\n"
9595 "                 long_options, &option_index);\n"
9596 "        if (c == -1)\n"
9597 "            break;\n"
9598 msgstr ""
9599
9600 #. type: Plain text
9601 #: build/C/man3/getopt.3:472
9602 #, no-wrap
9603 msgid ""
9604 "        switch (c) {\n"
9605 "        case 0:\n"
9606 "            printf(\"option %s\", long_options[option_index].name);\n"
9607 "            if (optarg)\n"
9608 "                printf(\" with arg %s\", optarg);\n"
9609 "            printf(\"\\en\");\n"
9610 "            break;\n"
9611 msgstr ""
9612
9613 #. type: Plain text
9614 #: build/C/man3/getopt.3:481
9615 #, no-wrap
9616 msgid ""
9617 "        case \\(aq0\\(aq:\n"
9618 "        case \\(aq1\\(aq:\n"
9619 "        case \\(aq2\\(aq:\n"
9620 "            if (digit_optind != 0 && digit_optind != this_option_optind)\n"
9621 "              printf(\"digits occur in two different "
9622 "argv-elements.\\en\");\n"
9623 "            digit_optind = this_option_optind;\n"
9624 "            printf(\"option %c\\en\", c);\n"
9625 "            break;\n"
9626 msgstr ""
9627
9628 #. type: Plain text
9629 #: build/C/man3/getopt.3:485
9630 #, no-wrap
9631 msgid ""
9632 "        case \\(aqa\\(aq:\n"
9633 "            printf(\"option a\\en\");\n"
9634 "            break;\n"
9635 msgstr ""
9636
9637 #. type: Plain text
9638 #: build/C/man3/getopt.3:489
9639 #, no-wrap
9640 msgid ""
9641 "        case \\(aqb\\(aq:\n"
9642 "            printf(\"option b\\en\");\n"
9643 "            break;\n"
9644 msgstr ""
9645
9646 #. type: Plain text
9647 #: build/C/man3/getopt.3:493
9648 #, no-wrap
9649 msgid ""
9650 "        case \\(aqc\\(aq:\n"
9651 "            printf(\"option c with value \\(aq%s\\(aq\\en\", optarg);\n"
9652 "            break;\n"
9653 msgstr ""
9654
9655 #. type: Plain text
9656 #: build/C/man3/getopt.3:497
9657 #, no-wrap
9658 msgid ""
9659 "        case \\(aqd\\(aq:\n"
9660 "            printf(\"option d with value \\(aq%s\\(aq\\en\", optarg);\n"
9661 "            break;\n"
9662 msgstr ""
9663
9664 #. type: Plain text
9665 #: build/C/man3/getopt.3:500
9666 #, no-wrap
9667 msgid ""
9668 "        case \\(aq?\\(aq:\n"
9669 "            break;\n"
9670 msgstr ""
9671
9672 #. type: Plain text
9673 #: build/C/man3/getopt.3:505
9674 #, no-wrap
9675 msgid ""
9676 "        default:\n"
9677 "            printf(\"?? getopt returned character code 0%o ??\\en\", c);\n"
9678 "        }\n"
9679 "    }\n"
9680 msgstr ""
9681
9682 #. type: Plain text
9683 #: build/C/man3/getopt.3:512
9684 #, no-wrap
9685 msgid ""
9686 "    if (optind E<lt> argc) {\n"
9687 "        printf(\"non-option ARGV-elements: \");\n"
9688 "        while (optind E<lt> argc)\n"
9689 "            printf(\"%s \", argv[optind++]);\n"
9690 "        printf(\"\\en\");\n"
9691 "    }\n"
9692 msgstr ""
9693
9694 #. type: Plain text
9695 #: build/C/man3/getopt.3:518
9696 msgid "B<getsubopt>(3)"
9697 msgstr ""
9698
9699 #. type: TH
9700 #: build/C/man2/getpagesize.2:25
9701 #, no-wrap
9702 msgid "GETPAGESIZE"
9703 msgstr ""
9704
9705 #. type: Plain text
9706 #: build/C/man2/getpagesize.2:28
9707 msgid "getpagesize - get memory page size"
9708 msgstr ""
9709
9710 #. type: Plain text
9711 #: build/C/man2/getpagesize.2:32
9712 msgid "B<int getpagesize(void);>"
9713 msgstr ""
9714
9715 #. type: Plain text
9716 #: build/C/man2/getpagesize.2:39
9717 msgid "B<getpagesize>():"
9718 msgstr ""
9719
9720 #.  .SH HISTORY
9721 #.  This call first appeared in 4.2BSD.
9722 #. type: Plain text
9723 #: build/C/man2/getpagesize.2:64
9724 msgid ""
9725 "The function B<getpagesize>()  returns the number of bytes in a memory page, "
9726 "where \"page\" is a fixed-length block, the unit for memory allocation and "
9727 "file mapping performed by B<mmap>(2)."
9728 msgstr ""
9729
9730 #. type: Plain text
9731 #: build/C/man2/getpagesize.2:71
9732 msgid ""
9733 "SVr4, 4.4BSD, SUSv2.  In SUSv2 the B<getpagesize>()  call is labeled LEGACY, "
9734 "and in POSIX.1-2001 it has been dropped; HP-UX does not have this call."
9735 msgstr ""
9736
9737 #. type: Plain text
9738 #: build/C/man2/getpagesize.2:76
9739 msgid ""
9740 "Portable applications should employ I<sysconf(_SC_PAGESIZE)> instead of "
9741 "B<getpagesize>():"
9742 msgstr ""
9743
9744 #. type: Plain text
9745 #: build/C/man2/getpagesize.2:81
9746 #, no-wrap
9747 msgid ""
9748 "#include E<lt>unistd.hE<gt>\n"
9749 "long sz = sysconf(_SC_PAGESIZE);\n"
9750 msgstr ""
9751
9752 #. type: Plain text
9753 #: build/C/man2/getpagesize.2:88
9754 msgid "(Most systems allow the synonym B<_SC_PAGE_SIZE> for B<_SC_PAGESIZE>.)"
9755 msgstr ""
9756
9757 #. type: Plain text
9758 #: build/C/man2/getpagesize.2:108
9759 msgid ""
9760 "Whether B<getpagesize>()  is present as a Linux system call depends on the "
9761 "architecture.  If it is, it returns the kernel symbol B<PAGE_SIZE>, whose "
9762 "value depends on the architecture and machine model.  Generally, one uses "
9763 "binaries that are dependent on the architecture but not on the machine "
9764 "model, in order to have a single binary distribution per architecture.  This "
9765 "means that a user program should not find B<PAGE_SIZE> at compile time from "
9766 "a header file, but use an actual system call, at least for those "
9767 "architectures (like sun4) where this dependency exists.  Here glibc 2.0 "
9768 "fails because its B<getpagesize>()  returns a statically derived value, and "
9769 "does not use a system call.  Things are OK in glibc 2.1."
9770 msgstr ""
9771
9772 #. type: Plain text
9773 #: build/C/man2/getpagesize.2:111
9774 msgid "B<mmap>(2), B<sysconf>(3)"
9775 msgstr ""
9776
9777 #. type: TH
9778 #: build/C/man2/gettid.2:26
9779 #, no-wrap
9780 msgid "GETTID"
9781 msgstr ""
9782
9783 #. type: TH
9784 #: build/C/man2/gettid.2:26
9785 #, no-wrap
9786 msgid "2014-02-11"
9787 msgstr ""
9788
9789 #. type: Plain text
9790 #: build/C/man2/gettid.2:29
9791 msgid "gettid - get thread identification"
9792 msgstr ""
9793
9794 #. type: Plain text
9795 #: build/C/man2/gettid.2:32
9796 #, no-wrap
9797 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
9798 msgstr ""
9799
9800 #. type: Plain text
9801 #: build/C/man2/gettid.2:34
9802 #, no-wrap
9803 msgid "B<pid_t gettid(void);>\n"
9804 msgstr ""
9805
9806 #. type: Plain text
9807 #: build/C/man2/gettid.2:50
9808 msgid ""
9809 "B<gettid>()  returns the caller's thread ID (TID).  In a single-threaded "
9810 "process, the thread ID is equal to the process ID (PID, as returned by "
9811 "B<getpid>(2)).  In a multithreaded process, all threads have the same PID, "
9812 "but each one has a unique TID.  For further details, see the discussion of "
9813 "B<CLONE_THREAD> in B<clone>(2)."
9814 msgstr ""
9815
9816 #. type: Plain text
9817 #: build/C/man2/gettid.2:52
9818 msgid "On success, returns the thread ID of the calling process."
9819 msgstr ""
9820
9821 #. type: Plain text
9822 #: build/C/man2/gettid.2:54
9823 msgid "This call is always successful."
9824 msgstr ""
9825
9826 #. type: Plain text
9827 #: build/C/man2/gettid.2:58
9828 msgid "The B<gettid>()  system call first appeared on Linux in kernel 2.4.11."
9829 msgstr ""
9830
9831 #. type: Plain text
9832 #: build/C/man2/gettid.2:62
9833 msgid ""
9834 "B<gettid>()  is Linux-specific and should not be used in programs that are "
9835 "intended to be portable."
9836 msgstr ""
9837
9838 #.  FIXME . See http://sourceware.org/bugzilla/show_bug.cgi?id=6399
9839 #.  "gettid() should have a wrapper"
9840 #. type: Plain text
9841 #: build/C/man2/gettid.2:67
9842 msgid ""
9843 "Glibc does not provide a wrapper for this system call; call it using "
9844 "B<syscall>(2)."
9845 msgstr ""
9846
9847 #. type: Plain text
9848 #: build/C/man2/gettid.2:71
9849 msgid ""
9850 "The thread ID returned by this call is not the same thing as a POSIX thread "
9851 "ID (i.e., the opaque value returned by B<pthread_self>(3))."
9852 msgstr ""
9853
9854 #.  .BR kcmp (2),
9855 #.  .BR move_pages (2),
9856 #.  .BR migrate_pages (2),
9857 #.  .BR process_vm_readv (2),
9858 #.  .BR ptrace (2),
9859 #. type: Plain text
9860 #: build/C/man2/gettid.2:90
9861 msgid ""
9862 "B<capget>(2), B<clone>(2), B<fcntl>(2), B<fork>(2), B<get_robust_list>(2), "
9863 "B<getpid>(2), B<ioprio_set>(2), B<perf_event_open>(2), "
9864 "B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
9865 "B<tgkill>(2), B<timer_create>(2)"
9866 msgstr ""
9867
9868 #. type: TH
9869 #: build/C/man3/getumask.3:28
9870 #, no-wrap
9871 msgid "GETUMASK"
9872 msgstr ""
9873
9874 #. type: TH
9875 #: build/C/man3/getumask.3:28
9876 #, no-wrap
9877 msgid "2010-09-10"
9878 msgstr ""
9879
9880 #. type: Plain text
9881 #: build/C/man3/getumask.3:31
9882 msgid "getumask - get file creation mask"
9883 msgstr ""
9884
9885 #. type: Plain text
9886 #: build/C/man3/getumask.3:35 build/C/man2/truncate.2:50 build/C/man2/umask.2:39 build/C/man2/vfork.2:33
9887 msgid "B<#include E<lt>sys/types.hE<gt>>"
9888 msgstr ""
9889
9890 #. type: Plain text
9891 #: build/C/man3/getumask.3:37 build/C/man2/umask.2:41
9892 msgid "B<#include E<lt>sys/stat.hE<gt>>"
9893 msgstr ""
9894
9895 #. type: Plain text
9896 #: build/C/man3/getumask.3:39
9897 msgid "B<mode_t getumask(void);>"
9898 msgstr ""
9899
9900 #. type: Plain text
9901 #: build/C/man3/getumask.3:42
9902 msgid "This function returns the current file creation mask.  It is equivalent to"
9903 msgstr ""
9904
9905 #. type: Plain text
9906 #: build/C/man3/getumask.3:51
9907 #, no-wrap
9908 msgid ""
9909 "mode_t getumask(void)\n"
9910 "{\n"
9911 "    mode_t mask = umask( 0 );\n"
9912 "    umask(mask);\n"
9913 "    return mask;\n"
9914 "}\n"
9915 msgstr ""
9916
9917 #. type: Plain text
9918 #: build/C/man3/getumask.3:58
9919 msgid ""
9920 "except that it is documented to be thread-safe (that is, shares a lock with "
9921 "the B<umask>(2)  library call)."
9922 msgstr ""
9923
9924 #. type: Plain text
9925 #: build/C/man3/getumask.3:60
9926 msgid "This is a vaporware GNU extension."
9927 msgstr ""
9928
9929 #. type: Plain text
9930 #: build/C/man3/getumask.3:63
9931 msgid ""
9932 "This function is documented but not implemented yet in glibc, as at version "
9933 "2.9."
9934 msgstr ""
9935
9936 #. type: Plain text
9937 #: build/C/man3/getumask.3:65
9938 msgid "B<umask>(2)"
9939 msgstr ""
9940
9941 #. type: TH
9942 #: build/C/man3/getusershell.3:30
9943 #, no-wrap
9944 msgid "GETUSERSHELL"
9945 msgstr ""
9946
9947 #. type: TH
9948 #: build/C/man3/getusershell.3:30 build/C/man2/pread.2:25
9949 #, no-wrap
9950 msgid "2013-06-21"
9951 msgstr ""
9952
9953 #. type: Plain text
9954 #: build/C/man3/getusershell.3:33
9955 msgid "getusershell, setusershell, endusershell - get permitted user shells"
9956 msgstr ""
9957
9958 #. type: Plain text
9959 #: build/C/man3/getusershell.3:38
9960 #, no-wrap
9961 msgid "B<char *getusershell(void);>\n"
9962 msgstr ""
9963
9964 #. type: Plain text
9965 #: build/C/man3/getusershell.3:40
9966 #, no-wrap
9967 msgid "B<void setusershell(void);>\n"
9968 msgstr ""
9969
9970 #. type: Plain text
9971 #: build/C/man3/getusershell.3:42
9972 #, no-wrap
9973 msgid "B<void endusershell(void);>\n"
9974 msgstr ""
9975
9976 #. type: Plain text
9977 #: build/C/man3/getusershell.3:53
9978 msgid "B<getusershell>(), B<setusershell>(), B<endusershell>():"
9979 msgstr ""
9980
9981 #. type: Plain text
9982 #: build/C/man3/getusershell.3:75
9983 msgid ""
9984 "The B<getusershell>()  function returns the next line from the file "
9985 "I</etc/shells>, opening the file if necessary.  The line should contain the "
9986 "pathname of a valid user shell.  If I</etc/shells> does not exist or is "
9987 "unreadable, B<getusershell>()  behaves as if I</bin/sh> and I</bin/csh> were "
9988 "listed in the file."
9989 msgstr ""
9990
9991 #. type: Plain text
9992 #: build/C/man3/getusershell.3:80
9993 msgid "The B<setusershell>()  function rewinds I</etc/shells>."
9994 msgstr ""
9995
9996 #. type: Plain text
9997 #: build/C/man3/getusershell.3:85
9998 msgid "The B<endusershell>()  function closes I</etc/shells>."
9999 msgstr ""
10000
10001 #. type: Plain text
10002 #: build/C/man3/getusershell.3:89
10003 msgid "The B<getusershell>()  function returns NULL on end-of-file."
10004 msgstr ""
10005
10006 #. type: Plain text
10007 #: build/C/man3/getusershell.3:92
10008 #, no-wrap
10009 msgid "/etc/shells\n"
10010 msgstr ""
10011
10012 #. type: Plain text
10013 #: build/C/man3/getusershell.3:101
10014 msgid ""
10015 "The B<getusershell>(), B<setusershell>()  and B<endusershell>()  functions "
10016 "are not thread-safe."
10017 msgstr ""
10018
10019 #. type: Plain text
10020 #: build/C/man3/getusershell.3:103
10021 msgid "4.3BSD."
10022 msgstr ""
10023
10024 #. type: Plain text
10025 #: build/C/man3/getusershell.3:105
10026 msgid "B<shells>(5)"
10027 msgstr ""
10028
10029 #. type: TH
10030 #: build/C/man2/idle.2:32
10031 #, no-wrap
10032 msgid "IDLE"
10033 msgstr ""
10034
10035 #. type: TH
10036 #: build/C/man2/idle.2:32 build/C/man5/shells.5:28
10037 #, no-wrap
10038 msgid "2012-12-31"
10039 msgstr ""
10040
10041 #. type: Plain text
10042 #: build/C/man2/idle.2:35
10043 msgid "idle - make process 0 idle"
10044 msgstr ""
10045
10046 #. type: Plain text
10047 #: build/C/man2/idle.2:39
10048 msgid "B<int idle(void);>"
10049 msgstr ""
10050
10051 #. type: Plain text
10052 #: build/C/man2/idle.2:46
10053 msgid ""
10054 "B<idle>()  is an internal system call used during bootstrap.  It marks the "
10055 "process's pages as swappable, lowers its priority, and enters the main "
10056 "scheduling loop.  B<idle>()  never returns."
10057 msgstr ""
10058
10059 #. type: Plain text
10060 #: build/C/man2/idle.2:52
10061 msgid ""
10062 "Only process 0 may call B<idle>().  Any user process, even a process with "
10063 "superuser permission, will receive B<EPERM>."
10064 msgstr ""
10065
10066 #. type: Plain text
10067 #: build/C/man2/idle.2:55
10068 msgid ""
10069 "B<idle>()  never returns for process 0, and always returns -1 for a user "
10070 "process."
10071 msgstr ""
10072
10073 #. type: Plain text
10074 #: build/C/man2/idle.2:59 build/C/man2/setup.2:60
10075 msgid "Always, for a user process."
10076 msgstr ""
10077
10078 #. type: Plain text
10079 #: build/C/man2/idle.2:61
10080 msgid "Since Linux 2.3.13, this system call does not exist anymore."
10081 msgstr ""
10082
10083 #. type: Plain text
10084 #: build/C/man2/idle.2:64 build/C/man2/sysinfo.2:90
10085 msgid ""
10086 "This function is Linux-specific, and should not be used in programs intended "
10087 "to be portable."
10088 msgstr ""
10089
10090 #. type: TH
10091 #: build/C/man2/ioctl.2:41
10092 #, no-wrap
10093 msgid "IOCTL"
10094 msgstr ""
10095
10096 #. type: Plain text
10097 #: build/C/man2/ioctl.2:44
10098 msgid "ioctl - control device"
10099 msgstr ""
10100
10101 #. type: Plain text
10102 #: build/C/man2/ioctl.2:46
10103 msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
10104 msgstr ""
10105
10106 #.  POSIX says 'request' is int, but glibc has the above
10107 #.  See https://bugzilla.kernel.org/show_bug.cgi?id=42705
10108 #. type: Plain text
10109 #: build/C/man2/ioctl.2:50
10110 msgid "B<int ioctl(int >I<fd>B<, unsigned long >I<request>B<, ...);>"
10111 msgstr ""
10112
10113 #. type: Plain text
10114 #: build/C/man2/ioctl.2:61
10115 msgid ""
10116 "The B<ioctl>()  function manipulates the underlying device parameters of "
10117 "special files.  In particular, many operating characteristics of character "
10118 "special files (e.g., terminals) may be controlled with B<ioctl>()  "
10119 "requests.  The argument I<fd> must be an open file descriptor."
10120 msgstr ""
10121
10122 #. type: Plain text
10123 #: build/C/man2/ioctl.2:69
10124 msgid ""
10125 "The second argument is a device-dependent request code.  The third argument "
10126 "is an untyped pointer to memory.  It's traditionally B<char *>I<argp> (from "
10127 "the days before B<void *> was valid C), and will be so named for this "
10128 "discussion."
10129 msgstr ""
10130
10131 #. type: Plain text
10132 #: build/C/man2/ioctl.2:85
10133 msgid ""
10134 "An B<ioctl>()  I<request> has encoded in it whether the argument is an I<in> "
10135 "parameter or I<out> parameter, and the size of the argument I<argp> in "
10136 "bytes.  Macros and defines used in specifying an B<ioctl>()  I<request> are "
10137 "located in the file I<E<lt>sys/ioctl.hE<gt>>."
10138 msgstr ""
10139
10140 #. type: Plain text
10141 #: build/C/man2/ioctl.2:94
10142 msgid ""
10143 "Usually, on success zero is returned.  A few B<ioctl>()  requests use the "
10144 "return value as an output parameter and return a nonnegative value on "
10145 "success.  On error, -1 is returned, and I<errno> is set appropriately."
10146 msgstr ""
10147
10148 #. type: Plain text
10149 #: build/C/man2/ioctl.2:99 build/C/man2/truncate.2:188
10150 msgid "I<fd> is not a valid descriptor."
10151 msgstr ""
10152
10153 #. type: Plain text
10154 #: build/C/man2/ioctl.2:103
10155 msgid "I<argp> references an inaccessible memory area."
10156 msgstr ""
10157
10158 #. type: Plain text
10159 #: build/C/man2/ioctl.2:109
10160 msgid "I<request> or I<argp> is not valid."
10161 msgstr ""
10162
10163 #. type: Plain text
10164 #: build/C/man2/ioctl.2:113
10165 msgid "I<fd> is not associated with a character special device."
10166 msgstr ""
10167
10168 #. type: Plain text
10169 #: build/C/man2/ioctl.2:119
10170 msgid ""
10171 "The specified request does not apply to the kind of object that the "
10172 "descriptor I<fd> references."
10173 msgstr ""
10174
10175 #. type: Plain text
10176 #: build/C/man2/ioctl.2:134
10177 msgid ""
10178 "No single standard.  Arguments, returns, and semantics of B<ioctl>()  vary "
10179 "according to the device driver in question (the call is used as a catch-all "
10180 "for operations that don't cleanly fit the UNIX stream I/O model).  See "
10181 "B<ioctl_list>(2)  for a list of many of the known B<ioctl>()  calls.  The "
10182 "B<ioctl>()  function call appeared in Version 7 AT&T UNIX."
10183 msgstr ""
10184
10185 #. type: Plain text
10186 #: build/C/man2/ioctl.2:142
10187 msgid ""
10188 "In order to use this call, one needs an open file descriptor.  Often the "
10189 "B<open>(2)  call has unwanted side effects, that can be avoided under Linux "
10190 "by giving it the B<O_NONBLOCK> flag."
10191 msgstr ""
10192
10193 #.  .BR mt (4),
10194 #. type: Plain text
10195 #: build/C/man2/ioctl.2:150
10196 msgid "B<execve>(2), B<fcntl>(2), B<ioctl_list>(2), B<open>(2), B<sd>(4), B<tty>(4)"
10197 msgstr ""
10198
10199 #. type: TH
10200 #: build/C/man2/ioctl_list.2:30
10201 #, no-wrap
10202 msgid "IOCTL_LIST"
10203 msgstr ""
10204
10205 #. type: TH
10206 #: build/C/man2/ioctl_list.2:30
10207 #, no-wrap
10208 msgid "2013-09-17"
10209 msgstr ""
10210
10211 #. type: Plain text
10212 #: build/C/man2/ioctl_list.2:33
10213 msgid "ioctl_list - list of ioctl calls in Linux/i386 kernel"
10214 msgstr ""
10215
10216 #. type: Plain text
10217 #: build/C/man2/ioctl_list.2:40
10218 msgid ""
10219 "This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel "
10220 "1.3.27.  It contains 421 ioctls from "
10221 "I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>.  For each ioctl, its numerical "
10222 "value, its name, and its argument type are given."
10223 msgstr ""
10224
10225 #. type: Plain text
10226 #: build/C/man2/ioctl_list.2:48
10227 msgid ""
10228 "An argument type of I<const struct foo\\ *> means the argument is input to "
10229 "the kernel.  I<struct foo\\ *> means the kernel outputs the argument.  If "
10230 "the kernel uses the argument for both input and output, this is marked with "
10231 "I<//\\ I-O>."
10232 msgstr ""
10233
10234 #. type: Plain text
10235 #: build/C/man2/ioctl_list.2:53
10236 msgid ""
10237 "Some ioctls take more arguments or return more values than a single "
10238 "structure.  These are marked I<//\\ MORE> and documented further in a "
10239 "separate section."
10240 msgstr ""
10241
10242 #. type: Plain text
10243 #: build/C/man2/ioctl_list.2:55
10244 msgid "This list is very incomplete."
10245 msgstr ""
10246
10247 #. type: SS
10248 #: build/C/man2/ioctl_list.2:55
10249 #, no-wrap
10250 msgid "ioctl structure"
10251 msgstr ""
10252
10253 #.  added two sections - aeb
10254 #. type: Plain text
10255 #: build/C/man2/ioctl_list.2:60
10256 msgid ""
10257 "Ioctl command values are 32-bit constants.  In principle these constants are "
10258 "completely arbitrary, but people have tried to build some structure into "
10259 "them."
10260 msgstr ""
10261
10262 #. type: Plain text
10263 #: build/C/man2/ioctl_list.2:79
10264 msgid ""
10265 "The old Linux situation was that of mostly 16-bit constants, where the last "
10266 "byte is a serial number, and the preceding byte(s) give a type indicating "
10267 "the driver.  Sometimes the major number was used: 0x03 for the B<HDIO_*> "
10268 "ioctls, 0x06 for the B<LP*> ioctls.  And sometimes one or more ASCII letters "
10269 "were used.  For example, B<TCGETS> has value 0x00005401, with 0x54 = "
10270 "\\(aqT\\(aq indicating the terminal driver, and B<CYGETTIMEOUT> has value "
10271 "0x00435906, with 0x43 0x59 = \\(aqC\\(aq \\(aqY\\(aq indicating the cyclades "
10272 "driver."
10273 msgstr ""
10274
10275 #. type: Plain text
10276 #: build/C/man2/ioctl_list.2:87
10277 msgid ""
10278 "Later (0.98p5) some more information was built into the number.  One has 2 "
10279 "direction bits (00: none, 01: write, 10: read, 11: read/write)  followed by "
10280 "14 size bits (giving the size of the argument), followed by an 8-bit type "
10281 "(collecting the ioctls in groups for a common purpose or a common driver), "
10282 "and an 8-bit serial number."
10283 msgstr ""
10284
10285 #. type: Plain text
10286 #: build/C/man2/ioctl_list.2:98
10287 msgid ""
10288 "The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and "
10289 "are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>.  They use "
10290 "I<sizeof(size)> so that size is a misnomer here: this third argument is a "
10291 "data type."
10292 msgstr ""
10293
10294 #. type: Plain text
10295 #: build/C/man2/ioctl_list.2:103
10296 msgid ""
10297 "Note that the size bits are very unreliable: in lots of cases they are "
10298 "wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or "
10299 "because of legacy values."
10300 msgstr ""
10301
10302 #. type: Plain text
10303 #: build/C/man2/ioctl_list.2:107
10304 msgid ""
10305 "Thus, it seems that the new structure only gave disadvantages: it does not "
10306 "help in checking, but it causes varying values for the various "
10307 "architectures."
10308 msgstr ""
10309
10310 #. type: Plain text
10311 #: build/C/man2/ioctl_list.2:113
10312 msgid ""
10313 "Decent ioctls return 0 on success and -1 on error, while any output value is "
10314 "stored via the argument.  However, quite a few ioctls in fact return an "
10315 "output value.  This is not yet indicated below."
10316 msgstr ""
10317
10318 #. type: Plain text
10319 #: build/C/man2/ioctl_list.2:115
10320 msgid "// Main table."
10321 msgstr ""
10322
10323 #. type: Plain text
10324 #: build/C/man2/ioctl_list.2:117
10325 msgid "// E<lt>include/asm-i386/socket.hE<gt>"
10326 msgstr ""
10327
10328 #. type: tbl table
10329 #: build/C/man2/ioctl_list.2:119
10330 #, no-wrap
10331 msgid "0x00008901\tFIOSETOWN\tconst int *\n"
10332 msgstr ""
10333
10334 #. type: tbl table
10335 #: build/C/man2/ioctl_list.2:120
10336 #, no-wrap
10337 msgid "0x00008902\tSIOCSPGRP\tconst int *\n"
10338 msgstr ""
10339
10340 #. type: tbl table
10341 #: build/C/man2/ioctl_list.2:121
10342 #, no-wrap
10343 msgid "0x00008903\tFIOGETOWN\tint *\n"
10344 msgstr ""
10345
10346 #. type: tbl table
10347 #: build/C/man2/ioctl_list.2:122
10348 #, no-wrap
10349 msgid "0x00008904\tSIOCGPGRP\tint *\n"
10350 msgstr ""
10351
10352 #. type: tbl table
10353 #: build/C/man2/ioctl_list.2:123
10354 #, no-wrap
10355 msgid "0x00008905\tSIOCATMAR\tint *\n"
10356 msgstr ""
10357
10358 #. type: tbl table
10359 #: build/C/man2/ioctl_list.2:124
10360 #, no-wrap
10361 msgid "0x00008906\tSIOCGSTAMP\ttimeval *\n"
10362 msgstr ""
10363
10364 #. type: Plain text
10365 #: build/C/man2/ioctl_list.2:128
10366 msgid "// E<lt>include/asm-i386/termios.hE<gt>"
10367 msgstr ""
10368
10369 #. type: tbl table
10370 #: build/C/man2/ioctl_list.2:130
10371 #, no-wrap
10372 msgid "0x00005401\tTCGETS\tstruct termios *\n"
10373 msgstr ""
10374
10375 #. type: tbl table
10376 #: build/C/man2/ioctl_list.2:131
10377 #, no-wrap
10378 msgid "0x00005402\tTCSETS\tconst struct termios *\n"
10379 msgstr ""
10380
10381 #. type: tbl table
10382 #: build/C/man2/ioctl_list.2:132
10383 #, no-wrap
10384 msgid "0x00005403\tTCSETSW\tconst struct termios *\n"
10385 msgstr ""
10386
10387 #. type: tbl table
10388 #: build/C/man2/ioctl_list.2:133
10389 #, no-wrap
10390 msgid "0x00005404\tTCSETSF\tconst struct termios *\n"
10391 msgstr ""
10392
10393 #. type: tbl table
10394 #: build/C/man2/ioctl_list.2:134
10395 #, no-wrap
10396 msgid "0x00005405\tTCGETA\tstruct termio *\n"
10397 msgstr ""
10398
10399 #. type: tbl table
10400 #: build/C/man2/ioctl_list.2:135
10401 #, no-wrap
10402 msgid "0x00005406\tTCSETA\tconst struct termio *\n"
10403 msgstr ""
10404
10405 #. type: tbl table
10406 #: build/C/man2/ioctl_list.2:136
10407 #, no-wrap
10408 msgid "0x00005407\tTCSETAW\tconst struct termio *\n"
10409 msgstr ""
10410
10411 #. type: tbl table
10412 #: build/C/man2/ioctl_list.2:137
10413 #, no-wrap
10414 msgid "0x00005408\tTCSETAF\tconst struct termio *\n"
10415 msgstr ""
10416
10417 #. type: tbl table
10418 #: build/C/man2/ioctl_list.2:138
10419 #, no-wrap
10420 msgid "0x00005409\tTCSBRK\tint\n"
10421 msgstr ""
10422
10423 #. type: tbl table
10424 #: build/C/man2/ioctl_list.2:139
10425 #, no-wrap
10426 msgid "0x0000540A\tTCXONC\tint\n"
10427 msgstr ""
10428
10429 #. type: tbl table
10430 #: build/C/man2/ioctl_list.2:140
10431 #, no-wrap
10432 msgid "0x0000540B\tTCFLSH\tint\n"
10433 msgstr ""
10434
10435 #. type: tbl table
10436 #: build/C/man2/ioctl_list.2:141
10437 #, no-wrap
10438 msgid "0x0000540C\tTIOCEXCL\tvoid\n"
10439 msgstr ""
10440
10441 #. type: tbl table
10442 #: build/C/man2/ioctl_list.2:142
10443 #, no-wrap
10444 msgid "0x0000540D\tTIOCNXCL\tvoid\n"
10445 msgstr ""
10446
10447 #. type: tbl table
10448 #: build/C/man2/ioctl_list.2:143
10449 #, no-wrap
10450 msgid "0x0000540E\tTIOCSCTTY\tint\n"
10451 msgstr ""
10452
10453 #. type: tbl table
10454 #: build/C/man2/ioctl_list.2:144
10455 #, no-wrap
10456 msgid "0x0000540F\tTIOCGPGRP\tpid_t *\n"
10457 msgstr ""
10458
10459 #. type: tbl table
10460 #: build/C/man2/ioctl_list.2:145
10461 #, no-wrap
10462 msgid "0x00005410\tTIOCSPGRP\tconst pid_t *\n"
10463 msgstr ""
10464
10465 #. type: tbl table
10466 #: build/C/man2/ioctl_list.2:146
10467 #, no-wrap
10468 msgid "0x00005411\tTIOCOUTQ\tint *\n"
10469 msgstr ""
10470
10471 #. type: tbl table
10472 #: build/C/man2/ioctl_list.2:147
10473 #, no-wrap
10474 msgid "0x00005412\tTIOCSTI\tconst char *\n"
10475 msgstr ""
10476
10477 #. type: tbl table
10478 #: build/C/man2/ioctl_list.2:148
10479 #, no-wrap
10480 msgid "0x00005413\tTIOCGWINSZ\tstruct winsize *\n"
10481 msgstr ""
10482
10483 #. type: tbl table
10484 #: build/C/man2/ioctl_list.2:149
10485 #, no-wrap
10486 msgid "0x00005414\tTIOCSWINSZ\tconst struct winsize *\n"
10487 msgstr ""
10488
10489 #. type: tbl table
10490 #: build/C/man2/ioctl_list.2:150
10491 #, no-wrap
10492 msgid "0x00005415\tTIOCMGET\tint *\n"
10493 msgstr ""
10494
10495 #. type: tbl table
10496 #: build/C/man2/ioctl_list.2:151
10497 #, no-wrap
10498 msgid "0x00005416\tTIOCMBIS\tconst int *\n"
10499 msgstr ""
10500
10501 #. type: tbl table
10502 #: build/C/man2/ioctl_list.2:152
10503 #, no-wrap
10504 msgid "0x00005417\tTIOCMBIC\tconst int *\n"
10505 msgstr ""
10506
10507 #. type: tbl table
10508 #: build/C/man2/ioctl_list.2:153
10509 #, no-wrap
10510 msgid "0x00005418\tTIOCMSET\tconst int *\n"
10511 msgstr ""
10512
10513 #. type: tbl table
10514 #: build/C/man2/ioctl_list.2:154
10515 #, no-wrap
10516 msgid "0x00005419\tTIOCGSOFTCAR\tint *\n"
10517 msgstr ""
10518
10519 #. type: tbl table
10520 #: build/C/man2/ioctl_list.2:155
10521 #, no-wrap
10522 msgid "0x0000541A\tTIOCSSOFTCAR\tconst int *\n"
10523 msgstr ""
10524
10525 #. type: tbl table
10526 #: build/C/man2/ioctl_list.2:156
10527 #, no-wrap
10528 msgid "0x0000541B\tFIONREAD\tint *\n"
10529 msgstr ""
10530
10531 #. type: tbl table
10532 #: build/C/man2/ioctl_list.2:157
10533 #, no-wrap
10534 msgid "0x0000541B\tTIOCINQ\tint *\n"
10535 msgstr ""
10536
10537 #. type: tbl table
10538 #: build/C/man2/ioctl_list.2:158
10539 #, no-wrap
10540 msgid "0x0000541C\tTIOCLINUX\tconst char *\t// MORE\n"
10541 msgstr ""
10542
10543 #. type: tbl table
10544 #: build/C/man2/ioctl_list.2:159
10545 #, no-wrap
10546 msgid "0x0000541D\tTIOCCONS\tvoid\n"
10547 msgstr ""
10548
10549 #. type: tbl table
10550 #: build/C/man2/ioctl_list.2:160
10551 #, no-wrap
10552 msgid "0x0000541E\tTIOCGSERIAL\tstruct serial_struct *\n"
10553 msgstr ""
10554
10555 #. type: tbl table
10556 #: build/C/man2/ioctl_list.2:161
10557 #, no-wrap
10558 msgid "0x0000541F\tTIOCSSERIAL\tconst struct serial_struct *\n"
10559 msgstr ""
10560
10561 #. type: tbl table
10562 #: build/C/man2/ioctl_list.2:162
10563 #, no-wrap
10564 msgid "0x00005420\tTIOCPKT\tconst int *\n"
10565 msgstr ""
10566
10567 #. type: tbl table
10568 #: build/C/man2/ioctl_list.2:163
10569 #, no-wrap
10570 msgid "0x00005421\tFIONBIO\tconst int *\n"
10571 msgstr ""
10572
10573 #. type: tbl table
10574 #: build/C/man2/ioctl_list.2:164
10575 #, no-wrap
10576 msgid "0x00005422\tTIOCNOTTY\tvoid\n"
10577 msgstr ""
10578
10579 #. type: tbl table
10580 #: build/C/man2/ioctl_list.2:165
10581 #, no-wrap
10582 msgid "0x00005423\tTIOCSETD\tconst int *\n"
10583 msgstr ""
10584
10585 #. type: tbl table
10586 #: build/C/man2/ioctl_list.2:166
10587 #, no-wrap
10588 msgid "0x00005424\tTIOCGETD\tint *\n"
10589 msgstr ""
10590
10591 #. type: tbl table
10592 #: build/C/man2/ioctl_list.2:167
10593 #, no-wrap
10594 msgid "0x00005425\tTCSBRKP\tint\n"
10595 msgstr ""
10596
10597 #. type: tbl table
10598 #: build/C/man2/ioctl_list.2:168
10599 #, no-wrap
10600 msgid "0x00005426\tTIOCTTYGSTRUCT\tstruct tty_struct *\n"
10601 msgstr ""
10602
10603 #. type: tbl table
10604 #: build/C/man2/ioctl_list.2:169
10605 #, no-wrap
10606 msgid "0x00005450\tFIONCLEX\tvoid\n"
10607 msgstr ""
10608
10609 #. type: tbl table
10610 #: build/C/man2/ioctl_list.2:170
10611 #, no-wrap
10612 msgid "0x00005451\tFIOCLEX\tvoid\n"
10613 msgstr ""
10614
10615 #. type: tbl table
10616 #: build/C/man2/ioctl_list.2:171
10617 #, no-wrap
10618 msgid "0x00005452\tFIOASYNC\tconst int *\n"
10619 msgstr ""
10620
10621 #. type: tbl table
10622 #: build/C/man2/ioctl_list.2:172
10623 #, no-wrap
10624 msgid "0x00005453\tTIOCSERCONFIG\tvoid\n"
10625 msgstr ""
10626
10627 #. type: tbl table
10628 #: build/C/man2/ioctl_list.2:173
10629 #, no-wrap
10630 msgid "0x00005454\tTIOCSERGWILD\tint *\n"
10631 msgstr ""
10632
10633 #. type: tbl table
10634 #: build/C/man2/ioctl_list.2:174
10635 #, no-wrap
10636 msgid "0x00005455\tTIOCSERSWILD\tconst int *\n"
10637 msgstr ""
10638
10639 #. type: tbl table
10640 #: build/C/man2/ioctl_list.2:175
10641 #, no-wrap
10642 msgid "0x00005456\tTIOCGLCKTRMIOS\tstruct termios *\n"
10643 msgstr ""
10644
10645 #. type: tbl table
10646 #: build/C/man2/ioctl_list.2:176
10647 #, no-wrap
10648 msgid "0x00005457\tTIOCSLCKTRMIOS\tconst struct termios *\n"
10649 msgstr ""
10650
10651 #. type: tbl table
10652 #: build/C/man2/ioctl_list.2:177
10653 #, no-wrap
10654 msgid "0x00005458\tTIOCSERGSTRUCT\tstruct async_struct *\n"
10655 msgstr ""
10656
10657 #. type: tbl table
10658 #: build/C/man2/ioctl_list.2:178
10659 #, no-wrap
10660 msgid "0x00005459\tTIOCSERGETLSR\tint *\n"
10661 msgstr ""
10662
10663 #. type: tbl table
10664 #: build/C/man2/ioctl_list.2:185
10665 #, no-wrap
10666 msgid "0x0000545A\tTIOCSERGETMULTI\tstruct serial_multiport_struct *\n"
10667 msgstr ""
10668
10669 #. type: tbl table
10670 #: build/C/man2/ioctl_list.2:186
10671 #, no-wrap
10672 msgid "0x0000545B\tTIOCSERSETMULTI\tconst struct serial_multiport_struct *\n"
10673 msgstr ""
10674
10675 #. type: Plain text
10676 #: build/C/man2/ioctl_list.2:190
10677 msgid "// E<lt>include/linux/ax25.hE<gt>"
10678 msgstr ""
10679
10680 #. type: tbl table
10681 #: build/C/man2/ioctl_list.2:192
10682 #, no-wrap
10683 msgid "0x000089E0\tSIOCAX25GETUID\tconst struct sockaddr_ax25 *\n"
10684 msgstr ""
10685
10686 #. type: tbl table
10687 #: build/C/man2/ioctl_list.2:193
10688 #, no-wrap
10689 msgid "0x000089E1\tSIOCAX25ADDUID\tconst struct sockaddr_ax25 *\n"
10690 msgstr ""
10691
10692 #. type: tbl table
10693 #: build/C/man2/ioctl_list.2:194
10694 #, no-wrap
10695 msgid "0x000089E2\tSIOCAX25DELUID\tconst struct sockaddr_ax25 *\n"
10696 msgstr ""
10697
10698 #. type: tbl table
10699 #: build/C/man2/ioctl_list.2:195
10700 #, no-wrap
10701 msgid "0x000089E3\tSIOCAX25NOUID\tconst int *\n"
10702 msgstr ""
10703
10704 #. type: tbl table
10705 #: build/C/man2/ioctl_list.2:196
10706 #, no-wrap
10707 msgid "0x000089E4\tSIOCAX25DIGCTL\tconst int *\n"
10708 msgstr ""
10709
10710 #. type: tbl table
10711 #: build/C/man2/ioctl_list.2:197
10712 #, no-wrap
10713 msgid "0x000089E5\tSIOCAX25GETPARMS\tstruct ax25_parms_struct *\t// I-O\n"
10714 msgstr ""
10715
10716 #. type: tbl table
10717 #: build/C/man2/ioctl_list.2:201
10718 #, no-wrap
10719 msgid "0x000089E6\tSIOCAX25SETPARMS\tconst struct ax25_parms_struct *\n"
10720 msgstr ""
10721
10722 #. type: Plain text
10723 #: build/C/man2/ioctl_list.2:205
10724 msgid "// E<lt>include/linux/cdk.hE<gt>"
10725 msgstr ""
10726
10727 #. type: tbl table
10728 #: build/C/man2/ioctl_list.2:207
10729 #, no-wrap
10730 msgid "0x00007314\tSTL_BINTR\tvoid\n"
10731 msgstr ""
10732
10733 #. type: tbl table
10734 #: build/C/man2/ioctl_list.2:208
10735 #, no-wrap
10736 msgid "0x00007315\tSTL_BSTART\tvoid\n"
10737 msgstr ""
10738
10739 #. type: tbl table
10740 #: build/C/man2/ioctl_list.2:209
10741 #, no-wrap
10742 msgid "0x00007316\tSTL_BSTOP\tvoid\n"
10743 msgstr ""
10744
10745 #. type: tbl table
10746 #: build/C/man2/ioctl_list.2:210
10747 #, no-wrap
10748 msgid "0x00007317\tSTL_BRESET\tvoid\n"
10749 msgstr ""
10750
10751 #. type: Plain text
10752 #: build/C/man2/ioctl_list.2:214
10753 msgid "// E<lt>include/linux/cdrom.hE<gt>"
10754 msgstr ""
10755
10756 #. type: tbl table
10757 #: build/C/man2/ioctl_list.2:216
10758 #, no-wrap
10759 msgid "0x00005301\tCDROMPAUSE\tvoid\n"
10760 msgstr ""
10761
10762 #. type: tbl table
10763 #: build/C/man2/ioctl_list.2:217
10764 #, no-wrap
10765 msgid "0x00005302\tCDROMRESUME\tvoid\n"
10766 msgstr ""
10767
10768 #. type: tbl table
10769 #: build/C/man2/ioctl_list.2:218
10770 #, no-wrap
10771 msgid "0x00005303\tCDROMPLAYMSF\tconst struct cdrom_msf *\n"
10772 msgstr ""
10773
10774 #. type: tbl table
10775 #: build/C/man2/ioctl_list.2:219
10776 #, no-wrap
10777 msgid "0x00005304\tCDROMPLAYTRKIND\tconst struct cdrom_ti *\n"
10778 msgstr ""
10779
10780 #. type: tbl table
10781 #: build/C/man2/ioctl_list.2:220
10782 #, no-wrap
10783 msgid "0x00005305\tCDROMREADTOCHDR\tstruct cdrom_tochdr *\n"
10784 msgstr ""
10785
10786 #. type: tbl table
10787 #: build/C/man2/ioctl_list.2:224
10788 #, no-wrap
10789 msgid "0x00005306\tCDROMREADTOCENTRY\tstruct cdrom_tocentry *\t// I-O\n"
10790 msgstr ""
10791
10792 #. type: tbl table
10793 #: build/C/man2/ioctl_list.2:228
10794 #, no-wrap
10795 msgid "0x00005307\tCDROMSTOP\tvoid\n"
10796 msgstr ""
10797
10798 #. type: tbl table
10799 #: build/C/man2/ioctl_list.2:229
10800 #, no-wrap
10801 msgid "0x00005308\tCDROMSTART\tvoid\n"
10802 msgstr ""
10803
10804 #. type: tbl table
10805 #: build/C/man2/ioctl_list.2:230
10806 #, no-wrap
10807 msgid "0x00005309\tCDROMEJECT\tvoid\n"
10808 msgstr ""
10809
10810 #. type: tbl table
10811 #: build/C/man2/ioctl_list.2:231
10812 #, no-wrap
10813 msgid "0x0000530A\tCDROMVOLCTRL\tconst struct cdrom_volctrl *\n"
10814 msgstr ""
10815
10816 #. type: tbl table
10817 #: build/C/man2/ioctl_list.2:232
10818 #, no-wrap
10819 msgid "0x0000530B\tCDROMSUBCHNL\tstruct cdrom_subchnl *\t// I-O\n"
10820 msgstr ""
10821
10822 #. type: tbl table
10823 #: build/C/man2/ioctl_list.2:233
10824 #, no-wrap
10825 msgid "0x0000530C\tCDROMREADMODE2\tconst struct cdrom_msf *\t// MORE\n"
10826 msgstr ""
10827
10828 #. type: tbl table
10829 #: build/C/man2/ioctl_list.2:234
10830 #, no-wrap
10831 msgid "0x0000530D\tCDROMREADMODE1\tconst struct cdrom_msf *\t// MORE\n"
10832 msgstr ""
10833
10834 #. type: tbl table
10835 #: build/C/man2/ioctl_list.2:235
10836 #, no-wrap
10837 msgid "0x0000530E\tCDROMREADAUDIO\tconst struct cdrom_read_audio *\t// MORE\n"
10838 msgstr ""
10839
10840 #. type: tbl table
10841 #: build/C/man2/ioctl_list.2:236
10842 #, no-wrap
10843 msgid "0x0000530F\tCDROMEJECT_SW\tint\n"
10844 msgstr ""
10845
10846 #. type: tbl table
10847 #: build/C/man2/ioctl_list.2:240
10848 #, no-wrap
10849 msgid "0x00005310\tCDROMMULTISESSION\tstruct cdrom_multisession *\t// I-O\n"
10850 msgstr ""
10851
10852 #. type: tbl table
10853 #: build/C/man2/ioctl_list.2:244
10854 #, no-wrap
10855 msgid "0x00005311\tCDROM_GET_UPC\tstruct { char [8]; } *\n"
10856 msgstr ""
10857
10858 #. type: tbl table
10859 #: build/C/man2/ioctl_list.2:245
10860 #, no-wrap
10861 msgid "0x00005312\tCDROMRESET\tvoid\n"
10862 msgstr ""
10863
10864 #. type: tbl table
10865 #: build/C/man2/ioctl_list.2:246
10866 #, no-wrap
10867 msgid "0x00005313\tCDROMVOLREAD\tstruct cdrom_volctrl *\n"
10868 msgstr ""
10869
10870 #. type: tbl table
10871 #: build/C/man2/ioctl_list.2:247
10872 #, no-wrap
10873 msgid "0x00005314\tCDROMREADRAW\tconst struct cdrom_msf *\t// MORE\n"
10874 msgstr ""
10875
10876 #. type: tbl table
10877 #: build/C/man2/ioctl_list.2:248
10878 #, no-wrap
10879 msgid "0x00005315\tCDROMREADCOOKED\tconst struct cdrom_msf *\t// MORE\n"
10880 msgstr ""
10881
10882 #. type: tbl table
10883 #: build/C/man2/ioctl_list.2:249
10884 #, no-wrap
10885 msgid "0x00005316\tCDROMSEEK\tconst struct cdrom_msf *\n"
10886 msgstr ""
10887
10888 #. type: Plain text
10889 #: build/C/man2/ioctl_list.2:253
10890 msgid "// E<lt>include/linux/cm206.hE<gt>"
10891 msgstr ""
10892
10893 #. type: tbl table
10894 #: build/C/man2/ioctl_list.2:255
10895 #, no-wrap
10896 msgid "0x00002000\tCM206CTL_GET_STAT\tint\n"
10897 msgstr ""
10898
10899 #. type: tbl table
10900 #: build/C/man2/ioctl_list.2:256
10901 #, no-wrap
10902 msgid "0x00002001\tCM206CTL_GET_LAST_STAT\tint\n"
10903 msgstr ""
10904
10905 #. type: Plain text
10906 #: build/C/man2/ioctl_list.2:260
10907 msgid "// E<lt>include/linux/cyclades.hE<gt>"
10908 msgstr ""
10909
10910 #. type: tbl table
10911 #: build/C/man2/ioctl_list.2:262
10912 #, no-wrap
10913 msgid "0x00435901\tCYGETMON\tstruct cyclades_monitor *\n"
10914 msgstr ""
10915
10916 #. type: tbl table
10917 #: build/C/man2/ioctl_list.2:263
10918 #, no-wrap
10919 msgid "0x00435902\tCYGETTHRESH\tint *\n"
10920 msgstr ""
10921
10922 #. type: tbl table
10923 #: build/C/man2/ioctl_list.2:264
10924 #, no-wrap
10925 msgid "0x00435903\tCYSETTHRESH\tint\n"
10926 msgstr ""
10927
10928 #. type: tbl table
10929 #: build/C/man2/ioctl_list.2:265
10930 #, no-wrap
10931 msgid "0x00435904\tCYGETDEFTHRESH\tint *\n"
10932 msgstr ""
10933
10934 #. type: tbl table
10935 #: build/C/man2/ioctl_list.2:266
10936 #, no-wrap
10937 msgid "0x00435905\tCYSETDEFTHRESH\tint\n"
10938 msgstr ""
10939
10940 #. type: tbl table
10941 #: build/C/man2/ioctl_list.2:267
10942 #, no-wrap
10943 msgid "0x00435906\tCYGETTIMEOUT\tint *\n"
10944 msgstr ""
10945
10946 #. type: tbl table
10947 #: build/C/man2/ioctl_list.2:268
10948 #, no-wrap
10949 msgid "0x00435907\tCYSETTIMEOUT\tint\n"
10950 msgstr ""
10951
10952 #. type: tbl table
10953 #: build/C/man2/ioctl_list.2:269
10954 #, no-wrap
10955 msgid "0x00435908\tCYGETDEFTIMEOUT\tint *\n"
10956 msgstr ""
10957
10958 #. type: tbl table
10959 #: build/C/man2/ioctl_list.2:270
10960 #, no-wrap
10961 msgid "0x00435909\tCYSETDEFTIMEOUT\tint\n"
10962 msgstr ""
10963
10964 #. type: Plain text
10965 #: build/C/man2/ioctl_list.2:274
10966 msgid "// E<lt>include/linux/ext2_fs.hE<gt>"
10967 msgstr ""
10968
10969 #. type: tbl table
10970 #: build/C/man2/ioctl_list.2:276
10971 #, no-wrap
10972 msgid "0x80046601\tEXT2_IOC_GETFLAGS\tint *\n"
10973 msgstr ""
10974
10975 #. type: tbl table
10976 #: build/C/man2/ioctl_list.2:277
10977 #, no-wrap
10978 msgid "0x40046602\tEXT2_IOC_SETFLAGS\tconst int *\n"
10979 msgstr ""
10980
10981 #. type: tbl table
10982 #: build/C/man2/ioctl_list.2:278
10983 #, no-wrap
10984 msgid "0x80047601\tEXT2_IOC_GETVERSION\tint *\n"
10985 msgstr ""
10986
10987 #. type: tbl table
10988 #: build/C/man2/ioctl_list.2:279
10989 #, no-wrap
10990 msgid "0x40047602\tEXT2_IOC_SETVERSION\tconst int *\n"
10991 msgstr ""
10992
10993 #. type: Plain text
10994 #: build/C/man2/ioctl_list.2:283
10995 msgid "// E<lt>include/linux/fd.hE<gt>"
10996 msgstr ""
10997
10998 #. type: tbl table
10999 #: build/C/man2/ioctl_list.2:285
11000 #, no-wrap
11001 msgid "0x00000000\tFDCLRPRM\tvoid\n"
11002 msgstr ""
11003
11004 #. type: tbl table
11005 #: build/C/man2/ioctl_list.2:286
11006 #, no-wrap
11007 msgid "0x00000001\tFDSETPRM\tconst struct floppy_struct *\n"
11008 msgstr ""
11009
11010 #. type: tbl table
11011 #: build/C/man2/ioctl_list.2:287
11012 #, no-wrap
11013 msgid "0x00000002\tFDDEFPRM\tconst struct floppy_struct *\n"
11014 msgstr ""
11015
11016 #. type: tbl table
11017 #: build/C/man2/ioctl_list.2:288
11018 #, no-wrap
11019 msgid "0x00000003\tFDGETPRM\tstruct floppy_struct *\n"
11020 msgstr ""
11021
11022 #. type: tbl table
11023 #: build/C/man2/ioctl_list.2:289
11024 #, no-wrap
11025 msgid "0x00000004\tFDMSGON\tvoid\n"
11026 msgstr ""
11027
11028 #. type: tbl table
11029 #: build/C/man2/ioctl_list.2:290
11030 #, no-wrap
11031 msgid "0x00000005\tFDMSGOFF\tvoid\n"
11032 msgstr ""
11033
11034 #. type: tbl table
11035 #: build/C/man2/ioctl_list.2:291
11036 #, no-wrap
11037 msgid "0x00000006\tFDFMTBEG\tvoid\n"
11038 msgstr ""
11039
11040 #. type: tbl table
11041 #: build/C/man2/ioctl_list.2:292
11042 #, no-wrap
11043 msgid "0x00000007\tFDFMTTRK\tconst struct format_descr *\n"
11044 msgstr ""
11045
11046 #. type: tbl table
11047 #: build/C/man2/ioctl_list.2:293
11048 #, no-wrap
11049 msgid "0x00000008\tFDFMTEND\tvoid\n"
11050 msgstr ""
11051
11052 #. type: tbl table
11053 #: build/C/man2/ioctl_list.2:294
11054 #, no-wrap
11055 msgid "0x0000000A\tFDSETEMSGTRESH\tint\n"
11056 msgstr ""
11057
11058 #. type: tbl table
11059 #: build/C/man2/ioctl_list.2:295
11060 #, no-wrap
11061 msgid "0x0000000B\tFDFLUSH\tvoid\n"
11062 msgstr ""
11063
11064 #. type: tbl table
11065 #: build/C/man2/ioctl_list.2:296
11066 #, no-wrap
11067 msgid "0x0000000C\tFDSETMAXERRS\tconst struct floppy_max_errors *\n"
11068 msgstr ""
11069
11070 #. type: tbl table
11071 #: build/C/man2/ioctl_list.2:297
11072 #, no-wrap
11073 msgid "0x0000000E\tFDGETMAXERRS\tstruct floppy_max_errors *\n"
11074 msgstr ""
11075
11076 #. type: tbl table
11077 #: build/C/man2/ioctl_list.2:298
11078 #, no-wrap
11079 msgid "0x00000010\tFDGETDRVTYP\tstruct { char [16]; } *\n"
11080 msgstr ""
11081
11082 #. type: tbl table
11083 #: build/C/man2/ioctl_list.2:299
11084 #, no-wrap
11085 msgid "0x00000014\tFDSETDRVPRM\tconst struct floppy_drive_params *\n"
11086 msgstr ""
11087
11088 #. type: tbl table
11089 #: build/C/man2/ioctl_list.2:300
11090 #, no-wrap
11091 msgid "0x00000015\tFDGETDRVPRM\tstruct floppy_drive_params *\n"
11092 msgstr ""
11093
11094 #. type: tbl table
11095 #: build/C/man2/ioctl_list.2:301
11096 #, no-wrap
11097 msgid "0x00000016\tFDGETDRVSTAT\tstruct floppy_drive_struct *\n"
11098 msgstr ""
11099
11100 #. type: tbl table
11101 #: build/C/man2/ioctl_list.2:302
11102 #, no-wrap
11103 msgid "0x00000017\tFDPOLLDRVSTAT\tstruct floppy_drive_struct *\n"
11104 msgstr ""
11105
11106 #. type: tbl table
11107 #: build/C/man2/ioctl_list.2:303
11108 #, no-wrap
11109 msgid "0x00000018\tFDRESET\tint\n"
11110 msgstr ""
11111
11112 #. type: tbl table
11113 #: build/C/man2/ioctl_list.2:304
11114 #, no-wrap
11115 msgid "0x00000019\tFDGETFDCSTAT\tstruct floppy_fdc_state *\n"
11116 msgstr ""
11117
11118 #. type: tbl table
11119 #: build/C/man2/ioctl_list.2:305
11120 #, no-wrap
11121 msgid "0x0000001B\tFDWERRORCLR\tvoid\n"
11122 msgstr ""
11123
11124 #. type: tbl table
11125 #: build/C/man2/ioctl_list.2:306
11126 #, no-wrap
11127 msgid "0x0000001C\tFDWERRORGET\tstruct floppy_write_errors *\n"
11128 msgstr ""
11129
11130 #. type: tbl table
11131 #: build/C/man2/ioctl_list.2:310
11132 #, no-wrap
11133 msgid "0x0000001E\tFDRAWCMD\tstruct floppy_raw_cmd *\t// MORE // I-O\n"
11134 msgstr ""
11135
11136 #. type: tbl table
11137 #: build/C/man2/ioctl_list.2:311
11138 #, no-wrap
11139 msgid "0x00000028\tFDTWADDLE\tvoid\n"
11140 msgstr ""
11141
11142 #. type: Plain text
11143 #: build/C/man2/ioctl_list.2:315
11144 msgid "// E<lt>include/linux/fs.hE<gt>"
11145 msgstr ""
11146
11147 #. type: tbl table
11148 #: build/C/man2/ioctl_list.2:317
11149 #, no-wrap
11150 msgid "0x0000125D\tBLKROSET\tconst int *\n"
11151 msgstr ""
11152
11153 #. type: tbl table
11154 #: build/C/man2/ioctl_list.2:318
11155 #, no-wrap
11156 msgid "0x0000125E\tBLKROGET\tint *\n"
11157 msgstr ""
11158
11159 #. type: tbl table
11160 #: build/C/man2/ioctl_list.2:319
11161 #, no-wrap
11162 msgid "0x0000125F\tBLKRRPART\tvoid\n"
11163 msgstr ""
11164
11165 #. type: tbl table
11166 #: build/C/man2/ioctl_list.2:320
11167 #, no-wrap
11168 msgid "0x00001260\tBLKGETSIZE\tunsigned long *\n"
11169 msgstr ""
11170
11171 #. type: tbl table
11172 #: build/C/man2/ioctl_list.2:321
11173 #, no-wrap
11174 msgid "0x00001261\tBLKFLSBUF\tvoid\n"
11175 msgstr ""
11176
11177 #. type: tbl table
11178 #: build/C/man2/ioctl_list.2:322
11179 #, no-wrap
11180 msgid "0x00001262\tBLKRASET\tint\n"
11181 msgstr ""
11182
11183 #. type: tbl table
11184 #: build/C/man2/ioctl_list.2:323
11185 #, no-wrap
11186 msgid "0x00001263\tBLKRAGET\tint *\n"
11187 msgstr ""
11188
11189 #. type: tbl table
11190 #: build/C/man2/ioctl_list.2:324
11191 #, no-wrap
11192 msgid "0x00000001\tFIBMAP\tint *\t// I-O\n"
11193 msgstr ""
11194
11195 #. type: tbl table
11196 #: build/C/man2/ioctl_list.2:325
11197 #, no-wrap
11198 msgid "0x00000002\tFIGETBSZ\tint *\n"
11199 msgstr ""
11200
11201 #. type: Plain text
11202 #: build/C/man2/ioctl_list.2:329
11203 msgid "// E<lt>include/linux/hdreg.hE<gt>"
11204 msgstr ""
11205
11206 #. type: tbl table
11207 #: build/C/man2/ioctl_list.2:331
11208 #, no-wrap
11209 msgid "0x00000301\tHDIO_GETGEO\tstruct hd_geometry *\n"
11210 msgstr ""
11211
11212 #. type: tbl table
11213 #: build/C/man2/ioctl_list.2:332
11214 #, no-wrap
11215 msgid "0x00000302\tHDIO_GET_UNMASKINTR\tint *\n"
11216 msgstr ""
11217
11218 #. type: tbl table
11219 #: build/C/man2/ioctl_list.2:333
11220 #, no-wrap
11221 msgid "0x00000304\tHDIO_GET_MULTCOUNT\tint *\n"
11222 msgstr ""
11223
11224 #. type: tbl table
11225 #: build/C/man2/ioctl_list.2:334
11226 #, no-wrap
11227 msgid "0x00000307\tHDIO_GET_IDENTITY\tstruct hd_driveid *\n"
11228 msgstr ""
11229
11230 #. type: tbl table
11231 #: build/C/man2/ioctl_list.2:335
11232 #, no-wrap
11233 msgid "0x00000308\tHDIO_GET_KEEPSETTINGS\tint *\n"
11234 msgstr ""
11235
11236 #. type: tbl table
11237 #: build/C/man2/ioctl_list.2:336
11238 #, no-wrap
11239 msgid "0x00000309\tHDIO_GET_CHIPSET\tint *\n"
11240 msgstr ""
11241
11242 #. type: tbl table
11243 #: build/C/man2/ioctl_list.2:337
11244 #, no-wrap
11245 msgid "0x0000030A\tHDIO_GET_NOWERR\tint *\n"
11246 msgstr ""
11247
11248 #. type: tbl table
11249 #: build/C/man2/ioctl_list.2:338
11250 #, no-wrap
11251 msgid "0x0000030B\tHDIO_GET_DMA\tint *\n"
11252 msgstr ""
11253
11254 #. type: tbl table
11255 #: build/C/man2/ioctl_list.2:339
11256 #, no-wrap
11257 msgid "0x0000031F\tHDIO_DRIVE_CMD\tint *\t// I-O\n"
11258 msgstr ""
11259
11260 #. type: tbl table
11261 #: build/C/man2/ioctl_list.2:340
11262 #, no-wrap
11263 msgid "0x00000321\tHDIO_SET_MULTCOUNT\tint\n"
11264 msgstr ""
11265
11266 #. type: tbl table
11267 #: build/C/man2/ioctl_list.2:341
11268 #, no-wrap
11269 msgid "0x00000322\tHDIO_SET_UNMASKINTR\tint\n"
11270 msgstr ""
11271
11272 #. type: tbl table
11273 #: build/C/man2/ioctl_list.2:342
11274 #, no-wrap
11275 msgid "0x00000323\tHDIO_SET_KEEPSETTINGS\tint\n"
11276 msgstr ""
11277
11278 #. type: tbl table
11279 #: build/C/man2/ioctl_list.2:343
11280 #, no-wrap
11281 msgid "0x00000324\tHDIO_SET_CHIPSET\tint\n"
11282 msgstr ""
11283
11284 #. type: tbl table
11285 #: build/C/man2/ioctl_list.2:344
11286 #, no-wrap
11287 msgid "0x00000325\tHDIO_SET_NOWERR\tint\n"
11288 msgstr ""
11289
11290 #. type: tbl table
11291 #: build/C/man2/ioctl_list.2:345
11292 #, no-wrap
11293 msgid "0x00000326\tHDIO_SET_DMA\tint\n"
11294 msgstr ""
11295
11296 #. type: Plain text
11297 #: build/C/man2/ioctl_list.2:349
11298 msgid "// E<lt>include/linux/if_eql.hE<gt>"
11299 msgstr ""
11300
11301 #. type: tbl table
11302 #: build/C/man2/ioctl_list.2:351
11303 #, no-wrap
11304 msgid "0x000089F0\tEQL_ENSLAVE\tstruct ifreq *\t// MORE // I-O\n"
11305 msgstr ""
11306
11307 #. type: tbl table
11308 #: build/C/man2/ioctl_list.2:352
11309 #, no-wrap
11310 msgid "0x000089F1\tEQL_EMANCIPATE\tstruct ifreq *\t// MORE // I-O\n"
11311 msgstr ""
11312
11313 #. type: tbl table
11314 #: build/C/man2/ioctl_list.2:353
11315 #, no-wrap
11316 msgid "0x000089F2\tEQL_GETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
11317 msgstr ""
11318
11319 #. type: tbl table
11320 #: build/C/man2/ioctl_list.2:354
11321 #, no-wrap
11322 msgid "0x000089F3\tEQL_SETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
11323 msgstr ""
11324
11325 #. type: tbl table
11326 #: build/C/man2/ioctl_list.2:355
11327 #, no-wrap
11328 msgid "0x000089F4\tEQL_GETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
11329 msgstr ""
11330
11331 #. type: tbl table
11332 #: build/C/man2/ioctl_list.2:356
11333 #, no-wrap
11334 msgid "0x000089F5\tEQL_SETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
11335 msgstr ""
11336
11337 #. type: Plain text
11338 #: build/C/man2/ioctl_list.2:360
11339 msgid "// E<lt>include/linux/if_plip.hE<gt>"
11340 msgstr ""
11341
11342 #. type: tbl table
11343 #: build/C/man2/ioctl_list.2:362
11344 #, no-wrap
11345 msgid "0x000089F0\tSIOCDEVPLIP\tstruct ifreq *\t// I-O\n"
11346 msgstr ""
11347
11348 #. type: Plain text
11349 #: build/C/man2/ioctl_list.2:366
11350 msgid "// E<lt>include/linux/if_ppp.hE<gt>"
11351 msgstr ""
11352
11353 #. type: tbl table
11354 #: build/C/man2/ioctl_list.2:368
11355 #, no-wrap
11356 msgid "0x00005490\tPPPIOCGFLAGS\tint *\n"
11357 msgstr ""
11358
11359 #. type: tbl table
11360 #: build/C/man2/ioctl_list.2:369
11361 #, no-wrap
11362 msgid "0x00005491\tPPPIOCSFLAGS\tconst int *\n"
11363 msgstr ""
11364
11365 #. type: tbl table
11366 #: build/C/man2/ioctl_list.2:370
11367 #, no-wrap
11368 msgid "0x00005492\tPPPIOCGASYNCMAP\tint *\n"
11369 msgstr ""
11370
11371 #. type: tbl table
11372 #: build/C/man2/ioctl_list.2:371
11373 #, no-wrap
11374 msgid "0x00005493\tPPPIOCSASYNCMAP\tconst int *\n"
11375 msgstr ""
11376
11377 #. type: tbl table
11378 #: build/C/man2/ioctl_list.2:372
11379 #, no-wrap
11380 msgid "0x00005494\tPPPIOCGUNIT\tint *\n"
11381 msgstr ""
11382
11383 #. type: tbl table
11384 #: build/C/man2/ioctl_list.2:373
11385 #, no-wrap
11386 msgid "0x00005495\tPPPIOCSINPSIG\tconst int *\n"
11387 msgstr ""
11388
11389 #. type: tbl table
11390 #: build/C/man2/ioctl_list.2:374
11391 #, no-wrap
11392 msgid "0x00005497\tPPPIOCSDEBUG\tconst int *\n"
11393 msgstr ""
11394
11395 #. type: tbl table
11396 #: build/C/man2/ioctl_list.2:375
11397 #, no-wrap
11398 msgid "0x00005498\tPPPIOCGDEBUG\tint *\n"
11399 msgstr ""
11400
11401 #. type: tbl table
11402 #: build/C/man2/ioctl_list.2:376
11403 #, no-wrap
11404 msgid "0x00005499\tPPPIOCGSTAT\tstruct ppp_stats *\n"
11405 msgstr ""
11406
11407 #. type: tbl table
11408 #: build/C/man2/ioctl_list.2:377
11409 #, no-wrap
11410 msgid "0x0000549A\tPPPIOCGTIME\tstruct ppp_ddinfo *\n"
11411 msgstr ""
11412
11413 #. type: tbl table
11414 #: build/C/man2/ioctl_list.2:378
11415 #, no-wrap
11416 msgid "0x0000549B\tPPPIOCGXASYNCMAP\tstruct { int [8]; } *\n"
11417 msgstr ""
11418
11419 #. type: tbl table
11420 #: build/C/man2/ioctl_list.2:379
11421 #, no-wrap
11422 msgid "0x0000549C\tPPPIOCSXASYNCMAP\tconst struct { int [8]; } *\n"
11423 msgstr ""
11424
11425 #. type: tbl table
11426 #: build/C/man2/ioctl_list.2:380
11427 #, no-wrap
11428 msgid "0x0000549D\tPPPIOCSMRU\tconst int *\n"
11429 msgstr ""
11430
11431 #. type: tbl table
11432 #: build/C/man2/ioctl_list.2:381
11433 #, no-wrap
11434 msgid "0x0000549E\tPPPIOCRASYNCMAP\tconst int *\n"
11435 msgstr ""
11436
11437 #. type: tbl table
11438 #: build/C/man2/ioctl_list.2:382
11439 #, no-wrap
11440 msgid "0x0000549F\tPPPIOCSMAXCID\tconst int *\n"
11441 msgstr ""
11442
11443 #. type: Plain text
11444 #: build/C/man2/ioctl_list.2:386
11445 msgid "// E<lt>include/linux/ipx.hE<gt>"
11446 msgstr ""
11447
11448 #. type: tbl table
11449 #: build/C/man2/ioctl_list.2:388
11450 #, no-wrap
11451 msgid "0x000089E0\tSIOCAIPXITFCRT\tconst char *\n"
11452 msgstr ""
11453
11454 #. type: tbl table
11455 #: build/C/man2/ioctl_list.2:389
11456 #, no-wrap
11457 msgid "0x000089E1\tSIOCAIPXPRISLT\tconst char *\n"
11458 msgstr ""
11459
11460 #. type: tbl table
11461 #: build/C/man2/ioctl_list.2:390
11462 #, no-wrap
11463 msgid "0x000089E2\tSIOCIPXCFGDATA\tstruct ipx_config_data *\n"
11464 msgstr ""
11465
11466 #. type: Plain text
11467 #: build/C/man2/ioctl_list.2:394
11468 msgid "// E<lt>include/linux/kd.hE<gt>"
11469 msgstr ""
11470
11471 #. type: tbl table
11472 #: build/C/man2/ioctl_list.2:396
11473 #, no-wrap
11474 msgid "0x00004B60\tGIO_FONT\tstruct { char [8192]; } *\n"
11475 msgstr ""
11476
11477 #. type: tbl table
11478 #: build/C/man2/ioctl_list.2:397
11479 #, no-wrap
11480 msgid "0x00004B61\tPIO_FONT\tconst struct { char [8192]; } *\n"
11481 msgstr ""
11482
11483 #. type: tbl table
11484 #: build/C/man2/ioctl_list.2:401
11485 #, no-wrap
11486 msgid "0x00004B6B\tGIO_FONTX\tstruct console_font_desc *\t// MORE // I-O\n"
11487 msgstr ""
11488
11489 #. type: tbl table
11490 #: build/C/man2/ioctl_list.2:402
11491 #, no-wrap
11492 msgid "0x00004B6C\tPIO_FONTX\tconst struct console_font_desc *\t//MORE\n"
11493 msgstr ""
11494
11495 #. type: tbl table
11496 #: build/C/man2/ioctl_list.2:406
11497 #, no-wrap
11498 msgid "0x00004B70\tGIO_CMAP\tstruct { char [48]; } *\n"
11499 msgstr ""
11500
11501 #. type: tbl table
11502 #: build/C/man2/ioctl_list.2:407
11503 #, no-wrap
11504 msgid "0x00004B71\tPIO_CMAP\tconst struct { char [48]; }\n"
11505 msgstr ""
11506
11507 #. type: tbl table
11508 #: build/C/man2/ioctl_list.2:411
11509 #, no-wrap
11510 msgid "0x00004B2F\tKIOCSOUND\tint\n"
11511 msgstr ""
11512
11513 #. type: tbl table
11514 #: build/C/man2/ioctl_list.2:412
11515 #, no-wrap
11516 msgid "0x00004B30\tKDMKTONE\tint\n"
11517 msgstr ""
11518
11519 #. type: tbl table
11520 #: build/C/man2/ioctl_list.2:413
11521 #, no-wrap
11522 msgid "0x00004B31\tKDGETLED\tchar *\n"
11523 msgstr ""
11524
11525 #. type: tbl table
11526 #: build/C/man2/ioctl_list.2:414
11527 #, no-wrap
11528 msgid "0x00004B32\tKDSETLED\tint\n"
11529 msgstr ""
11530
11531 #. type: tbl table
11532 #: build/C/man2/ioctl_list.2:415
11533 #, no-wrap
11534 msgid "0x00004B33\tKDGKBTYPE\tchar *\n"
11535 msgstr ""
11536
11537 #. type: tbl table
11538 #: build/C/man2/ioctl_list.2:416
11539 #, no-wrap
11540 msgid "0x00004B34\tKDADDIO\tint\t// MORE\n"
11541 msgstr ""
11542
11543 #. type: tbl table
11544 #: build/C/man2/ioctl_list.2:417
11545 #, no-wrap
11546 msgid "0x00004B35\tKDDELIO\tint\t// MORE\n"
11547 msgstr ""
11548
11549 #. type: tbl table
11550 #: build/C/man2/ioctl_list.2:418
11551 #, no-wrap
11552 msgid "0x00004B36\tKDENABIO\tvoid\t// MORE\n"
11553 msgstr ""
11554
11555 #. type: tbl table
11556 #: build/C/man2/ioctl_list.2:419
11557 #, no-wrap
11558 msgid "0x00004B37\tKDDISABIO\tvoid\t// MORE\n"
11559 msgstr ""
11560
11561 #. type: tbl table
11562 #: build/C/man2/ioctl_list.2:420
11563 #, no-wrap
11564 msgid "0x00004B3A\tKDSETMODE\tint\n"
11565 msgstr ""
11566
11567 #. type: tbl table
11568 #: build/C/man2/ioctl_list.2:421
11569 #, no-wrap
11570 msgid "0x00004B3B\tKDGETMODE\tint *\n"
11571 msgstr ""
11572
11573 #. type: tbl table
11574 #: build/C/man2/ioctl_list.2:422
11575 #, no-wrap
11576 msgid "0x00004B3C\tKDMAPDISP\tvoid\t// MORE\n"
11577 msgstr ""
11578
11579 #. type: tbl table
11580 #: build/C/man2/ioctl_list.2:423
11581 #, no-wrap
11582 msgid "0x00004B3D\tKDUNMAPDISP\tvoid\t// MORE\n"
11583 msgstr ""
11584
11585 #. type: tbl table
11586 #: build/C/man2/ioctl_list.2:424
11587 #, no-wrap
11588 msgid "0x00004B40\tGIO_SCRNMAP\tstruct { char [E_TABSZ]; } *\n"
11589 msgstr ""
11590
11591 #. type: tbl table
11592 #: build/C/man2/ioctl_list.2:428
11593 #, no-wrap
11594 msgid "0x00004B41\tPIO_SCRNMAP\tconst struct { char [E_TABSZ]; } *\n"
11595 msgstr ""
11596
11597 #. type: tbl table
11598 #: build/C/man2/ioctl_list.2:429
11599 #, no-wrap
11600 msgid "0x00004B69\tGIO_UNISCRNMAP\tstruct { short [E_TABSZ]; } *\n"
11601 msgstr ""
11602
11603 #. type: tbl table
11604 #: build/C/man2/ioctl_list.2:430
11605 #, no-wrap
11606 msgid "0x00004B6A\tPIO_UNISCRNMAP\tconst struct { short [E_TABSZ]; } *\n"
11607 msgstr ""
11608
11609 #. type: tbl table
11610 #: build/C/man2/ioctl_list.2:434
11611 #, no-wrap
11612 msgid "0x00004B66\tGIO_UNIMAP\tstruct unimapdesc *\t// MORE // I-O\n"
11613 msgstr ""
11614
11615 #. type: tbl table
11616 #: build/C/man2/ioctl_list.2:435
11617 #, no-wrap
11618 msgid "0x00004B67\tPIO_UNIMAP\tconst struct unimapdesc *\t// MORE\n"
11619 msgstr ""
11620
11621 #. type: tbl table
11622 #: build/C/man2/ioctl_list.2:436
11623 #, no-wrap
11624 msgid "0x00004B68\tPIO_UNIMAPCLR\tconst struct unimapinit *\n"
11625 msgstr ""
11626
11627 #. type: tbl table
11628 #: build/C/man2/ioctl_list.2:437
11629 #, no-wrap
11630 msgid "0x00004B44\tKDGKBMODE\tint *\n"
11631 msgstr ""
11632
11633 #. type: tbl table
11634 #: build/C/man2/ioctl_list.2:438
11635 #, no-wrap
11636 msgid "0x00004B45\tKDSKBMODE\tint\n"
11637 msgstr ""
11638
11639 #. type: tbl table
11640 #: build/C/man2/ioctl_list.2:439
11641 #, no-wrap
11642 msgid "0x00004B62\tKDGKBMETA\tint *\n"
11643 msgstr ""
11644
11645 #. type: tbl table
11646 #: build/C/man2/ioctl_list.2:440
11647 #, no-wrap
11648 msgid "0x00004B63\tKDSKBMETA\tint\n"
11649 msgstr ""
11650
11651 #. type: tbl table
11652 #: build/C/man2/ioctl_list.2:441
11653 #, no-wrap
11654 msgid "0x00004B64\tKDGKBLED\tint *\n"
11655 msgstr ""
11656
11657 #. type: tbl table
11658 #: build/C/man2/ioctl_list.2:442
11659 #, no-wrap
11660 msgid "0x00004B65\tKDSKBLED\tint\n"
11661 msgstr ""
11662
11663 #. type: tbl table
11664 #: build/C/man2/ioctl_list.2:443
11665 #, no-wrap
11666 msgid "0x00004B46\tKDGKBENT\tstruct kbentry *\t// I-O\n"
11667 msgstr ""
11668
11669 #. type: tbl table
11670 #: build/C/man2/ioctl_list.2:444
11671 #, no-wrap
11672 msgid "0x00004B47\tKDSKBENT\tconst struct kbentry *\n"
11673 msgstr ""
11674
11675 #. type: tbl table
11676 #: build/C/man2/ioctl_list.2:445
11677 #, no-wrap
11678 msgid "0x00004B48\tKDGKBSENT\tstruct kbsentry *\t// I-O\n"
11679 msgstr ""
11680
11681 #. type: tbl table
11682 #: build/C/man2/ioctl_list.2:446
11683 #, no-wrap
11684 msgid "0x00004B49\tKDSKBSENT\tconst struct kbsentry *\n"
11685 msgstr ""
11686
11687 #. type: tbl table
11688 #: build/C/man2/ioctl_list.2:447
11689 #, no-wrap
11690 msgid "0x00004B4A\tKDGKBDIACR\tstruct kbdiacrs *\n"
11691 msgstr ""
11692
11693 #. type: tbl table
11694 #: build/C/man2/ioctl_list.2:448
11695 #, no-wrap
11696 msgid "0x00004B4B\tKDSKBDIACR\tconst struct kbdiacrs *\n"
11697 msgstr ""
11698
11699 #. type: tbl table
11700 #: build/C/man2/ioctl_list.2:449
11701 #, no-wrap
11702 msgid "0x00004B4C\tKDGETKEYCODE\tstruct kbkeycode *\t// I-O\n"
11703 msgstr ""
11704
11705 #. type: tbl table
11706 #: build/C/man2/ioctl_list.2:450
11707 #, no-wrap
11708 msgid "0x00004B4D\tKDSETKEYCODE\tconst struct kbkeycode *\n"
11709 msgstr ""
11710
11711 #. type: tbl table
11712 #: build/C/man2/ioctl_list.2:451
11713 #, no-wrap
11714 msgid "0x00004B4E\tKDSIGACCEPT\tint\n"
11715 msgstr ""
11716
11717 #. type: Plain text
11718 #: build/C/man2/ioctl_list.2:455
11719 msgid "// E<lt>include/linux/lp.hE<gt>"
11720 msgstr ""
11721
11722 #. type: tbl table
11723 #: build/C/man2/ioctl_list.2:457
11724 #, no-wrap
11725 msgid "0x00000601\tLPCHAR\tint\n"
11726 msgstr ""
11727
11728 #. type: tbl table
11729 #: build/C/man2/ioctl_list.2:458
11730 #, no-wrap
11731 msgid "0x00000602\tLPTIME\tint\n"
11732 msgstr ""
11733
11734 #. type: tbl table
11735 #: build/C/man2/ioctl_list.2:459
11736 #, no-wrap
11737 msgid "0x00000604\tLPABORT\tint\n"
11738 msgstr ""
11739
11740 #. type: tbl table
11741 #: build/C/man2/ioctl_list.2:460
11742 #, no-wrap
11743 msgid "0x00000605\tLPSETIRQ\tint\n"
11744 msgstr ""
11745
11746 #. type: tbl table
11747 #: build/C/man2/ioctl_list.2:461
11748 #, no-wrap
11749 msgid "0x00000606\tLPGETIRQ\tint *\n"
11750 msgstr ""
11751
11752 #. type: tbl table
11753 #: build/C/man2/ioctl_list.2:462
11754 #, no-wrap
11755 msgid "0x00000608\tLPWAIT\tint\n"
11756 msgstr ""
11757
11758 #. type: tbl table
11759 #: build/C/man2/ioctl_list.2:463
11760 #, no-wrap
11761 msgid "0x00000609\tLPCAREFUL\tint\n"
11762 msgstr ""
11763
11764 #. type: tbl table
11765 #: build/C/man2/ioctl_list.2:464
11766 #, no-wrap
11767 msgid "0x0000060A\tLPABORTOPEN\tint\n"
11768 msgstr ""
11769
11770 #. type: tbl table
11771 #: build/C/man2/ioctl_list.2:465
11772 #, no-wrap
11773 msgid "0x0000060B\tLPGETSTATUS\tint *\n"
11774 msgstr ""
11775
11776 #. type: tbl table
11777 #: build/C/man2/ioctl_list.2:466
11778 #, no-wrap
11779 msgid "0x0000060C\tLPRESET\tvoid\n"
11780 msgstr ""
11781
11782 #. type: tbl table
11783 #: build/C/man2/ioctl_list.2:467
11784 #, no-wrap
11785 msgid "0x0000060D\tLPGETSTATS\tstruct lp_stats *\n"
11786 msgstr ""
11787
11788 #. type: Plain text
11789 #: build/C/man2/ioctl_list.2:471
11790 msgid "// E<lt>include/linux/mroute.hE<gt>"
11791 msgstr ""
11792
11793 #. type: tbl table
11794 #: build/C/man2/ioctl_list.2:473
11795 #, no-wrap
11796 msgid "0x000089E0\tSIOCGETVIFCNT\tstruct sioc_vif_req *\t// I-O\n"
11797 msgstr ""
11798
11799 #. type: tbl table
11800 #: build/C/man2/ioctl_list.2:474
11801 #, no-wrap
11802 msgid "0x000089E1\tSIOCGETSGCNT\tstruct sioc_sg_req *\t// I-O\n"
11803 msgstr ""
11804
11805 #. type: Plain text
11806 #: build/C/man2/ioctl_list.2:478
11807 msgid "// E<lt>include/linux/msdos_fs.hE<gt>"
11808 msgstr ""
11809
11810 #. type: tbl table
11811 #: build/C/man2/ioctl_list.2:480
11812 #, no-wrap
11813 msgid "0x82307201\tVFAT_IOCTL_READDIR_BOTH\tstruct dirent [2]\n"
11814 msgstr ""
11815
11816 #. type: tbl table
11817 #: build/C/man2/ioctl_list.2:481
11818 #, no-wrap
11819 msgid "0x82307202\tVFAT_IOCTL_READDIR_SHORT\tstruct dirent [2]\n"
11820 msgstr ""
11821
11822 #. type: tbl table
11823 #: build/C/man2/ioctl_list.2:482
11824 #, no-wrap
11825 msgid "0x80047210\tFAT_IOCTL_GET_ATTRIBUTES\t__u32 *\n"
11826 msgstr ""
11827
11828 #. type: tbl table
11829 #: build/C/man2/ioctl_list.2:483
11830 #, no-wrap
11831 msgid "0x40047211\tFAT_IOCTL_SET_ATTRIBUTES\tconst __u32 *\n"
11832 msgstr ""
11833
11834 #. type: Plain text
11835 #: build/C/man2/ioctl_list.2:487
11836 msgid "// E<lt>include/linux/mtio.hE<gt>"
11837 msgstr ""
11838
11839 #. type: tbl table
11840 #: build/C/man2/ioctl_list.2:489
11841 #, no-wrap
11842 msgid "0x40086D01\tMTIOCTOP\tconst struct mtop *\n"
11843 msgstr ""
11844
11845 #. type: tbl table
11846 #: build/C/man2/ioctl_list.2:490
11847 #, no-wrap
11848 msgid "0x801C6D02\tMTIOCGET\tstruct mtget *\n"
11849 msgstr ""
11850
11851 #. type: tbl table
11852 #: build/C/man2/ioctl_list.2:491
11853 #, no-wrap
11854 msgid "0x80046D03\tMTIOCPOS\tstruct mtpos *\n"
11855 msgstr ""
11856
11857 #. type: tbl table
11858 #: build/C/man2/ioctl_list.2:492
11859 #, no-wrap
11860 msgid "0x80206D04\tMTIOCGETCONFIG\tstruct mtconfiginfo *\n"
11861 msgstr ""
11862
11863 #. type: tbl table
11864 #: build/C/man2/ioctl_list.2:493
11865 #, no-wrap
11866 msgid "0x40206D05\tMTIOCSETCONFIG\tconst struct mtconfiginfo *\n"
11867 msgstr ""
11868
11869 #. type: Plain text
11870 #: build/C/man2/ioctl_list.2:497
11871 msgid "// E<lt>include/linux/netrom.hE<gt>"
11872 msgstr ""
11873
11874 #. type: tbl table
11875 #: build/C/man2/ioctl_list.2:499
11876 #, no-wrap
11877 msgid "0x000089E0\tSIOCNRGETPARMS\tstruct nr_parms_struct *\t// I-O\n"
11878 msgstr ""
11879
11880 #. type: tbl table
11881 #: build/C/man2/ioctl_list.2:500
11882 #, no-wrap
11883 msgid "0x000089E1\tSIOCNRSETPARMS\tconst struct nr_parms_struct *\n"
11884 msgstr ""
11885
11886 #. type: tbl table
11887 #: build/C/man2/ioctl_list.2:501
11888 #, no-wrap
11889 msgid "0x000089E2\tSIOCNRDECOBS\tvoid\n"
11890 msgstr ""
11891
11892 #. type: tbl table
11893 #: build/C/man2/ioctl_list.2:502
11894 #, no-wrap
11895 msgid "0x000089E3\tSIOCNRRTCTL\tconst int *\n"
11896 msgstr ""
11897
11898 #. type: Plain text
11899 #: build/C/man2/ioctl_list.2:506
11900 msgid "// E<lt>include/linux/sbpcd.hE<gt>"
11901 msgstr ""
11902
11903 #. type: tbl table
11904 #: build/C/man2/ioctl_list.2:508
11905 #, no-wrap
11906 msgid "0x00009000\tDDIOCSDBG\tconst int *\n"
11907 msgstr ""
11908
11909 #. type: tbl table
11910 #: build/C/man2/ioctl_list.2:509
11911 #, no-wrap
11912 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tint\n"
11913 msgstr ""
11914
11915 #. type: Plain text
11916 #: build/C/man2/ioctl_list.2:513
11917 msgid "// E<lt>include/linux/scc.hE<gt>"
11918 msgstr ""
11919
11920 #. type: tbl table
11921 #: build/C/man2/ioctl_list.2:515
11922 #, no-wrap
11923 msgid "0x00005470\tTIOCSCCINI\tvoid\n"
11924 msgstr ""
11925
11926 #. type: tbl table
11927 #: build/C/man2/ioctl_list.2:516
11928 #, no-wrap
11929 msgid "0x00005471\tTIOCCHANINI\tconst struct scc_modem *\n"
11930 msgstr ""
11931
11932 #. type: tbl table
11933 #: build/C/man2/ioctl_list.2:517
11934 #, no-wrap
11935 msgid "0x00005472\tTIOCGKISS\tstruct ioctl_command *\t// I-O\n"
11936 msgstr ""
11937
11938 #. type: tbl table
11939 #: build/C/man2/ioctl_list.2:518
11940 #, no-wrap
11941 msgid "0x00005473\tTIOCSKISS\tconst struct ioctl_command *\n"
11942 msgstr ""
11943
11944 #. type: tbl table
11945 #: build/C/man2/ioctl_list.2:519
11946 #, no-wrap
11947 msgid "0x00005474\tTIOCSCCSTAT\tstruct scc_stat *\n"
11948 msgstr ""
11949
11950 #. type: Plain text
11951 #: build/C/man2/ioctl_list.2:523
11952 msgid "// E<lt>include/linux/scsi.hE<gt>"
11953 msgstr ""
11954
11955 #. type: tbl table
11956 #: build/C/man2/ioctl_list.2:525
11957 #, no-wrap
11958 msgid "0x00005382\tSCSI_IOCTL_GET_IDLUN\tstruct { int [2]; } *\n"
11959 msgstr ""
11960
11961 #. type: tbl table
11962 #: build/C/man2/ioctl_list.2:526
11963 #, no-wrap
11964 msgid "0x00005383\tSCSI_IOCTL_TAGGED_ENABLE\tvoid\n"
11965 msgstr ""
11966
11967 #. type: tbl table
11968 #: build/C/man2/ioctl_list.2:527
11969 #, no-wrap
11970 msgid "0x00005384\tSCSI_IOCTL_TAGGED_DISABLE\tvoid\n"
11971 msgstr ""
11972
11973 #. type: tbl table
11974 #: build/C/man2/ioctl_list.2:531
11975 #, no-wrap
11976 msgid "0x00005385\tSCSI_IOCTL_PROBE_HOST\tconst int *\t// MORE\n"
11977 msgstr ""
11978
11979 #. type: Plain text
11980 #: build/C/man2/ioctl_list.2:535
11981 msgid "// E<lt>include/linux/smb_fs.hE<gt>"
11982 msgstr ""
11983
11984 #. type: tbl table
11985 #: build/C/man2/ioctl_list.2:537
11986 #, no-wrap
11987 msgid "0x80027501\tSMB_IOC_GETMOUNTUID\tuid_t *\n"
11988 msgstr ""
11989
11990 #. type: Plain text
11991 #: build/C/man2/ioctl_list.2:541
11992 msgid "// E<lt>include/linux/sockios.hE<gt>"
11993 msgstr ""
11994
11995 #. type: tbl table
11996 #: build/C/man2/ioctl_list.2:543
11997 #, no-wrap
11998 msgid "0x0000890B\tSIOCADDRT\tconst struct rtentry *\t// MORE\n"
11999 msgstr ""
12000
12001 #. type: tbl table
12002 #: build/C/man2/ioctl_list.2:544
12003 #, no-wrap
12004 msgid "0x0000890C\tSIOCDELRT\tconst struct rtentry *\t// MORE\n"
12005 msgstr ""
12006
12007 #. type: tbl table
12008 #: build/C/man2/ioctl_list.2:545
12009 #, no-wrap
12010 msgid "0x00008910\tSIOCGIFNAME\tchar []\n"
12011 msgstr ""
12012
12013 #. type: tbl table
12014 #: build/C/man2/ioctl_list.2:546
12015 #, no-wrap
12016 msgid "0x00008911\tSIOCSIFLINK\tvoid\n"
12017 msgstr ""
12018
12019 #. type: tbl table
12020 #: build/C/man2/ioctl_list.2:547
12021 #, no-wrap
12022 msgid "0x00008912\tSIOCGIFCONF\tstruct ifconf *\t// MORE // I-O\n"
12023 msgstr ""
12024
12025 #. type: tbl table
12026 #: build/C/man2/ioctl_list.2:548
12027 #, no-wrap
12028 msgid "0x00008913\tSIOCGIFFLAGS\tstruct ifreq *\t// I-O\n"
12029 msgstr ""
12030
12031 #. type: tbl table
12032 #: build/C/man2/ioctl_list.2:549
12033 #, no-wrap
12034 msgid "0x00008914\tSIOCSIFFLAGS\tconst struct ifreq *\n"
12035 msgstr ""
12036
12037 #. type: tbl table
12038 #: build/C/man2/ioctl_list.2:550
12039 #, no-wrap
12040 msgid "0x00008915\tSIOCGIFADDR\tstruct ifreq *\t// I-O\n"
12041 msgstr ""
12042
12043 #. type: tbl table
12044 #: build/C/man2/ioctl_list.2:551
12045 #, no-wrap
12046 msgid "0x00008916\tSIOCSIFADDR\tconst struct ifreq *\n"
12047 msgstr ""
12048
12049 #. type: tbl table
12050 #: build/C/man2/ioctl_list.2:552
12051 #, no-wrap
12052 msgid "0x00008917\tSIOCGIFDSTADDR\tstruct ifreq *\t// I-O\n"
12053 msgstr ""
12054
12055 #. type: tbl table
12056 #: build/C/man2/ioctl_list.2:553
12057 #, no-wrap
12058 msgid "0x00008918\tSIOCSIFDSTADDR\tconst struct ifreq *\n"
12059 msgstr ""
12060
12061 #. type: tbl table
12062 #: build/C/man2/ioctl_list.2:554
12063 #, no-wrap
12064 msgid "0x00008919\tSIOCGIFBRDADDR\tstruct ifreq *\t// I-O\n"
12065 msgstr ""
12066
12067 #. type: tbl table
12068 #: build/C/man2/ioctl_list.2:555
12069 #, no-wrap
12070 msgid "0x0000891A\tSIOCSIFBRDADDR\tconst struct ifreq *\n"
12071 msgstr ""
12072
12073 #. type: tbl table
12074 #: build/C/man2/ioctl_list.2:556
12075 #, no-wrap
12076 msgid "0x0000891B\tSIOCGIFNETMASK\tstruct ifreq *\t// I-O\n"
12077 msgstr ""
12078
12079 #. type: tbl table
12080 #: build/C/man2/ioctl_list.2:557
12081 #, no-wrap
12082 msgid "0x0000891C\tSIOCSIFNETMASK\tconst struct ifreq *\n"
12083 msgstr ""
12084
12085 #. type: tbl table
12086 #: build/C/man2/ioctl_list.2:558
12087 #, no-wrap
12088 msgid "0x0000891D\tSIOCGIFMETRIC\tstruct ifreq *\t// I-O\n"
12089 msgstr ""
12090
12091 #. type: tbl table
12092 #: build/C/man2/ioctl_list.2:559
12093 #, no-wrap
12094 msgid "0x0000891E\tSIOCSIFMETRIC\tconst struct ifreq *\n"
12095 msgstr ""
12096
12097 #. type: tbl table
12098 #: build/C/man2/ioctl_list.2:560
12099 #, no-wrap
12100 msgid "0x0000891F\tSIOCGIFMEM\tstruct ifreq *\t// I-O\n"
12101 msgstr ""
12102
12103 #. type: tbl table
12104 #: build/C/man2/ioctl_list.2:561
12105 #, no-wrap
12106 msgid "0x00008920\tSIOCSIFMEM\tconst struct ifreq *\n"
12107 msgstr ""
12108
12109 #. type: tbl table
12110 #: build/C/man2/ioctl_list.2:562
12111 #, no-wrap
12112 msgid "0x00008921\tSIOCGIFMTU\tstruct ifreq *\t// I-O\n"
12113 msgstr ""
12114
12115 #. type: tbl table
12116 #: build/C/man2/ioctl_list.2:563
12117 #, no-wrap
12118 msgid "0x00008922\tSIOCSIFMTU\tconst struct ifreq *\n"
12119 msgstr ""
12120
12121 #. type: tbl table
12122 #: build/C/man2/ioctl_list.2:567
12123 #, no-wrap
12124 msgid "0x00008923\tOLD_SIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
12125 msgstr ""
12126
12127 #. type: tbl table
12128 #: build/C/man2/ioctl_list.2:568
12129 #, no-wrap
12130 msgid "0x00008924\tSIOCSIFHWADDR\tconst struct ifreq *\t// MORE\n"
12131 msgstr ""
12132
12133 #. type: tbl table
12134 #: build/C/man2/ioctl_list.2:569
12135 #, no-wrap
12136 msgid "0x00008925\tSIOCGIFENCAP\tint *\n"
12137 msgstr ""
12138
12139 #. type: tbl table
12140 #: build/C/man2/ioctl_list.2:570
12141 #, no-wrap
12142 msgid "0x00008926\tSIOCSIFENCAP\tconst int *\n"
12143 msgstr ""
12144
12145 #. type: tbl table
12146 #: build/C/man2/ioctl_list.2:571
12147 #, no-wrap
12148 msgid "0x00008927\tSIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
12149 msgstr ""
12150
12151 #. type: tbl table
12152 #: build/C/man2/ioctl_list.2:572
12153 #, no-wrap
12154 msgid "0x00008929\tSIOCGIFSLAVE\tvoid\n"
12155 msgstr ""
12156
12157 #. type: tbl table
12158 #: build/C/man2/ioctl_list.2:573
12159 #, no-wrap
12160 msgid "0x00008930\tSIOCSIFSLAVE\tvoid\n"
12161 msgstr ""
12162
12163 #. type: tbl table
12164 #: build/C/man2/ioctl_list.2:574
12165 #, no-wrap
12166 msgid "0x00008931\tSIOCADDMULTI\tconst struct ifreq *\n"
12167 msgstr ""
12168
12169 #. type: tbl table
12170 #: build/C/man2/ioctl_list.2:575
12171 #, no-wrap
12172 msgid "0x00008932\tSIOCDELMULTI\tconst struct ifreq *\n"
12173 msgstr ""
12174
12175 #. type: tbl table
12176 #: build/C/man2/ioctl_list.2:576
12177 #, no-wrap
12178 msgid "0x00008940\tSIOCADDRTOLD\tvoid\n"
12179 msgstr ""
12180
12181 #. type: tbl table
12182 #: build/C/man2/ioctl_list.2:577
12183 #, no-wrap
12184 msgid "0x00008941\tSIOCDELRTOLD\tvoid\n"
12185 msgstr ""
12186
12187 #. type: tbl table
12188 #: build/C/man2/ioctl_list.2:578
12189 #, no-wrap
12190 msgid "0x00008950\tSIOCDARP\tconst struct arpreq *\n"
12191 msgstr ""
12192
12193 #. type: tbl table
12194 #: build/C/man2/ioctl_list.2:579
12195 #, no-wrap
12196 msgid "0x00008951\tSIOCGARP\tstruct arpreq *\t// I-O\n"
12197 msgstr ""
12198
12199 #. type: tbl table
12200 #: build/C/man2/ioctl_list.2:580
12201 #, no-wrap
12202 msgid "0x00008952\tSIOCSARP\tconst struct arpreq *\n"
12203 msgstr ""
12204
12205 #. type: tbl table
12206 #: build/C/man2/ioctl_list.2:581
12207 #, no-wrap
12208 msgid "0x00008960\tSIOCDRARP\tconst struct arpreq *\n"
12209 msgstr ""
12210
12211 #. type: tbl table
12212 #: build/C/man2/ioctl_list.2:582
12213 #, no-wrap
12214 msgid "0x00008961\tSIOCGRARP\tstruct arpreq *\t// I-O\n"
12215 msgstr ""
12216
12217 #. type: tbl table
12218 #: build/C/man2/ioctl_list.2:583
12219 #, no-wrap
12220 msgid "0x00008962\tSIOCSRARP\tconst struct arpreq *\n"
12221 msgstr ""
12222
12223 #. type: tbl table
12224 #: build/C/man2/ioctl_list.2:584
12225 #, no-wrap
12226 msgid "0x00008970\tSIOCGIFMAP\tstruct ifreq *\t// I-O\n"
12227 msgstr ""
12228
12229 #. type: tbl table
12230 #: build/C/man2/ioctl_list.2:585
12231 #, no-wrap
12232 msgid "0x00008971\tSIOCSIFMAP\tconst struct ifreq *\n"
12233 msgstr ""
12234
12235 #. type: Plain text
12236 #: build/C/man2/ioctl_list.2:589
12237 msgid "// E<lt>include/linux/soundcard.hE<gt>"
12238 msgstr ""
12239
12240 #. type: tbl table
12241 #: build/C/man2/ioctl_list.2:591
12242 #, no-wrap
12243 msgid "0x00005100\tSNDCTL_SEQ_RESET\tvoid\n"
12244 msgstr ""
12245
12246 #. type: tbl table
12247 #: build/C/man2/ioctl_list.2:592
12248 #, no-wrap
12249 msgid "0x00005101\tSNDCTL_SEQ_SYNC\tvoid\n"
12250 msgstr ""
12251
12252 #. type: tbl table
12253 #: build/C/man2/ioctl_list.2:596
12254 #, no-wrap
12255 msgid "0xC08C5102\tSNDCTL_SYNTH_INFO\tstruct synth_info *\t// I-O\n"
12256 msgstr ""
12257
12258 #. type: tbl table
12259 #: build/C/man2/ioctl_list.2:597
12260 #, no-wrap
12261 msgid "0xC0045103\tSNDCTL_SEQ_CTRLRATE\tint *\t// I-O\n"
12262 msgstr ""
12263
12264 #. type: tbl table
12265 #: build/C/man2/ioctl_list.2:598
12266 #, no-wrap
12267 msgid "0x80045104\tSNDCTL_SEQ_GETOUTCOUNT\tint *\n"
12268 msgstr ""
12269
12270 #. type: tbl table
12271 #: build/C/man2/ioctl_list.2:599
12272 #, no-wrap
12273 msgid "0x80045105\tSNDCTL_SEQ_GETINCOUNT\tint *\n"
12274 msgstr ""
12275
12276 #. type: tbl table
12277 #: build/C/man2/ioctl_list.2:600
12278 #, no-wrap
12279 msgid "0x40045106\tSNDCTL_SEQ_PERCMODE\tvoid\n"
12280 msgstr ""
12281
12282 #. type: tbl table
12283 #: build/C/man2/ioctl_list.2:604
12284 #, no-wrap
12285 msgid "0x40285107\tSNDCTL_FM_LOAD_INSTR\tconst struct sbi_instrument *\n"
12286 msgstr ""
12287
12288 #. type: tbl table
12289 #: build/C/man2/ioctl_list.2:608
12290 #, no-wrap
12291 msgid "0x40045108\tSNDCTL_SEQ_TESTMIDI\tconst int *\n"
12292 msgstr ""
12293
12294 #. type: tbl table
12295 #: build/C/man2/ioctl_list.2:609
12296 #, no-wrap
12297 msgid "0x40045109\tSNDCTL_SEQ_RESETSAMPLES\tconst int *\n"
12298 msgstr ""
12299
12300 #. type: tbl table
12301 #: build/C/man2/ioctl_list.2:610
12302 #, no-wrap
12303 msgid "0x8004510A\tSNDCTL_SEQ_NRSYNTHS\tint *\n"
12304 msgstr ""
12305
12306 #. type: tbl table
12307 #: build/C/man2/ioctl_list.2:611
12308 #, no-wrap
12309 msgid "0x8004510B\tSNDCTL_SEQ_NRMIDIS\tint *\n"
12310 msgstr ""
12311
12312 #. type: tbl table
12313 #: build/C/man2/ioctl_list.2:612
12314 #, no-wrap
12315 msgid "0xC074510C\tSNDCTL_MIDI_INFO\tstruct midi_info *\t// I-O\n"
12316 msgstr ""
12317
12318 #. type: tbl table
12319 #: build/C/man2/ioctl_list.2:613
12320 #, no-wrap
12321 msgid "0x4004510D\tSNDCTL_SEQ_THRESHOLD\tconst int *\n"
12322 msgstr ""
12323
12324 #. type: tbl table
12325 #: build/C/man2/ioctl_list.2:614
12326 #, no-wrap
12327 msgid "0xC004510E\tSNDCTL_SYNTH_MEMAVL\tint *\t// I-O\n"
12328 msgstr ""
12329
12330 #. type: tbl table
12331 #: build/C/man2/ioctl_list.2:615
12332 #, no-wrap
12333 msgid "0x4004510F\tSNDCTL_FM_4OP_ENABLE\tconst int *\n"
12334 msgstr ""
12335
12336 #. type: tbl table
12337 #: build/C/man2/ioctl_list.2:616
12338 #, no-wrap
12339 msgid "0xCFB85110\tSNDCTL_PMGR_ACCESS\tstruct patmgr_info *\t// I-O\n"
12340 msgstr ""
12341
12342 #. type: tbl table
12343 #: build/C/man2/ioctl_list.2:617
12344 #, no-wrap
12345 msgid "0x00005111\tSNDCTL_SEQ_PANIC\tvoid\n"
12346 msgstr ""
12347
12348 #. type: tbl table
12349 #: build/C/man2/ioctl_list.2:621
12350 #, no-wrap
12351 msgid "0x40085112\tSNDCTL_SEQ_OUTOFBAND\tconst struct seq_event_rec *\n"
12352 msgstr ""
12353
12354 #. type: tbl table
12355 #: build/C/man2/ioctl_list.2:625
12356 #, no-wrap
12357 msgid "0xC0045401\tSNDCTL_TMR_TIMEBASE\tint *\t// I-O\n"
12358 msgstr ""
12359
12360 #. type: tbl table
12361 #: build/C/man2/ioctl_list.2:626
12362 #, no-wrap
12363 msgid "0x00005402\tSNDCTL_TMR_START\tvoid\n"
12364 msgstr ""
12365
12366 #. type: tbl table
12367 #: build/C/man2/ioctl_list.2:627
12368 #, no-wrap
12369 msgid "0x00005403\tSNDCTL_TMR_STOP\tvoid\n"
12370 msgstr ""
12371
12372 #. type: tbl table
12373 #: build/C/man2/ioctl_list.2:628
12374 #, no-wrap
12375 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tvoid\n"
12376 msgstr ""
12377
12378 #. type: tbl table
12379 #: build/C/man2/ioctl_list.2:629
12380 #, no-wrap
12381 msgid "0xC0045405\tSNDCTL_TMR_TEMPO\tint *\t// I-O\n"
12382 msgstr ""
12383
12384 #. type: tbl table
12385 #: build/C/man2/ioctl_list.2:630
12386 #, no-wrap
12387 msgid "0xC0045406\tSNDCTL_TMR_SOURCE\tint *\t// I-O\n"
12388 msgstr ""
12389
12390 #. type: tbl table
12391 #: build/C/man2/ioctl_list.2:631
12392 #, no-wrap
12393 msgid "0x40045407\tSNDCTL_TMR_METRONOME\tconst int *\n"
12394 msgstr ""
12395
12396 #. type: tbl table
12397 #: build/C/man2/ioctl_list.2:632
12398 #, no-wrap
12399 msgid "0x40045408\tSNDCTL_TMR_SELECT\tint *\t// I-O\n"
12400 msgstr ""
12401
12402 #. type: tbl table
12403 #: build/C/man2/ioctl_list.2:633
12404 #, no-wrap
12405 msgid "0xCFB85001\tSNDCTL_PMGR_IFACE\tstruct patmgr_info *\t// I-O\n"
12406 msgstr ""
12407
12408 #. type: tbl table
12409 #: build/C/man2/ioctl_list.2:634
12410 #, no-wrap
12411 msgid "0xC0046D00\tSNDCTL_MIDI_PRETIME\tint *\t// I-O\n"
12412 msgstr ""
12413
12414 #. type: tbl table
12415 #: build/C/man2/ioctl_list.2:635
12416 #, no-wrap
12417 msgid "0xC0046D01\tSNDCTL_MIDI_MPUMODE\tconst int *\n"
12418 msgstr ""
12419
12420 #. type: tbl table
12421 #: build/C/man2/ioctl_list.2:639
12422 #, no-wrap
12423 msgid "0xC0216D02\tSNDCTL_MIDI_MPUCMD\tstruct mpu_command_rec *\t// I-O\n"
12424 msgstr ""
12425
12426 #. type: tbl table
12427 #: build/C/man2/ioctl_list.2:643
12428 #, no-wrap
12429 msgid "0x00005000\tSNDCTL_DSP_RESET\tvoid\n"
12430 msgstr ""
12431
12432 #. type: tbl table
12433 #: build/C/man2/ioctl_list.2:644
12434 #, no-wrap
12435 msgid "0x00005001\tSNDCTL_DSP_SYNC\tvoid\n"
12436 msgstr ""
12437
12438 #. type: tbl table
12439 #: build/C/man2/ioctl_list.2:645
12440 #, no-wrap
12441 msgid "0xC0045002\tSNDCTL_DSP_SPEED\tint *\t// I-O\n"
12442 msgstr ""
12443
12444 #. type: tbl table
12445 #: build/C/man2/ioctl_list.2:646
12446 #, no-wrap
12447 msgid "0xC0045003\tSNDCTL_DSP_STEREO\tint *\t// I-O\n"
12448 msgstr ""
12449
12450 #. type: tbl table
12451 #: build/C/man2/ioctl_list.2:647
12452 #, no-wrap
12453 msgid "0xC0045004\tSNDCTL_DSP_GETBLKSIZE\tint *\t// I-O\n"
12454 msgstr ""
12455
12456 #. type: tbl table
12457 #: build/C/man2/ioctl_list.2:648
12458 #, no-wrap
12459 msgid "0xC0045006\tSOUND_PCM_WRITE_CHANNELS\tint *\t// I-O\n"
12460 msgstr ""
12461
12462 #. type: tbl table
12463 #: build/C/man2/ioctl_list.2:649
12464 #, no-wrap
12465 msgid "0xC0045007\tSOUND_PCM_WRITE_FILTER\tint *\t// I-O\n"
12466 msgstr ""
12467
12468 #. type: tbl table
12469 #: build/C/man2/ioctl_list.2:650
12470 #, no-wrap
12471 msgid "0x00005008\tSNDCTL_DSP_POST\tvoid\n"
12472 msgstr ""
12473
12474 #. type: tbl table
12475 #: build/C/man2/ioctl_list.2:651
12476 #, no-wrap
12477 msgid "0xC0045009\tSNDCTL_DSP_SUBDIVIDE\tint *\t// I-O\n"
12478 msgstr ""
12479
12480 #. type: tbl table
12481 #: build/C/man2/ioctl_list.2:652
12482 #, no-wrap
12483 msgid "0xC004500A\tSNDCTL_DSP_SETFRAGMENT\tint *\t// I-O\n"
12484 msgstr ""
12485
12486 #. type: tbl table
12487 #: build/C/man2/ioctl_list.2:653
12488 #, no-wrap
12489 msgid "0x8004500B\tSNDCTL_DSP_GETFMTS\tint *\n"
12490 msgstr ""
12491
12492 #. type: tbl table
12493 #: build/C/man2/ioctl_list.2:654
12494 #, no-wrap
12495 msgid "0xC0045005\tSNDCTL_DSP_SETFMT\tint *\t// I-O\n"
12496 msgstr ""
12497
12498 #. type: tbl table
12499 #: build/C/man2/ioctl_list.2:658
12500 #, no-wrap
12501 msgid "0x800C500C\tSNDCTL_DSP_GETOSPACE\tstruct audio_buf_info *\n"
12502 msgstr ""
12503
12504 #. type: tbl table
12505 #: build/C/man2/ioctl_list.2:659
12506 #, no-wrap
12507 msgid "0x800C500D\tSNDCTL_DSP_GETISPACE\tstruct audio_buf_info *\n"
12508 msgstr ""
12509
12510 #. type: tbl table
12511 #: build/C/man2/ioctl_list.2:660
12512 #, no-wrap
12513 msgid "0x0000500E\tSNDCTL_DSP_NONBLOCK\tvoid\n"
12514 msgstr ""
12515
12516 #. type: tbl table
12517 #: build/C/man2/ioctl_list.2:661
12518 #, no-wrap
12519 msgid "0x80045002\tSOUND_PCM_READ_RATE\tint *\n"
12520 msgstr ""
12521
12522 #. type: tbl table
12523 #: build/C/man2/ioctl_list.2:662
12524 #, no-wrap
12525 msgid "0x80045006\tSOUND_PCM_READ_CHANNELS\tint *\n"
12526 msgstr ""
12527
12528 #. type: tbl table
12529 #: build/C/man2/ioctl_list.2:663
12530 #, no-wrap
12531 msgid "0x80045005\tSOUND_PCM_READ_BITS\tint *\n"
12532 msgstr ""
12533
12534 #. type: tbl table
12535 #: build/C/man2/ioctl_list.2:664
12536 #, no-wrap
12537 msgid "0x80045007\tSOUND_PCM_READ_FILTER\tint *\n"
12538 msgstr ""
12539
12540 #. type: tbl table
12541 #: build/C/man2/ioctl_list.2:665
12542 #, no-wrap
12543 msgid "0x00004300\tSNDCTL_COPR_RESET\tvoid\n"
12544 msgstr ""
12545
12546 #. type: tbl table
12547 #: build/C/man2/ioctl_list.2:666
12548 #, no-wrap
12549 msgid "0xCFB04301\tSNDCTL_COPR_LOAD\tconst struct copr_buffer *\n"
12550 msgstr ""
12551
12552 #. type: tbl table
12553 #: build/C/man2/ioctl_list.2:670
12554 #, no-wrap
12555 msgid "0xC0144302\tSNDCTL_COPR_RDATA\tstruct copr_debug_buf *\t// I-O\n"
12556 msgstr ""
12557
12558 #. type: tbl table
12559 #: build/C/man2/ioctl_list.2:671
12560 #, no-wrap
12561 msgid "0xC0144303\tSNDCTL_COPR_RCODE\tstruct copr_debug_buf *\t// I-O\n"
12562 msgstr ""
12563
12564 #. type: tbl table
12565 #: build/C/man2/ioctl_list.2:675
12566 #, no-wrap
12567 msgid "0x40144304\tSNDCTL_COPR_WDATA\tconst struct copr_debug_buf *\n"
12568 msgstr ""
12569
12570 #. type: tbl table
12571 #: build/C/man2/ioctl_list.2:676
12572 #, no-wrap
12573 msgid "0x40144305\tSNDCTL_COPR_WCODE\tconst struct copr_debug_buf *\n"
12574 msgstr ""
12575
12576 #. type: tbl table
12577 #: build/C/man2/ioctl_list.2:680
12578 #, no-wrap
12579 msgid "0xC0144306\tSNDCTL_COPR_RUN\tstruct copr_debug_buf *\t// I-O\n"
12580 msgstr ""
12581
12582 #. type: tbl table
12583 #: build/C/man2/ioctl_list.2:681
12584 #, no-wrap
12585 msgid "0xC0144307\tSNDCTL_COPR_HALT\tstruct copr_debug_buf *\t// I-O\n"
12586 msgstr ""
12587
12588 #. type: tbl table
12589 #: build/C/man2/ioctl_list.2:685
12590 #, no-wrap
12591 msgid "0x4FA44308\tSNDCTL_COPR_SENDMSG\tconst struct copr_msg *\n"
12592 msgstr ""
12593
12594 #. type: tbl table
12595 #: build/C/man2/ioctl_list.2:686
12596 #, no-wrap
12597 msgid "0x8FA44309\tSNDCTL_COPR_RCVMSG\tstruct copr_msg *\n"
12598 msgstr ""
12599
12600 #. type: tbl table
12601 #: build/C/man2/ioctl_list.2:687
12602 #, no-wrap
12603 msgid "0x80044D00\tSOUND_MIXER_READ_VOLUME\tint *\n"
12604 msgstr ""
12605
12606 #. type: tbl table
12607 #: build/C/man2/ioctl_list.2:688
12608 #, no-wrap
12609 msgid "0x80044D01\tSOUND_MIXER_READ_BASS\tint *\n"
12610 msgstr ""
12611
12612 #. type: tbl table
12613 #: build/C/man2/ioctl_list.2:689
12614 #, no-wrap
12615 msgid "0x80044D02\tSOUND_MIXER_READ_TREBLE\tint *\n"
12616 msgstr ""
12617
12618 #. type: tbl table
12619 #: build/C/man2/ioctl_list.2:690
12620 #, no-wrap
12621 msgid "0x80044D03\tSOUND_MIXER_READ_SYNTH\tint *\n"
12622 msgstr ""
12623
12624 #. type: tbl table
12625 #: build/C/man2/ioctl_list.2:691
12626 #, no-wrap
12627 msgid "0x80044D04\tSOUND_MIXER_READ_PCM\tint *\n"
12628 msgstr ""
12629
12630 #. type: tbl table
12631 #: build/C/man2/ioctl_list.2:692
12632 #, no-wrap
12633 msgid "0x80044D05\tSOUND_MIXER_READ_SPEAKER\tint *\n"
12634 msgstr ""
12635
12636 #. type: tbl table
12637 #: build/C/man2/ioctl_list.2:693
12638 #, no-wrap
12639 msgid "0x80044D06\tSOUND_MIXER_READ_LINE\tint *\n"
12640 msgstr ""
12641
12642 #. type: tbl table
12643 #: build/C/man2/ioctl_list.2:694
12644 #, no-wrap
12645 msgid "0x80044D07\tSOUND_MIXER_READ_MIC\tint *\n"
12646 msgstr ""
12647
12648 #. type: tbl table
12649 #: build/C/man2/ioctl_list.2:695
12650 #, no-wrap
12651 msgid "0x80044D08\tSOUND_MIXER_READ_CD\tint *\n"
12652 msgstr ""
12653
12654 #. type: tbl table
12655 #: build/C/man2/ioctl_list.2:696
12656 #, no-wrap
12657 msgid "0x80044D09\tSOUND_MIXER_READ_IMIX\tint *\n"
12658 msgstr ""
12659
12660 #. type: tbl table
12661 #: build/C/man2/ioctl_list.2:697
12662 #, no-wrap
12663 msgid "0x80044D0A\tSOUND_MIXER_READ_ALTPCM\tint *\n"
12664 msgstr ""
12665
12666 #. type: tbl table
12667 #: build/C/man2/ioctl_list.2:698
12668 #, no-wrap
12669 msgid "0x80044D0B\tSOUND_MIXER_READ_RECLEV\tint *\n"
12670 msgstr ""
12671
12672 #. type: tbl table
12673 #: build/C/man2/ioctl_list.2:699
12674 #, no-wrap
12675 msgid "0x80044D0C\tSOUND_MIXER_READ_IGAIN\tint *\n"
12676 msgstr ""
12677
12678 #. type: tbl table
12679 #: build/C/man2/ioctl_list.2:700
12680 #, no-wrap
12681 msgid "0x80044D0D\tSOUND_MIXER_READ_OGAIN\tint *\n"
12682 msgstr ""
12683
12684 #. type: tbl table
12685 #: build/C/man2/ioctl_list.2:701
12686 #, no-wrap
12687 msgid "0x80044D0E\tSOUND_MIXER_READ_LINE1\tint *\n"
12688 msgstr ""
12689
12690 #. type: tbl table
12691 #: build/C/man2/ioctl_list.2:702
12692 #, no-wrap
12693 msgid "0x80044D0F\tSOUND_MIXER_READ_LINE2\tint *\n"
12694 msgstr ""
12695
12696 #. type: tbl table
12697 #: build/C/man2/ioctl_list.2:703
12698 #, no-wrap
12699 msgid "0x80044D10\tSOUND_MIXER_READ_LINE3\tint *\n"
12700 msgstr ""
12701
12702 #. type: tbl table
12703 #: build/C/man2/ioctl_list.2:704
12704 #, no-wrap
12705 msgid "0x80044D1C\tSOUND_MIXER_READ_MUTE\tint *\n"
12706 msgstr ""
12707
12708 #. type: tbl table
12709 #: build/C/man2/ioctl_list.2:705
12710 #, no-wrap
12711 msgid "0x80044D1D\tSOUND_MIXER_READ_ENHANCE\tint *\n"
12712 msgstr ""
12713
12714 #. type: tbl table
12715 #: build/C/man2/ioctl_list.2:706
12716 #, no-wrap
12717 msgid "0x80044D1E\tSOUND_MIXER_READ_LOUD\tint *\n"
12718 msgstr ""
12719
12720 #. type: tbl table
12721 #: build/C/man2/ioctl_list.2:707
12722 #, no-wrap
12723 msgid "0x80044DFF\tSOUND_MIXER_READ_RECSRC\tint *\n"
12724 msgstr ""
12725
12726 #. type: tbl table
12727 #: build/C/man2/ioctl_list.2:708
12728 #, no-wrap
12729 msgid "0x80044DFE\tSOUND_MIXER_READ_DEVMASK\tint *\n"
12730 msgstr ""
12731
12732 #. type: tbl table
12733 #: build/C/man2/ioctl_list.2:709
12734 #, no-wrap
12735 msgid "0x80044DFD\tSOUND_MIXER_READ_RECMASK\tint *\n"
12736 msgstr ""
12737
12738 #. type: tbl table
12739 #: build/C/man2/ioctl_list.2:710
12740 #, no-wrap
12741 msgid "0x80044DFB\tSOUND_MIXER_READ_STEREODEVS\tint *\n"
12742 msgstr ""
12743
12744 #. type: tbl table
12745 #: build/C/man2/ioctl_list.2:711
12746 #, no-wrap
12747 msgid "0x80044DFC\tSOUND_MIXER_READ_CAPS\tint *\n"
12748 msgstr ""
12749
12750 #. type: tbl table
12751 #: build/C/man2/ioctl_list.2:715
12752 #, no-wrap
12753 msgid "0xC0044D00\tSOUND_MIXER_WRITE_VOLUME\tint *\t// I-O\n"
12754 msgstr ""
12755
12756 #. type: tbl table
12757 #: build/C/man2/ioctl_list.2:716
12758 #, no-wrap
12759 msgid "0xC0044D01\tSOUND_MIXER_WRITE_BASS\tint *\t// I-O\n"
12760 msgstr ""
12761
12762 #. type: tbl table
12763 #: build/C/man2/ioctl_list.2:717
12764 #, no-wrap
12765 msgid "0xC0044D02\tSOUND_MIXER_WRITE_TREBLE\tint *\t// I-O\n"
12766 msgstr ""
12767
12768 #. type: tbl table
12769 #: build/C/man2/ioctl_list.2:718
12770 #, no-wrap
12771 msgid "0xC0044D03\tSOUND_MIXER_WRITE_SYNTH\tint *\t// I-O\n"
12772 msgstr ""
12773
12774 #. type: tbl table
12775 #: build/C/man2/ioctl_list.2:719
12776 #, no-wrap
12777 msgid "0xC0044D04\tSOUND_MIXER_WRITE_PCM\tint *\t// I-O\n"
12778 msgstr ""
12779
12780 #. type: tbl table
12781 #: build/C/man2/ioctl_list.2:720
12782 #, no-wrap
12783 msgid "0xC0044D05\tSOUND_MIXER_WRITE_SPEAKER\tint *\t// I-O\n"
12784 msgstr ""
12785
12786 #. type: tbl table
12787 #: build/C/man2/ioctl_list.2:721
12788 #, no-wrap
12789 msgid "0xC0044D06\tSOUND_MIXER_WRITE_LINE\tint *\t// I-O\n"
12790 msgstr ""
12791
12792 #. type: tbl table
12793 #: build/C/man2/ioctl_list.2:722
12794 #, no-wrap
12795 msgid "0xC0044D07\tSOUND_MIXER_WRITE_MIC\tint *\t// I-O\n"
12796 msgstr ""
12797
12798 #. type: tbl table
12799 #: build/C/man2/ioctl_list.2:723
12800 #, no-wrap
12801 msgid "0xC0044D08\tSOUND_MIXER_WRITE_CD\tint *\t// I-O\n"
12802 msgstr ""
12803
12804 #. type: tbl table
12805 #: build/C/man2/ioctl_list.2:724
12806 #, no-wrap
12807 msgid "0xC0044D09\tSOUND_MIXER_WRITE_IMIX\tint *\t// I-O\n"
12808 msgstr ""
12809
12810 #. type: tbl table
12811 #: build/C/man2/ioctl_list.2:725
12812 #, no-wrap
12813 msgid "0xC0044D0A\tSOUND_MIXER_WRITE_ALTPCM\tint *\t// I-O\n"
12814 msgstr ""
12815
12816 #. type: tbl table
12817 #: build/C/man2/ioctl_list.2:726
12818 #, no-wrap
12819 msgid "0xC0044D0B\tSOUND_MIXER_WRITE_RECLEV\tint *\t// I-O\n"
12820 msgstr ""
12821
12822 #. type: tbl table
12823 #: build/C/man2/ioctl_list.2:727
12824 #, no-wrap
12825 msgid "0xC0044D0C\tSOUND_MIXER_WRITE_IGAIN\tint *\t// I-O\n"
12826 msgstr ""
12827
12828 #. type: tbl table
12829 #: build/C/man2/ioctl_list.2:728
12830 #, no-wrap
12831 msgid "0xC0044D0D\tSOUND_MIXER_WRITE_OGAIN\tint *\t// I-O\n"
12832 msgstr ""
12833
12834 #. type: tbl table
12835 #: build/C/man2/ioctl_list.2:729
12836 #, no-wrap
12837 msgid "0xC0044D0E\tSOUND_MIXER_WRITE_LINE1\tint *\t// I-O\n"
12838 msgstr ""
12839
12840 #. type: tbl table
12841 #: build/C/man2/ioctl_list.2:730
12842 #, no-wrap
12843 msgid "0xC0044D0F\tSOUND_MIXER_WRITE_LINE2\tint *\t// I-O\n"
12844 msgstr ""
12845
12846 #. type: tbl table
12847 #: build/C/man2/ioctl_list.2:731
12848 #, no-wrap
12849 msgid "0xC0044D10\tSOUND_MIXER_WRITE_LINE3\tint *\t// I-O\n"
12850 msgstr ""
12851
12852 #. type: tbl table
12853 #: build/C/man2/ioctl_list.2:732
12854 #, no-wrap
12855 msgid "0xC0044D1C\tSOUND_MIXER_WRITE_MUTE\tint *\t// I-O\n"
12856 msgstr ""
12857
12858 #. type: tbl table
12859 #: build/C/man2/ioctl_list.2:733
12860 #, no-wrap
12861 msgid "0xC0044D1D\tSOUND_MIXER_WRITE_ENHANCE\tint *\t// I-O\n"
12862 msgstr ""
12863
12864 #. type: tbl table
12865 #: build/C/man2/ioctl_list.2:734
12866 #, no-wrap
12867 msgid "0xC0044D1E\tSOUND_MIXER_WRITE_LOUD\tint *\t// I-O\n"
12868 msgstr ""
12869
12870 #. type: tbl table
12871 #: build/C/man2/ioctl_list.2:735
12872 #, no-wrap
12873 msgid "0xC0044DFF\tSOUND_MIXER_WRITE_RECSRC\tint *\t// I-O\n"
12874 msgstr ""
12875
12876 #. type: Plain text
12877 #: build/C/man2/ioctl_list.2:739
12878 msgid "// E<lt>include/linux/umsdos_fs.hE<gt>"
12879 msgstr ""
12880
12881 #. type: tbl table
12882 #: build/C/man2/ioctl_list.2:741
12883 #, no-wrap
12884 msgid "0x000004D2\tUMSDOS_READDIR_DOS\tstruct umsdos_ioctl *\t// I-O\n"
12885 msgstr ""
12886
12887 #. type: tbl table
12888 #: build/C/man2/ioctl_list.2:742
12889 #, no-wrap
12890 msgid "0x000004D3\tUMSDOS_UNLINK_DOS\tconst struct umsdos_ioctl *\n"
12891 msgstr ""
12892
12893 #. type: tbl table
12894 #: build/C/man2/ioctl_list.2:743
12895 #, no-wrap
12896 msgid "0x000004D4\tUMSDOS_RMDIR_DOS\tconst struct umsdos_ioctl *\n"
12897 msgstr ""
12898
12899 #. type: tbl table
12900 #: build/C/man2/ioctl_list.2:744
12901 #, no-wrap
12902 msgid "0x000004D5\tUMSDOS_STAT_DOS\tstruct umsdos_ioctl *\t// I-O\n"
12903 msgstr ""
12904
12905 #. type: tbl table
12906 #: build/C/man2/ioctl_list.2:745
12907 #, no-wrap
12908 msgid "0x000004D6\tUMSDOS_CREAT_EMD\tconst struct umsdos_ioctl *\n"
12909 msgstr ""
12910
12911 #. type: tbl table
12912 #: build/C/man2/ioctl_list.2:746
12913 #, no-wrap
12914 msgid "0x000004D7\tUMSDOS_UNLINK_EMD\tconst struct umsdos_ioctl *\n"
12915 msgstr ""
12916
12917 #. type: tbl table
12918 #: build/C/man2/ioctl_list.2:747
12919 #, no-wrap
12920 msgid "0x000004D8\tUMSDOS_READDIR_EMD\tstruct umsdos_ioctl *\t// I-O\n"
12921 msgstr ""
12922
12923 #. type: tbl table
12924 #: build/C/man2/ioctl_list.2:748
12925 #, no-wrap
12926 msgid "0x000004D9\tUMSDOS_GETVERSION\tstruct umsdos_ioctl *\n"
12927 msgstr ""
12928
12929 #. type: tbl table
12930 #: build/C/man2/ioctl_list.2:749
12931 #, no-wrap
12932 msgid "0x000004DA\tUMSDOS_INIT_EMD\tvoid\n"
12933 msgstr ""
12934
12935 #. type: tbl table
12936 #: build/C/man2/ioctl_list.2:750
12937 #, no-wrap
12938 msgid "0x000004DB\tUMSDOS_DOS_SETUP\tconst struct umsdos_ioctl *\n"
12939 msgstr ""
12940
12941 #. type: tbl table
12942 #: build/C/man2/ioctl_list.2:751
12943 #, no-wrap
12944 msgid "0x000004DC\tUMSDOS_RENAME_DOS\tconst struct umsdos_ioctl *\n"
12945 msgstr ""
12946
12947 #. type: Plain text
12948 #: build/C/man2/ioctl_list.2:755
12949 msgid "// E<lt>include/linux/vt.hE<gt>"
12950 msgstr ""
12951
12952 #. type: tbl table
12953 #: build/C/man2/ioctl_list.2:757
12954 #, no-wrap
12955 msgid "0x00005600\tVT_OPENQRY\tint *\n"
12956 msgstr ""
12957
12958 #. type: tbl table
12959 #: build/C/man2/ioctl_list.2:758
12960 #, no-wrap
12961 msgid "0x00005601\tVT_GETMODE\tstruct vt_mode *\n"
12962 msgstr ""
12963
12964 #. type: tbl table
12965 #: build/C/man2/ioctl_list.2:759
12966 #, no-wrap
12967 msgid "0x00005602\tVT_SETMODE\tconst struct vt_mode *\n"
12968 msgstr ""
12969
12970 #. type: tbl table
12971 #: build/C/man2/ioctl_list.2:760
12972 #, no-wrap
12973 msgid "0x00005603\tVT_GETSTATE\tstruct vt_stat *\n"
12974 msgstr ""
12975
12976 #. type: tbl table
12977 #: build/C/man2/ioctl_list.2:761
12978 #, no-wrap
12979 msgid "0x00005604\tVT_SENDSIG\tvoid\n"
12980 msgstr ""
12981
12982 #. type: tbl table
12983 #: build/C/man2/ioctl_list.2:762
12984 #, no-wrap
12985 msgid "0x00005605\tVT_RELDISP\tint\n"
12986 msgstr ""
12987
12988 #. type: tbl table
12989 #: build/C/man2/ioctl_list.2:763
12990 #, no-wrap
12991 msgid "0x00005606\tVT_ACTIVATE\tint\n"
12992 msgstr ""
12993
12994 #. type: tbl table
12995 #: build/C/man2/ioctl_list.2:764
12996 #, no-wrap
12997 msgid "0x00005607\tVT_WAITACTIVE\tint\n"
12998 msgstr ""
12999
13000 #. type: tbl table
13001 #: build/C/man2/ioctl_list.2:765
13002 #, no-wrap
13003 msgid "0x00005608\tVT_DISALLOCATE\tint\n"
13004 msgstr ""
13005
13006 #. type: tbl table
13007 #: build/C/man2/ioctl_list.2:766
13008 #, no-wrap
13009 msgid "0x00005609\tVT_RESIZE\tconst struct vt_sizes *\n"
13010 msgstr ""
13011
13012 #. type: tbl table
13013 #: build/C/man2/ioctl_list.2:767
13014 #, no-wrap
13015 msgid "0x0000560A\tVT_RESIZEX\tconst struct vt_consize *\n"
13016 msgstr ""
13017
13018 #. type: Plain text
13019 #: build/C/man2/ioctl_list.2:774
13020 msgid ""
13021 "// More arguments.  Some ioctl's take a pointer to a structure which "
13022 "contains additional pointers.  These are documented here in alphabetical "
13023 "order."
13024 msgstr ""
13025
13026 #. type: Plain text
13027 #: build/C/man2/ioctl_list.2:782
13028 msgid ""
13029 "B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio\\ "
13030 "*>.  The I<buf> field points to an output buffer of length I<nframes\\ * "
13031 "CD_FRAMESIZE_RAW>."
13032 msgstr ""
13033
13034 #. type: Plain text
13035 #: build/C/man2/ioctl_list.2:798
13036 msgid ""
13037 "B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and "
13038 "B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf\\ *>.  They "
13039 "use the same pointer as an output pointer to I<char []>.  The length varies "
13040 "by request.  For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
13041 "Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical "
13042 "value 2048)."
13043 msgstr ""
13044
13045 #. type: Plain text
13046 #: build/C/man2/ioctl_list.2:804
13047 #, no-wrap
13048 msgid ""
13049 "    CDROMREADCOOKED    char [CD_FRAMESIZE]\n"
13050 "    CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]\n"
13051 "    CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]\n"
13052 "    CDROMREADRAW       char [CD_FRAMESIZE_RAW]\n"
13053 msgstr ""
13054
13055 #. type: Plain text
13056 #: build/C/man2/ioctl_list.2:818
13057 msgid ""
13058 "B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, "
13059 "B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq\\ *>.  "
13060 "The I<ifr_data> field is a pointer to another structure as follows:"
13061 msgstr ""
13062
13063 #. type: Plain text
13064 #: build/C/man2/ioctl_list.2:826
13065 #, no-wrap
13066 msgid ""
13067 "    EQL_ENSLAVE         const struct slaving_request *\n"
13068 "    EQL_EMANCIPATE      const struct slaving_request *\n"
13069 "    EQL_GETSLAVECFG     struct slave_config *           // I-O\n"
13070 "    EQL_SETSLAVECFG     const struct slave_config *\n"
13071 "    EQL_GETMASTERCFG    struct master_config *\n"
13072 "    EQL_SETMASTERCFG    const struct master_config *\n"
13073 msgstr ""
13074
13075 #. type: Plain text
13076 #: build/C/man2/ioctl_list.2:843
13077 msgid ""
13078 "B<FDRAWCMD> takes a I<struct floppy raw_cmd\\ *>.  If I<flags & "
13079 "FD_RAW_WRITE> is nonzero, then I<data> points to an input buffer of length "
13080 "I<length>.  If I<flags & FD_RAW_READ> is nonzero, then I<data> points to an "
13081 "output buffer of length I<length>."
13082 msgstr ""
13083
13084 #. type: Plain text
13085 #: build/C/man2/ioctl_list.2:859
13086 msgid ""
13087 "B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc\\ *> or a "
13088 "I<const struct console_font_desc\\ *>, respectively.  I<chardata> points to "
13089 "a buffer of I<char [charcount]>.  This is an output buffer for B<GIO_FONTX> "
13090 "and an input buffer for B<PIO_FONTX>."
13091 msgstr ""
13092
13093 #. type: Plain text
13094 #: build/C/man2/ioctl_list.2:875
13095 msgid ""
13096 "B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc\\ *> or a I<const "
13097 "struct unimapdesc\\ *>, respectively.  I<entries> points to a buffer of "
13098 "I<struct unipair [entry_ct]>.  This is an output buffer for B<GIO_UNIMAP> "
13099 "and an input buffer for B<PIO_UNIMAP>."
13100 msgstr ""
13101
13102 #. type: Plain text
13103 #: build/C/man2/ioctl_list.2:879
13104 msgid ""
13105 "KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O "
13106 "ports.  They are essentially alternate interfaces to 'ioperm'."
13107 msgstr ""
13108
13109 #. type: Plain text
13110 #: build/C/man2/ioctl_list.2:885
13111 msgid ""
13112 "B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O "
13113 "port access.  They are not implemented in the kernel."
13114 msgstr ""
13115
13116 #. type: Plain text
13117 #: build/C/man2/ioctl_list.2:893
13118 msgid ""
13119 "B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int\\ *>, which is a "
13120 "length.  It uses the same pointer as an output pointer to a I<char []> "
13121 "buffer of this length."
13122 msgstr ""
13123
13124 #. type: Plain text
13125 #: build/C/man2/ioctl_list.2:899
13126 msgid ""
13127 "B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on "
13128 "the protocol:"
13129 msgstr ""
13130
13131 #. type: Plain text
13132 #: build/C/man2/ioctl_list.2:904
13133 #, no-wrap
13134 msgid ""
13135 "    Most protocols      const struct rtentry *\n"
13136 "    AX.25               const struct ax25_route *\n"
13137 "    NET/ROM             const struct nr_route_struct *\n"
13138 msgstr ""
13139
13140 #. type: Plain text
13141 #: build/C/man2/ioctl_list.2:915
13142 msgid ""
13143 "B<SIOCGIFCONF> takes a I<struct ifconf\\ *>.  The I<ifc_buf> field points to "
13144 "a buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
13145 "type I<struct ifreq []>."
13146 msgstr ""
13147
13148 #. type: Plain text
13149 #: build/C/man2/ioctl_list.2:918
13150 msgid "B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:"
13151 msgstr ""
13152
13153 #. type: Plain text
13154 #: build/C/man2/ioctl_list.2:922
13155 #, no-wrap
13156 msgid ""
13157 "    Most protocols      const struct ifreq *\n"
13158 "    AX.25               const char [AX25_ADDR_LEN]\n"
13159 msgstr ""
13160
13161 #. type: Plain text
13162 #: build/C/man2/ioctl_list.2:937
13163 msgid ""
13164 "B<TIOCLINUX> takes a I<const char\\ *>.  It uses this to distinguish several "
13165 "independent subcases.  In the table below, I<N + foo> means I<foo> after an "
13166 "N-byte pad.  I<struct selection> is implicitly defined in "
13167 "I<drivers/char/selection.c>"
13168 msgstr ""
13169
13170 #. type: Plain text
13171 #: build/C/man2/ioctl_list.2:946
13172 #, no-wrap
13173 msgid ""
13174 "    TIOCLINUX-2         1 + const struct selection *\n"
13175 "    TIOCLINUX-3         void\n"
13176 "    TIOCLINUX-4         void\n"
13177 "    TIOCLINUX-5         4 + const struct { long [8]; } *\n"
13178 "    TIOCLINUX-6         char *\n"
13179 "    TIOCLINUX-7         char *\n"
13180 "    TIOCLINUX-10        1 + const char *\n"
13181 msgstr ""
13182
13183 #. type: Plain text
13184 #: build/C/man2/ioctl_list.2:949
13185 msgid "// Duplicate ioctls"
13186 msgstr ""
13187
13188 #. type: Plain text
13189 #: build/C/man2/ioctl_list.2:954
13190 msgid ""
13191 "This list does not include ioctls in the range B<SIOCDEVPRIVATE> and "
13192 "B<SIOCPROTOPRIVATE>."
13193 msgstr ""
13194
13195 #. type: tbl table
13196 #: build/C/man2/ioctl_list.2:956
13197 #, no-wrap
13198 msgid "0x00000001\tFDSETPRM\tFIBMAP\n"
13199 msgstr ""
13200
13201 #. type: tbl table
13202 #: build/C/man2/ioctl_list.2:957
13203 #, no-wrap
13204 msgid "0x00000002\tFDDEFPRM\tFIGETBSZ\n"
13205 msgstr ""
13206
13207 #. type: tbl table
13208 #: build/C/man2/ioctl_list.2:958
13209 #, no-wrap
13210 msgid "0x00005382\tCDROMAUDIOBUFSIZ\tSCSI_IOCTL_GET_IDLUN\n"
13211 msgstr ""
13212
13213 #. type: tbl table
13214 #: build/C/man2/ioctl_list.2:959
13215 #, no-wrap
13216 msgid "0x00005402\tSNDCTL_TMR_START\tTCSETS\n"
13217 msgstr ""
13218
13219 #. type: tbl table
13220 #: build/C/man2/ioctl_list.2:960
13221 #, no-wrap
13222 msgid "0x00005403\tSNDCTL_TMR_STOP\tTCSETSW\n"
13223 msgstr ""
13224
13225 #. type: tbl table
13226 #: build/C/man2/ioctl_list.2:961
13227 #, no-wrap
13228 msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tTCSETSF\n"
13229 msgstr ""
13230
13231 #. type: Plain text
13232 #: build/C/man2/ioctl_list.2:965
13233 msgid "B<ioctl>(2)"
13234 msgstr ""
13235
13236 #. type: TH
13237 #: build/C/man2/ioperm.2:34
13238 #, no-wrap
13239 msgid "IOPERM"
13240 msgstr ""
13241
13242 #. type: Plain text
13243 #: build/C/man2/ioperm.2:37
13244 msgid "ioperm - set port input/output permissions"
13245 msgstr ""
13246
13247 #. type: Plain text
13248 #: build/C/man2/ioperm.2:40
13249 msgid "B<#include E<lt>sys/io.hE<gt>> /* for glibc */"
13250 msgstr ""
13251
13252 #. type: Plain text
13253 #: build/C/man2/ioperm.2:42
13254 msgid ""
13255 "B<int ioperm(unsigned long >I<from>B<, unsigned long >I<num>B<, int "
13256 ">I<turn_on>B<);>"
13257 msgstr ""
13258
13259 #. type: Plain text
13260 #: build/C/man2/ioperm.2:56
13261 msgid ""
13262 "B<ioperm>()  sets the port access permission bits for the calling thread for "
13263 "I<num> bits starting from port address I<from>.  If I<turn_on> is nonzero, "
13264 "then permission for the specified bits is enabled; otherwise it is "
13265 "disabled.  If I<turn_on> is nonzero, the calling thread must be privileged "
13266 "(B<CAP_SYS_RAWIO>)."
13267 msgstr ""
13268
13269 #. type: Plain text
13270 #: build/C/man2/ioperm.2:65
13271 msgid ""
13272 "Before Linux 2.6.8, only the first 0x3ff I/O ports could be specified in "
13273 "this manner.  For more ports, the B<iopl>(2)  system call had to be used "
13274 "(with a I<level> argument of 3).  Since Linux 2.6.8, 65,536 I/O ports can be "
13275 "specified."
13276 msgstr ""
13277
13278 #. type: Plain text
13279 #: build/C/man2/ioperm.2:75
13280 msgid ""
13281 "Permissions are not inherited by the child created by B<fork>(2); following "
13282 "a B<fork>(2)  the child must turn on those permissions that it needs.  "
13283 "Permissions are preserved across B<execve>(2); this is useful for giving "
13284 "port access permissions to unprivileged programs."
13285 msgstr ""
13286
13287 #. type: Plain text
13288 #: build/C/man2/ioperm.2:79
13289 msgid ""
13290 "This call is mostly for the i386 architecture.  On many other architectures "
13291 "it does not exist or will always return an error."
13292 msgstr ""
13293
13294 #. type: Plain text
13295 #: build/C/man2/ioperm.2:91
13296 msgid "Invalid values for I<from> or I<num>."
13297 msgstr ""
13298
13299 #. type: Plain text
13300 #: build/C/man2/ioperm.2:94
13301 msgid "(on PowerPC) This call is not supported."
13302 msgstr ""
13303
13304 #.  Could not allocate I/O bitmap.
13305 #. type: Plain text
13306 #: build/C/man2/ioperm.2:98
13307 msgid "Out of memory."
13308 msgstr ""
13309
13310 #. type: Plain text
13311 #: build/C/man2/ioperm.2:101
13312 msgid "The calling thread has insufficient privilege."
13313 msgstr ""
13314
13315 #. type: Plain text
13316 #: build/C/man2/ioperm.2:105
13317 msgid ""
13318 "B<ioperm>()  is Linux-specific and should not be used in programs intended "
13319 "to be portable."
13320 msgstr ""
13321
13322 #. type: Plain text
13323 #: build/C/man2/ioperm.2:109
13324 msgid ""
13325 "The I</proc/ioports> file shows the I/O ports that are currently allocated "
13326 "on the system."
13327 msgstr ""
13328
13329 #. type: Plain text
13330 #: build/C/man2/ioperm.2:117
13331 msgid ""
13332 "Glibc has an B<ioperm>()  prototype both in I<E<lt>sys/io.hE<gt>> and in "
13333 "I<E<lt>sys/perm.hE<gt>>.  Avoid the latter, it is available on i386 only."
13334 msgstr ""
13335
13336 #. type: Plain text
13337 #: build/C/man2/ioperm.2:121
13338 msgid "B<iopl>(2), B<outb>(2), B<capabilities>(7)"
13339 msgstr ""
13340
13341 #. type: TH
13342 #: build/C/man3/lockf.3:28
13343 #, no-wrap
13344 msgid "LOCKF"
13345 msgstr ""
13346
13347 #. type: TH
13348 #: build/C/man3/lockf.3:28
13349 #, no-wrap
13350 msgid "2014-06-13"
13351 msgstr ""
13352
13353 #. type: Plain text
13354 #: build/C/man3/lockf.3:31
13355 msgid "lockf - apply, test or remove a POSIX lock on an open file"
13356 msgstr ""
13357
13358 #. type: Plain text
13359 #: build/C/man3/lockf.3:35
13360 msgid "B<int lockf(int >I<fd>B<, int >I<cmd>B<, off_t >I<len>B<);>"
13361 msgstr ""
13362
13363 #. type: Plain text
13364 #: build/C/man3/lockf.3:42
13365 msgid "B<lockf>():"
13366 msgstr ""
13367
13368 #. type: Plain text
13369 #: build/C/man3/lockf.3:46
13370 msgid ""
13371 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
13372 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
13373 msgstr ""
13374
13375 #. type: Plain text
13376 #: build/C/man3/lockf.3:69
13377 msgid ""
13378 "Apply, test or remove a POSIX lock on a section of an open file.  The file "
13379 "is specified by I<fd>, a file descriptor open for writing, the action by "
13380 "I<cmd>, and the section consists of byte positions I<pos>..I<pos>+I<len>-1 "
13381 "if I<len> is positive, and I<pos>-I<len>..I<pos>-1 if I<len> is negative, "
13382 "where I<pos> is the current file position, and if I<len> is zero, the "
13383 "section extends from the current file position to infinity, encompassing the "
13384 "present and future end-of-file positions.  In all cases, the section may "
13385 "extend past current end-of-file."
13386 msgstr ""
13387
13388 #. type: Plain text
13389 #: build/C/man3/lockf.3:84
13390 msgid ""
13391 "On Linux, B<lockf>()  is just an interface on top of B<fcntl>(2)  locking.  "
13392 "Many other systems implement B<lockf>()  in this way, but note that "
13393 "POSIX.1-2001 leaves the relationship between B<lockf>()  and B<fcntl>(2)  "
13394 "locks unspecified.  A portable application should probably avoid mixing "
13395 "calls to these interfaces."
13396 msgstr ""
13397
13398 #. type: Plain text
13399 #: build/C/man3/lockf.3:86
13400 msgid "Valid operations are given below:"
13401 msgstr ""
13402
13403 #. type: TP
13404 #: build/C/man3/lockf.3:86
13405 #, no-wrap
13406 msgid "B<F_LOCK>"
13407 msgstr ""
13408
13409 #. type: Plain text
13410 #: build/C/man3/lockf.3:96
13411 msgid ""
13412 "Set an exclusive lock on the specified section of the file.  If (part of) "
13413 "this section is already locked, the call blocks until the previous lock is "
13414 "released.  If this section overlaps an earlier locked section, both are "
13415 "merged.  File locks are released as soon as the process holding the locks "
13416 "closes some file descriptor for the file.  A child process does not inherit "
13417 "these locks."
13418 msgstr ""
13419
13420 #. type: TP
13421 #: build/C/man3/lockf.3:96
13422 #, no-wrap
13423 msgid "B<F_TLOCK>"
13424 msgstr ""
13425
13426 #. type: Plain text
13427 #: build/C/man3/lockf.3:102
13428 msgid ""
13429 "Same as B<F_LOCK> but the call never blocks and returns an error instead if "
13430 "the file is already locked."
13431 msgstr ""
13432
13433 #. type: TP
13434 #: build/C/man3/lockf.3:102
13435 #, no-wrap
13436 msgid "B<F_ULOCK>"
13437 msgstr ""
13438
13439 #. type: Plain text
13440 #: build/C/man3/lockf.3:106
13441 msgid ""
13442 "Unlock the indicated section of the file.  This may cause a locked section "
13443 "to be split into two locked sections."
13444 msgstr ""
13445
13446 #. type: TP
13447 #: build/C/man3/lockf.3:106
13448 #, no-wrap
13449 msgid "B<F_TEST>"
13450 msgstr ""
13451
13452 #. type: Plain text
13453 #: build/C/man3/lockf.3:116
13454 msgid ""
13455 "Test the lock: return 0 if the specified section is unlocked or locked by "
13456 "this process; return -1, set I<errno> to B<EAGAIN> (B<EACCES> on some other "
13457 "systems), if another process holds a lock."
13458 msgstr ""
13459
13460 #. type: Plain text
13461 #: build/C/man3/lockf.3:130
13462 msgid ""
13463 "The file is locked and B<F_TLOCK> or B<F_TEST> was specified, or the "
13464 "operation is prohibited because the file has been memory-mapped by another "
13465 "process."
13466 msgstr ""
13467
13468 #. type: Plain text
13469 #: build/C/man3/lockf.3:142
13470 msgid ""
13471 "I<fd> is not an open file descriptor; or I<cmd> is B<F_LOCK> or B<F_TLOCK> "
13472 "and I<fd> is not a writable file descriptor."
13473 msgstr ""
13474
13475 #. type: Plain text
13476 #: build/C/man3/lockf.3:147
13477 msgid "The command was B<F_LOCK> and this lock operation would cause a deadlock."
13478 msgstr ""
13479
13480 #. type: Plain text
13481 #: build/C/man3/lockf.3:151
13482 msgid "An invalid operation was specified in I<cmd>."
13483 msgstr ""
13484
13485 #. type: Plain text
13486 #: build/C/man3/lockf.3:154
13487 msgid "Too many segment locks open, lock table is full."
13488 msgstr ""
13489
13490 #. type: Plain text
13491 #: build/C/man3/lockf.3:159
13492 msgid "The B<lockf>()  function is thread-safe."
13493 msgstr ""
13494
13495 #. type: Plain text
13496 #: build/C/man3/lockf.3:161
13497 msgid "SVr4, POSIX.1-2001."
13498 msgstr ""
13499
13500 #. type: Plain text
13501 #: build/C/man3/lockf.3:164
13502 msgid "B<fcntl>(2), B<flock>(2)"
13503 msgstr ""
13504
13505 #. type: Plain text
13506 #: build/C/man3/lockf.3:176
13507 msgid ""
13508 "I<locks.txt> and I<mandatory-locking.txt> in the Linux kernel source "
13509 "directory I<Documentation/filesystems> (on older kernels, these files are "
13510 "directly under the I<Documentation> directory, and I<mandatory-locking.txt> "
13511 "is called I<mandatory.txt>)"
13512 msgstr ""
13513
13514 #. type: TH
13515 #: build/C/man2/mincore.2:34
13516 #, no-wrap
13517 msgid "MINCORE"
13518 msgstr ""
13519
13520 #. type: TH
13521 #: build/C/man2/mincore.2:34
13522 #, no-wrap
13523 msgid "2008-04-22"
13524 msgstr ""
13525
13526 #. type: Plain text
13527 #: build/C/man2/mincore.2:37
13528 msgid "mincore - determine whether pages are resident in memory"
13529 msgstr ""
13530
13531 #. type: Plain text
13532 #: build/C/man2/mincore.2:41
13533 msgid "B<#include E<lt>sys/mman.hE<gt>>"
13534 msgstr ""
13535
13536 #. type: Plain text
13537 #: build/C/man2/mincore.2:43
13538 msgid ""
13539 "B<int mincore(void *>I<addr>B<, size_t >I<length>B<, unsigned char "
13540 "*>I<vec>B<);>"
13541 msgstr ""
13542
13543 #. type: Plain text
13544 #: build/C/man2/mincore.2:51
13545 msgid "B<mincore>(): _BSD_SOURCE || _SVID_SOURCE"
13546 msgstr ""
13547
13548 #. type: Plain text
13549 #: build/C/man2/mincore.2:62
13550 msgid ""
13551 "B<mincore>()  returns a vector that indicates whether pages of the calling "
13552 "process's virtual memory are resident in core (RAM), and so will not cause a "
13553 "disk access (page fault) if referenced.  The kernel returns residency "
13554 "information about the pages starting at the address I<addr>, and continuing "
13555 "for I<length> bytes."
13556 msgstr ""
13557
13558 #. type: Plain text
13559 #: build/C/man2/mincore.2:76
13560 msgid ""
13561 "The I<addr> argument must be a multiple of the system page size.  The "
13562 "I<length> argument need not be a multiple of the page size, but since "
13563 "residency information is returned for whole pages, I<length> is effectively "
13564 "rounded up to the next multiple of the page size.  One may obtain the page "
13565 "size (B<PAGE_SIZE>)  using I<sysconf(_SC_PAGESIZE)>."
13566 msgstr ""
13567
13568 #. type: Plain text
13569 #: build/C/man2/mincore.2:94
13570 msgid ""
13571 "The I<vec> argument must point to an array containing at least "
13572 "I<(length+PAGE_SIZE-1) / PAGE_SIZE> bytes.  On return, the least significant "
13573 "bit of each byte will be set if the corresponding page is currently resident "
13574 "in memory, and be clear otherwise.  (The settings of the other bits in each "
13575 "byte are undefined; these bits are reserved for possible later use.)  Of "
13576 "course the information returned in I<vec> is only a snapshot: pages that are "
13577 "not locked in memory can come and go at any moment, and the contents of "
13578 "I<vec> may already be stale by the time this call returns."
13579 msgstr ""
13580
13581 #. type: Plain text
13582 #: build/C/man2/mincore.2:101
13583 msgid ""
13584 "On success, B<mincore>()  returns zero.  On error, -1 is returned, and "
13585 "I<errno> is set appropriately."
13586 msgstr ""
13587
13588 #. type: Plain text
13589 #: build/C/man2/mincore.2:104
13590 msgid "B<EAGAIN> kernel is temporarily out of resources."
13591 msgstr ""
13592
13593 #. type: Plain text
13594 #: build/C/man2/mincore.2:108
13595 msgid "I<vec> points to an invalid address."
13596 msgstr ""
13597
13598 #. type: Plain text
13599 #: build/C/man2/mincore.2:112
13600 msgid "I<addr> is not a multiple of the page size."
13601 msgstr ""
13602
13603 #. type: Plain text
13604 #: build/C/man2/mincore.2:124
13605 msgid ""
13606 "I<length> is greater than (I<TASK_SIZE> - I<addr>).  (This could occur if a "
13607 "negative value is specified for I<length>, since that value will be "
13608 "interpreted as a large unsigned integer.)  In Linux 2.6.11 and earlier, the "
13609 "error B<EINVAL> was returned for this condition."
13610 msgstr ""
13611
13612 #. type: Plain text
13613 #: build/C/man2/mincore.2:132
13614 msgid "I<addr> to I<addr> + I<length> contained unmapped memory."
13615 msgstr ""
13616
13617 #. type: Plain text
13618 #: build/C/man2/mincore.2:134
13619 msgid "Available since Linux 2.3.99pre1 and glibc 2.2."
13620 msgstr ""
13621
13622 #.  It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8,
13623 #.  AIX 5.1, SunOS 4.1
13624 #.  .SH HISTORY
13625 #.  The
13626 #.  .BR mincore ()
13627 #.  function first appeared in 4.4BSD.
13628 #. type: Plain text
13629 #: build/C/man2/mincore.2:144
13630 msgid ""
13631 "B<mincore>()  is not specified in POSIX.1-2001, and it is not available on "
13632 "all UNIX implementations."
13633 msgstr ""
13634
13635 #.  Linux (up to now, 2.6.5),
13636 #.  .B mincore
13637 #.  does not return correct information for MAP_PRIVATE mappings:
13638 #.  for a MAP_PRIVATE file mapping,
13639 #.  .B mincore
13640 #.  returns the residency of the file pages, rather than any
13641 #.  modified process-private pages that have been copied on write;
13642 #.  for a MAP_PRIVATE mapping of
13643 #.  .IR /dev/zero ,
13644 #.  .B mincore
13645 #.  always reports pages as nonresident;
13646 #.  and for a MAP_PRIVATE, MAP_ANONYMOUS mapping,
13647 #.  .B mincore
13648 #.  always fails with the error
13649 #.  .BR ENOMEM .
13650 #. type: Plain text
13651 #: build/C/man2/mincore.2:166
13652 msgid ""
13653 "Before kernel 2.6.21, B<mincore>()  did not return correct information for "
13654 "B<MAP_PRIVATE> mappings, or for nonlinear mappings (established using "
13655 "B<remap_file_pages>(2))."
13656 msgstr ""
13657
13658 #. type: Plain text
13659 #: build/C/man2/mincore.2:169
13660 msgid "B<mlock>(2), B<mmap>(2)"
13661 msgstr ""
13662
13663 #. type: TH
13664 #: build/C/man2/mkdir.2:11
13665 #, no-wrap
13666 msgid "MKDIR"
13667 msgstr ""
13668
13669 #. type: Plain text
13670 #: build/C/man2/mkdir.2:14
13671 msgid "mkdir, mkdirat - create a directory"
13672 msgstr ""
13673
13674 #.  .B #include <unistd.h>
13675 #. type: Plain text
13676 #: build/C/man2/mkdir.2:19
13677 #, no-wrap
13678 msgid ""
13679 "B<#include E<lt>sys/stat.hE<gt>>\n"
13680 "B<#include E<lt>sys/types.hE<gt>>\n"
13681 msgstr ""
13682
13683 #. type: Plain text
13684 #: build/C/man2/mkdir.2:21
13685 #, no-wrap
13686 msgid "B<int mkdir(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
13687 msgstr ""
13688
13689 #. type: Plain text
13690 #: build/C/man2/mkdir.2:24
13691 #, no-wrap
13692 msgid ""
13693 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
13694 "B<#include E<lt>sys/stat.hE<gt>>\n"
13695 msgstr ""
13696
13697 #. type: Plain text
13698 #: build/C/man2/mkdir.2:26
13699 #, no-wrap
13700 msgid ""
13701 "B<int mkdirat(int >I<dirfd>B<, const char *>I<pathname>B<, mode_t "
13702 ">I<mode>B<);>\n"
13703 msgstr ""
13704
13705 #. type: Plain text
13706 #: build/C/man2/mkdir.2:34
13707 msgid "B<mkdirat>():"
13708 msgstr ""
13709
13710 #. type: Plain text
13711 #: build/C/man2/mkdir.2:51
13712 msgid "B<mkdir>()  attempts to create a directory named I<pathname>."
13713 msgstr ""
13714
13715 #. type: Plain text
13716 #: build/C/man2/mkdir.2:61
13717 msgid ""
13718 "The argument I<mode> specifies the permissions to use.  It is modified by "
13719 "the process's I<umask> in the usual way: the permissions of the created "
13720 "directory are (I<mode> & ~I<umask> & 0777).  Other mode bits of the created "
13721 "directory depend on the operating system.  For Linux, see below."
13722 msgstr ""
13723
13724 #. type: Plain text
13725 #: build/C/man2/mkdir.2:71
13726 msgid ""
13727 "The newly created directory will be owned by the effective user ID of the "
13728 "process.  If the directory containing the file has the set-group-ID bit set, "
13729 "or if the filesystem is mounted with BSD group semantics (I<mount -o "
13730 "bsdgroups> or, synonymously I<mount -o grpid>), the new directory will "
13731 "inherit the group ownership from its parent; otherwise it will be owned by "
13732 "the effective group ID of the process."
13733 msgstr ""
13734
13735 #. type: Plain text
13736 #: build/C/man2/mkdir.2:76
13737 msgid ""
13738 "If the parent directory has the set-group-ID bit set, then so will the newly "
13739 "created directory."
13740 msgstr ""
13741
13742 #. type: SS
13743 #: build/C/man2/mkdir.2:76
13744 #, no-wrap
13745 msgid "mkdirat()"
13746 msgstr ""
13747
13748 #. type: Plain text
13749 #: build/C/man2/mkdir.2:82
13750 msgid ""
13751 "The B<mkdirat>()  system call operates in exactly the same way as "
13752 "B<mkdir>(), except for the differences described here."
13753 msgstr ""
13754
13755 #. type: Plain text
13756 #: build/C/man2/mkdir.2:92
13757 msgid ""
13758 "If the pathname given in I<pathname> is relative, then it is interpreted "
13759 "relative to the directory referred to by the file descriptor I<dirfd> "
13760 "(rather than relative to the current working directory of the calling "
13761 "process, as is done by B<mkdir>()  for a relative pathname)."
13762 msgstr ""
13763
13764 #. type: Plain text
13765 #: build/C/man2/mkdir.2:104
13766 msgid ""
13767 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
13768 "then I<pathname> is interpreted relative to the current working directory of "
13769 "the calling process (like B<mkdir>())."
13770 msgstr ""
13771
13772 #. type: Plain text
13773 #: build/C/man2/mkdir.2:115
13774 msgid "See B<openat>(2)  for an explanation of the need for B<mkdirat>()."
13775 msgstr ""
13776
13777 #. type: Plain text
13778 #: build/C/man2/mkdir.2:122
13779 msgid ""
13780 "B<mkdir>()  and B<mkdirat>()  return zero on success, or -1 if an error "
13781 "occurred (in which case, I<errno> is set appropriately)."
13782 msgstr ""
13783
13784 #. type: Plain text
13785 #: build/C/man2/mkdir.2:131
13786 msgid ""
13787 "The parent directory does not allow write permission to the process, or one "
13788 "of the directories in I<pathname> did not allow search permission.  (See "
13789 "also B<path_resolution>(7).)"
13790 msgstr ""
13791
13792 #. type: TP
13793 #: build/C/man2/mkdir.2:131
13794 #, no-wrap
13795 msgid "B<EDQUOT>"
13796 msgstr ""
13797
13798 #. type: Plain text
13799 #: build/C/man2/mkdir.2:135
13800 msgid ""
13801 "The user's quota of disk blocks or inodes on the filesystem has been "
13802 "exhausted."
13803 msgstr ""
13804
13805 #. type: TP
13806 #: build/C/man2/mkdir.2:135
13807 #, no-wrap
13808 msgid "B<EEXIST>"
13809 msgstr ""
13810
13811 #. type: Plain text
13812 #: build/C/man2/mkdir.2:142
13813 msgid ""
13814 "I<pathname> already exists (not necessarily as a directory).  This includes "
13815 "the case where I<pathname> is a symbolic link, dangling or not."
13816 msgstr ""
13817
13818 #. type: TP
13819 #: build/C/man2/mkdir.2:149
13820 #, no-wrap
13821 msgid "B<EMLINK>"
13822 msgstr ""
13823
13824 #. type: Plain text
13825 #: build/C/man2/mkdir.2:153
13826 msgid "The number of links to the parent directory would exceed B<LINK_MAX>."
13827 msgstr ""
13828
13829 #. type: Plain text
13830 #: build/C/man2/mkdir.2:156
13831 msgid "I<pathname> was too long."
13832 msgstr ""
13833
13834 #. type: Plain text
13835 #: build/C/man2/mkdir.2:161
13836 msgid ""
13837 "A directory component in I<pathname> does not exist or is a dangling "
13838 "symbolic link."
13839 msgstr ""
13840
13841 #. type: TP
13842 #: build/C/man2/mkdir.2:164 build/C/man2/mkdir.2:169
13843 #, no-wrap
13844 msgid "B<ENOSPC>"
13845 msgstr ""
13846
13847 #. type: Plain text
13848 #: build/C/man2/mkdir.2:169
13849 msgid "The device containing I<pathname> has no room for the new directory."
13850 msgstr ""
13851
13852 #. type: Plain text
13853 #: build/C/man2/mkdir.2:173
13854 msgid ""
13855 "The new directory cannot be created because the user's disk quota is "
13856 "exhausted."
13857 msgstr ""
13858
13859 #. type: Plain text
13860 #: build/C/man2/mkdir.2:183
13861 msgid ""
13862 "The filesystem containing I<pathname> does not support the creation of "
13863 "directories."
13864 msgstr ""
13865
13866 #. type: Plain text
13867 #: build/C/man2/mkdir.2:187
13868 msgid "I<pathname> refers to a file on a read-only filesystem."
13869 msgstr ""
13870
13871 #. type: Plain text
13872 #: build/C/man2/mkdir.2:190
13873 msgid "The following additional errors can occur for B<mkdirat>():"
13874 msgstr ""
13875
13876 #. type: Plain text
13877 #: build/C/man2/mkdir.2:204
13878 msgid ""
13879 "B<mkdirat>()  was added to Linux in kernel 2.6.16; library support was added "
13880 "to glibc in version 2.4."
13881 msgstr ""
13882
13883 #.  SVr4 documents additional EIO, EMULTIHOP
13884 #. type: Plain text
13885 #: build/C/man2/mkdir.2:208
13886 msgid "B<mkdir>(): SVr4, BSD, POSIX.1-2001, POSIX.1-2008."
13887 msgstr ""
13888
13889 #. type: Plain text
13890 #: build/C/man2/mkdir.2:211
13891 msgid "B<mkdirat>(): POSIX.1-2008."
13892 msgstr ""
13893
13894 #. type: Plain text
13895 #: build/C/man2/mkdir.2:219
13896 msgid ""
13897 "Under Linux, apart from the permission bits, only the B<S_ISVTX> mode bit is "
13898 "honored.  That is, under Linux the created directory actually gets mode "
13899 "(I<mode> & ~I<umask> & 01777).  See also B<stat>(2)."
13900 msgstr ""
13901
13902 #. type: Plain text
13903 #: build/C/man2/mkdir.2:223
13904 msgid ""
13905 "There are many infelicities in the protocol underlying NFS.  Some of these "
13906 "affect B<mkdir>()."
13907 msgstr ""
13908
13909 #. type: Plain text
13910 #: build/C/man2/mkdir.2:236
13911 msgid ""
13912 "On older kernels where B<mkdirat>()  is unavailable, the glibc wrapper "
13913 "function falls back to the use of B<mkdir>().  When I<pathname> is a "
13914 "relative pathname, glibc constructs a pathname based on the symbolic link in "
13915 "I</proc/self/fd> that corresponds to the I<dirfd> argument."
13916 msgstr ""
13917
13918 #. type: Plain text
13919 #: build/C/man2/mkdir.2:247
13920 msgid ""
13921 "B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mknod>(2), B<mount>(2), "
13922 "B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<path_resolution>(7)"
13923 msgstr ""
13924
13925 #. type: TH
13926 #: build/C/man2/nice.2:31
13927 #, no-wrap
13928 msgid "NICE"
13929 msgstr ""
13930
13931 #. type: TH
13932 #: build/C/man2/nice.2:31
13933 #, no-wrap
13934 msgid "2014-04-28"
13935 msgstr ""
13936
13937 #. type: Plain text
13938 #: build/C/man2/nice.2:34
13939 msgid "nice - change process priority"
13940 msgstr ""
13941
13942 #. type: Plain text
13943 #: build/C/man2/nice.2:38
13944 msgid "B<int nice(int >I<inc>B<);>"
13945 msgstr ""
13946
13947 #. type: Plain text
13948 #: build/C/man2/nice.2:46
13949 msgid "B<nice>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
13950 msgstr ""
13951
13952 #. type: Plain text
13953 #: build/C/man2/nice.2:56
13954 msgid ""
13955 "B<nice>()  adds I<inc> to the nice value for the calling process.  (A higher "
13956 "nice value means a low priority.)  Only the super\\%user may specify a "
13957 "negative increment, or priority increase.  The range for nice values is "
13958 "described in B<getpriority>(2)."
13959 msgstr ""
13960
13961 #. type: Plain text
13962 #: build/C/man2/nice.2:61
13963 msgid ""
13964 "On success, the new nice value is returned (but see NOTES below).  On error, "
13965 "-1 is returned, and I<errno> is set appropriately."
13966 msgstr ""
13967
13968 #. type: Plain text
13969 #: build/C/man2/nice.2:75
13970 msgid ""
13971 "The calling process attempted to increase its priority by supplying a "
13972 "negative I<inc> but has insufficient privileges.  Under Linux, the "
13973 "B<CAP_SYS_NICE> capability is required.  (But see the discussion of the "
13974 "B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)"
13975 msgstr ""
13976
13977 #. type: Plain text
13978 #: build/C/man2/nice.2:82
13979 msgid ""
13980 "SVr4, 4.3BSD, POSIX.1-2001.  However, the Linux and (g)libc (earlier than "
13981 "glibc 2.2.4) return value is nonstandard, see below.  SVr4 documents an "
13982 "additional B<EINVAL> error code."
13983 msgstr ""
13984
13985 #. type: Plain text
13986 #: build/C/man2/nice.2:92
13987 msgid ""
13988 "SUSv2 and POSIX.1-2001 specify that B<nice>()  should return the new nice "
13989 "value.  However, the Linux syscall and the B<nice>()  library function "
13990 "provided in older versions of (g)libc (earlier than glibc 2.2.4) return 0 on "
13991 "success.  The new nice value can be found using B<getpriority>(2)."
13992 msgstr ""
13993
13994 #. type: Plain text
13995 #: build/C/man2/nice.2:105
13996 msgid ""
13997 "Since glibc 2.2.4, B<nice>()  is implemented as a library function that "
13998 "calls B<getpriority>(2)  to obtain the new nice value to be returned to the "
13999 "caller.  With this implementation, a successful call can legitimately return "
14000 "-1.  To reliably detect an error, set I<errno> to 0 before the call, and "
14001 "check its value when B<nice>()  returns -1."
14002 msgstr ""
14003
14004 #. type: Plain text
14005 #: build/C/man2/nice.2:113
14006 msgid ""
14007 "B<nice>(1), B<renice>(1), B<fork>(2), B<getpriority>(2), B<setpriority>(2), "
14008 "B<capabilities>(7), B<sched>(7)"
14009 msgstr ""
14010
14011 #. type: TH
14012 #: build/C/man2/pread.2:25
14013 #, no-wrap
14014 msgid "PREAD"
14015 msgstr ""
14016
14017 #. type: Plain text
14018 #: build/C/man2/pread.2:28
14019 msgid "pread, pwrite - read from or write to a file descriptor at a given offset"
14020 msgstr ""
14021
14022 #. type: Plain text
14023 #: build/C/man2/pread.2:33
14024 msgid ""
14025 "B<ssize_t pread(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<, off_t "
14026 ">I<offset>B<);>"
14027 msgstr ""
14028
14029 #. type: Plain text
14030 #: build/C/man2/pread.2:36
14031 msgid ""
14032 "B<ssize_t pwrite(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<, "
14033 "off_t >I<offset>B<);>"
14034 msgstr ""
14035
14036 #. type: Plain text
14037 #: build/C/man2/pread.2:46
14038 msgid "B<pread>(), B<pwrite>():"
14039 msgstr ""
14040
14041 #. type: Plain text
14042 #: build/C/man2/pread.2:48
14043 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500"
14044 msgstr ""
14045
14046 #. type: Plain text
14047 #: build/C/man2/pread.2:64
14048 msgid ""
14049 "B<pread>()  reads up to I<count> bytes from file descriptor I<fd> at offset "
14050 "I<offset> (from the start of the file) into the buffer starting at I<buf>.  "
14051 "The file offset is not changed."
14052 msgstr ""
14053
14054 #. type: Plain text
14055 #: build/C/man2/pread.2:75
14056 msgid ""
14057 "B<pwrite>()  writes up to I<count> bytes from the buffer starting at I<buf> "
14058 "to the file descriptor I<fd> at offset I<offset>.  The file offset is not "
14059 "changed."
14060 msgstr ""
14061
14062 #. type: Plain text
14063 #: build/C/man2/pread.2:79
14064 msgid "The file referenced by I<fd> must be capable of seeking."
14065 msgstr ""
14066
14067 #. type: Plain text
14068 #: build/C/man2/pread.2:89
14069 msgid ""
14070 "On success, the number of bytes read or written is returned (zero indicates "
14071 "that nothing was written, in the case of B<pwrite>(), or end of file, in the "
14072 "case of B<pread>()), or -1 on error, in which case I<errno> is set to "
14073 "indicate the error."
14074 msgstr ""
14075
14076 #. type: Plain text
14077 #: build/C/man2/pread.2:104
14078 msgid ""
14079 "B<pread>()  can fail and set I<errno> to any error specified for B<read>(2)  "
14080 "or B<lseek>(2).  B<pwrite>()  can fail and set I<errno> to any error "
14081 "specified for B<write>(2)  or B<lseek>(2)."
14082 msgstr ""
14083
14084 #. type: Plain text
14085 #: build/C/man2/pread.2:115
14086 msgid ""
14087 "The B<pread>()  and B<pwrite>()  system calls were added to Linux in version "
14088 "2.1.60; the entries in the i386 system call table were added in 2.1.69.  C "
14089 "library support (including emulation using B<lseek>(2)  on older kernels "
14090 "without the system calls) was added in glibc 2.1."
14091 msgstr ""
14092
14093 #. type: Plain text
14094 #: build/C/man2/pread.2:125
14095 msgid ""
14096 "The B<pread>()  and B<pwrite>()  system calls are especially useful in "
14097 "multithreaded applications.  They allow multiple threads to perform I/O on "
14098 "the same file descriptor without being affected by changes to the file "
14099 "offset by other threads."
14100 msgstr ""
14101
14102 #. type: Plain text
14103 #: build/C/man2/pread.2:141
14104 msgid ""
14105 "On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>()  "
14106 "became B<pread64>(), and B<pwrite>()  became B<pwrite64>().  The system call "
14107 "numbers remained the same.  The glibc B<pread>()  and B<pwrite>()  wrapper "
14108 "functions transparently deal with the change."
14109 msgstr ""
14110
14111 #. type: Plain text
14112 #: build/C/man2/pread.2:146 build/C/man2/truncate.2:249
14113 msgid ""
14114 "On some 32-bit architectures, the calling signature for these system calls "
14115 "differ, for the reasons described in B<syscall>(2)."
14116 msgstr ""
14117
14118 #.  FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=43178
14119 #. type: Plain text
14120 #: build/C/man2/pread.2:158
14121 msgid ""
14122 "POSIX requires that opening a file with the B<O_APPEND> flag should have no "
14123 "effect on the location at which B<pwrite>()  writes data.  However, on "
14124 "Linux, if a file is opened with B<O_APPEND>, B<pwrite>()  appends data to "
14125 "the end of the file, regardless of the value of I<offset>."
14126 msgstr ""
14127
14128 #. type: Plain text
14129 #: build/C/man2/pread.2:163
14130 msgid "B<lseek>(2), B<read>(2), B<readv>(2), B<write>(2)"
14131 msgstr ""
14132
14133 #. type: TH
14134 #: build/C/man2/set_thread_area.2:8
14135 #, no-wrap
14136 msgid "SET_THREAD_AREA"
14137 msgstr ""
14138
14139 #. type: Plain text
14140 #: build/C/man2/set_thread_area.2:11
14141 msgid "set_thread_area - set a thread local storage (TLS) area"
14142 msgstr ""
14143
14144 #. type: Plain text
14145 #: build/C/man2/set_thread_area.2:17
14146 msgid "B<int set_thread_area(struct user_desc *>I<u_info>B<);>"
14147 msgstr ""
14148
14149 #. type: Plain text
14150 #: build/C/man2/set_thread_area.2:33
14151 msgid ""
14152 "B<set_thread_area>()  sets an entry in the current thread's thread-local "
14153 "storage (TLS) array.  The TLS array entry set by B<set_thread_area>()  "
14154 "corresponds to the value of I<u_info-E<gt>entry_number> passed in by the "
14155 "user.  If this value is in bounds, B<set_thread_area>()  copies the TLS "
14156 "descriptor pointed to by I<u_info> into the thread's TLS array."
14157 msgstr ""
14158
14159 #. type: Plain text
14160 #: build/C/man2/set_thread_area.2:44
14161 msgid ""
14162 "When B<set_thread_area>()  is passed an I<entry_number> of -1, it uses a "
14163 "free TLS entry.  If B<set_thread_area>()  finds a free TLS entry, the value "
14164 "of I<u_info-E<gt>entry_number> is set upon return to show which entry was "
14165 "changed."
14166 msgstr ""
14167
14168 #. type: Plain text
14169 #: build/C/man2/set_thread_area.2:49
14170 msgid ""
14171 "B<set_thread_area>()  returns 0 on success, and -1 on failure, with I<errno> "
14172 "set appropriately."
14173 msgstr ""
14174
14175 #. type: TP
14176 #: build/C/man2/set_thread_area.2:56
14177 #, no-wrap
14178 msgid "B<ESRCH>"
14179 msgstr ""
14180
14181 #. type: Plain text
14182 #: build/C/man2/set_thread_area.2:59
14183 msgid "A free TLS entry could not be located."
14184 msgstr ""
14185
14186 #. type: Plain text
14187 #: build/C/man2/set_thread_area.2:63
14188 msgid "A version of B<set_thread_area>()  first appeared in Linux 2.5.29."
14189 msgstr ""
14190
14191 #. type: Plain text
14192 #: build/C/man2/set_thread_area.2:67
14193 msgid ""
14194 "B<set_thread_area>()  is Linux-specific and should not be used in programs "
14195 "that are intended to be portable."
14196 msgstr ""
14197
14198 #. type: Plain text
14199 #: build/C/man2/set_thread_area.2:72
14200 msgid ""
14201 "Glibc does not provide a wrapper for this system call, since it is generally "
14202 "intended only for use by threading libraries.  In the unlikely event that "
14203 "you want to call it directly, use B<syscall>(2)."
14204 msgstr ""
14205
14206 #. type: Plain text
14207 #: build/C/man2/set_thread_area.2:74
14208 msgid "B<get_thread_area>(2)"
14209 msgstr ""
14210
14211 #. type: TH
14212 #: build/C/man2/setup.2:34
14213 #, no-wrap
14214 msgid "SETUP"
14215 msgstr ""
14216
14217 #. type: TH
14218 #: build/C/man2/setup.2:34
14219 #, no-wrap
14220 msgid "2008-12-03"
14221 msgstr ""
14222
14223 #. type: Plain text
14224 #: build/C/man2/setup.2:37
14225 msgid "setup - setup devices and filesystems, mount root filesystem"
14226 msgstr ""
14227
14228 #. type: Plain text
14229 #: build/C/man2/setup.2:41
14230 msgid "B<int setup(void);>"
14231 msgstr ""
14232
14233 #. type: Plain text
14234 #: build/C/man2/setup.2:47
14235 msgid ""
14236 "B<setup>()  is called once from within I<linux/init/main.c>.  It calls "
14237 "initialization functions for devices and filesystems configured into the "
14238 "kernel and then mounts the root filesystem."
14239 msgstr ""
14240
14241 #. type: Plain text
14242 #: build/C/man2/setup.2:53
14243 msgid ""
14244 "No user process may call B<setup>().  Any user process, even a process with "
14245 "superuser permission, will receive B<EPERM>."
14246 msgstr ""
14247
14248 #. type: Plain text
14249 #: build/C/man2/setup.2:56
14250 msgid "B<setup>()  always returns -1 for a user process."
14251 msgstr ""
14252
14253 #. type: Plain text
14254 #: build/C/man2/setup.2:62
14255 msgid "Since Linux 2.1.121, no such function exists anymore."
14256 msgstr ""
14257
14258 #. type: Plain text
14259 #: build/C/man2/setup.2:65
14260 msgid ""
14261 "This function is Linux-specific, and should not be used in programs intended "
14262 "to be portable, or indeed in any programs at all."
14263 msgstr ""
14264
14265 #. type: Plain text
14266 #: build/C/man2/setup.2:72
14267 msgid ""
14268 "The calling sequence varied: at some times I<setup ()> has had a single "
14269 "argument I<void\\ *BIOS> and at other times a single argument I<int magic>."
14270 msgstr ""
14271
14272 #. type: TH
14273 #: build/C/man5/shells.5:28
14274 #, no-wrap
14275 msgid "SHELLS"
14276 msgstr ""
14277
14278 #. type: Plain text
14279 #: build/C/man5/shells.5:31
14280 msgid "shells - pathnames of valid login shells"
14281 msgstr ""
14282
14283 #. type: Plain text
14284 #: build/C/man5/shells.5:37
14285 msgid ""
14286 "I</etc/shells> is a text file which contains the full pathnames of valid "
14287 "login shells.  This file is consulted by B<chsh>(1)  and available to be "
14288 "queried by other programs."
14289 msgstr ""
14290
14291 #. type: Plain text
14292 #: build/C/man5/shells.5:43
14293 msgid ""
14294 "Be aware that there are programs which consult this file to find out if a "
14295 "user is a normal user; for example, FTP daemons traditionally disallow "
14296 "access to users with shells not included in this file."
14297 msgstr ""
14298
14299 #. type: Plain text
14300 #: build/C/man5/shells.5:45
14301 msgid "I</etc/shells>"
14302 msgstr ""
14303
14304 #. type: Plain text
14305 #: build/C/man5/shells.5:48
14306 msgid "I</etc/shells> may contain the following paths:"
14307 msgstr ""
14308
14309 #. type: Plain text
14310 #: build/C/man5/shells.5:51
14311 msgid "I</bin/sh>"
14312 msgstr ""
14313
14314 #. type: Plain text
14315 #: build/C/man5/shells.5:53
14316 msgid "I</bin/bash>"
14317 msgstr ""
14318
14319 #. type: Plain text
14320 #: build/C/man5/shells.5:55
14321 msgid "I</bin/csh>"
14322 msgstr ""
14323
14324 #. type: Plain text
14325 #: build/C/man5/shells.5:59
14326 msgid "B<chsh>(1), B<getusershell>(3)"
14327 msgstr ""
14328
14329 #. type: TH
14330 #: build/C/man3/sleep.3:26
14331 #, no-wrap
14332 msgid "SLEEP"
14333 msgstr ""
14334
14335 #. type: TH
14336 #: build/C/man3/sleep.3:26
14337 #, no-wrap
14338 msgid "2010-02-03"
14339 msgstr ""
14340
14341 #. type: Plain text
14342 #: build/C/man3/sleep.3:29
14343 msgid "sleep - sleep for the specified number of seconds"
14344 msgstr ""
14345
14346 #. type: Plain text
14347 #: build/C/man3/sleep.3:34
14348 #, no-wrap
14349 msgid "B<unsigned int sleep(unsigned int >I<seconds>B<);>\n"
14350 msgstr ""
14351
14352 #. type: Plain text
14353 #: build/C/man3/sleep.3:40
14354 msgid ""
14355 "B<sleep>()  makes the calling thread sleep until I<seconds> seconds have "
14356 "elapsed or a signal arrives which is not ignored."
14357 msgstr ""
14358
14359 #. type: Plain text
14360 #: build/C/man3/sleep.3:44
14361 msgid ""
14362 "Zero if the requested time has elapsed, or the number of seconds left to "
14363 "sleep, if the call was interrupted by a signal handler."
14364 msgstr ""
14365
14366 #. type: Plain text
14367 #: build/C/man3/sleep.3:55
14368 msgid ""
14369 "B<sleep>()  may be implemented using B<SIGALRM>; mixing calls to B<alarm>(2)  "
14370 "and B<sleep>()  is a bad idea."
14371 msgstr ""
14372
14373 #. type: Plain text
14374 #: build/C/man3/sleep.3:61
14375 msgid ""
14376 "Using B<longjmp>(3)  from a signal handler or modifying the handling of "
14377 "B<SIGALRM> while sleeping will cause undefined results."
14378 msgstr ""
14379
14380 #. type: Plain text
14381 #: build/C/man3/sleep.3:66
14382 msgid "B<alarm>(2), B<nanosleep>(2), B<signal>(2), B<signal>(7)"
14383 msgstr ""
14384
14385 #. type: TH
14386 #: build/C/man3/swab.3:31
14387 #, no-wrap
14388 msgid "SWAB"
14389 msgstr ""
14390
14391 #. type: TH
14392 #: build/C/man3/swab.3:31
14393 #, no-wrap
14394 msgid "2014-02-25"
14395 msgstr ""
14396
14397 #. type: Plain text
14398 #: build/C/man3/swab.3:34
14399 msgid "swab - swap adjacent bytes"
14400 msgstr ""
14401
14402 #. type: Plain text
14403 #: build/C/man3/swab.3:38
14404 #, no-wrap
14405 msgid ""
14406 "B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
14407 "B<#include E<lt>unistd.hE<gt>>\n"
14408 msgstr ""
14409
14410 #. type: Plain text
14411 #: build/C/man3/swab.3:40
14412 #, no-wrap
14413 msgid "B<void swab(const void *>I<from>B<, void *>I<to>B<, ssize_t >I<n>B<);>\n"
14414 msgstr ""
14415
14416 #. type: Plain text
14417 #: build/C/man3/swab.3:55
14418 msgid ""
14419 "The B<swab>()  function copies I<n> bytes from the array pointed to by "
14420 "I<from> to the array pointed to by I<to>, exchanging adjacent even and odd "
14421 "bytes.  This function is used to exchange data between machines that have "
14422 "different low/high byte ordering."
14423 msgstr ""
14424
14425 #. type: Plain text
14426 #: build/C/man3/swab.3:68
14427 msgid ""
14428 "This function does nothing when I<n> is negative.  When I<n> is positive and "
14429 "odd, it handles I<n-1> bytes as above, and does something unspecified with "
14430 "the last byte.  (In other words, I<n> should be even.)"
14431 msgstr ""
14432
14433 #. type: Plain text
14434 #: build/C/man3/swab.3:72
14435 msgid "The B<swab>()  function returns no value."
14436 msgstr ""
14437
14438 #. type: Plain text
14439 #: build/C/man3/swab.3:77
14440 msgid "The B<swab>()  function is thread-safe."
14441 msgstr ""
14442
14443 #. type: Plain text
14444 #: build/C/man3/swab.3:81
14445 msgid "B<bstring>(3)"
14446 msgstr ""
14447
14448 #. type: TH
14449 #: build/C/man2/swapon.2:42
14450 #, no-wrap
14451 msgid "SWAPON"
14452 msgstr ""
14453
14454 #. type: Plain text
14455 #: build/C/man2/swapon.2:45
14456 msgid "swapon, swapoff - start/stop swapping to file/device"
14457 msgstr ""
14458
14459 #. type: Plain text
14460 #: build/C/man2/swapon.2:49
14461 msgid "B<#include E<lt>sys/swap.hE<gt>>"
14462 msgstr ""
14463
14464 #. type: Plain text
14465 #: build/C/man2/swapon.2:51
14466 msgid "B<int swapon(const char *>I<path>B<, int >I<swapflags>B<);>"
14467 msgstr ""
14468
14469 #. type: Plain text
14470 #: build/C/man2/swapon.2:53
14471 msgid "B<int swapoff(const char *>I<path>B<);>"
14472 msgstr ""
14473
14474 #. type: Plain text
14475 #: build/C/man2/swapon.2:60
14476 msgid ""
14477 "B<swapon>()  sets the swap area to the file or block device specified by "
14478 "I<path>.  B<swapoff>()  stops swapping to the file or block device specified "
14479 "by I<path>."
14480 msgstr ""
14481
14482 #. type: Plain text
14483 #: build/C/man2/swapon.2:70
14484 msgid ""
14485 "If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>()  "
14486 "I<swapflags> argument, the new swap area will have a higher priority than "
14487 "default.  The priority is encoded within I<swapflags> as:"
14488 msgstr ""
14489
14490 #. type: Plain text
14491 #: build/C/man2/swapon.2:73
14492 msgid "I<(prio E<lt>E<lt> SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK>"
14493 msgstr ""
14494
14495 #. type: Plain text
14496 #: build/C/man2/swapon.2:85
14497 msgid ""
14498 "If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>()  "
14499 "I<swapflags> argument, freed swap pages will be discarded before they are "
14500 "reused, if the swap device supports the discard or trim operation.  (This "
14501 "may improve performance on some Solid State Devices, but often it does not.)  "
14502 "See also NOTES."
14503 msgstr ""
14504
14505 #. type: Plain text
14506 #: build/C/man2/swapon.2:89
14507 msgid ""
14508 "These functions may be used only by a privileged process (one having the "
14509 "B<CAP_SYS_ADMIN> capability)."
14510 msgstr ""
14511
14512 #. type: SS
14513 #: build/C/man2/swapon.2:89
14514 #, no-wrap
14515 msgid "Priority"
14516 msgstr ""
14517
14518 #. type: Plain text
14519 #: build/C/man2/swapon.2:94
14520 msgid ""
14521 "Each swap area has a priority, either high or low.  The default priority is "
14522 "low.  Within the low-priority areas, newer areas are even lower priority "
14523 "than older areas."
14524 msgstr ""
14525
14526 #. type: Plain text
14527 #: build/C/man2/swapon.2:100
14528 msgid ""
14529 "All priorities set with I<swapflags> are high-priority, higher than "
14530 "default.  They may have any nonnegative value chosen by the caller.  Higher "
14531 "numbers mean higher priority."
14532 msgstr ""
14533
14534 #. type: Plain text
14535 #: build/C/man2/swapon.2:108
14536 msgid ""
14537 "Swap pages are allocated from areas in priority order, highest priority "
14538 "first.  For areas with different priorities, a higher-priority area is "
14539 "exhausted before using a lower-priority area.  If two or more areas have the "
14540 "same priority, and it is the highest priority available, pages are allocated "
14541 "on a round-robin basis between them."
14542 msgstr ""
14543
14544 #. type: Plain text
14545 #: build/C/man2/swapon.2:111
14546 msgid ""
14547 "As of Linux 1.3.6, the kernel usually follows these rules, but there are "
14548 "exceptions."
14549 msgstr ""
14550
14551 #. type: Plain text
14552 #: build/C/man2/swapon.2:124
14553 msgid ""
14554 "(for B<swapon>())  The specified I<path> is already being used as a swap "
14555 "area."
14556 msgstr ""
14557
14558 #. type: Plain text
14559 #: build/C/man2/swapon.2:129
14560 msgid ""
14561 "The file I<path> exists, but refers neither to a regular file nor to a block "
14562 "device;"
14563 msgstr ""
14564
14565 #. type: Plain text
14566 #: build/C/man2/swapon.2:134
14567 msgid ""
14568 "(B<swapon>())  The indicated path does not contain a valid swap signature or "
14569 "resides on an in-memory filesystem such as tmpfs."
14570 msgstr ""
14571
14572 #. type: TP
14573 #: build/C/man2/swapon.2:134
14574 #, no-wrap
14575 msgid "B<EINVAL> (since Linux 3.4)"
14576 msgstr ""
14577
14578 #. type: Plain text
14579 #: build/C/man2/swapon.2:139
14580 msgid "(B<swapon>())  An invalid flag value was specified in I<flags>."
14581 msgstr ""
14582
14583 #. type: Plain text
14584 #: build/C/man2/swapon.2:144
14585 msgid "(B<swapoff>())  I<path> is not currently a swap area."
14586 msgstr ""
14587
14588 #. type: Plain text
14589 #: build/C/man2/swapon.2:152
14590 msgid "The file I<path> does not exist."
14591 msgstr ""
14592
14593 #. type: Plain text
14594 #: build/C/man2/swapon.2:155
14595 msgid "The system has insufficient memory to start swapping."
14596 msgstr ""
14597
14598 #. type: Plain text
14599 #: build/C/man2/swapon.2:162
14600 msgid ""
14601 "The caller does not have the B<CAP_SYS_ADMIN> capability.  Alternatively, "
14602 "the maximum number of swap files are already in use; see NOTES below."
14603 msgstr ""
14604
14605 #. type: Plain text
14606 #: build/C/man2/swapon.2:168
14607 msgid ""
14608 "These functions are Linux-specific and should not be used in programs "
14609 "intended to be portable.  The second I<swapflags> argument was introduced in "
14610 "Linux 1.3.2."
14611 msgstr ""
14612
14613 #. type: Plain text
14614 #: build/C/man2/swapon.2:171
14615 msgid "The partition or path must be prepared with B<mkswap>(8)."
14616 msgstr ""
14617
14618 #. type: Plain text
14619 #: build/C/man2/swapon.2:191
14620 msgid ""
14621 "There is an upper limit on the number of swap files that may be used, "
14622 "defined by the kernel constant B<MAX_SWAPFILES>.  Before kernel 2.4.10, "
14623 "B<MAX_SWAPFILES> has the value 8; since kernel 2.4.10, it has the value 32.  "
14624 "Since kernel 2.6.18, the limit is decreased by 2 (thus: 30)  if the kernel "
14625 "is built with the B<CONFIG_MIGRATION> option (which reserves two swap table "
14626 "entries for the page migration features of B<mbind>(2)  and "
14627 "B<migrate_pages>(2)).  Since kernel 2.6.32, the limit is further decreased "
14628 "by 1 if the kernel is built with the B<CONFIG_MEMORY_FAILURE> option."
14629 msgstr ""
14630
14631 #.  To be precise: 2.6.35.5
14632 #. type: Plain text
14633 #: build/C/man2/swapon.2:202
14634 msgid ""
14635 "Discard of swap pages was introduced in kernel 2.6.29, then made conditional "
14636 "on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the "
14637 "entire swap area when B<swapon>()  is called, even if that flag bit is not "
14638 "set."
14639 msgstr ""
14640
14641 #. type: Plain text
14642 #: build/C/man2/swapon.2:206
14643 msgid "B<mkswap>(8), B<swapoff>(8), B<swapon>(8)"
14644 msgstr ""
14645
14646 #. type: TH
14647 #: build/C/man2/syscall.2:40
14648 #, no-wrap
14649 msgid "SYSCALL"
14650 msgstr ""
14651
14652 #. type: Plain text
14653 #: build/C/man2/syscall.2:43
14654 msgid "syscall - indirect system call"
14655 msgstr ""
14656
14657 #. type: Plain text
14658 #: build/C/man2/syscall.2:48
14659 #, no-wrap
14660 msgid ""
14661 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
14662 "B<#include E<lt>unistd.hE<gt>>\n"
14663 "B<#include E<lt>sys/syscall.hE<gt>   >/* For SYS_xxx definitions */\n"
14664 msgstr ""
14665
14666 #. type: Plain text
14667 #: build/C/man2/syscall.2:50
14668 #, no-wrap
14669 msgid "B<long syscall(long >I<number>B<, ...);>\n"
14670 msgstr ""
14671
14672 #. type: Plain text
14673 #: build/C/man2/syscall.2:62
14674 msgid ""
14675 "B<syscall>()  is a small library function that invokes the system call whose "
14676 "assembly language interface has the specified I<number> with the specified "
14677 "arguments.  Employing B<syscall>()  is useful, for example, when invoking a "
14678 "system call that has no wrapper function in the C library."
14679 msgstr ""
14680
14681 #. type: Plain text
14682 #: build/C/man2/syscall.2:69
14683 msgid ""
14684 "B<syscall>()  saves CPU registers before making the system call, restores "
14685 "the registers upon return from the system call, and stores any error code "
14686 "returned by the system call in B<errno>(3)  if an error occurs."
14687 msgstr ""
14688
14689 #. type: Plain text
14690 #: build/C/man2/syscall.2:72
14691 msgid ""
14692 "Symbolic constants for system call numbers can be found in the header file "
14693 "I<E<lt>sys/syscall.hE<gt>>."
14694 msgstr ""
14695
14696 #. type: Plain text
14697 #: build/C/man2/syscall.2:78
14698 msgid ""
14699 "The return value is defined by the system call being invoked.  In general, a "
14700 "0 return value indicates success.  A -1 return value indicates an error, and "
14701 "an error code is stored in I<errno>."
14702 msgstr ""
14703
14704 #. type: Plain text
14705 #: build/C/man2/syscall.2:82
14706 msgid "B<syscall>()  first appeared in 4BSD."
14707 msgstr ""
14708
14709 #. type: SS
14710 #: build/C/man2/syscall.2:82
14711 #, no-wrap
14712 msgid "Architecture-specific requirements"
14713 msgstr ""
14714
14715 #. type: Plain text
14716 #: build/C/man2/syscall.2:93
14717 msgid ""
14718 "Each architecture ABI has its own requirements on how system call arguments "
14719 "are passed to the kernel.  For system calls that have a glibc wrapper (e.g., "
14720 "most system calls), glibc handles the details of copying arguments to the "
14721 "right registers in a manner suitable for the architecture.  However, when "
14722 "using B<syscall>()  to make a system call, the caller might need to handle "
14723 "architecture-dependent details; this requirement is most commonly "
14724 "encountered on certain 32-bit architectures."
14725 msgstr ""
14726
14727 #. type: Plain text
14728 #: build/C/man2/syscall.2:104
14729 msgid ""
14730 "For example, on the ARM architecture Embedded ABI (EABI), a 64-bit value "
14731 "(e.g., I<long long>)  must be aligned to an even register pair.  Thus, using "
14732 "B<syscall>()  instead of the wrapper provided by glibc, the B<readahead>()  "
14733 "system call would be invoked as follows on the ARM architecture with the "
14734 "EABI:"
14735 msgstr ""
14736
14737 #. type: Plain text
14738 #: build/C/man2/syscall.2:111
14739 #, no-wrap
14740 msgid ""
14741 "syscall(SYS_readahead, fd, 0,\n"
14742 "        (unsigned int) (offset E<gt>E<gt> 32),\n"
14743 "        (unsigned int) (offset & 0xFFFFFFFF),\n"
14744 "        count);\n"
14745 msgstr ""
14746
14747 #. type: Plain text
14748 #: build/C/man2/syscall.2:125
14749 msgid ""
14750 "Since the offset argument is 64 bits, and the first argument (I<fd>)  is "
14751 "passed in I<r0>, the caller must manually split and align the 64-bit value "
14752 "so that it is passed in the I<r2>/I<r3> register pair.  That means inserting "
14753 "a dummy value into I<r1> (the second argument of 0)."
14754 msgstr ""
14755
14756 #.  Mike Frysinger: this issue ends up forcing MIPS
14757 #.  O32 to take 7 arguments to syscall()
14758 #. type: Plain text
14759 #: build/C/man2/syscall.2:130
14760 msgid ""
14761 "Similar issues can occur on MIPS with the O32 ABI, on PowerPC with the "
14762 "32-bit ABI, and on Xtensa."
14763 msgstr ""
14764
14765 #. type: Plain text
14766 #: build/C/man2/syscall.2:141
14767 msgid ""
14768 "The affected system calls are B<fadvise64_64>(2), B<ftruncate64>(2), "
14769 "B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), "
14770 "B<sync_file_range>(2), and B<truncate64>(2)."
14771 msgstr ""
14772
14773 #. type: SS
14774 #: build/C/man2/syscall.2:141
14775 #, no-wrap
14776 msgid "Architecture calling conventions"
14777 msgstr ""
14778
14779 #. type: Plain text
14780 #: build/C/man2/syscall.2:145
14781 msgid ""
14782 "Every architecture has its own way of invoking and passing arguments to the "
14783 "kernel.  The details for various architectures are listed in the two tables "
14784 "below."
14785 msgstr ""
14786
14787 #. type: Plain text
14788 #: build/C/man2/syscall.2:152
14789 msgid ""
14790 "The first table lists the instruction used to transition to kernel mode, "
14791 "(which might not be the fastest or best way to transition to the kernel, so "
14792 "you might have to refer to B<vdso>(7)), the register used to indicate the "
14793 "system call number, and the register used to return the system call result."
14794 msgstr ""
14795
14796 #. type: tbl table
14797 #: build/C/man2/syscall.2:157
14798 #, no-wrap
14799 msgid "arch/ABI\tinstruction\tsyscall #\tretval\tNotes\n"
14800 msgstr ""
14801
14802 #. type: tbl table
14803 #: build/C/man2/syscall.2:159
14804 #, no-wrap
14805 msgid "arm/OABI\tswi NR\t-\ta1\tNR is syscall #\n"
14806 msgstr ""
14807
14808 #. type: tbl table
14809 #: build/C/man2/syscall.2:160
14810 #, no-wrap
14811 msgid "arm/EABI\tswi 0x0\tr7\tr0\n"
14812 msgstr ""
14813
14814 #. type: tbl table
14815 #: build/C/man2/syscall.2:161
14816 #, no-wrap
14817 msgid "blackfin\texcpt 0x0\tP0\tR0\n"
14818 msgstr ""
14819
14820 #. type: tbl table
14821 #: build/C/man2/syscall.2:162
14822 #, no-wrap
14823 msgid "i386\tint $0x80\teax\teax\n"
14824 msgstr ""
14825
14826 #. type: tbl table
14827 #: build/C/man2/syscall.2:163
14828 #, no-wrap
14829 msgid "ia64\tbreak 0x100000\tr15\tr10/r8\tT{\n"
14830 msgstr ""
14831
14832 #. type: tbl table
14833 #: build/C/man2/syscall.2:164
14834 #, no-wrap
14835 msgid "bool error/\n"
14836 msgstr ""
14837
14838 #. type: tbl table
14839 #: build/C/man2/syscall.2:165 build/C/man2/syscalls.2:172 build/C/man2/syscalls.2:185 build/C/man2/syscalls.2:320 build/C/man2/syscalls.2:393 build/C/man2/syscalls.2:409 build/C/man2/syscalls.2:422
14840 #, no-wrap
14841 msgid ".br\n"
14842 msgstr ""
14843
14844 #. type: tbl table
14845 #: build/C/man2/syscall.2:166
14846 #, no-wrap
14847 msgid "errno value\n"
14848 msgstr ""
14849
14850 #. type: tbl table
14851 #: build/C/man2/syscall.2:167 build/C/man2/syscalls.2:174 build/C/man2/syscalls.2:187 build/C/man2/syscalls.2:322 build/C/man2/syscalls.2:395 build/C/man2/syscalls.2:411 build/C/man2/syscalls.2:424 build/C/man2/syscalls.2:556 build/C/man2/syscalls.2:603
14852 #, no-wrap
14853 msgid "T}\n"
14854 msgstr ""
14855
14856 #. type: tbl table
14857 #: build/C/man2/syscall.2:168
14858 #, no-wrap
14859 msgid "parisc\tble 0x100(%sr2, %r0)\tr20\tr28\n"
14860 msgstr ""
14861
14862 #. type: tbl table
14863 #: build/C/man2/syscall.2:169
14864 #, no-wrap
14865 msgid "s390\tsvc 0\tr1\tr2\tSee below\n"
14866 msgstr ""
14867
14868 #. type: tbl table
14869 #: build/C/man2/syscall.2:170
14870 #, no-wrap
14871 msgid "s390x\tsvc 0\tr1\tr2\tSee below\n"
14872 msgstr ""
14873
14874 #. type: tbl table
14875 #: build/C/man2/syscall.2:171
14876 #, no-wrap
14877 msgid "sparc/32\tt 0x10\tg1\to0\n"
14878 msgstr ""
14879
14880 #. type: tbl table
14881 #: build/C/man2/syscall.2:172
14882 #, no-wrap
14883 msgid "sparc/64\tt 0x6d\tg1\to0\n"
14884 msgstr ""
14885
14886 #. type: tbl table
14887 #: build/C/man2/syscall.2:173
14888 #, no-wrap
14889 msgid "x86_64\tsyscall\trax\trax\n"
14890 msgstr ""
14891
14892 #. type: Plain text
14893 #: build/C/man2/syscall.2:178
14894 msgid ""
14895 "For s390 and s390x, NR (the system call number)  may be passed directly with "
14896 "\"svc NR\" if it is less than 256."
14897 msgstr ""
14898
14899 #. type: Plain text
14900 #: build/C/man2/syscall.2:184
14901 msgid "The second table shows the registers used to pass the system call arguments."
14902 msgstr ""
14903
14904 #. type: tbl table
14905 #: build/C/man2/syscall.2:189
14906 #, no-wrap
14907 msgid "arch/ABI\targ1\targ2\targ3\targ4\targ5\targ6\targ7\n"
14908 msgstr ""
14909
14910 #. type: tbl table
14911 #: build/C/man2/syscall.2:191
14912 #, no-wrap
14913 msgid "arm/OABI\ta1\ta2\ta3\ta4\tv1\tv2\tv3\n"
14914 msgstr ""
14915
14916 #. type: tbl table
14917 #: build/C/man2/syscall.2:192
14918 #, no-wrap
14919 msgid "arm/EABI\tr0\tr1\tr2\tr3\tr4\tr5\tr6\n"
14920 msgstr ""
14921
14922 #. type: tbl table
14923 #: build/C/man2/syscall.2:193
14924 #, no-wrap
14925 msgid "blackfin\tR0\tR1\tR2\tR3\tR4\tR5\t-\n"
14926 msgstr ""
14927
14928 #. type: tbl table
14929 #: build/C/man2/syscall.2:194
14930 #, no-wrap
14931 msgid "i386\tebx\tecx\tedx\tesi\tedi\tebp\t-\n"
14932 msgstr ""
14933
14934 #. type: tbl table
14935 #: build/C/man2/syscall.2:195
14936 #, no-wrap
14937 msgid "ia64\tout0\tout1\tout2\tout3\tout4\tout5\t-\n"
14938 msgstr ""
14939
14940 #. type: tbl table
14941 #: build/C/man2/syscall.2:196
14942 #, no-wrap
14943 msgid "parisc\tr26\tr25\tr24\tr23\tr22\tr21\t-\n"
14944 msgstr ""
14945
14946 #. type: tbl table
14947 #: build/C/man2/syscall.2:197
14948 #, no-wrap
14949 msgid "s390\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
14950 msgstr ""
14951
14952 #. type: tbl table
14953 #: build/C/man2/syscall.2:198
14954 #, no-wrap
14955 msgid "s390x\tr2\tr3\tr4\tr5\tr6\tr7\t-\n"
14956 msgstr ""
14957
14958 #. type: tbl table
14959 #: build/C/man2/syscall.2:199
14960 #, no-wrap
14961 msgid "sparc/32\to0\to1\to2\to3\to4\to5\t-\n"
14962 msgstr ""
14963
14964 #. type: tbl table
14965 #: build/C/man2/syscall.2:200
14966 #, no-wrap
14967 msgid "sparc/64\to0\to1\to2\to3\to4\to5\t-\n"
14968 msgstr ""
14969
14970 #. type: tbl table
14971 #: build/C/man2/syscall.2:201
14972 #, no-wrap
14973 msgid "x86_64\trdi\trsi\trdx\tr10\tr8\tr9\t-\n"
14974 msgstr ""
14975
14976 #. type: Plain text
14977 #: build/C/man2/syscall.2:210
14978 msgid ""
14979 "Note that these tables don't cover the entire calling convention\\(emsome "
14980 "architectures may indiscriminately clobber other registers not listed here."
14981 msgstr ""
14982
14983 #. type: Plain text
14984 #: build/C/man2/syscall.2:217
14985 #, no-wrap
14986 msgid ""
14987 "#define _GNU_SOURCE\n"
14988 "#include E<lt>unistd.hE<gt>\n"
14989 "#include E<lt>sys/syscall.hE<gt>\n"
14990 "#include E<lt>sys/types.hE<gt>\n"
14991 "#include E<lt>signal.hE<gt>\n"
14992 msgstr ""
14993
14994 #. type: Plain text
14995 #: build/C/man2/syscall.2:222
14996 #, no-wrap
14997 msgid ""
14998 "int\n"
14999 "main(int argc, char *argv[])\n"
15000 "{\n"
15001 "    pid_t tid;\n"
15002 msgstr ""
15003
15004 #. type: Plain text
15005 #: build/C/man2/syscall.2:226
15006 #, no-wrap
15007 msgid ""
15008 "    tid = syscall(SYS_gettid);\n"
15009 "    tid = syscall(SYS_tgkill, getpid(), tid, SIGHUP);\n"
15010 "}\n"
15011 msgstr ""
15012
15013 #. type: Plain text
15014 #: build/C/man2/syscall.2:233
15015 msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2), B<errno>(3), B<vdso>(7)"
15016 msgstr ""
15017
15018 #. type: TH
15019 #: build/C/man2/syscalls.2:31
15020 #, no-wrap
15021 msgid "SYSCALLS"
15022 msgstr ""
15023
15024 #. type: Plain text
15025 #: build/C/man2/syscalls.2:34
15026 msgid "syscalls - Linux system calls"
15027 msgstr ""
15028
15029 #. type: Plain text
15030 #: build/C/man2/syscalls.2:36
15031 msgid "Linux system calls."
15032 msgstr ""
15033
15034 #. type: Plain text
15035 #: build/C/man2/syscalls.2:39
15036 msgid ""
15037 "The system call is the fundamental interface between an application and the "
15038 "Linux kernel."
15039 msgstr ""
15040
15041 #. type: SS
15042 #: build/C/man2/syscalls.2:39
15043 #, no-wrap
15044 msgid "System calls and library wrapper functions"
15045 msgstr ""
15046
15047 #. type: Plain text
15048 #: build/C/man2/syscalls.2:49
15049 msgid ""
15050 "System calls are generally not invoked directly, but rather via wrapper "
15051 "functions in glibc (or perhaps some other library).  For details of direct "
15052 "invocation of a system call, see B<intro>(2).  Often, but not always, the "
15053 "name of the wrapper function is the same as the name of the system call that "
15054 "it invokes.  For example, glibc contains a function B<truncate>()  which "
15055 "invokes the underlying \"truncate\" system call."
15056 msgstr ""
15057
15058 #. type: Plain text
15059 #: build/C/man2/syscalls.2:67
15060 msgid ""
15061 "Often the glibc wrapper function is quite thin, doing little work other than "
15062 "copying arguments to the right registers before invoking the system call, "
15063 "and then setting I<errno> appropriately after the system call has returned.  "
15064 "(These are the same steps that are performed by B<syscall>(2), which can be "
15065 "used to invoke system calls for which no wrapper function is provided.)  "
15066 "Note: system calls indicate a failure by returning a negative error number "
15067 "to the caller; when this happens, the wrapper function negates the returned "
15068 "error number (to make it positive), copies it to I<errno>, and returns -1 to "
15069 "the caller of the wrapper."
15070 msgstr ""
15071
15072 #. type: Plain text
15073 #: build/C/man2/syscalls.2:79
15074 msgid ""
15075 "Sometimes, however, the wrapper function does some extra work before "
15076 "invoking the system call.  For example, nowadays there are (for reasons "
15077 "described below) two related system calls, B<truncate>(2)  and "
15078 "B<truncate64>(2), and the glibc B<truncate>()  wrapper function checks which "
15079 "of those system calls are provided by the kernel and determines which should "
15080 "be employed."
15081 msgstr ""
15082
15083 #. type: SS
15084 #: build/C/man2/syscalls.2:79
15085 #, no-wrap
15086 msgid "System call list"
15087 msgstr ""
15088
15089 #. type: Plain text
15090 #: build/C/man2/syscalls.2:87
15091 msgid ""
15092 "Below is a list of the Linux system calls.  In the list, the I<Kernel> "
15093 "column indicates the kernel version for those system calls that were new in "
15094 "Linux 2.2, or have appeared since that kernel version.  Note the following "
15095 "points:"
15096 msgstr ""
15097
15098 #. type: Plain text
15099 #: build/C/man2/syscalls.2:90
15100 msgid ""
15101 "Where no kernel version is indicated, the system call appeared in kernel 1.0 "
15102 "or earlier."
15103 msgstr ""
15104
15105 #. type: Plain text
15106 #: build/C/man2/syscalls.2:96
15107 msgid ""
15108 "Where a system call is marked \"1.2\" this means the system call probably "
15109 "appeared in a 1.1.x kernel version, and first appeared in a stable kernel "
15110 "with 1.2.  (Development of the 1.2 kernel was initiated from a branch of "
15111 "kernel 1.0.6 via the 1.1.x unstable kernel series.)"
15112 msgstr ""
15113
15114 #.  Was kernel 2.0 started from a branch of 1.2.10?
15115 #.  At least from the timestamps of the tarballs of
15116 #.  of 1.2.10 and 1.3.0, that's how it looks, but in
15117 #.  fact the diff doesn't seem very clear, the
15118 #.  1.3.0 .tar.bz is much bigger (2.0 MB) than the
15119 #.  1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
15120 #.  timestamps of some files in 1.3.0 seem to be older
15121 #.  than those in 1.2.10.  All of this suggests
15122 #.  that there might not have been a clean branch point.
15123 #. type: Plain text
15124 #: build/C/man2/syscalls.2:112
15125 msgid ""
15126 "Where a system call is marked \"2.0\" this means the system call probably "
15127 "appeared in a 1.3.x kernel version, and first appeared in a stable kernel "
15128 "with 2.0.  (Development of the 2.0 kernel was initiated from a branch of "
15129 "kernel 1.2.x, somewhere around 1.2.10, via the 1.3.x unstable kernel "
15130 "series.)"
15131 msgstr ""
15132
15133 #. type: Plain text
15134 #: build/C/man2/syscalls.2:118
15135 msgid ""
15136 "Where a system call is marked \"2.2\" this means the system call probably "
15137 "appeared in a 2.1.x kernel version, and first appeared in a stable kernel "
15138 "with 2.2.0.  (Development of the 2.2 kernel was initiated from a branch of "
15139 "kernel 2.0.21 via the 2.1.x unstable kernel series.)"
15140 msgstr ""
15141
15142 #. type: Plain text
15143 #: build/C/man2/syscalls.2:124
15144 msgid ""
15145 "Where a system call is marked \"2.4\" this means the system call probably "
15146 "appeared in a 2.3.x kernel version, and first appeared in a stable kernel "
15147 "with 2.4.0.  (Development of the 2.4 kernel was initiated from a branch of "
15148 "kernel 2.2.8 via the 2.3.x unstable kernel series.)"
15149 msgstr ""
15150
15151 #. type: Plain text
15152 #: build/C/man2/syscalls.2:130
15153 msgid ""
15154 "Where a system call is marked \"2.6\" this means the system call probably "
15155 "appeared in a 2.5.x kernel version, and first appeared in a stable kernel "
15156 "with 2.6.0.  (Development of kernel 2.6 was initiated from a branch of "
15157 "kernel 2.4.15 via the 2.5.x unstable kernel series.)"
15158 msgstr ""
15159
15160 #. type: Plain text
15161 #: build/C/man2/syscalls.2:137
15162 msgid ""
15163 "Starting with kernel 2.6.0, the development model changed, and new system "
15164 "calls may appear in each 2.6.x release.  In this case, the exact version "
15165 "number where the system call appeared is shown.  This convention continues "
15166 "with the 3.x kernel series, which followed on from kernel 2.6.39."
15167 msgstr ""
15168
15169 #. type: Plain text
15170 #: build/C/man2/syscalls.2:145
15171 msgid ""
15172 "In some cases, a system call was added to a stable kernel series after it "
15173 "branched from the previous stable kernel series, and then backported into "
15174 "the earlier stable kernel series.  For example some system calls that "
15175 "appeared in 2.6.x were also backported into a 2.4.x release after 2.4.15.  "
15176 "When this is so, the version where the system call appeared in both of the "
15177 "major kernel series is listed."
15178 msgstr ""
15179
15180 #
15181 #.  Looking at scripts/checksyscalls.sh in the kernel source is
15182 #.  instructive about x86 specifics.
15183 #. type: Plain text
15184 #: build/C/man2/syscalls.2:152
15185 msgid ""
15186 "The list of system calls that are available as at kernel 3.15 (or in a few "
15187 "cases only on older kernels) is as follows:"
15188 msgstr ""
15189
15190 #. type: tbl table
15191 #: build/C/man2/syscalls.2:157
15192 #, no-wrap
15193 msgid "B<System call>\tB<Kernel>\tB<Notes>\n"
15194 msgstr ""
15195
15196 #. type: tbl table
15197 #: build/C/man2/syscalls.2:159
15198 #, no-wrap
15199 msgid "B<_llseek>(2)\t1.2\n"
15200 msgstr ""
15201
15202 #. type: tbl table
15203 #: build/C/man2/syscalls.2:160
15204 #, no-wrap
15205 msgid "B<_newselect>(2)\t2.0\n"
15206 msgstr ""
15207
15208 #. type: tbl table
15209 #: build/C/man2/syscalls.2:161
15210 #, no-wrap
15211 msgid "B<_sysctl>(2)\t2.0\n"
15212 msgstr ""
15213
15214 #. type: tbl table
15215 #: build/C/man2/syscalls.2:162
15216 #, no-wrap
15217 msgid "B<accept>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15218 msgstr ""
15219
15220 #. type: tbl table
15221 #: build/C/man2/syscalls.2:163
15222 #, no-wrap
15223 msgid "B<accept4>(2)\t2.6.28\n"
15224 msgstr ""
15225
15226 #. type: tbl table
15227 #: build/C/man2/syscalls.2:164
15228 #, no-wrap
15229 msgid "B<access>(2)\t1.0\n"
15230 msgstr ""
15231
15232 #. type: tbl table
15233 #: build/C/man2/syscalls.2:165
15234 #, no-wrap
15235 msgid "B<acct>(2)\t1.0\n"
15236 msgstr ""
15237
15238 #. type: tbl table
15239 #: build/C/man2/syscalls.2:166
15240 #, no-wrap
15241 msgid "B<add_key>(2)\t2.6.11\n"
15242 msgstr ""
15243
15244 #. type: tbl table
15245 #: build/C/man2/syscalls.2:167
15246 #, no-wrap
15247 msgid "B<adjtimex>(2)\t1.0\n"
15248 msgstr ""
15249
15250 #. type: tbl table
15251 #: build/C/man2/syscalls.2:168
15252 #, no-wrap
15253 msgid "B<alarm>(2)\t1.0\n"
15254 msgstr ""
15255
15256 #. type: tbl table
15257 #: build/C/man2/syscalls.2:169
15258 #, no-wrap
15259 msgid "B<alloc_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
15260 msgstr ""
15261
15262 #. type: tbl table
15263 #: build/C/man2/syscalls.2:170
15264 #, no-wrap
15265 msgid "B<bdflush>(2)\t1.2\tT{\n"
15266 msgstr ""
15267
15268 #. type: tbl table
15269 #: build/C/man2/syscalls.2:171
15270 #, no-wrap
15271 msgid "Deprecated (does nothing)\n"
15272 msgstr ""
15273
15274 #. type: tbl table
15275 #: build/C/man2/syscalls.2:173
15276 #, no-wrap
15277 msgid "since 2.6\n"
15278 msgstr ""
15279
15280 #. type: tbl table
15281 #: build/C/man2/syscalls.2:175
15282 #, no-wrap
15283 msgid "B<bind>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15284 msgstr ""
15285
15286 #. type: tbl table
15287 #: build/C/man2/syscalls.2:176
15288 #, no-wrap
15289 msgid "B<bpf>(2)\t3.18\n"
15290 msgstr ""
15291
15292 #. type: tbl table
15293 #: build/C/man2/syscalls.2:177
15294 #, no-wrap
15295 msgid "B<brk>(2)\t1.0\n"
15296 msgstr ""
15297
15298 #. type: tbl table
15299 #: build/C/man2/syscalls.2:178
15300 #, no-wrap
15301 msgid "B<cacheflush>(2)\t1.2\tNot on x86\n"
15302 msgstr ""
15303
15304 #. type: tbl table
15305 #: build/C/man2/syscalls.2:179
15306 #, no-wrap
15307 msgid "B<capget>(2)\t2.2\n"
15308 msgstr ""
15309
15310 #. type: tbl table
15311 #: build/C/man2/syscalls.2:180
15312 #, no-wrap
15313 msgid "B<capset>(2)\t2.2\n"
15314 msgstr ""
15315
15316 #. type: tbl table
15317 #: build/C/man2/syscalls.2:181
15318 #, no-wrap
15319 msgid "B<chdir>(2)\t1.0\n"
15320 msgstr ""
15321
15322 #. type: tbl table
15323 #: build/C/man2/syscalls.2:182
15324 #, no-wrap
15325 msgid "B<chmod>(2)\t1.0\n"
15326 msgstr ""
15327
15328 #. type: tbl table
15329 #: build/C/man2/syscalls.2:183
15330 #, no-wrap
15331 msgid "B<chown>(2)\t2.2\tT{\n"
15332 msgstr ""
15333
15334 #. type: tbl table
15335 #: build/C/man2/syscalls.2:184 build/C/man2/syscalls.2:319
15336 #, no-wrap
15337 msgid "See B<chown>(2) for\n"
15338 msgstr ""
15339
15340 #. type: tbl table
15341 #: build/C/man2/syscalls.2:186 build/C/man2/syscalls.2:321
15342 #, no-wrap
15343 msgid "version details\n"
15344 msgstr ""
15345
15346 #. type: tbl table
15347 #: build/C/man2/syscalls.2:188
15348 #, no-wrap
15349 msgid "B<chown32>(2)\t2.4\n"
15350 msgstr ""
15351
15352 #. type: tbl table
15353 #: build/C/man2/syscalls.2:189
15354 #, no-wrap
15355 msgid "B<chroot>(2)\t1.0\n"
15356 msgstr ""
15357
15358 #. type: tbl table
15359 #: build/C/man2/syscalls.2:190
15360 #, no-wrap
15361 msgid "B<clock_adjtime>(2)\t2.6.39\n"
15362 msgstr ""
15363
15364 #. type: tbl table
15365 #: build/C/man2/syscalls.2:191
15366 #, no-wrap
15367 msgid "B<clock_getres>(2)\t2.6\n"
15368 msgstr ""
15369
15370 #. type: tbl table
15371 #: build/C/man2/syscalls.2:192
15372 #, no-wrap
15373 msgid "B<clock_gettime>(2)\t2.6\n"
15374 msgstr ""
15375
15376 #. type: tbl table
15377 #: build/C/man2/syscalls.2:193
15378 #, no-wrap
15379 msgid "B<clock_nanosleep>(2)\t2.6\n"
15380 msgstr ""
15381
15382 #. type: tbl table
15383 #: build/C/man2/syscalls.2:194
15384 #, no-wrap
15385 msgid "B<clock_settime>(2)\t2.6\n"
15386 msgstr ""
15387
15388 #. type: tbl table
15389 #: build/C/man2/syscalls.2:195
15390 #, no-wrap
15391 msgid "B<clone>(2)\t1.0\n"
15392 msgstr ""
15393
15394 #. type: tbl table
15395 #: build/C/man2/syscalls.2:196
15396 #, no-wrap
15397 msgid "B<close>(2)\t1.0\n"
15398 msgstr ""
15399
15400 #. type: tbl table
15401 #: build/C/man2/syscalls.2:197
15402 #, no-wrap
15403 msgid "B<connect>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15404 msgstr ""
15405
15406 #. type: tbl table
15407 #: build/C/man2/syscalls.2:198
15408 #, no-wrap
15409 msgid "B<creat>(2)\t1.0\n"
15410 msgstr ""
15411
15412 #. type: tbl table
15413 #: build/C/man2/syscalls.2:199
15414 #, no-wrap
15415 msgid "B<create_module>(2)\t\tRemoved in 2.6\n"
15416 msgstr ""
15417
15418 #. type: tbl table
15419 #: build/C/man2/syscalls.2:200
15420 #, no-wrap
15421 msgid "B<delete_module>(2)\t1.0\n"
15422 msgstr ""
15423
15424 #. type: tbl table
15425 #: build/C/man2/syscalls.2:201
15426 #, no-wrap
15427 msgid "B<dup>(2)\t1.0\n"
15428 msgstr ""
15429
15430 #. type: tbl table
15431 #: build/C/man2/syscalls.2:202
15432 #, no-wrap
15433 msgid "B<dup2>(2)\t1.0\n"
15434 msgstr ""
15435
15436 #. type: tbl table
15437 #: build/C/man2/syscalls.2:203
15438 #, no-wrap
15439 msgid "B<dup3>(2)\t2.6.27\n"
15440 msgstr ""
15441
15442 #. type: tbl table
15443 #: build/C/man2/syscalls.2:204
15444 #, no-wrap
15445 msgid "B<epoll_create>(2)\t2.6\n"
15446 msgstr ""
15447
15448 #. type: tbl table
15449 #: build/C/man2/syscalls.2:205
15450 #, no-wrap
15451 msgid "B<epoll_create1>(2)\t2.6.27\n"
15452 msgstr ""
15453
15454 #. type: tbl table
15455 #: build/C/man2/syscalls.2:206
15456 #, no-wrap
15457 msgid "B<epoll_ctl>(2)\t2.6\n"
15458 msgstr ""
15459
15460 #. type: tbl table
15461 #: build/C/man2/syscalls.2:207
15462 #, no-wrap
15463 msgid "B<epoll_pwait>(2)\t2.6.19\n"
15464 msgstr ""
15465
15466 #. type: tbl table
15467 #: build/C/man2/syscalls.2:208
15468 #, no-wrap
15469 msgid "B<epoll_wait>(2)\t2.6\n"
15470 msgstr ""
15471
15472 #. type: tbl table
15473 #: build/C/man2/syscalls.2:209
15474 #, no-wrap
15475 msgid "B<eventfd>(2)\t2.6.22\n"
15476 msgstr ""
15477
15478 #. type: tbl table
15479 #: build/C/man2/syscalls.2:210
15480 #, no-wrap
15481 msgid "B<eventfd2>(2)\t2.6.27\n"
15482 msgstr ""
15483
15484 #. type: tbl table
15485 #: build/C/man2/syscalls.2:211
15486 #, no-wrap
15487 msgid "B<execve>(2)\t1.0\n"
15488 msgstr ""
15489
15490 #. type: tbl table
15491 #: build/C/man2/syscalls.2:212
15492 #, no-wrap
15493 msgid "B<execveat>(2)\t3.19\n"
15494 msgstr ""
15495
15496 #. type: tbl table
15497 #: build/C/man2/syscalls.2:213
15498 #, no-wrap
15499 msgid "B<exit>(2)\t1.0\n"
15500 msgstr ""
15501
15502 #. type: tbl table
15503 #: build/C/man2/syscalls.2:214
15504 #, no-wrap
15505 msgid "B<exit_group>(2)\t2.6\n"
15506 msgstr ""
15507
15508 #. type: tbl table
15509 #: build/C/man2/syscalls.2:215
15510 #, no-wrap
15511 msgid "B<faccessat>(2)\t2.6.16\n"
15512 msgstr ""
15513
15514 #. type: tbl table
15515 #: build/C/man2/syscalls.2:216
15516 #, no-wrap
15517 msgid "B<fadvise64>(2)\t2.6\n"
15518 msgstr ""
15519
15520 #.  Implements \fBposix_fadvise\fP(2)
15521 #. type: tbl table
15522 #: build/C/man2/syscalls.2:218
15523 #, no-wrap
15524 msgid "B<fadvise64_64>(2)\t2.6\n"
15525 msgstr ""
15526
15527 #. type: tbl table
15528 #: build/C/man2/syscalls.2:219
15529 #, no-wrap
15530 msgid "B<fallocate>(2)\t2.6.23\n"
15531 msgstr ""
15532
15533 #. type: tbl table
15534 #: build/C/man2/syscalls.2:220
15535 #, no-wrap
15536 msgid "B<fanotify_init>(2)\t2.6.37\n"
15537 msgstr ""
15538
15539 #. type: tbl table
15540 #: build/C/man2/syscalls.2:221
15541 #, no-wrap
15542 msgid "B<fanotify_mark>(2)\t2.6.37\n"
15543 msgstr ""
15544
15545 #.  The fanotify calls were added in Linux 2.6.36,
15546 #.  but disabled while the API was finalized.
15547 #. type: tbl table
15548 #: build/C/man2/syscalls.2:224
15549 #, no-wrap
15550 msgid "B<fchdir>(2)\t1.0\n"
15551 msgstr ""
15552
15553 #. type: tbl table
15554 #: build/C/man2/syscalls.2:225
15555 #, no-wrap
15556 msgid "B<fchmod>(2)\t1.0\n"
15557 msgstr ""
15558
15559 #. type: tbl table
15560 #: build/C/man2/syscalls.2:226
15561 #, no-wrap
15562 msgid "B<fchmodat>(2)\t2.6.16\n"
15563 msgstr ""
15564
15565 #. type: tbl table
15566 #: build/C/man2/syscalls.2:227
15567 #, no-wrap
15568 msgid "B<fchown>(2)\t1.0\n"
15569 msgstr ""
15570
15571 #. type: tbl table
15572 #: build/C/man2/syscalls.2:228
15573 #, no-wrap
15574 msgid "B<fchown32>(2)\t2.4\n"
15575 msgstr ""
15576
15577 #. type: tbl table
15578 #: build/C/man2/syscalls.2:229
15579 #, no-wrap
15580 msgid "B<fchownat>(2)\t2.6.16\n"
15581 msgstr ""
15582
15583 #. type: tbl table
15584 #: build/C/man2/syscalls.2:230
15585 #, no-wrap
15586 msgid "B<fcntl>(2)\t1.0\n"
15587 msgstr ""
15588
15589 #. type: tbl table
15590 #: build/C/man2/syscalls.2:231
15591 #, no-wrap
15592 msgid "B<fcntl64>(2)\t2.4\n"
15593 msgstr ""
15594
15595 #. type: tbl table
15596 #: build/C/man2/syscalls.2:232
15597 #, no-wrap
15598 msgid "B<fdatasync>(2)\t2.0\n"
15599 msgstr ""
15600
15601 #. type: tbl table
15602 #: build/C/man2/syscalls.2:233
15603 #, no-wrap
15604 msgid "B<fgetxattr>(2)\t2.6; 2.4.18\n"
15605 msgstr ""
15606
15607 #. type: tbl table
15608 #: build/C/man2/syscalls.2:234
15609 #, no-wrap
15610 msgid "B<finit_module>(2)\t3.8\n"
15611 msgstr ""
15612
15613 #. type: tbl table
15614 #: build/C/man2/syscalls.2:235
15615 #, no-wrap
15616 msgid "B<flistxattr>(2)\t2.6; 2.4.18\n"
15617 msgstr ""
15618
15619 #. type: tbl table
15620 #: build/C/man2/syscalls.2:236
15621 #, no-wrap
15622 msgid "B<flock>(2)\t2.0\n"
15623 msgstr ""
15624
15625 #. type: tbl table
15626 #: build/C/man2/syscalls.2:237
15627 #, no-wrap
15628 msgid "B<fork>(2)\t1.0\n"
15629 msgstr ""
15630
15631 #. type: tbl table
15632 #: build/C/man2/syscalls.2:238
15633 #, no-wrap
15634 msgid "B<free_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
15635 msgstr ""
15636
15637 #. type: tbl table
15638 #: build/C/man2/syscalls.2:239
15639 #, no-wrap
15640 msgid "B<fremovexattr>(2)\t2.6; 2.4.18\n"
15641 msgstr ""
15642
15643 #. type: tbl table
15644 #: build/C/man2/syscalls.2:240
15645 #, no-wrap
15646 msgid "B<fsetxattr>(2)\t2.6; 2.4.18\n"
15647 msgstr ""
15648
15649 #. type: tbl table
15650 #: build/C/man2/syscalls.2:241
15651 #, no-wrap
15652 msgid "B<fstat>(2)\t1.0\n"
15653 msgstr ""
15654
15655 #. type: tbl table
15656 #: build/C/man2/syscalls.2:242
15657 #, no-wrap
15658 msgid "B<fstat64>(2)\t2.4\n"
15659 msgstr ""
15660
15661 #. type: tbl table
15662 #: build/C/man2/syscalls.2:243
15663 #, no-wrap
15664 msgid "B<fstatat64>(2)\t2.6.16\n"
15665 msgstr ""
15666
15667 #. type: tbl table
15668 #: build/C/man2/syscalls.2:244
15669 #, no-wrap
15670 msgid "B<fstatfs>(2)\t1.0\n"
15671 msgstr ""
15672
15673 #. type: tbl table
15674 #: build/C/man2/syscalls.2:245
15675 #, no-wrap
15676 msgid "B<fstatfs64>(2)\t2.6\n"
15677 msgstr ""
15678
15679 #. type: tbl table
15680 #: build/C/man2/syscalls.2:246
15681 #, no-wrap
15682 msgid "B<fsync>(2)\t1.0\t1.0\n"
15683 msgstr ""
15684
15685 #. type: tbl table
15686 #: build/C/man2/syscalls.2:247
15687 #, no-wrap
15688 msgid "B<ftruncate>(2)\t1.0\n"
15689 msgstr ""
15690
15691 #. type: tbl table
15692 #: build/C/man2/syscalls.2:248
15693 #, no-wrap
15694 msgid "B<ftruncate64>(2)\t2.4\n"
15695 msgstr ""
15696
15697 #. type: tbl table
15698 #: build/C/man2/syscalls.2:249
15699 #, no-wrap
15700 msgid "B<futex>(2)\t2.6\n"
15701 msgstr ""
15702
15703 #. type: tbl table
15704 #: build/C/man2/syscalls.2:250
15705 #, no-wrap
15706 msgid "B<futimesat>(2)\t2.6.16\n"
15707 msgstr ""
15708
15709 #. type: tbl table
15710 #: build/C/man2/syscalls.2:251
15711 #, no-wrap
15712 msgid "B<get_kernel_syms>(2)\t\tRemoved in 2.6\n"
15713 msgstr ""
15714
15715 #. type: tbl table
15716 #: build/C/man2/syscalls.2:252
15717 #, no-wrap
15718 msgid "B<get_mempolicy>(2)\t2.6.6\n"
15719 msgstr ""
15720
15721 #. type: tbl table
15722 #: build/C/man2/syscalls.2:253
15723 #, no-wrap
15724 msgid "B<get_robust_list>(2)\t2.6.17\n"
15725 msgstr ""
15726
15727 #. type: tbl table
15728 #: build/C/man2/syscalls.2:254
15729 #, no-wrap
15730 msgid "B<get_thread_area>(2)\t2.6\n"
15731 msgstr ""
15732
15733 #. type: tbl table
15734 #: build/C/man2/syscalls.2:255
15735 #, no-wrap
15736 msgid "B<getcpu>(2)\t2.6.19\n"
15737 msgstr ""
15738
15739 #. type: tbl table
15740 #: build/C/man2/syscalls.2:256
15741 #, no-wrap
15742 msgid "B<getcwd>(2)\t2.2\n"
15743 msgstr ""
15744
15745 #. type: tbl table
15746 #: build/C/man2/syscalls.2:257
15747 #, no-wrap
15748 msgid "B<getdents>(2)\t2.0\n"
15749 msgstr ""
15750
15751 #. type: tbl table
15752 #: build/C/man2/syscalls.2:258
15753 #, no-wrap
15754 msgid "B<getdents64>(2)\t2.4\n"
15755 msgstr ""
15756
15757 #. type: tbl table
15758 #: build/C/man2/syscalls.2:259
15759 #, no-wrap
15760 msgid "B<getegid>(2)\t1.0\n"
15761 msgstr ""
15762
15763 #. type: tbl table
15764 #: build/C/man2/syscalls.2:260
15765 #, no-wrap
15766 msgid "B<getegid32>(2)\t2.4\n"
15767 msgstr ""
15768
15769 #. type: tbl table
15770 #: build/C/man2/syscalls.2:261
15771 #, no-wrap
15772 msgid "B<geteuid>(2)\t1.0\n"
15773 msgstr ""
15774
15775 #. type: tbl table
15776 #: build/C/man2/syscalls.2:262
15777 #, no-wrap
15778 msgid "B<geteuid32>(2)\t2.4\n"
15779 msgstr ""
15780
15781 #. type: tbl table
15782 #: build/C/man2/syscalls.2:263
15783 #, no-wrap
15784 msgid "B<getgid>(2)\t1.0\n"
15785 msgstr ""
15786
15787 #. type: tbl table
15788 #: build/C/man2/syscalls.2:264
15789 #, no-wrap
15790 msgid "B<getgid32>(2)\t2.4\n"
15791 msgstr ""
15792
15793 #. type: tbl table
15794 #: build/C/man2/syscalls.2:265
15795 #, no-wrap
15796 msgid "B<getgroups>(2)\t1.0\n"
15797 msgstr ""
15798
15799 #. type: tbl table
15800 #: build/C/man2/syscalls.2:266
15801 #, no-wrap
15802 msgid "B<getgroups32>(2)\t2.4\n"
15803 msgstr ""
15804
15805 #. type: tbl table
15806 #: build/C/man2/syscalls.2:267
15807 #, no-wrap
15808 msgid "B<getitimer>(2)\t1.0\n"
15809 msgstr ""
15810
15811 #. type: tbl table
15812 #: build/C/man2/syscalls.2:268
15813 #, no-wrap
15814 msgid "B<getpeername>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15815 msgstr ""
15816
15817 #. type: tbl table
15818 #: build/C/man2/syscalls.2:269
15819 #, no-wrap
15820 msgid "B<getpagesize>(2)\t2.0\tNot on x86\n"
15821 msgstr ""
15822
15823 #. type: tbl table
15824 #: build/C/man2/syscalls.2:270
15825 #, no-wrap
15826 msgid "B<getpgid>(2)\t1.0\n"
15827 msgstr ""
15828
15829 #. type: tbl table
15830 #: build/C/man2/syscalls.2:271
15831 #, no-wrap
15832 msgid "B<getpgrp>(2)\t1.0\n"
15833 msgstr ""
15834
15835 #. type: tbl table
15836 #: build/C/man2/syscalls.2:272
15837 #, no-wrap
15838 msgid "B<getpid>(2)\t1.0\n"
15839 msgstr ""
15840
15841 #. type: tbl table
15842 #: build/C/man2/syscalls.2:273
15843 #, no-wrap
15844 msgid "B<getppid>(2)\t1.0\n"
15845 msgstr ""
15846
15847 #. type: tbl table
15848 #: build/C/man2/syscalls.2:274
15849 #, no-wrap
15850 msgid "B<getpriority>(2)\t1.0\n"
15851 msgstr ""
15852
15853 #. type: tbl table
15854 #: build/C/man2/syscalls.2:275
15855 #, no-wrap
15856 msgid "B<getrandom>(2)\t3.17\n"
15857 msgstr ""
15858
15859 #. type: tbl table
15860 #: build/C/man2/syscalls.2:276
15861 #, no-wrap
15862 msgid "B<getresgid>(2)\t2.2\n"
15863 msgstr ""
15864
15865 #. type: tbl table
15866 #: build/C/man2/syscalls.2:277
15867 #, no-wrap
15868 msgid "B<getresgid32>(2)\t2.4\n"
15869 msgstr ""
15870
15871 #. type: tbl table
15872 #: build/C/man2/syscalls.2:278
15873 #, no-wrap
15874 msgid "B<getresuid>(2)\t2.2\n"
15875 msgstr ""
15876
15877 #. type: tbl table
15878 #: build/C/man2/syscalls.2:279
15879 #, no-wrap
15880 msgid "B<getresuid32>(2)\t2.4\n"
15881 msgstr ""
15882
15883 #. type: tbl table
15884 #: build/C/man2/syscalls.2:280
15885 #, no-wrap
15886 msgid "B<getrlimit>(2)\t1.0\n"
15887 msgstr ""
15888
15889 #. type: tbl table
15890 #: build/C/man2/syscalls.2:281
15891 #, no-wrap
15892 msgid "B<getrusage>(2)\t1.0\n"
15893 msgstr ""
15894
15895 #. type: tbl table
15896 #: build/C/man2/syscalls.2:282
15897 #, no-wrap
15898 msgid "B<getsid>(2)\t2.0\n"
15899 msgstr ""
15900
15901 #. type: tbl table
15902 #: build/C/man2/syscalls.2:283
15903 #, no-wrap
15904 msgid "B<getsockname>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15905 msgstr ""
15906
15907 #. type: tbl table
15908 #: build/C/man2/syscalls.2:284
15909 #, no-wrap
15910 msgid "B<getsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
15911 msgstr ""
15912
15913 #. type: tbl table
15914 #: build/C/man2/syscalls.2:285
15915 #, no-wrap
15916 msgid "B<gettid>(2)\t2.4.11\n"
15917 msgstr ""
15918
15919 #. type: tbl table
15920 #: build/C/man2/syscalls.2:286
15921 #, no-wrap
15922 msgid "B<gettimeofday>(2)\t1.0\n"
15923 msgstr ""
15924
15925 #. type: tbl table
15926 #: build/C/man2/syscalls.2:287
15927 #, no-wrap
15928 msgid "B<getuid>(2)\t1.0\n"
15929 msgstr ""
15930
15931 #. type: tbl table
15932 #: build/C/man2/syscalls.2:288
15933 #, no-wrap
15934 msgid "B<getuid32>(2)\t2.4\n"
15935 msgstr ""
15936
15937 #.  \fBgetunwind\fP(2)  2.4.8   ia64; DEPRECATED
15938 #. type: tbl table
15939 #: build/C/man2/syscalls.2:290
15940 #, no-wrap
15941 msgid "B<getxattr>(2)\t2.6; 2.4.18\n"
15942 msgstr ""
15943
15944 #. type: tbl table
15945 #: build/C/man2/syscalls.2:291
15946 #, no-wrap
15947 msgid "B<init_module>(2)\t1.0\n"
15948 msgstr ""
15949
15950 #. type: tbl table
15951 #: build/C/man2/syscalls.2:292
15952 #, no-wrap
15953 msgid "B<inotify_add_watch>(2)\t2.6.13\n"
15954 msgstr ""
15955
15956 #. type: tbl table
15957 #: build/C/man2/syscalls.2:293
15958 #, no-wrap
15959 msgid "B<inotify_init>(2)\t2.6.13\n"
15960 msgstr ""
15961
15962 #. type: tbl table
15963 #: build/C/man2/syscalls.2:294
15964 #, no-wrap
15965 msgid "B<inotify_init1>(2)\t2.6.27\n"
15966 msgstr ""
15967
15968 #. type: tbl table
15969 #: build/C/man2/syscalls.2:295
15970 #, no-wrap
15971 msgid "B<inotify_rm_watch>(2)\t2.6.13\n"
15972 msgstr ""
15973
15974 #. type: tbl table
15975 #: build/C/man2/syscalls.2:296
15976 #, no-wrap
15977 msgid "B<io_cancel>(2)\t2.6\n"
15978 msgstr ""
15979
15980 #. type: tbl table
15981 #: build/C/man2/syscalls.2:297
15982 #, no-wrap
15983 msgid "B<io_destroy>(2)\t2.6\n"
15984 msgstr ""
15985
15986 #. type: tbl table
15987 #: build/C/man2/syscalls.2:298
15988 #, no-wrap
15989 msgid "B<io_getevents>(2)\t2.6\n"
15990 msgstr ""
15991
15992 #. type: tbl table
15993 #: build/C/man2/syscalls.2:299
15994 #, no-wrap
15995 msgid "B<io_setup>(2)\t2.6\n"
15996 msgstr ""
15997
15998 #. type: tbl table
15999 #: build/C/man2/syscalls.2:300
16000 #, no-wrap
16001 msgid "B<io_submit>(2)\t2.6\n"
16002 msgstr ""
16003
16004 #. type: tbl table
16005 #: build/C/man2/syscalls.2:301
16006 #, no-wrap
16007 msgid "B<ioctl>(2)\t1.0\n"
16008 msgstr ""
16009
16010 #. type: tbl table
16011 #: build/C/man2/syscalls.2:302
16012 #, no-wrap
16013 msgid "B<ioperm>(2)\t1.0\n"
16014 msgstr ""
16015
16016 #. type: tbl table
16017 #: build/C/man2/syscalls.2:303
16018 #, no-wrap
16019 msgid "B<iopl>(2)\t1.0\n"
16020 msgstr ""
16021
16022 #. type: tbl table
16023 #: build/C/man2/syscalls.2:304
16024 #, no-wrap
16025 msgid "B<ioprio_get>(2)\t2.6.13\n"
16026 msgstr ""
16027
16028 #. type: tbl table
16029 #: build/C/man2/syscalls.2:305
16030 #, no-wrap
16031 msgid "B<ioprio_set>(2)\t2.6.13\n"
16032 msgstr ""
16033
16034 #. type: tbl table
16035 #: build/C/man2/syscalls.2:306
16036 #, no-wrap
16037 msgid "B<ipc>(2)\t1.0\n"
16038 msgstr ""
16039
16040 #.  Implements System V IPC calls
16041 #. type: tbl table
16042 #: build/C/man2/syscalls.2:308
16043 #, no-wrap
16044 msgid "B<kcmp>(2)\t3.5\n"
16045 msgstr ""
16046
16047 #. type: tbl table
16048 #: build/C/man2/syscalls.2:309
16049 #, no-wrap
16050 msgid "B<kern_features>(2)\t3.7\tSparc64\n"
16051 msgstr ""
16052
16053 #.  FIXME . document kern_features():
16054 #.  commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb
16055 #. type: tbl table
16056 #: build/C/man2/syscalls.2:312
16057 #, no-wrap
16058 msgid "B<kexec_file_load>(2)\t3.17\n"
16059 msgstr ""
16060
16061 #. type: tbl table
16062 #: build/C/man2/syscalls.2:313
16063 #, no-wrap
16064 msgid "B<kexec_load>(2)\t2.6.13\n"
16065 msgstr ""
16066
16067 #.  The entry in the syscall table was reserved starting in 2.6.7
16068 #.  Was named sys_kexec_load() from 2.6.7 to 2.6.16
16069 #. type: tbl table
16070 #: build/C/man2/syscalls.2:316
16071 #, no-wrap
16072 msgid "B<keyctl>(2)\t2.6.11\n"
16073 msgstr ""
16074
16075 #. type: tbl table
16076 #: build/C/man2/syscalls.2:317
16077 #, no-wrap
16078 msgid "B<kill>(2)\t1.0\n"
16079 msgstr ""
16080
16081 #. type: tbl table
16082 #: build/C/man2/syscalls.2:318
16083 #, no-wrap
16084 msgid "B<lchown>(2)\t1.0\tT{\n"
16085 msgstr ""
16086
16087 #. type: tbl table
16088 #: build/C/man2/syscalls.2:323
16089 #, no-wrap
16090 msgid "B<lchown32>(2)\t2.4\n"
16091 msgstr ""
16092
16093 #. type: tbl table
16094 #: build/C/man2/syscalls.2:324
16095 #, no-wrap
16096 msgid "B<lgetxattr>(2)\t2.6; 2.4.18\n"
16097 msgstr ""
16098
16099 #. type: tbl table
16100 #: build/C/man2/syscalls.2:325
16101 #, no-wrap
16102 msgid "B<link>(2)\t1.0\n"
16103 msgstr ""
16104
16105 #. type: tbl table
16106 #: build/C/man2/syscalls.2:326
16107 #, no-wrap
16108 msgid "B<linkat>(2)\t2.6.16\n"
16109 msgstr ""
16110
16111 #. type: tbl table
16112 #: build/C/man2/syscalls.2:327
16113 #, no-wrap
16114 msgid "B<listen>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16115 msgstr ""
16116
16117 #. type: tbl table
16118 #: build/C/man2/syscalls.2:328
16119 #, no-wrap
16120 msgid "B<listxattr>(2)\t2.6; 2.4.18\n"
16121 msgstr ""
16122
16123 #. type: tbl table
16124 #: build/C/man2/syscalls.2:329
16125 #, no-wrap
16126 msgid "B<llistxattr>(2)\t2.6; 2.4.18\n"
16127 msgstr ""
16128
16129 #. type: tbl table
16130 #: build/C/man2/syscalls.2:330
16131 #, no-wrap
16132 msgid "B<lookup_dcookie>(2)\t2.6\n"
16133 msgstr ""
16134
16135 #. type: tbl table
16136 #: build/C/man2/syscalls.2:331
16137 #, no-wrap
16138 msgid "B<lremovexattr>(2)\t2.6; 2.4.18\n"
16139 msgstr ""
16140
16141 #. type: tbl table
16142 #: build/C/man2/syscalls.2:332
16143 #, no-wrap
16144 msgid "B<lseek>(2)\t1.0\n"
16145 msgstr ""
16146
16147 #. type: tbl table
16148 #: build/C/man2/syscalls.2:333
16149 #, no-wrap
16150 msgid "B<lsetxattr>(2)\t2.6; 2.4.18\n"
16151 msgstr ""
16152
16153 #. type: tbl table
16154 #: build/C/man2/syscalls.2:334
16155 #, no-wrap
16156 msgid "B<lstat>(2)\t1.0\n"
16157 msgstr ""
16158
16159 #. type: tbl table
16160 #: build/C/man2/syscalls.2:335
16161 #, no-wrap
16162 msgid "B<lstat64>(2)\t2.4\n"
16163 msgstr ""
16164
16165 #. type: tbl table
16166 #: build/C/man2/syscalls.2:336
16167 #, no-wrap
16168 msgid "B<madvise>(2)\t2.4\n"
16169 msgstr ""
16170
16171 #. type: tbl table
16172 #: build/C/man2/syscalls.2:337
16173 #, no-wrap
16174 msgid "B<mbind>(2)\t2.6.6\n"
16175 msgstr ""
16176
16177 #.  \fBmemory_ordering\fP(2)    ???     Sparc64
16178 #. type: tbl table
16179 #: build/C/man2/syscalls.2:339
16180 #, no-wrap
16181 msgid "B<memfd_create>(2)\t3.17\n"
16182 msgstr ""
16183
16184 #. type: tbl table
16185 #: build/C/man2/syscalls.2:340
16186 #, no-wrap
16187 msgid "B<migrate_pages>(2)\t2.6.16\n"
16188 msgstr ""
16189
16190 #. type: tbl table
16191 #: build/C/man2/syscalls.2:341
16192 #, no-wrap
16193 msgid "B<mincore>(2)\t2.4\n"
16194 msgstr ""
16195
16196 #. type: tbl table
16197 #: build/C/man2/syscalls.2:342
16198 #, no-wrap
16199 msgid "B<mkdir>(2)\t1.0\n"
16200 msgstr ""
16201
16202 #. type: tbl table
16203 #: build/C/man2/syscalls.2:343
16204 #, no-wrap
16205 msgid "B<mkdirat>(2)\t2.6.16\n"
16206 msgstr ""
16207
16208 #. type: tbl table
16209 #: build/C/man2/syscalls.2:344
16210 #, no-wrap
16211 msgid "B<mknod>(2)\t1.0\n"
16212 msgstr ""
16213
16214 #. type: tbl table
16215 #: build/C/man2/syscalls.2:345
16216 #, no-wrap
16217 msgid "B<mknodat>(2)\t2.6.16\n"
16218 msgstr ""
16219
16220 #. type: tbl table
16221 #: build/C/man2/syscalls.2:346
16222 #, no-wrap
16223 msgid "B<mlock>(2)\t2.0\n"
16224 msgstr ""
16225
16226 #. type: tbl table
16227 #: build/C/man2/syscalls.2:347
16228 #, no-wrap
16229 msgid "B<mlockall>(2)\t2.0\n"
16230 msgstr ""
16231
16232 #. type: tbl table
16233 #: build/C/man2/syscalls.2:348
16234 #, no-wrap
16235 msgid "B<mmap>(2)\t1.0\n"
16236 msgstr ""
16237
16238 #. type: tbl table
16239 #: build/C/man2/syscalls.2:349
16240 #, no-wrap
16241 msgid "B<mmap2>(2)\t2.4\n"
16242 msgstr ""
16243
16244 #. type: tbl table
16245 #: build/C/man2/syscalls.2:350
16246 #, no-wrap
16247 msgid "B<modify_ldt>(2)\t1.0\n"
16248 msgstr ""
16249
16250 #. type: tbl table
16251 #: build/C/man2/syscalls.2:351
16252 #, no-wrap
16253 msgid "B<mount>(2)\t1.0\n"
16254 msgstr ""
16255
16256 #. type: tbl table
16257 #: build/C/man2/syscalls.2:352
16258 #, no-wrap
16259 msgid "B<move_pages>(2)\t2.6.18\n"
16260 msgstr ""
16261
16262 #. type: tbl table
16263 #: build/C/man2/syscalls.2:353
16264 #, no-wrap
16265 msgid "B<mprotect>(2)\t1.0\n"
16266 msgstr ""
16267
16268 #. type: tbl table
16269 #: build/C/man2/syscalls.2:354
16270 #, no-wrap
16271 msgid "B<mq_getsetattr>(2)\t2.6.6\n"
16272 msgstr ""
16273
16274 #.  Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
16275 #. type: tbl table
16276 #: build/C/man2/syscalls.2:356
16277 #, no-wrap
16278 msgid "B<mq_notify>(2)\t2.6.6\n"
16279 msgstr ""
16280
16281 #. type: tbl table
16282 #: build/C/man2/syscalls.2:357
16283 #, no-wrap
16284 msgid "B<mq_open>(2)\t2.6.6\n"
16285 msgstr ""
16286
16287 #. type: tbl table
16288 #: build/C/man2/syscalls.2:358
16289 #, no-wrap
16290 msgid "B<mq_timedreceive>(2)\t2.6.6\n"
16291 msgstr ""
16292
16293 #. type: tbl table
16294 #: build/C/man2/syscalls.2:359
16295 #, no-wrap
16296 msgid "B<mq_timedsend>(2)\t2.6.6\n"
16297 msgstr ""
16298
16299 #. type: tbl table
16300 #: build/C/man2/syscalls.2:360
16301 #, no-wrap
16302 msgid "B<mq_unlink>(2)\t2.6.6\n"
16303 msgstr ""
16304
16305 #. type: tbl table
16306 #: build/C/man2/syscalls.2:361
16307 #, no-wrap
16308 msgid "B<mremap>(2)\t2.0\n"
16309 msgstr ""
16310
16311 #. type: tbl table
16312 #: build/C/man2/syscalls.2:362
16313 #, no-wrap
16314 msgid "B<msgctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16315 msgstr ""
16316
16317 #. type: tbl table
16318 #: build/C/man2/syscalls.2:363
16319 #, no-wrap
16320 msgid "B<msgget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16321 msgstr ""
16322
16323 #. type: tbl table
16324 #: build/C/man2/syscalls.2:364
16325 #, no-wrap
16326 msgid "B<msgrcv>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16327 msgstr ""
16328
16329 #. type: tbl table
16330 #: build/C/man2/syscalls.2:365
16331 #, no-wrap
16332 msgid "B<msgsnd>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16333 msgstr ""
16334
16335 #. type: tbl table
16336 #: build/C/man2/syscalls.2:366
16337 #, no-wrap
16338 msgid "B<msync>(2)\t2.0\n"
16339 msgstr ""
16340
16341 #.  \fBmultiplexer\fP(2)        ??      __NR_multiplexer reserved on
16342 #.              PowerPC, but unimplemented?
16343 #. type: tbl table
16344 #: build/C/man2/syscalls.2:369
16345 #, no-wrap
16346 msgid "B<munlock>(2)\t2.0\n"
16347 msgstr ""
16348
16349 #. type: tbl table
16350 #: build/C/man2/syscalls.2:370
16351 #, no-wrap
16352 msgid "B<munlockall>(2)\t2.0\n"
16353 msgstr ""
16354
16355 #. type: tbl table
16356 #: build/C/man2/syscalls.2:371
16357 #, no-wrap
16358 msgid "B<munmap>(2)\t1.0\n"
16359 msgstr ""
16360
16361 #. type: tbl table
16362 #: build/C/man2/syscalls.2:372
16363 #, no-wrap
16364 msgid "B<name_to_handle_at>(2)\t2.6.39\n"
16365 msgstr ""
16366
16367 #. type: tbl table
16368 #: build/C/man2/syscalls.2:373
16369 #, no-wrap
16370 msgid "B<nanosleep>(2)\t2.0\n"
16371 msgstr ""
16372
16373 #. type: tbl table
16374 #: build/C/man2/syscalls.2:374
16375 #, no-wrap
16376 msgid "B<nfsservctl>(2)\t2.2\tRemoved in 3.1\n"
16377 msgstr ""
16378
16379 #. type: tbl table
16380 #: build/C/man2/syscalls.2:375
16381 #, no-wrap
16382 msgid "B<nice>(2)\t1.0\n"
16383 msgstr ""
16384
16385 #. type: tbl table
16386 #: build/C/man2/syscalls.2:376
16387 #, no-wrap
16388 msgid "B<oldfstat>(2)\t1.0\n"
16389 msgstr ""
16390
16391 #. type: tbl table
16392 #: build/C/man2/syscalls.2:377
16393 #, no-wrap
16394 msgid "B<oldlstat>(2)\t1.0\n"
16395 msgstr ""
16396
16397 #. type: tbl table
16398 #: build/C/man2/syscalls.2:378
16399 #, no-wrap
16400 msgid "B<oldolduname>(2)\t1.0\n"
16401 msgstr ""
16402
16403 #. type: tbl table
16404 #: build/C/man2/syscalls.2:379
16405 #, no-wrap
16406 msgid "B<oldstat>(2)\t1.0\n"
16407 msgstr ""
16408
16409 #. type: tbl table
16410 #: build/C/man2/syscalls.2:380
16411 #, no-wrap
16412 msgid "B<olduname>(2)\t1.0\n"
16413 msgstr ""
16414
16415 #. type: tbl table
16416 #: build/C/man2/syscalls.2:381
16417 #, no-wrap
16418 msgid "B<open>(2)\t1.0\n"
16419 msgstr ""
16420
16421 #. type: tbl table
16422 #: build/C/man2/syscalls.2:382
16423 #, no-wrap
16424 msgid "B<open_by_handle_at>(2)\t2.6.39\n"
16425 msgstr ""
16426
16427 #. type: tbl table
16428 #: build/C/man2/syscalls.2:383
16429 #, no-wrap
16430 msgid "B<openat>(2)\t2.6.16\n"
16431 msgstr ""
16432
16433 #. type: tbl table
16434 #: build/C/man2/syscalls.2:384
16435 #, no-wrap
16436 msgid "B<pause>(2)\t1.0\n"
16437 msgstr ""
16438
16439 #. type: tbl table
16440 #: build/C/man2/syscalls.2:385
16441 #, no-wrap
16442 msgid "B<pciconfig_iobase>(2)\t2.2.15; 2.4\tNot on x86\n"
16443 msgstr ""
16444
16445 #.  Alpha, PowerPC, ARM; not x86
16446 #. type: tbl table
16447 #: build/C/man2/syscalls.2:387
16448 #, no-wrap
16449 msgid "B<pciconfig_read>(2)\t2.0.26; 2.2\tNot on x86\n"
16450 msgstr ""
16451
16452 #.  , PowerPC, ARM; not x86
16453 #. type: tbl table
16454 #: build/C/man2/syscalls.2:389
16455 #, no-wrap
16456 msgid "B<pciconfig_write>(2)\t2.0.26; 2.2\tNot on x86\n"
16457 msgstr ""
16458
16459 #.  , PowerPC, ARM; not x86
16460 #. type: tbl table
16461 #: build/C/man2/syscalls.2:391
16462 #, no-wrap
16463 msgid "B<perf_event_open>(2)\t2.6.31\tT{\n"
16464 msgstr ""
16465
16466 #. type: tbl table
16467 #: build/C/man2/syscalls.2:392
16468 #, no-wrap
16469 msgid "Was called perf_counter_open()\n"
16470 msgstr ""
16471
16472 #. type: tbl table
16473 #: build/C/man2/syscalls.2:394
16474 #, no-wrap
16475 msgid "in 2.6.31; renamed in 2.6.32\n"
16476 msgstr ""
16477
16478 #. type: tbl table
16479 #: build/C/man2/syscalls.2:396
16480 #, no-wrap
16481 msgid "B<personality>(2)\t1.2\n"
16482 msgstr ""
16483
16484 #. type: tbl table
16485 #: build/C/man2/syscalls.2:397
16486 #, no-wrap
16487 msgid "B<perfctr>(2)\t2.2\tSparc; removed in 2.6.34\n"
16488 msgstr ""
16489
16490 #.      commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr()
16491 #. type: tbl table
16492 #: build/C/man2/syscalls.2:399
16493 #, no-wrap
16494 msgid "B<perfmonctl>(2)\t2.4\tia64\n"
16495 msgstr ""
16496
16497 #. type: tbl table
16498 #: build/C/man2/syscalls.2:400
16499 #, no-wrap
16500 msgid "B<pipe>(2)\t1.0\n"
16501 msgstr ""
16502
16503 #. type: tbl table
16504 #: build/C/man2/syscalls.2:401
16505 #, no-wrap
16506 msgid "B<pipe2>(2)\t2.6.27\n"
16507 msgstr ""
16508
16509 #. type: tbl table
16510 #: build/C/man2/syscalls.2:402
16511 #, no-wrap
16512 msgid "B<pivot_root>(2)\t2.4\n"
16513 msgstr ""
16514
16515 #. type: tbl table
16516 #: build/C/man2/syscalls.2:403
16517 #, no-wrap
16518 msgid "B<poll>(2)\t2.0.36; 2.2\n"
16519 msgstr ""
16520
16521 #. type: tbl table
16522 #: build/C/man2/syscalls.2:404
16523 #, no-wrap
16524 msgid "B<ppc_rtas>(2)\t\tPowerPC only\n"
16525 msgstr ""
16526
16527 #. type: tbl table
16528 #: build/C/man2/syscalls.2:405
16529 #, no-wrap
16530 msgid "B<ppoll>(2)\t2.6.16\n"
16531 msgstr ""
16532
16533 #. type: tbl table
16534 #: build/C/man2/syscalls.2:406
16535 #, no-wrap
16536 msgid "B<prctl>(2)\t2.2\n"
16537 msgstr ""
16538
16539 #. type: tbl table
16540 #: build/C/man2/syscalls.2:407
16541 #, no-wrap
16542 msgid "B<pread64>(2)\t\tT{\n"
16543 msgstr ""
16544
16545 #. type: tbl table
16546 #: build/C/man2/syscalls.2:408
16547 #, no-wrap
16548 msgid "Added as \"pread\" in 2.2;\n"
16549 msgstr ""
16550
16551 #. type: tbl table
16552 #: build/C/man2/syscalls.2:410
16553 #, no-wrap
16554 msgid "renamed \"pread64\" in 2.6\n"
16555 msgstr ""
16556
16557 #. type: tbl table
16558 #: build/C/man2/syscalls.2:412
16559 #, no-wrap
16560 msgid "B<preadv>(2)\t2.6.30\n"
16561 msgstr ""
16562
16563 #. type: tbl table
16564 #: build/C/man2/syscalls.2:413
16565 #, no-wrap
16566 msgid "B<prlimit>(2)\t2.6.36\n"
16567 msgstr ""
16568
16569 #. type: tbl table
16570 #: build/C/man2/syscalls.2:414
16571 #, no-wrap
16572 msgid "B<prlimit64>(2)\t2.6.36\n"
16573 msgstr ""
16574
16575 #. type: tbl table
16576 #: build/C/man2/syscalls.2:415
16577 #, no-wrap
16578 msgid "B<process_vm_readv>(2)\t3.2\n"
16579 msgstr ""
16580
16581 #. type: tbl table
16582 #: build/C/man2/syscalls.2:416
16583 #, no-wrap
16584 msgid "B<process_vm_writev>(2)\t3.2\n"
16585 msgstr ""
16586
16587 #. type: tbl table
16588 #: build/C/man2/syscalls.2:417
16589 #, no-wrap
16590 msgid "B<pselect6>(2)\t2.6.16\n"
16591 msgstr ""
16592
16593 #.  Implements \fBpselect\fP(2)
16594 #. type: tbl table
16595 #: build/C/man2/syscalls.2:419
16596 #, no-wrap
16597 msgid "B<ptrace>(2)\t1.0\n"
16598 msgstr ""
16599
16600 #. type: tbl table
16601 #: build/C/man2/syscalls.2:420
16602 #, no-wrap
16603 msgid "B<pwrite64>(2)\t\tT{\n"
16604 msgstr ""
16605
16606 #. type: tbl table
16607 #: build/C/man2/syscalls.2:421
16608 #, no-wrap
16609 msgid "Added as \"pwrite\" in 2.2;\n"
16610 msgstr ""
16611
16612 #. type: tbl table
16613 #: build/C/man2/syscalls.2:423
16614 #, no-wrap
16615 msgid "renamed \"pwrite64\" in 2.6\n"
16616 msgstr ""
16617
16618 #. type: tbl table
16619 #: build/C/man2/syscalls.2:425
16620 #, no-wrap
16621 msgid "B<pwritev>(2)\t2.6.30\n"
16622 msgstr ""
16623
16624 #. type: tbl table
16625 #: build/C/man2/syscalls.2:426
16626 #, no-wrap
16627 msgid "B<query_module>(2)\t2.2\tRemoved in 2.6\n"
16628 msgstr ""
16629
16630 #. type: tbl table
16631 #: build/C/man2/syscalls.2:427
16632 #, no-wrap
16633 msgid "B<quotactl>(2)\t1.0\n"
16634 msgstr ""
16635
16636 #. type: tbl table
16637 #: build/C/man2/syscalls.2:428
16638 #, no-wrap
16639 msgid "B<read>(2)\t1.0\n"
16640 msgstr ""
16641
16642 #. type: tbl table
16643 #: build/C/man2/syscalls.2:429
16644 #, no-wrap
16645 msgid "B<readahead>(2)\t2.4.13\n"
16646 msgstr ""
16647
16648 #. type: tbl table
16649 #: build/C/man2/syscalls.2:430
16650 #, no-wrap
16651 msgid "B<readdir>(2)\t1.0\n"
16652 msgstr ""
16653
16654 #.  Supersedes \fBgetdents\fP(2)
16655 #. type: tbl table
16656 #: build/C/man2/syscalls.2:432
16657 #, no-wrap
16658 msgid "B<readlink>(2)\t1.0\n"
16659 msgstr ""
16660
16661 #. type: tbl table
16662 #: build/C/man2/syscalls.2:433
16663 #, no-wrap
16664 msgid "B<readlinkat>(2)\t2.6.16\n"
16665 msgstr ""
16666
16667 #. type: tbl table
16668 #: build/C/man2/syscalls.2:434
16669 #, no-wrap
16670 msgid "B<readv>(2)\t2.0\n"
16671 msgstr ""
16672
16673 #. type: tbl table
16674 #: build/C/man2/syscalls.2:435
16675 #, no-wrap
16676 msgid "B<reboot>(2)\t1.0\n"
16677 msgstr ""
16678
16679 #. type: tbl table
16680 #: build/C/man2/syscalls.2:436
16681 #, no-wrap
16682 msgid "B<recv>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16683 msgstr ""
16684
16685 #. type: tbl table
16686 #: build/C/man2/syscalls.2:437
16687 #, no-wrap
16688 msgid "B<recvfrom>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16689 msgstr ""
16690
16691 #. type: tbl table
16692 #: build/C/man2/syscalls.2:438
16693 #, no-wrap
16694 msgid "B<recvmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16695 msgstr ""
16696
16697 #. type: tbl table
16698 #: build/C/man2/syscalls.2:439
16699 #, no-wrap
16700 msgid "B<recvmmsg>(2)\t2.6.33\n"
16701 msgstr ""
16702
16703 #. type: tbl table
16704 #: build/C/man2/syscalls.2:440
16705 #, no-wrap
16706 msgid "B<remap_file_pages>(2)\t2.6\tDeprecated since 3.16\n"
16707 msgstr ""
16708
16709 #. type: tbl table
16710 #: build/C/man2/syscalls.2:441
16711 #, no-wrap
16712 msgid "B<removexattr>(2)\t2.6; 2.4.18\n"
16713 msgstr ""
16714
16715 #. type: tbl table
16716 #: build/C/man2/syscalls.2:442
16717 #, no-wrap
16718 msgid "B<rename>(2)\t1.0\n"
16719 msgstr ""
16720
16721 #. type: tbl table
16722 #: build/C/man2/syscalls.2:443
16723 #, no-wrap
16724 msgid "B<renameat>(2)\t2.6.16\n"
16725 msgstr ""
16726
16727 #. type: tbl table
16728 #: build/C/man2/syscalls.2:444
16729 #, no-wrap
16730 msgid "B<renameat2>(2)\t3.15\n"
16731 msgstr ""
16732
16733 #. type: tbl table
16734 #: build/C/man2/syscalls.2:445
16735 #, no-wrap
16736 msgid "B<request_key>(2)\t2.6.11\n"
16737 msgstr ""
16738
16739 #. type: tbl table
16740 #: build/C/man2/syscalls.2:446
16741 #, no-wrap
16742 msgid "B<restart_syscall>(2)\t2.6\n"
16743 msgstr ""
16744
16745 #. type: tbl table
16746 #: build/C/man2/syscalls.2:447
16747 #, no-wrap
16748 msgid "B<rmdir>(2)\t1.0\n"
16749 msgstr ""
16750
16751 #. type: tbl table
16752 #: build/C/man2/syscalls.2:448
16753 #, no-wrap
16754 msgid "B<rt_sigaction>(2)\t2.2\n"
16755 msgstr ""
16756
16757 #. type: tbl table
16758 #: build/C/man2/syscalls.2:449
16759 #, no-wrap
16760 msgid "B<rt_sigpending>(2)\t2.2\n"
16761 msgstr ""
16762
16763 #. type: tbl table
16764 #: build/C/man2/syscalls.2:450
16765 #, no-wrap
16766 msgid "B<rt_sigprocmask>(2)\t2.2\n"
16767 msgstr ""
16768
16769 #. type: tbl table
16770 #: build/C/man2/syscalls.2:451
16771 #, no-wrap
16772 msgid "B<rt_sigqueueinfo>(2)\t2.2\n"
16773 msgstr ""
16774
16775 #. type: tbl table
16776 #: build/C/man2/syscalls.2:452
16777 #, no-wrap
16778 msgid "B<rt_sigreturn>(2)\t2.2\n"
16779 msgstr ""
16780
16781 #. type: tbl table
16782 #: build/C/man2/syscalls.2:453
16783 #, no-wrap
16784 msgid "B<rt_sigsuspend>(2)\t2.2\n"
16785 msgstr ""
16786
16787 #. type: tbl table
16788 #: build/C/man2/syscalls.2:454
16789 #, no-wrap
16790 msgid "B<rt_sigtimedwait>(2)\t2.2\n"
16791 msgstr ""
16792
16793 #. type: tbl table
16794 #: build/C/man2/syscalls.2:455
16795 #, no-wrap
16796 msgid "B<rt_tgsigqueueinfo>(2)\t2.6.31\n"
16797 msgstr ""
16798
16799 #. type: tbl table
16800 #: build/C/man2/syscalls.2:456
16801 #, no-wrap
16802 msgid "B<s390_runtime_instr>(2)\t3.7\ts390 only\n"
16803 msgstr ""
16804
16805 #. type: tbl table
16806 #: build/C/man2/syscalls.2:457
16807 #, no-wrap
16808 msgid "B<sched_get_priority_max>(2)\t2.0\n"
16809 msgstr ""
16810
16811 #. type: tbl table
16812 #: build/C/man2/syscalls.2:458
16813 #, no-wrap
16814 msgid "B<sched_get_priority_min>(2)\t2.0\n"
16815 msgstr ""
16816
16817 #. type: tbl table
16818 #: build/C/man2/syscalls.2:459
16819 #, no-wrap
16820 msgid "B<sched_getaffinity>(2)\t2.6\n"
16821 msgstr ""
16822
16823 #. type: tbl table
16824 #: build/C/man2/syscalls.2:460
16825 #, no-wrap
16826 msgid "B<sched_getattr>(2)\t3.14\n"
16827 msgstr ""
16828
16829 #. type: tbl table
16830 #: build/C/man2/syscalls.2:461
16831 #, no-wrap
16832 msgid "B<sched_getparam>(2)\t2.0\n"
16833 msgstr ""
16834
16835 #. type: tbl table
16836 #: build/C/man2/syscalls.2:462
16837 #, no-wrap
16838 msgid "B<sched_getscheduler>(2)\t2.0\n"
16839 msgstr ""
16840
16841 #. type: tbl table
16842 #: build/C/man2/syscalls.2:463
16843 #, no-wrap
16844 msgid "B<sched_rr_get_interval>(2)\t2.0\n"
16845 msgstr ""
16846
16847 #. type: tbl table
16848 #: build/C/man2/syscalls.2:464
16849 #, no-wrap
16850 msgid "B<sched_setaffinity>(2)\t2.6\n"
16851 msgstr ""
16852
16853 #. type: tbl table
16854 #: build/C/man2/syscalls.2:465
16855 #, no-wrap
16856 msgid "B<sched_setattr>(2)\t3.14\n"
16857 msgstr ""
16858
16859 #. type: tbl table
16860 #: build/C/man2/syscalls.2:466
16861 #, no-wrap
16862 msgid "B<sched_setparam>(2)\t2.0\n"
16863 msgstr ""
16864
16865 #. type: tbl table
16866 #: build/C/man2/syscalls.2:467
16867 #, no-wrap
16868 msgid "B<sched_setscheduler>(2)\t2.0\n"
16869 msgstr ""
16870
16871 #. type: tbl table
16872 #: build/C/man2/syscalls.2:468
16873 #, no-wrap
16874 msgid "B<sched_yield>(2)\t2.0\n"
16875 msgstr ""
16876
16877 #. type: tbl table
16878 #: build/C/man2/syscalls.2:469
16879 #, no-wrap
16880 msgid "B<seccomp>(2)\t3.17\n"
16881 msgstr ""
16882
16883 #. type: tbl table
16884 #: build/C/man2/syscalls.2:470
16885 #, no-wrap
16886 msgid "B<select>(2)\t1.0\n"
16887 msgstr ""
16888
16889 #. type: tbl table
16890 #: build/C/man2/syscalls.2:471
16891 #, no-wrap
16892 msgid "B<semctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16893 msgstr ""
16894
16895 #. type: tbl table
16896 #: build/C/man2/syscalls.2:472
16897 #, no-wrap
16898 msgid "B<semget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16899 msgstr ""
16900
16901 #. type: tbl table
16902 #: build/C/man2/syscalls.2:473
16903 #, no-wrap
16904 msgid "B<semop>(2)\t2.0\tSee notes on B<ipc>(2)\n"
16905 msgstr ""
16906
16907 #. type: tbl table
16908 #: build/C/man2/syscalls.2:474
16909 #, no-wrap
16910 msgid "B<semtimedop>(2)\t2.6; 2.4.22\n"
16911 msgstr ""
16912
16913 #. type: tbl table
16914 #: build/C/man2/syscalls.2:475
16915 #, no-wrap
16916 msgid "B<send>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16917 msgstr ""
16918
16919 #. type: tbl table
16920 #: build/C/man2/syscalls.2:476
16921 #, no-wrap
16922 msgid "B<sendfile>(2)\t2.2\n"
16923 msgstr ""
16924
16925 #. type: tbl table
16926 #: build/C/man2/syscalls.2:477
16927 #, no-wrap
16928 msgid "B<sendfile64>(2)\t2.6; 2.4.19\n"
16929 msgstr ""
16930
16931 #. type: tbl table
16932 #: build/C/man2/syscalls.2:478
16933 #, no-wrap
16934 msgid "B<sendmmsg>(2)\t3.0\n"
16935 msgstr ""
16936
16937 #. type: tbl table
16938 #: build/C/man2/syscalls.2:479
16939 #, no-wrap
16940 msgid "B<sendmsg>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16941 msgstr ""
16942
16943 #. type: tbl table
16944 #: build/C/man2/syscalls.2:480
16945 #, no-wrap
16946 msgid "B<sendto>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
16947 msgstr ""
16948
16949 #. type: tbl table
16950 #: build/C/man2/syscalls.2:481
16951 #, no-wrap
16952 msgid "B<set_mempolicy>(2)\t2.6.6\n"
16953 msgstr ""
16954
16955 #. type: tbl table
16956 #: build/C/man2/syscalls.2:482
16957 #, no-wrap
16958 msgid "B<set_robust_list>(2)\t2.6.17\n"
16959 msgstr ""
16960
16961 #. type: tbl table
16962 #: build/C/man2/syscalls.2:483
16963 #, no-wrap
16964 msgid "B<set_thread_area>(2)\t2.6\n"
16965 msgstr ""
16966
16967 #. type: tbl table
16968 #: build/C/man2/syscalls.2:484
16969 #, no-wrap
16970 msgid "B<set_tid_address>(2)\t2.6\n"
16971 msgstr ""
16972
16973 #.  See http://lkml.org/lkml/2005/8/1/83
16974 #.  "[PATCH] remove sys_set_zone_reclaim()"
16975 #. type: tbl table
16976 #: build/C/man2/syscalls.2:487
16977 #, no-wrap
16978 msgid "B<setdomainname>(2)\t1.0\n"
16979 msgstr ""
16980
16981 #. type: tbl table
16982 #: build/C/man2/syscalls.2:488
16983 #, no-wrap
16984 msgid "B<setfsgid>(2)\t1.2\n"
16985 msgstr ""
16986
16987 #. type: tbl table
16988 #: build/C/man2/syscalls.2:489
16989 #, no-wrap
16990 msgid "B<setfsgid32>(2)\t2.4\n"
16991 msgstr ""
16992
16993 #. type: tbl table
16994 #: build/C/man2/syscalls.2:490
16995 #, no-wrap
16996 msgid "B<setfsuid>(2)\t1.2\n"
16997 msgstr ""
16998
16999 #. type: tbl table
17000 #: build/C/man2/syscalls.2:491
17001 #, no-wrap
17002 msgid "B<setfsuid32>(2)\t2.4\n"
17003 msgstr ""
17004
17005 #. type: tbl table
17006 #: build/C/man2/syscalls.2:492
17007 #, no-wrap
17008 msgid "B<setgid>(2)\t1.0\n"
17009 msgstr ""
17010
17011 #. type: tbl table
17012 #: build/C/man2/syscalls.2:493
17013 #, no-wrap
17014 msgid "B<setgid32>(2)\t2.4\n"
17015 msgstr ""
17016
17017 #. type: tbl table
17018 #: build/C/man2/syscalls.2:494
17019 #, no-wrap
17020 msgid "B<setgroups>(2)\t1.0\n"
17021 msgstr ""
17022
17023 #. type: tbl table
17024 #: build/C/man2/syscalls.2:495
17025 #, no-wrap
17026 msgid "B<setgroups32>(2)\t2.4\n"
17027 msgstr ""
17028
17029 #. type: tbl table
17030 #: build/C/man2/syscalls.2:496
17031 #, no-wrap
17032 msgid "B<sethostname>(2)\t1.0\n"
17033 msgstr ""
17034
17035 #. type: tbl table
17036 #: build/C/man2/syscalls.2:497
17037 #, no-wrap
17038 msgid "B<setitimer>(2)\t1.0\n"
17039 msgstr ""
17040
17041 #. type: tbl table
17042 #: build/C/man2/syscalls.2:498
17043 #, no-wrap
17044 msgid "B<setns>(2)\t3.0\n"
17045 msgstr ""
17046
17047 #. type: tbl table
17048 #: build/C/man2/syscalls.2:499
17049 #, no-wrap
17050 msgid "B<setpgid>(2)\t1.0\n"
17051 msgstr ""
17052
17053 #. type: tbl table
17054 #: build/C/man2/syscalls.2:500
17055 #, no-wrap
17056 msgid "B<setpriority>(2)\t1.0\n"
17057 msgstr ""
17058
17059 #. type: tbl table
17060 #: build/C/man2/syscalls.2:501
17061 #, no-wrap
17062 msgid "B<setregid>(2)\t1.0\n"
17063 msgstr ""
17064
17065 #. type: tbl table
17066 #: build/C/man2/syscalls.2:502
17067 #, no-wrap
17068 msgid "B<setregid32>(2)\t2.4\n"
17069 msgstr ""
17070
17071 #. type: tbl table
17072 #: build/C/man2/syscalls.2:503
17073 #, no-wrap
17074 msgid "B<setresgid>(2)\t2.2\n"
17075 msgstr ""
17076
17077 #. type: tbl table
17078 #: build/C/man2/syscalls.2:504
17079 #, no-wrap
17080 msgid "B<setresgid32>(2)\t2.4\n"
17081 msgstr ""
17082
17083 #. type: tbl table
17084 #: build/C/man2/syscalls.2:505
17085 #, no-wrap
17086 msgid "B<setresuid>(2)\t2.2\n"
17087 msgstr ""
17088
17089 #. type: tbl table
17090 #: build/C/man2/syscalls.2:506
17091 #, no-wrap
17092 msgid "B<setresuid32>(2)\t2.4\n"
17093 msgstr ""
17094
17095 #. type: tbl table
17096 #: build/C/man2/syscalls.2:507
17097 #, no-wrap
17098 msgid "B<setreuid>(2)\t1.0\n"
17099 msgstr ""
17100
17101 #. type: tbl table
17102 #: build/C/man2/syscalls.2:508
17103 #, no-wrap
17104 msgid "B<setreuid32>(2)\t2.4\n"
17105 msgstr ""
17106
17107 #. type: tbl table
17108 #: build/C/man2/syscalls.2:509
17109 #, no-wrap
17110 msgid "B<setrlimit>(2)\t1.0\n"
17111 msgstr ""
17112
17113 #. type: tbl table
17114 #: build/C/man2/syscalls.2:510
17115 #, no-wrap
17116 msgid "B<setsid>(2)\t1.0\n"
17117 msgstr ""
17118
17119 #. type: tbl table
17120 #: build/C/man2/syscalls.2:511
17121 #, no-wrap
17122 msgid "B<setsockopt>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17123 msgstr ""
17124
17125 #. type: tbl table
17126 #: build/C/man2/syscalls.2:512
17127 #, no-wrap
17128 msgid "B<settimeofday>(2)\t1.0\n"
17129 msgstr ""
17130
17131 #. type: tbl table
17132 #: build/C/man2/syscalls.2:513
17133 #, no-wrap
17134 msgid "B<setuid>(2)\t1.0\n"
17135 msgstr ""
17136
17137 #. type: tbl table
17138 #: build/C/man2/syscalls.2:514
17139 #, no-wrap
17140 msgid "B<setuid32>(2)\t2.4\n"
17141 msgstr ""
17142
17143 #. type: tbl table
17144 #: build/C/man2/syscalls.2:515
17145 #, no-wrap
17146 msgid "B<setup>(2)\t\tRemoved in 2.2\n"
17147 msgstr ""
17148
17149 #. type: tbl table
17150 #: build/C/man2/syscalls.2:516
17151 #, no-wrap
17152 msgid "B<setxattr>(2)\t2.6; 2.4.18\n"
17153 msgstr ""
17154
17155 #. type: tbl table
17156 #: build/C/man2/syscalls.2:517
17157 #, no-wrap
17158 msgid "B<sgetmask>(2)\t1.0\n"
17159 msgstr ""
17160
17161 #. type: tbl table
17162 #: build/C/man2/syscalls.2:518
17163 #, no-wrap
17164 msgid "B<shmat>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17165 msgstr ""
17166
17167 #. type: tbl table
17168 #: build/C/man2/syscalls.2:519
17169 #, no-wrap
17170 msgid "B<shmctl>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17171 msgstr ""
17172
17173 #. type: tbl table
17174 #: build/C/man2/syscalls.2:520
17175 #, no-wrap
17176 msgid "B<shmdt>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17177 msgstr ""
17178
17179 #. type: tbl table
17180 #: build/C/man2/syscalls.2:521
17181 #, no-wrap
17182 msgid "B<shmget>(2)\t2.0\tSee notes on B<ipc>(2)\n"
17183 msgstr ""
17184
17185 #. type: tbl table
17186 #: build/C/man2/syscalls.2:522
17187 #, no-wrap
17188 msgid "B<shutdown>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17189 msgstr ""
17190
17191 #. type: tbl table
17192 #: build/C/man2/syscalls.2:523
17193 #, no-wrap
17194 msgid "B<sigaction>(2)\t1.0\n"
17195 msgstr ""
17196
17197 #. type: tbl table
17198 #: build/C/man2/syscalls.2:524
17199 #, no-wrap
17200 msgid "B<sigaltstack>(2)\t2.2\n"
17201 msgstr ""
17202
17203 #. type: tbl table
17204 #: build/C/man2/syscalls.2:525
17205 #, no-wrap
17206 msgid "B<signal>(2)\t1.0\n"
17207 msgstr ""
17208
17209 #. type: tbl table
17210 #: build/C/man2/syscalls.2:526
17211 #, no-wrap
17212 msgid "B<signalfd>(2)\t2.6.22\n"
17213 msgstr ""
17214
17215 #. type: tbl table
17216 #: build/C/man2/syscalls.2:527
17217 #, no-wrap
17218 msgid "B<signalfd4>(2)\t2.6.27\n"
17219 msgstr ""
17220
17221 #. type: tbl table
17222 #: build/C/man2/syscalls.2:528
17223 #, no-wrap
17224 msgid "B<sigpending>(2)\t1.0\n"
17225 msgstr ""
17226
17227 #. type: tbl table
17228 #: build/C/man2/syscalls.2:529
17229 #, no-wrap
17230 msgid "B<sigprocmask>(2)\t1.0\n"
17231 msgstr ""
17232
17233 #. type: tbl table
17234 #: build/C/man2/syscalls.2:530
17235 #, no-wrap
17236 msgid "B<sigreturn>(2)\t1.0\n"
17237 msgstr ""
17238
17239 #. type: tbl table
17240 #: build/C/man2/syscalls.2:531
17241 #, no-wrap
17242 msgid "B<sigsuspend>(2)\t1.0\n"
17243 msgstr ""
17244
17245 #. type: tbl table
17246 #: build/C/man2/syscalls.2:532
17247 #, no-wrap
17248 msgid "B<socket>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17249 msgstr ""
17250
17251 #. type: tbl table
17252 #: build/C/man2/syscalls.2:533
17253 #, no-wrap
17254 msgid "B<socketcall>(2)\t1.0\n"
17255 msgstr ""
17256
17257 #.  Implements BSD socket calls
17258 #. type: tbl table
17259 #: build/C/man2/syscalls.2:535
17260 #, no-wrap
17261 msgid "B<socketpair>(2)\t2.0\tSee notes on B<socketcall>(2)\n"
17262 msgstr ""
17263
17264 #. type: tbl table
17265 #: build/C/man2/syscalls.2:536
17266 #, no-wrap
17267 msgid "B<splice>(2)\t2.6.17\n"
17268 msgstr ""
17269
17270 #. type: tbl table
17271 #: build/C/man2/syscalls.2:537
17272 #, no-wrap
17273 msgid "B<spu_create>(2)\t2.6.16\tPowerPC only\n"
17274 msgstr ""
17275
17276 #. type: tbl table
17277 #: build/C/man2/syscalls.2:538
17278 #, no-wrap
17279 msgid "B<spu_run>(2)\t2.6.16\tPowerPC only\n"
17280 msgstr ""
17281
17282 #. type: tbl table
17283 #: build/C/man2/syscalls.2:539
17284 #, no-wrap
17285 msgid "B<ssetmask>(2)\t1.0\n"
17286 msgstr ""
17287
17288 #. type: tbl table
17289 #: build/C/man2/syscalls.2:540
17290 #, no-wrap
17291 msgid "B<stat>(2)\t1.0\n"
17292 msgstr ""
17293
17294 #. type: tbl table
17295 #: build/C/man2/syscalls.2:541
17296 #, no-wrap
17297 msgid "B<stat64>(2)\t2.4\n"
17298 msgstr ""
17299
17300 #. type: tbl table
17301 #: build/C/man2/syscalls.2:542
17302 #, no-wrap
17303 msgid "B<statfs>(2)\t1.0\n"
17304 msgstr ""
17305
17306 #. type: tbl table
17307 #: build/C/man2/syscalls.2:543
17308 #, no-wrap
17309 msgid "B<statfs64>(2)\t2.6\n"
17310 msgstr ""
17311
17312 #. type: tbl table
17313 #: build/C/man2/syscalls.2:544
17314 #, no-wrap
17315 msgid "B<stime>(2)\t1.0\n"
17316 msgstr ""
17317
17318 #. type: tbl table
17319 #: build/C/man2/syscalls.2:545
17320 #, no-wrap
17321 msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC if\n"
17322 msgstr ""
17323
17324 #. type: tbl table
17325 #: build/C/man2/syscalls.2:546
17326 #, no-wrap
17327 msgid "\t\tCONFIG_PPC_64K_PAGES\n"
17328 msgstr ""
17329
17330 #. type: tbl table
17331 #: build/C/man2/syscalls.2:547
17332 #, no-wrap
17333 msgid "B<swapoff>(2)\t1.0\n"
17334 msgstr ""
17335
17336 #. type: tbl table
17337 #: build/C/man2/syscalls.2:548
17338 #, no-wrap
17339 msgid "B<swapon>(2)\t1.0\n"
17340 msgstr ""
17341
17342 #. type: tbl table
17343 #: build/C/man2/syscalls.2:549
17344 #, no-wrap
17345 msgid "B<symlink>(2)\t1.0\n"
17346 msgstr ""
17347
17348 #. type: tbl table
17349 #: build/C/man2/syscalls.2:550
17350 #, no-wrap
17351 msgid "B<symlinkat>(2)\t2.6.16\n"
17352 msgstr ""
17353
17354 #. type: tbl table
17355 #: build/C/man2/syscalls.2:551
17356 #, no-wrap
17357 msgid "B<sync>(2)\t1.0\n"
17358 msgstr ""
17359
17360 #. type: tbl table
17361 #: build/C/man2/syscalls.2:552
17362 #, no-wrap
17363 msgid "B<sync_file_range>(2)\t2.6.17\n"
17364 msgstr ""
17365
17366 #. type: tbl table
17367 #: build/C/man2/syscalls.2:553
17368 #, no-wrap
17369 msgid "B<sync_file_range2>(2)\t2.6.22\tT{\n"
17370 msgstr ""
17371
17372 #. type: tbl table
17373 #: build/C/man2/syscalls.2:554
17374 #, no-wrap
17375 msgid "Architecture-specific\n"
17376 msgstr ""
17377
17378 #. type: tbl table
17379 #: build/C/man2/syscalls.2:555
17380 #, no-wrap
17381 msgid "variant of B<sync_file_range>(2)\n"
17382 msgstr ""
17383
17384 #.  PowerPC, ARM, tile
17385 #.  First appeared on ARM, as arm_sync_file_range(), but later renamed
17386 #.  \fBsys_debug_setcontext\fP(2)       ???     PowerPC if CONFIG_PPC32
17387 #. type: tbl table
17388 #: build/C/man2/syscalls.2:560
17389 #, no-wrap
17390 msgid "B<syncfs>(2)\t2.6.39\n"
17391 msgstr ""
17392
17393 #. type: tbl table
17394 #: build/C/man2/syscalls.2:561
17395 #, no-wrap
17396 msgid "B<sysfs>(2)\t1.2\n"
17397 msgstr ""
17398
17399 #. type: tbl table
17400 #: build/C/man2/syscalls.2:562
17401 #, no-wrap
17402 msgid "B<sysinfo>(2)\t1.0\n"
17403 msgstr ""
17404
17405 #. type: tbl table
17406 #: build/C/man2/syscalls.2:563
17407 #, no-wrap
17408 msgid "B<syslog>(2)\t1.0\n"
17409 msgstr ""
17410
17411 #.  glibc interface is \fBklogctl\fP(3)
17412 #. type: tbl table
17413 #: build/C/man2/syscalls.2:565
17414 #, no-wrap
17415 msgid "B<tee>(2)\t2.6.17\n"
17416 msgstr ""
17417
17418 #. type: tbl table
17419 #: build/C/man2/syscalls.2:566
17420 #, no-wrap
17421 msgid "B<tgkill>(2)\t2.6\n"
17422 msgstr ""
17423
17424 #. type: tbl table
17425 #: build/C/man2/syscalls.2:567
17426 #, no-wrap
17427 msgid "B<time>(2)\t1.0\n"
17428 msgstr ""
17429
17430 #. type: tbl table
17431 #: build/C/man2/syscalls.2:568
17432 #, no-wrap
17433 msgid "B<timer_create>(2)\t2.6\n"
17434 msgstr ""
17435
17436 #. type: tbl table
17437 #: build/C/man2/syscalls.2:569
17438 #, no-wrap
17439 msgid "B<timer_delete>(2)\t2.6\n"
17440 msgstr ""
17441
17442 #. type: tbl table
17443 #: build/C/man2/syscalls.2:570
17444 #, no-wrap
17445 msgid "B<timer_getoverrun>(2)\t2.6\n"
17446 msgstr ""
17447
17448 #. type: tbl table
17449 #: build/C/man2/syscalls.2:571
17450 #, no-wrap
17451 msgid "B<timer_gettime>(2)\t2.6\n"
17452 msgstr ""
17453
17454 #. type: tbl table
17455 #: build/C/man2/syscalls.2:572
17456 #, no-wrap
17457 msgid "B<timer_settime>(2)\t2.6\n"
17458 msgstr ""
17459
17460 #. type: tbl table
17461 #: build/C/man2/syscalls.2:573
17462 #, no-wrap
17463 msgid "B<timerfd_create>(2)\t2.6.25\n"
17464 msgstr ""
17465
17466 #. type: tbl table
17467 #: build/C/man2/syscalls.2:574
17468 #, no-wrap
17469 msgid "B<timerfd_gettime>(2)\t2.6.25\n"
17470 msgstr ""
17471
17472 #. type: tbl table
17473 #: build/C/man2/syscalls.2:575
17474 #, no-wrap
17475 msgid "B<timerfd_settime>(2)\t2.6.25\n"
17476 msgstr ""
17477
17478 #. type: tbl table
17479 #: build/C/man2/syscalls.2:576
17480 #, no-wrap
17481 msgid "B<times>(2)\t1.0\n"
17482 msgstr ""
17483
17484 #. type: tbl table
17485 #: build/C/man2/syscalls.2:577
17486 #, no-wrap
17487 msgid "B<tkill>(2)\t2.6; 2.4.22\n"
17488 msgstr ""
17489
17490 #. type: tbl table
17491 #: build/C/man2/syscalls.2:578
17492 #, no-wrap
17493 msgid "B<truncate>(2)\t1.0\n"
17494 msgstr ""
17495
17496 #. type: tbl table
17497 #: build/C/man2/syscalls.2:579
17498 #, no-wrap
17499 msgid "B<truncate64>(2)\t2.4\n"
17500 msgstr ""
17501
17502 #. type: tbl table
17503 #: build/C/man2/syscalls.2:580
17504 #, no-wrap
17505 msgid "B<ugetrlimit>(2)\t2.4\n"
17506 msgstr ""
17507
17508 #. type: tbl table
17509 #: build/C/man2/syscalls.2:581
17510 #, no-wrap
17511 msgid "B<umask>(2)\t1.0\n"
17512 msgstr ""
17513
17514 #. type: tbl table
17515 #: build/C/man2/syscalls.2:582
17516 #, no-wrap
17517 msgid "B<umount>(2)\t1.0\n"
17518 msgstr ""
17519
17520 #.  sys_oldumount() -- __NR_umount
17521 #. type: tbl table
17522 #: build/C/man2/syscalls.2:584
17523 #, no-wrap
17524 msgid "B<umount2>(2)\t2.2\n"
17525 msgstr ""
17526
17527 #.  sys_umount() -- __NR_umount2
17528 #. type: tbl table
17529 #: build/C/man2/syscalls.2:586
17530 #, no-wrap
17531 msgid "B<uname>(2)\t1.0\n"
17532 msgstr ""
17533
17534 #. type: tbl table
17535 #: build/C/man2/syscalls.2:587
17536 #, no-wrap
17537 msgid "B<unlink>(2)\t1.0\n"
17538 msgstr ""
17539
17540 #. type: tbl table
17541 #: build/C/man2/syscalls.2:588
17542 #, no-wrap
17543 msgid "B<unlinkat>(2)\t2.6.16\n"
17544 msgstr ""
17545
17546 #. type: tbl table
17547 #: build/C/man2/syscalls.2:589
17548 #, no-wrap
17549 msgid "B<unshare>(2)\t2.6.16\n"
17550 msgstr ""
17551
17552 #. type: tbl table
17553 #: build/C/man2/syscalls.2:590
17554 #, no-wrap
17555 msgid "B<uselib>(2)\t1.0\n"
17556 msgstr ""
17557
17558 #. type: tbl table
17559 #: build/C/man2/syscalls.2:591
17560 #, no-wrap
17561 msgid "B<ustat>(2)\t1.0\n"
17562 msgstr ""
17563
17564 #. type: tbl table
17565 #: build/C/man2/syscalls.2:592
17566 #, no-wrap
17567 msgid "B<utime>(2)\t1.0\n"
17568 msgstr ""
17569
17570 #. type: tbl table
17571 #: build/C/man2/syscalls.2:593
17572 #, no-wrap
17573 msgid "B<utimensat>(2)\t2.6.22\n"
17574 msgstr ""
17575
17576 #. type: tbl table
17577 #: build/C/man2/syscalls.2:594
17578 #, no-wrap
17579 msgid "B<utimes>(2)\t2.2\n"
17580 msgstr ""
17581
17582 #. type: tbl table
17583 #: build/C/man2/syscalls.2:595
17584 #, no-wrap
17585 msgid "B<utrap_install>(2)\t2.2\tSparc\n"
17586 msgstr ""
17587
17588 #.  FIXME . document utrap_install()
17589 #.  There's a man page for Solaris 5.11
17590 #. type: tbl table
17591 #: build/C/man2/syscalls.2:598
17592 #, no-wrap
17593 msgid "B<vfork>(2)\t2.2\n"
17594 msgstr ""
17595
17596 #. type: tbl table
17597 #: build/C/man2/syscalls.2:599
17598 #, no-wrap
17599 msgid "B<vhangup>(2)\t1.0\n"
17600 msgstr ""
17601
17602 #. type: tbl table
17603 #: build/C/man2/syscalls.2:600
17604 #, no-wrap
17605 msgid "B<vm86old>(2)\t1.0\tT{\n"
17606 msgstr ""
17607
17608 #. type: tbl table
17609 #: build/C/man2/syscalls.2:601
17610 #, no-wrap
17611 msgid "Was \"vm86\"; renamed in\n"
17612 msgstr ""
17613
17614 #. type: tbl table
17615 #: build/C/man2/syscalls.2:602
17616 #, no-wrap
17617 msgid "2.0.28/2.2\n"
17618 msgstr ""
17619
17620 #. type: tbl table
17621 #: build/C/man2/syscalls.2:604
17622 #, no-wrap
17623 msgid "B<vm86>(2)\t2.0.28; 2.2\n"
17624 msgstr ""
17625
17626 #. type: tbl table
17627 #: build/C/man2/syscalls.2:605
17628 #, no-wrap
17629 msgid "B<vmsplice>(2)\t2.6.17\n"
17630 msgstr ""
17631
17632 #. type: tbl table
17633 #: build/C/man2/syscalls.2:606
17634 #, no-wrap
17635 msgid "B<wait4>(2)\t1.0\n"
17636 msgstr ""
17637
17638 #. type: tbl table
17639 #: build/C/man2/syscalls.2:607
17640 #, no-wrap
17641 msgid "B<waitid>(2)\t2.6.10\n"
17642 msgstr ""
17643
17644 #. type: tbl table
17645 #: build/C/man2/syscalls.2:608
17646 #, no-wrap
17647 msgid "B<waitpid>(2)\t1.0\n"
17648 msgstr ""
17649
17650 #. type: tbl table
17651 #: build/C/man2/syscalls.2:609
17652 #, no-wrap
17653 msgid "B<write>(2)\t1.0\n"
17654 msgstr ""
17655
17656 #. type: tbl table
17657 #: build/C/man2/syscalls.2:610
17658 #, no-wrap
17659 msgid "B<writev>(2)\t2.0\n"
17660 msgstr ""
17661
17662 #. type: Plain text
17663 #: build/C/man2/syscalls.2:619
17664 msgid ""
17665 "On many platforms, including x86-32, socket calls are all multiplexed (via "
17666 "glibc wrapper functions) through B<socketcall>(2)  and similarly System\\ V "
17667 "IPC calls are multiplexed through B<ipc>(2)."
17668 msgstr ""
17669
17670 #.  __NR_afs_syscall is 53 on Linux 2.6.22/i386
17671 #.  __NR_break is 17 on Linux 2.6.22/i386
17672 #.  __NR_ftime is 35 on Linux 2.6.22/i386
17673 #.  __NR_getpmsg is 188 on Linux 2.6.22/i386
17674 #.  __NR_gtty is 32 on Linux 2.6.22/i386
17675 #.  __NR_idle is 112 on Linux 2.6.22/i386
17676 #.  __NR_lock is 53 on Linux 2.6.22/i386
17677 #.  __NR_madvise1 is 219 on Linux 2.6.22/i386
17678 #.  __NR_mpx is 66 on Linux 2.6.22/i386
17679 #.  Slot has been reused
17680 #.  __NR_prof is 44 on Linux 2.6.22/i386
17681 #.  __NR_profil is 98 on Linux 2.6.22/i386
17682 #.  __NR_putpmsg is 189 on Linux 2.6.22/i386
17683 #.  __NR_security is 223 on Linux 2.4/i386
17684 #.  __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
17685 #.  on a couple of 2.6 architectures
17686 #.  __NR_stty is 31 on Linux 2.6.22/i386
17687 #.  The security call is for future use.
17688 #.  __NR_tuxcall is 184 on x86_64, also on PPC and alpha
17689 #.  __NR_ulimit is 58 on Linux 2.6.22/i386
17690 #.  __NR_vserver is 273 on Linux 2.6.22/i386
17691 #. type: Plain text
17692 #: build/C/man2/syscalls.2:664
17693 msgid ""
17694 "Although slots are reserved for them in the system call table, the following "
17695 "system calls are not implemented in the standard kernel: B<afs_syscall>(2), "
17696 "B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), "
17697 "B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), "
17698 "B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and "
17699 "B<vserver>(2)  (see also B<unimplemented>(2)).  However, B<ftime>(3), "
17700 "B<profil>(3), and B<ulimit>(3)  exist as library routines.  The slot for "
17701 "B<phys>(2)  is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2)  "
17702 "will never be implemented.  The B<getpmsg>(2)  and B<putpmsg>(2)  calls are "
17703 "for kernels patched to support STREAMS, and may never be in the standard "
17704 "kernel."
17705 msgstr ""
17706
17707 #. type: Plain text
17708 #: build/C/man2/syscalls.2:669
17709 msgid ""
17710 "There was briefly B<set_zone_reclaim>(2), added in Linux 2.6.13, and removed "
17711 "in 2.6.16; this system call was never available to user space."
17712 msgstr ""
17713
17714 #. type: Plain text
17715 #: build/C/man2/syscalls.2:686
17716 msgid ""
17717 "Roughly speaking, the code belonging to the system call with number __NR_xxx "
17718 "defined in I</usr/include/asm/unistd.h> can be found in the Linux kernel "
17719 "source in the routine I<sys_xxx>().  (The dispatch table for i386 can be "
17720 "found in I</usr/src/linux/arch/i386/kernel/entry.S>.)  There are many "
17721 "exceptions, however, mostly because older system calls were superseded by "
17722 "newer ones, and this has been treated somewhat unsystematically.  On "
17723 "platforms with proprietary operating-system emulation, such as parisc, "
17724 "sparc, sparc64, and alpha, there are many additional system calls; mips64 "
17725 "also contains a full set of 32-bit system calls."
17726 msgstr ""
17727
17728 #. type: Plain text
17729 #: build/C/man2/syscalls.2:705
17730 msgid ""
17731 "Over time, changes to the interfaces of some system calls have been "
17732 "necessary.  One reason for such changes was the need to increase the size of "
17733 "structures or scalar values passed to the system call.  Because of these "
17734 "changes, there are now various groups of related system calls (e.g., "
17735 "B<truncate>(2)  and B<truncate64>(2))  which perform similar tasks, but "
17736 "which vary in details such as the size of their arguments.  (As noted "
17737 "earlier, applications are generally unaware of this: the glibc wrapper "
17738 "functions do some work to ensure that the right system call is invoked, and "
17739 "that ABI compatibility is preserved for old binaries.)  Examples of systems "
17740 "calls that exist in multiple versions are the following:"
17741 msgstr ""
17742
17743 #.  e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
17744 #.  The stat system calls deal with three different data structures,
17745 #.  defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
17746 #. type: Plain text
17747 #: build/C/man2/syscalls.2:726
17748 msgid ""
17749 "By now there are three different versions of B<stat>(2): I<sys_stat>()  "
17750 "(slot I<__NR_oldstat>), I<sys_newstat>()  (slot I<__NR_stat>), and "
17751 "I<sys_stat64>()  (slot I<__NR_stat64>), with the last being the most "
17752 "current.  A similar story applies for B<lstat>(2)  and B<fstat>(2)."
17753 msgstr ""
17754
17755 #. type: Plain text
17756 #: build/C/man2/syscalls.2:737
17757 msgid ""
17758 "Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and "
17759 "I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>()  and "
17760 "I<sys_newuname>()."
17761 msgstr ""
17762
17763 #. type: Plain text
17764 #: build/C/man2/syscalls.2:744
17765 msgid ""
17766 "In Linux 2.0, a new version of B<vm86>(2)  appeared, with the old and the "
17767 "new kernel routines being named I<sys_vm86old>()  and I<sys_vm86>()."
17768 msgstr ""
17769
17770 #. type: Plain text
17771 #: build/C/man2/syscalls.2:755
17772 msgid ""
17773 "In Linux 2.4, a new version of B<getrlimit>(2)  appeared, with the old and "
17774 "the new kernel routines being named I<sys_old_getrlimit>()  (slot "
17775 "I<__NR_getrlimit>)  and I<sys_getrlimit>()  (slot I<__NR_ugetrlimit>)."
17776 msgstr ""
17777
17778 #.  64-bit off_t changes: ftruncate64, *stat64,
17779 #.  fcntl64 (because of the flock structure), getdents64, *statfs64
17780 #. type: Plain text
17781 #: build/C/man2/syscalls.2:767
17782 msgid ""
17783 "Linux 2.4 increased the size of user and group IDs from 16 to 32 bits.  To "
17784 "support this change, a range of system calls were added (e.g., "
17785 "B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), "
17786 "superseding earlier calls of the same name without the \"32\" suffix."
17787 msgstr ""
17788
17789 #. type: Plain text
17790 #: build/C/man2/syscalls.2:784
17791 msgid ""
17792 "Linux 2.4 added support for applications on 32-bit architectures to access "
17793 "large files (i.e., files for which the sizes and file offsets can't be "
17794 "represented in 32 bits.)  To support this change, replacements were required "
17795 "for system calls that deal with file offsets and sizes.  Thus the following "
17796 "system calls were added: B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), "
17797 "B<stat64>(2), B<statfs64>(2), and their analogs that work with file "
17798 "descriptors or symbolic links.  These system calls supersede the older "
17799 "system calls which, except in the case of the \"stat\" calls, have the same "
17800 "name without the \"64\" suffix."
17801 msgstr ""
17802
17803 #. type: Plain text
17804 #: build/C/man2/syscalls.2:788
17805 msgid ""
17806 "On newer platforms that only have 64-bit file access and 32-bit uids (e.g., "
17807 "alpha, ia64, s390x) there are no *64 or *32 calls.  Where the *64 and *32 "
17808 "calls exist, the other versions are obsolete."
17809 msgstr ""
17810
17811 #. type: Plain text
17812 #: build/C/man2/syscalls.2:796
17813 msgid ""
17814 "The I<rt_sig*> calls were added in kernel 2.2 to support the addition of "
17815 "real-time signals (see B<signal>(7)).  These system calls supersede the "
17816 "older system calls of the same name without the \"rt_\" prefix."
17817 msgstr ""
17818
17819 #.  (used by libc 6)
17820 #.  .PP
17821 #.  Two system call numbers,
17822 #.  .IR __NR__llseek
17823 #.  and
17824 #.  .IR __NR__sysctl
17825 #.  have an additional underscore absent in
17826 #.  .IR sys_llseek ()
17827 #.  and
17828 #.  .IR sys_sysctl ().
17829 #
17830 #.  In kernel 2.1.81,
17831 #.  .BR lchown (2)
17832 #.  and
17833 #.  .BR chown (2)
17834 #.  were swapped; that is,
17835 #.  .BR lchown (2)
17836 #.  was added with the semantics that were then current for
17837 #.  .BR chown (2),
17838 #.  and the semantics of the latter call were changed to what
17839 #.  they are today.
17840 #. type: Plain text
17841 #: build/C/man2/syscalls.2:846
17842 msgid ""
17843 "The B<select>(2)  and B<mmap>(2)  system calls use five or more arguments, "
17844 "which caused problems in the way argument passing on the i386 used to be set "
17845 "up.  Thus, while other architectures have I<sys_select>()  and I<sys_mmap>()  "
17846 "corresponding to I<__NR_select> and I<__NR_mmap>, on i386 one finds "
17847 "I<old_select>()  and I<old_mmap>()  (routines that use a pointer to a "
17848 "argument block) instead.  These days passing five arguments is not a problem "
17849 "any more, and there is a I<__NR__newselect> that corresponds directly to "
17850 "I<sys_select>()  and similarly I<__NR_mmap2>."
17851 msgstr ""
17852
17853 #. type: Plain text
17854 #: build/C/man2/syscalls.2:853
17855 msgid ""
17856 "B<intro>(2), B<syscall>(2), B<unimplemented>(2), B<errno>(3), B<libc>(7), "
17857 "B<vdso>(7)"
17858 msgstr ""
17859
17860 #. type: TH
17861 #: build/C/man3/sysconf.3:27
17862 #, no-wrap
17863 msgid "SYSCONF"
17864 msgstr ""
17865
17866 #. type: Plain text
17867 #: build/C/man3/sysconf.3:30
17868 msgid "sysconf - get configuration information at run time"
17869 msgstr ""
17870
17871 #. type: Plain text
17872 #: build/C/man3/sysconf.3:35
17873 #, no-wrap
17874 msgid "B<long sysconf(int >I<name>B<);>\n"
17875 msgstr ""
17876
17877 #. type: Plain text
17878 #: build/C/man3/sysconf.3:40
17879 msgid ""
17880 "POSIX allows an application to test at compile or run time whether certain "
17881 "options are supported, or what the value is of certain configurable "
17882 "constants or limits."
17883 msgstr ""
17884
17885 #. type: Plain text
17886 #: build/C/man3/sysconf.3:46
17887 msgid ""
17888 "At compile time this is done by including I<E<lt>unistd.hE<gt>> and/or "
17889 "I<E<lt>limits.hE<gt>> and testing the value of certain macros."
17890 msgstr ""
17891
17892 #. type: Plain text
17893 #: build/C/man3/sysconf.3:56
17894 msgid ""
17895 "At run time, one can ask for numerical values using the present function "
17896 "B<sysconf>().  One can ask for numerical values that may depend on the "
17897 "filesystem a file is in using the calls B<fpathconf>(3)  and "
17898 "B<pathconf>(3).  One can ask for string values using B<confstr>(3)."
17899 msgstr ""
17900
17901 #.  except that sysconf(_SC_OPEN_MAX) may change answer after a call
17902 #.  to setrlimit( ) which changes the RLIMIT_NOFILE soft limit
17903 #. type: Plain text
17904 #: build/C/man3/sysconf.3:61
17905 msgid ""
17906 "The values obtained from these functions are system configuration "
17907 "constants.  They do not change during the lifetime of a process."
17908 msgstr ""
17909
17910 #.  and 999 to indicate support for options no longer present in the latest
17911 #.  standard. (?)
17912 #. type: Plain text
17913 #: build/C/man3/sysconf.3:84
17914 msgid ""
17915 "For options, typically, there is a constant B<_POSIX_FOO> that may be "
17916 "defined in I<E<lt>unistd.hE<gt>>.  If it is undefined, one should ask at run "
17917 "time.  If it is defined to -1, then the option is not supported.  If it is "
17918 "defined to 0, then relevant functions and headers exist, but one has to ask "
17919 "at run time what degree of support is available.  If it is defined to a "
17920 "value other than -1 or 0, then the option is supported.  Usually the value "
17921 "(such as 200112L) indicates the year and month of the POSIX revision "
17922 "describing the option.  Glibc uses the value 1 to indicate support as long "
17923 "as the POSIX revision has not been published yet.  The B<sysconf>()  "
17924 "argument will be B<_SC_FOO>.  For a list of options, see B<posixoptions>(7)."
17925 msgstr ""
17926
17927 #. type: Plain text
17928 #: build/C/man3/sysconf.3:104
17929 msgid ""
17930 "For variables or limits, typically, there is a constant B<_FOO>, maybe "
17931 "defined in I<E<lt>limits.hE<gt>>, or B<_POSIX_FOO>, maybe defined in "
17932 "I<E<lt>unistd.hE<gt>>.  The constant will not be defined if the limit is "
17933 "unspecified.  If the constant is defined, it gives a guaranteed value, and a "
17934 "greater value might actually be supported.  If an application wants to take "
17935 "advantage of values which may change between systems, a call to B<sysconf>()  "
17936 "can be made.  The B<sysconf>()  argument will be B<_SC_FOO>."
17937 msgstr ""
17938
17939 #. type: SS
17940 #: build/C/man3/sysconf.3:104
17941 #, no-wrap
17942 msgid "POSIX.1 variables"
17943 msgstr ""
17944
17945 #. type: Plain text
17946 #: build/C/man3/sysconf.3:109
17947 msgid ""
17948 "We give the name of the variable, the name of the B<sysconf>()  argument "
17949 "used to inquire about its value, and a short description."
17950 msgstr ""
17951
17952 #.  [for the moment: only the things that are unconditionally present]
17953 #.  .TP
17954 #.  .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX
17955 #.  (if _POSIX_ASYNCHRONOUS_IO)
17956 #.  Maximum number of I/O operations in a single list I/O call.
17957 #.  Must not be less than _POSIX_AIO_LISTIO_MAX.
17958 #.  .TP
17959 #.  .BR AIO_MAX " - " _SC_AIO_MAX
17960 #.  (if _POSIX_ASYNCHRONOUS_IO)
17961 #.  Maximum number of outstanding asynchronous I/O operations.
17962 #.  Must not be less than _POSIX_AIO_MAX.
17963 #.  .TP
17964 #.  .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX
17965 #.  (if _POSIX_ASYNCHRONOUS_IO)
17966 #.  The maximum amount by which a process can decrease its
17967 #.  asynchronous I/O priority level from its own scheduling priority.
17968 #.  Must be nonnegative.
17969 #. type: Plain text
17970 #: build/C/man3/sysconf.3:128
17971 msgid "First, the POSIX.1 compatible values."
17972 msgstr ""
17973
17974 #. type: TP
17975 #: build/C/man3/sysconf.3:128
17976 #, no-wrap
17977 msgid "B<ARG_MAX> - B<_SC_ARG_MAX>"
17978 msgstr ""
17979
17980 #. type: Plain text
17981 #: build/C/man3/sysconf.3:136
17982 msgid ""
17983 "The maximum length of the arguments to the B<exec>(3)  family of functions.  "
17984 "Must not be less than B<_POSIX_ARG_MAX> (4096)."
17985 msgstr ""
17986
17987 #. type: TP
17988 #: build/C/man3/sysconf.3:136
17989 #, no-wrap
17990 msgid "B<CHILD_MAX> - B<_SC_CHILD_MAX>"
17991 msgstr ""
17992
17993 #. type: Plain text
17994 #: build/C/man3/sysconf.3:142
17995 msgid ""
17996 "The maximum number of simultaneous processes per user ID.  Must not be less "
17997 "than B<_POSIX_CHILD_MAX> (25)."
17998 msgstr ""
17999
18000 #. type: TP
18001 #: build/C/man3/sysconf.3:142
18002 #, no-wrap
18003 msgid "B<HOST_NAME_MAX> - B<_SC_HOST_NAME_MAX>"
18004 msgstr ""
18005
18006 #. type: Plain text
18007 #: build/C/man3/sysconf.3:150
18008 msgid ""
18009 "Maximum length of a hostname, not including the terminating null byte, as "
18010 "returned by B<gethostname>(2).  Must not be less than "
18011 "B<_POSIX_HOST_NAME_MAX> (255)."
18012 msgstr ""
18013
18014 #. type: TP
18015 #: build/C/man3/sysconf.3:150
18016 #, no-wrap
18017 msgid "B<LOGIN_NAME_MAX> - B<_SC_LOGIN_NAME_MAX>"
18018 msgstr ""
18019
18020 #. type: Plain text
18021 #: build/C/man3/sysconf.3:156
18022 msgid ""
18023 "Maximum length of a login name, including the terminating null byte.  Must "
18024 "not be less than B<_POSIX_LOGIN_NAME_MAX> (9)."
18025 msgstr ""
18026
18027 #. type: TP
18028 #: build/C/man3/sysconf.3:156
18029 #, no-wrap
18030 msgid "B<NGROUPS_MAX> - B<_SC_NGROUPS_MAX>"
18031 msgstr ""
18032
18033 #. type: Plain text
18034 #: build/C/man3/sysconf.3:159
18035 msgid "Maximum number of supplementary group IDs."
18036 msgstr ""
18037
18038 #. type: TP
18039 #: build/C/man3/sysconf.3:159
18040 #, no-wrap
18041 msgid "clock ticks - B<_SC_CLK_TCK>"
18042 msgstr ""
18043
18044 #. type: Plain text
18045 #: build/C/man3/sysconf.3:168
18046 msgid ""
18047 "The number of clock ticks per second.  The corresponding variable is "
18048 "obsolete.  It was of course called B<CLK_TCK>.  (Note: the macro "
18049 "B<CLOCKS_PER_SEC> does not give information: it must equal 1000000.)"
18050 msgstr ""
18051
18052 #. type: TP
18053 #: build/C/man3/sysconf.3:168
18054 #, no-wrap
18055 msgid "B<OPEN_MAX> - B<_SC_OPEN_MAX>"
18056 msgstr ""
18057
18058 #. type: Plain text
18059 #: build/C/man3/sysconf.3:174
18060 msgid ""
18061 "The maximum number of files that a process can have open at any time.  Must "
18062 "not be less than B<_POSIX_OPEN_MAX> (20)."
18063 msgstr ""
18064
18065 #. type: TP
18066 #: build/C/man3/sysconf.3:174
18067 #, no-wrap
18068 msgid "B<PAGESIZE> - B<_SC_PAGESIZE>"
18069 msgstr ""
18070
18071 #. type: Plain text
18072 #: build/C/man3/sysconf.3:179
18073 msgid ""
18074 "Size of a page in bytes.  Must not be less than 1.  (Some systems use "
18075 "PAGE_SIZE instead.)"
18076 msgstr ""
18077
18078 #. type: TP
18079 #: build/C/man3/sysconf.3:179 build/C/man3/sysconf.3:266
18080 #, no-wrap
18081 msgid "B<RE_DUP_MAX> - B<_SC_RE_DUP_MAX>"
18082 msgstr ""
18083
18084 #. type: Plain text
18085 #: build/C/man3/sysconf.3:188
18086 msgid ""
18087 "The number of repeated occurrences of a BRE permitted by B<regexec>(3)  and "
18088 "B<regcomp>(3).  Must not be less than B<_POSIX2_RE_DUP_MAX> (255)."
18089 msgstr ""
18090
18091 #. type: TP
18092 #: build/C/man3/sysconf.3:188
18093 #, no-wrap
18094 msgid "B<STREAM_MAX> - B<_SC_STREAM_MAX>"
18095 msgstr ""
18096
18097 #. type: Plain text
18098 #: build/C/man3/sysconf.3:197
18099 msgid ""
18100 "The maximum number of streams that a process can have open at any time.  If "
18101 "defined, it has the same value as the standard C macro B<FOPEN_MAX>.  Must "
18102 "not be less than B<_POSIX_STREAM_MAX> (8)."
18103 msgstr ""
18104
18105 #. type: TP
18106 #: build/C/man3/sysconf.3:197
18107 #, no-wrap
18108 msgid "B<SYMLOOP_MAX> - B<_SC_SYMLOOP_MAX>"
18109 msgstr ""
18110
18111 #. type: Plain text
18112 #: build/C/man3/sysconf.3:205
18113 msgid ""
18114 "The maximum number of symbolic links seen in a pathname before resolution "
18115 "returns B<ELOOP>.  Must not be less than B<_POSIX_SYMLOOP_MAX> (8)."
18116 msgstr ""
18117
18118 #. type: TP
18119 #: build/C/man3/sysconf.3:205
18120 #, no-wrap
18121 msgid "B<TTY_NAME_MAX> - B<_SC_TTY_NAME_MAX>"
18122 msgstr ""
18123
18124 #. type: Plain text
18125 #: build/C/man3/sysconf.3:212
18126 msgid ""
18127 "The maximum length of terminal device name, including the terminating null "
18128 "byte.  Must not be less than B<_POSIX_TTY_NAME_MAX> (9)."
18129 msgstr ""
18130
18131 #. type: TP
18132 #: build/C/man3/sysconf.3:212
18133 #, no-wrap
18134 msgid "B<TZNAME_MAX> - B<_SC_TZNAME_MAX>"
18135 msgstr ""
18136
18137 #. type: Plain text
18138 #: build/C/man3/sysconf.3:218
18139 msgid ""
18140 "The maximum number of bytes in a timezone name.  Must not be less than "
18141 "B<_POSIX_TZNAME_MAX> (6)."
18142 msgstr ""
18143
18144 #. type: TP
18145 #: build/C/man3/sysconf.3:218
18146 #, no-wrap
18147 msgid "B<_POSIX_VERSION> - B<_SC_VERSION>"
18148 msgstr ""
18149
18150 #. type: Plain text
18151 #: build/C/man3/sysconf.3:226
18152 msgid ""
18153 "indicates the year and month the POSIX.1 standard was approved in the format "
18154 "B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision."
18155 msgstr ""
18156
18157 #. type: SS
18158 #: build/C/man3/sysconf.3:226
18159 #, no-wrap
18160 msgid "POSIX.2 variables"
18161 msgstr ""
18162
18163 #. type: Plain text
18164 #: build/C/man3/sysconf.3:228
18165 msgid "Next, the POSIX.2 values, giving limits for utilities."
18166 msgstr ""
18167
18168 #. type: TP
18169 #: build/C/man3/sysconf.3:228
18170 #, no-wrap
18171 msgid "B<BC_BASE_MAX> - B<_SC_BC_BASE_MAX>"
18172 msgstr ""
18173
18174 #. type: Plain text
18175 #: build/C/man3/sysconf.3:235
18176 msgid "indicates the maximum I<obase> value accepted by the B<bc>(1)  utility."
18177 msgstr ""
18178
18179 #. type: TP
18180 #: build/C/man3/sysconf.3:235
18181 #, no-wrap
18182 msgid "B<BC_DIM_MAX> - B<_SC_BC_DIM_MAX>"
18183 msgstr ""
18184
18185 #. type: Plain text
18186 #: build/C/man3/sysconf.3:239
18187 msgid "indicates the maximum value of elements permitted in an array by B<bc>(1)."
18188 msgstr ""
18189
18190 #. type: TP
18191 #: build/C/man3/sysconf.3:239
18192 #, no-wrap
18193 msgid "B<BC_SCALE_MAX> - B<_SC_BC_SCALE_MAX>"
18194 msgstr ""
18195
18196 #. type: Plain text
18197 #: build/C/man3/sysconf.3:245
18198 msgid "indicates the maximum I<scale> value allowed by B<bc>(1)."
18199 msgstr ""
18200
18201 #. type: TP
18202 #: build/C/man3/sysconf.3:245
18203 #, no-wrap
18204 msgid "B<BC_STRING_MAX> - B<_SC_BC_STRING_MAX>"
18205 msgstr ""
18206
18207 #. type: Plain text
18208 #: build/C/man3/sysconf.3:249
18209 msgid "indicates the maximum length of a string accepted by B<bc>(1)."
18210 msgstr ""
18211
18212 #. type: TP
18213 #: build/C/man3/sysconf.3:249
18214 #, no-wrap
18215 msgid "B<COLL_WEIGHTS_MAX> - B<_SC_COLL_WEIGHTS_MAX>"
18216 msgstr ""
18217
18218 #. type: Plain text
18219 #: build/C/man3/sysconf.3:255
18220 msgid ""
18221 "indicates the maximum numbers of weights that can be assigned to an entry of "
18222 "the B<LC_COLLATE order> keyword in the locale definition file,"
18223 msgstr ""
18224
18225 #. type: TP
18226 #: build/C/man3/sysconf.3:255
18227 #, no-wrap
18228 msgid "B<EXPR_NEST_MAX> - B<_SC_EXPR_NEST_MAX>"
18229 msgstr ""
18230
18231 #. type: Plain text
18232 #: build/C/man3/sysconf.3:260
18233 msgid ""
18234 "is the maximum number of expressions which can be nested within parentheses "
18235 "by B<expr>(1)."
18236 msgstr ""
18237
18238 #. type: TP
18239 #: build/C/man3/sysconf.3:260
18240 #, no-wrap
18241 msgid "B<LINE_MAX> - B<_SC_LINE_MAX>"
18242 msgstr ""
18243
18244 #. type: Plain text
18245 #: build/C/man3/sysconf.3:266
18246 msgid ""
18247 "The maximum length of a utility's input line, either from standard input or "
18248 "from a file.  This includes space for a trailing newline."
18249 msgstr ""
18250
18251 #. type: Plain text
18252 #: build/C/man3/sysconf.3:272
18253 msgid ""
18254 "The maximum number of repeated occurrences of a regular expression when the "
18255 "interval notation B<\\e{m,n\\e}> is used."
18256 msgstr ""
18257
18258 #. type: TP
18259 #: build/C/man3/sysconf.3:272
18260 #, no-wrap
18261 msgid "B<POSIX2_VERSION> - B<_SC_2_VERSION>"
18262 msgstr ""
18263
18264 #. type: Plain text
18265 #: build/C/man3/sysconf.3:276
18266 msgid "indicates the version of the POSIX.2 standard in the format of YYYYMML."
18267 msgstr ""
18268
18269 #. type: TP
18270 #: build/C/man3/sysconf.3:276
18271 #, no-wrap
18272 msgid "B<POSIX2_C_DEV> - B<_SC_2_C_DEV>"
18273 msgstr ""
18274
18275 #. type: Plain text
18276 #: build/C/man3/sysconf.3:280
18277 msgid ""
18278 "indicates whether the POSIX.2 C language development facilities are "
18279 "supported."
18280 msgstr ""
18281
18282 #. type: TP
18283 #: build/C/man3/sysconf.3:280
18284 #, no-wrap
18285 msgid "B<POSIX2_FORT_DEV> - B<_SC_2_FORT_DEV>"
18286 msgstr ""
18287
18288 #. type: Plain text
18289 #: build/C/man3/sysconf.3:284
18290 msgid "indicates whether the POSIX.2 FORTRAN development utilities are supported."
18291 msgstr ""
18292
18293 #. type: TP
18294 #: build/C/man3/sysconf.3:284
18295 #, no-wrap
18296 msgid "B<POSIX2_FORT_RUN> - B<_SC_2_FORT_RUN>"
18297 msgstr ""
18298
18299 #. type: Plain text
18300 #: build/C/man3/sysconf.3:287
18301 msgid "indicates whether the POSIX.2 FORTRAN run-time utilities are supported."
18302 msgstr ""
18303
18304 #. type: TP
18305 #: build/C/man3/sysconf.3:287
18306 #, no-wrap
18307 msgid "B<_POSIX2_LOCALEDEF> - B<_SC_2_LOCALEDEF>"
18308 msgstr ""
18309
18310 #. type: Plain text
18311 #: build/C/man3/sysconf.3:292
18312 msgid ""
18313 "indicates whether the POSIX.2 creation of locates via B<localedef>(1)  is "
18314 "supported."
18315 msgstr ""
18316
18317 #. type: TP
18318 #: build/C/man3/sysconf.3:292
18319 #, no-wrap
18320 msgid "B<POSIX2_SW_DEV> - B<_SC_2_SW_DEV>"
18321 msgstr ""
18322
18323 #. type: Plain text
18324 #: build/C/man3/sysconf.3:296
18325 msgid ""
18326 "indicates whether the POSIX.2 software development utilities option is "
18327 "supported."
18328 msgstr ""
18329
18330 #. type: Plain text
18331 #: build/C/man3/sysconf.3:298
18332 msgid "These values also exist, but may not be standard."
18333 msgstr ""
18334
18335 #. type: TP
18336 #: build/C/man3/sysconf.3:298
18337 #, no-wrap
18338 msgid " - B<_SC_PHYS_PAGES>"
18339 msgstr ""
18340
18341 #. type: Plain text
18342 #: build/C/man3/sysconf.3:305
18343 msgid ""
18344 "The number of pages of physical memory.  Note that it is possible for the "
18345 "product of this value and the value of B<_SC_PAGESIZE> to overflow."
18346 msgstr ""
18347
18348 #. type: TP
18349 #: build/C/man3/sysconf.3:305
18350 #, no-wrap
18351 msgid " - B<_SC_AVPHYS_PAGES>"
18352 msgstr ""
18353
18354 #. type: Plain text
18355 #: build/C/man3/sysconf.3:308
18356 msgid "The number of currently available pages of physical memory."
18357 msgstr ""
18358
18359 #. type: TP
18360 #: build/C/man3/sysconf.3:308
18361 #, no-wrap
18362 msgid " - B<_SC_NPROCESSORS_CONF>"
18363 msgstr ""
18364
18365 #. type: Plain text
18366 #: build/C/man3/sysconf.3:311
18367 msgid "The number of processors configured."
18368 msgstr ""
18369
18370 #. type: TP
18371 #: build/C/man3/sysconf.3:311
18372 #, no-wrap
18373 msgid " - B<_SC_NPROCESSORS_ONLN>"
18374 msgstr ""
18375
18376 #. type: Plain text
18377 #: build/C/man3/sysconf.3:314
18378 msgid "The number of processors currently online (available)."
18379 msgstr ""
18380
18381 #. type: Plain text
18382 #: build/C/man3/sysconf.3:327
18383 msgid ""
18384 "If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>.  "
18385 "Otherwise, the value returned is the value of the system resource and "
18386 "I<errno> is not changed.  In the case of options, a positive value is "
18387 "returned if a queried option is available, and -1 if it is not.  In the case "
18388 "of limits, -1 means that there is no definite limit."
18389 msgstr ""
18390
18391 #. type: Plain text
18392 #: build/C/man3/sysconf.3:335
18393 msgid ""
18394 "It is difficult to use B<ARG_MAX> because it is not specified how much of "
18395 "the argument space for B<exec>(3)  is consumed by the user's environment "
18396 "variables."
18397 msgstr ""
18398
18399 #. type: Plain text
18400 #: build/C/man3/sysconf.3:347
18401 msgid ""
18402 "B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<confstr>(3), "
18403 "B<fpathconf>(3), B<pathconf>(3), B<posixoptions>(7)"
18404 msgstr ""
18405
18406 #. type: TH
18407 #: build/C/man2/sysctl.2:30
18408 #, no-wrap
18409 msgid "SYSCTL"
18410 msgstr ""
18411
18412 #. type: TH
18413 #: build/C/man2/sysctl.2:30
18414 #, no-wrap
18415 msgid "2012-12-22"
18416 msgstr ""
18417
18418 #. type: Plain text
18419 #: build/C/man2/sysctl.2:33
18420 msgid "sysctl - read/write system parameters"
18421 msgstr ""
18422
18423 #. type: Plain text
18424 #: build/C/man2/sysctl.2:38
18425 #, no-wrap
18426 msgid "B<#include E<lt>linux/sysctl.hE<gt>>\n"
18427 msgstr ""
18428
18429 #. type: Plain text
18430 #: build/C/man2/sysctl.2:40
18431 #, no-wrap
18432 msgid "B<int _sysctl(struct __sysctl_args *>I<args>B<);>\n"
18433 msgstr ""
18434
18435 #. type: Plain text
18436 #: build/C/man2/sysctl.2:47
18437 msgid "B<Do not use this system call!> See NOTES."
18438 msgstr ""
18439
18440 #. type: Plain text
18441 #: build/C/man2/sysctl.2:54
18442 msgid ""
18443 "The B<_sysctl>()  call reads and/or writes kernel parameters.  For example, "
18444 "the hostname, or the maximum number of open files.  The argument has the "
18445 "form"
18446 msgstr ""
18447
18448 #. type: Plain text
18449 #: build/C/man2/sysctl.2:66
18450 #, no-wrap
18451 msgid ""
18452 "struct __sysctl_args {\n"
18453 "    int    *name;    /* integer vector describing variable */\n"
18454 "    int     nlen;    /* length of this vector */\n"
18455 "    void   *oldval;  /* 0 or address where to store old value */\n"
18456 "    size_t *oldlenp; /* available room for old value,\n"
18457 "                        overwritten by actual size of old value */\n"
18458 "    void   *newval;  /* 0 or address of new value */\n"
18459 "    size_t  newlen;  /* size of new value */\n"
18460 "};\n"
18461 msgstr ""
18462
18463 #. type: Plain text
18464 #: build/C/man2/sysctl.2:74
18465 msgid ""
18466 "This call does a search in a tree structure, possibly resembling a directory "
18467 "tree under I</proc/sys>, and if the requested item is found calls some "
18468 "appropriate routine to read or modify the value."
18469 msgstr ""
18470
18471 #. type: Plain text
18472 #: build/C/man2/sysctl.2:81
18473 msgid ""
18474 "Upon successful completion, B<_sysctl>()  returns 0.  Otherwise, a value of "
18475 "-1 is returned and I<errno> is set to indicate the error."
18476 msgstr ""
18477
18478 #. type: Plain text
18479 #: build/C/man2/sysctl.2:88
18480 msgid ""
18481 "The invocation asked for the previous value by setting I<oldval> non-NULL, "
18482 "but allowed zero room in I<oldlenp>."
18483 msgstr ""
18484
18485 #. type: Plain text
18486 #: build/C/man2/sysctl.2:92
18487 msgid "I<name> was not found."
18488 msgstr ""
18489
18490 #. type: TP
18491 #: build/C/man2/sysctl.2:92
18492 #, no-wrap
18493 msgid "B<EACCES>, B<EPERM>"
18494 msgstr ""
18495
18496 #. type: Plain text
18497 #: build/C/man2/sysctl.2:100
18498 msgid ""
18499 "No search permission for one of the encountered \"directories\", or no read "
18500 "permission where I<oldval> was nonzero, or no write permission where "
18501 "I<newval> was nonzero."
18502 msgstr ""
18503
18504 #. type: Plain text
18505 #: build/C/man2/sysctl.2:114
18506 msgid ""
18507 "This call is Linux-specific, and should not be used in programs intended to "
18508 "be portable.  A B<sysctl>()  call has been present in Linux since version "
18509 "1.3.57.  It originated in 4.4BSD.  Only Linux has the I</proc/sys> mirror, "
18510 "and the object naming schemes differ between Linux and 4.4BSD, but the "
18511 "declaration of the B<sysctl>()  function is the same in both."
18512 msgstr ""
18513
18514 #.  See http://lwn.net/Articles/247243/
18515 #.  Though comments in suggest that it is needed by old glibc binaries,
18516 #.  so maybe it's not going away.
18517 #. type: Plain text
18518 #: build/C/man2/sysctl.2:131
18519 msgid ""
18520 "Glibc does not provide a wrapper for this system call; call it using "
18521 "B<syscall>(2).  Or rather...  I<don't> call it: use of this system call has "
18522 "long been discouraged, and it is so unloved that B<it is likely to disappear "
18523 "in a future kernel version>.  Since Linux 2.6.24, uses of this system call "
18524 "result in warnings in the kernel log.  Remove it from your programs now; use "
18525 "the I</proc/sys> interface instead."
18526 msgstr ""
18527
18528 #. type: Plain text
18529 #: build/C/man2/sysctl.2:135
18530 msgid ""
18531 "This system call is available only if the kernel was configured with the "
18532 "B<CONFIG_SYSCTL_SYSCALL> option."
18533 msgstr ""
18534
18535 #. type: Plain text
18536 #: build/C/man2/sysctl.2:138
18537 msgid ""
18538 "The object names vary between kernel versions, making this system call "
18539 "worthless for applications."
18540 msgstr ""
18541
18542 #. type: Plain text
18543 #: build/C/man2/sysctl.2:140
18544 msgid "Not all available objects are properly documented."
18545 msgstr ""
18546
18547 #. type: Plain text
18548 #: build/C/man2/sysctl.2:143
18549 msgid ""
18550 "It is not yet possible to change operating system by writing to "
18551 "I</proc/sys/kernel/ostype>."
18552 msgstr ""
18553
18554 #. type: Plain text
18555 #: build/C/man2/sysctl.2:152
18556 #, no-wrap
18557 msgid ""
18558 "#define _GNU_SOURCE\n"
18559 "#include E<lt>unistd.hE<gt>\n"
18560 "#include E<lt>sys/syscall.hE<gt>\n"
18561 "#include E<lt>string.hE<gt>\n"
18562 "#include E<lt>stdio.hE<gt>\n"
18563 "#include E<lt>stdlib.hE<gt>\n"
18564 "#include E<lt>linux/sysctl.hE<gt>\n"
18565 msgstr ""
18566
18567 #. type: Plain text
18568 #: build/C/man2/sysctl.2:154
18569 #, no-wrap
18570 msgid "int _sysctl(struct __sysctl_args *args );\n"
18571 msgstr ""
18572
18573 #. type: Plain text
18574 #: build/C/man2/sysctl.2:156
18575 #, no-wrap
18576 msgid "#define OSNAMESZ 100\n"
18577 msgstr ""
18578
18579 #. type: Plain text
18580 #: build/C/man2/sysctl.2:164
18581 #, no-wrap
18582 msgid ""
18583 "int\n"
18584 "main(void)\n"
18585 "{\n"
18586 "    struct __sysctl_args args;\n"
18587 "    char osname[OSNAMESZ];\n"
18588 "    size_t osnamelth;\n"
18589 "    int name[] = { CTL_KERN, KERN_OSTYPE };\n"
18590 msgstr ""
18591
18592 #. type: Plain text
18593 #: build/C/man2/sysctl.2:170
18594 #, no-wrap
18595 msgid ""
18596 "    memset(&args, 0, sizeof(struct __sysctl_args));\n"
18597 "    args.name = name;\n"
18598 "    args.nlen = sizeof(name)/sizeof(name[0]);\n"
18599 "    args.oldval = osname;\n"
18600 "    args.oldlenp = &osnamelth;\n"
18601 msgstr ""
18602
18603 #. type: Plain text
18604 #: build/C/man2/sysctl.2:172
18605 #, no-wrap
18606 msgid "    osnamelth = sizeof(osname);\n"
18607 msgstr ""
18608
18609 #. type: Plain text
18610 #: build/C/man2/sysctl.2:180
18611 #, no-wrap
18612 msgid ""
18613 "    if (syscall(SYS__sysctl, &args) == -1) {\n"
18614 "        perror(\"_sysctl\");\n"
18615 "        exit(EXIT_FAILURE);\n"
18616 "    }\n"
18617 "    printf(\"This machine is running %*s\\en\", osnamelth, osname);\n"
18618 "    exit(EXIT_SUCCESS);\n"
18619 "}\n"
18620 msgstr ""
18621
18622 #. type: Plain text
18623 #: build/C/man2/sysctl.2:183 build/C/man2/sysinfo.2:92
18624 msgid "B<proc>(5)"
18625 msgstr ""
18626
18627 #. type: TH
18628 #: build/C/man2/sysinfo.2:14
18629 #, no-wrap
18630 msgid "SYSINFO"
18631 msgstr ""
18632
18633 #. type: Plain text
18634 #: build/C/man2/sysinfo.2:17
18635 msgid "sysinfo - returns information on overall system statistics"
18636 msgstr ""
18637
18638 #. type: Plain text
18639 #: build/C/man2/sysinfo.2:21
18640 msgid "B<int sysinfo(struct sysinfo *>I<info>B<);>"
18641 msgstr ""
18642
18643 #. type: Plain text
18644 #: build/C/man2/sysinfo.2:25
18645 msgid ""
18646 "Until Linux 2.3.16, B<sysinfo>()  used to return information in the "
18647 "following structure:"
18648 msgstr ""
18649
18650 #. type: Plain text
18651 #: build/C/man2/sysinfo.2:40
18652 #, no-wrap
18653 msgid ""
18654 "struct sysinfo {\n"
18655 "    long uptime;             /* Seconds since boot */\n"
18656 "    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
18657 "    unsigned long totalram;  /* Total usable main memory size */\n"
18658 "    unsigned long freeram;   /* Available memory size */\n"
18659 "    unsigned long sharedram; /* Amount of shared memory */\n"
18660 "    unsigned long bufferram; /* Memory used by buffers */\n"
18661 "    unsigned long totalswap; /* Total swap space size */\n"
18662 "    unsigned long freeswap;  /* swap space still available */\n"
18663 "    unsigned short procs;    /* Number of current processes */\n"
18664 "    char _f[22];             /* Pads structure to 64 bytes */\n"
18665 "};\n"
18666 msgstr ""
18667
18668 #. type: Plain text
18669 #: build/C/man2/sysinfo.2:44
18670 msgid "and the sizes were given in bytes."
18671 msgstr ""
18672
18673 #. type: Plain text
18674 #: build/C/man2/sysinfo.2:47
18675 msgid "Since Linux 2.3.23 (i386), 2.3.48 (all architectures) the structure is:"
18676 msgstr ""
18677
18678 #. type: Plain text
18679 #: build/C/man2/sysinfo.2:65
18680 #, no-wrap
18681 msgid ""
18682 "struct sysinfo {\n"
18683 "    long uptime;             /* Seconds since boot */\n"
18684 "    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
18685 "    unsigned long totalram;  /* Total usable main memory size */\n"
18686 "    unsigned long freeram;   /* Available memory size */\n"
18687 "    unsigned long sharedram; /* Amount of shared memory */\n"
18688 "    unsigned long bufferram; /* Memory used by buffers */\n"
18689 "    unsigned long totalswap; /* Total swap space size */\n"
18690 "    unsigned long freeswap;  /* swap space still available */\n"
18691 "    unsigned short procs;    /* Number of current processes */\n"
18692 "    unsigned long totalhigh; /* Total high memory size */\n"
18693 "    unsigned long freehigh;  /* Available high memory size */\n"
18694 "    unsigned int mem_unit;   /* Memory unit size in bytes */\n"
18695 "    char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding to 64 bytes */\n"
18696 "};\n"
18697 msgstr ""
18698
18699 #. type: Plain text
18700 #: build/C/man2/sysinfo.2:69
18701 msgid "and the sizes are given as multiples of I<mem_unit> bytes."
18702 msgstr ""
18703
18704 #. type: Plain text
18705 #: build/C/man2/sysinfo.2:74
18706 msgid ""
18707 "B<sysinfo>()  provides a simple way of getting overall system statistics.  "
18708 "This is more portable than reading I</dev/kmem>."
18709 msgstr ""
18710
18711 #. type: Plain text
18712 #: build/C/man2/sysinfo.2:83
18713 msgid "pointer to I<struct\\ sysinfo> is invalid"
18714 msgstr ""
18715
18716 #. type: Plain text
18717 #: build/C/man2/sysinfo.2:87
18718 msgid "The Linux kernel has a B<sysinfo>()  system call since 0.98.pl6."
18719 msgstr ""
18720
18721 #. type: TH
18722 #: build/C/man3/tcgetpgrp.3:25
18723 #, no-wrap
18724 msgid "TCGETPGRP"
18725 msgstr ""
18726
18727 #. type: TH
18728 #: build/C/man3/tcgetpgrp.3:25
18729 #, no-wrap
18730 msgid "2014-01-13"
18731 msgstr ""
18732
18733 #. type: Plain text
18734 #: build/C/man3/tcgetpgrp.3:28
18735 msgid "tcgetpgrp, tcsetpgrp - get and set terminal foreground process group"
18736 msgstr ""
18737
18738 #. type: Plain text
18739 #: build/C/man3/tcgetpgrp.3:32
18740 msgid "B<pid_t tcgetpgrp(int >I<fd>B<);>"
18741 msgstr ""
18742
18743 #. type: Plain text
18744 #: build/C/man3/tcgetpgrp.3:34
18745 msgid "B<int tcsetpgrp(int >I<fd>B<, pid_t >I<pgrp>B<);>"
18746 msgstr ""
18747
18748 #.  The process itself may be a background process.
18749 #. type: Plain text
18750 #: build/C/man3/tcgetpgrp.3:42
18751 msgid ""
18752 "The function B<tcgetpgrp>()  returns the process group ID of the foreground "
18753 "process group on the terminal associated to I<fd>, which must be the "
18754 "controlling terminal of the calling process."
18755 msgstr ""
18756
18757 #. type: Plain text
18758 #: build/C/man3/tcgetpgrp.3:55
18759 msgid ""
18760 "The function B<tcsetpgrp>()  makes the process group with process group ID "
18761 "I<pgrp> the foreground process group on the terminal associated to I<fd>, "
18762 "which must be the controlling terminal of the calling process, and still be "
18763 "associated with its session.  Moreover, I<pgrp> must be a (nonempty) process "
18764 "group belonging to the same session as the calling process."
18765 msgstr ""
18766
18767 #. type: Plain text
18768 #: build/C/man3/tcgetpgrp.3:64
18769 msgid ""
18770 "If B<tcsetpgrp>()  is called by a member of a background process group in "
18771 "its session, and the calling process is not blocking or ignoring B<SIGTTOU>, "
18772 "a B<SIGTTOU> signal is sent to all members of this background process group."
18773 msgstr ""
18774
18775 #. type: Plain text
18776 #: build/C/man3/tcgetpgrp.3:79
18777 msgid ""
18778 "When I<fd> refers to the controlling terminal of the calling process, the "
18779 "function B<tcgetpgrp>()  will return the foreground process group ID of that "
18780 "terminal if there is one, and some value larger than 1 that is not presently "
18781 "a process group ID otherwise.  When I<fd> does not refer to the controlling "
18782 "terminal of the calling process, -1 is returned, and I<errno> is set "
18783 "appropriately."
18784 msgstr ""
18785
18786 #. type: Plain text
18787 #: build/C/man3/tcgetpgrp.3:86
18788 msgid ""
18789 "When successful, B<tcsetpgrp>()  returns 0.  Otherwise, it returns -1, and "
18790 "I<errno> is set appropriately."
18791 msgstr ""
18792
18793 #. type: Plain text
18794 #: build/C/man3/tcgetpgrp.3:95
18795 msgid "I<pgrp> has an unsupported value."
18796 msgstr ""
18797
18798 #. type: Plain text
18799 #: build/C/man3/tcgetpgrp.3:104
18800 msgid ""
18801 "The calling process does not have a controlling terminal, or it has one but "
18802 "it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling "
18803 "terminal is no longer associated with the session of the calling process."
18804 msgstr ""
18805
18806 #. type: Plain text
18807 #: build/C/man3/tcgetpgrp.3:109
18808 msgid ""
18809 "I<pgrp> has a supported value, but is not the process group ID of a process "
18810 "in the same session as the calling process."
18811 msgstr ""
18812
18813 #. type: Plain text
18814 #: build/C/man3/tcgetpgrp.3:116
18815 msgid "The B<tcgetpgrp>()  and B<tcsetpgrp>()  functions are thread-safe."
18816 msgstr ""
18817
18818 #. type: Plain text
18819 #: build/C/man3/tcgetpgrp.3:124
18820 msgid ""
18821 "These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> "
18822 "ioctls."
18823 msgstr ""
18824
18825 #. type: SS
18826 #: build/C/man3/tcgetpgrp.3:124 build/C/man2/vfork.2:234
18827 #, no-wrap
18828 msgid "History"
18829 msgstr ""
18830
18831 #. type: Plain text
18832 #: build/C/man3/tcgetpgrp.3:127
18833 msgid "The ioctls appeared in 4.2BSD.  The functions are POSIX inventions."
18834 msgstr ""
18835
18836 #. type: Plain text
18837 #: build/C/man3/tcgetpgrp.3:131
18838 msgid "B<setpgid>(2), B<setsid>(2), B<credentials>(7)"
18839 msgstr ""
18840
18841 #. type: TH
18842 #: build/C/man2/truncate.2:43
18843 #, no-wrap
18844 msgid "TRUNCATE"
18845 msgstr ""
18846
18847 #. type: TH
18848 #: build/C/man2/truncate.2:43
18849 #, no-wrap
18850 msgid "2013-04-01"
18851 msgstr ""
18852
18853 #. type: Plain text
18854 #: build/C/man2/truncate.2:46
18855 msgid "truncate, ftruncate - truncate a file to a specified length"
18856 msgstr ""
18857
18858 #. type: Plain text
18859 #: build/C/man2/truncate.2:52
18860 msgid "B<int truncate(const char *>I<path>B<, off_t >I<length>B<);>"
18861 msgstr ""
18862
18863 #. type: Plain text
18864 #: build/C/man2/truncate.2:54
18865 msgid "B<int ftruncate(int >I<fd>B<, off_t >I<length>B<);>"
18866 msgstr ""
18867
18868 #. type: Plain text
18869 #: build/C/man2/truncate.2:63
18870 msgid "B<truncate>():"
18871 msgstr ""
18872
18873 #. type: Plain text
18874 #: build/C/man2/truncate.2:71
18875 msgid "B<ftruncate>():"
18876 msgstr ""
18877
18878 #. type: Plain text
18879 #: build/C/man2/truncate.2:76
18880 msgid "|| /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
18881 msgstr ""
18882
18883 #. type: Plain text
18884 #: build/C/man2/truncate.2:91
18885 msgid ""
18886 "The B<truncate>()  and B<ftruncate>()  functions cause the regular file "
18887 "named by I<path> or referenced by I<fd> to be truncated to a size of "
18888 "precisely I<length> bytes."
18889 msgstr ""
18890
18891 #. type: Plain text
18892 #: build/C/man2/truncate.2:95
18893 msgid ""
18894 "If the file previously was larger than this size, the extra data is lost.  "
18895 "If the file previously was shorter, it is extended, and the extended part "
18896 "reads as null bytes (\\(aq\\e0\\(aq)."
18897 msgstr ""
18898
18899 #. type: Plain text
18900 #: build/C/man2/truncate.2:97
18901 msgid "The file offset is not changed."
18902 msgstr ""
18903
18904 #. type: Plain text
18905 #: build/C/man2/truncate.2:104
18906 msgid ""
18907 "If the size changed, then the st_ctime and st_mtime fields (respectively, "
18908 "time of last status change and time of last modification; see B<stat>(2))  "
18909 "for the file are updated, and the set-user-ID and set-group-ID permission "
18910 "bits may be cleared."
18911 msgstr ""
18912
18913 #. type: Plain text
18914 #: build/C/man2/truncate.2:110
18915 msgid ""
18916 "With B<ftruncate>(), the file must be open for writing; with B<truncate>(), "
18917 "the file must be writable."
18918 msgstr ""
18919
18920 #. type: Plain text
18921 #: build/C/man2/truncate.2:118
18922 msgid "For B<truncate>():"
18923 msgstr ""
18924
18925 #. type: Plain text
18926 #: build/C/man2/truncate.2:124
18927 msgid ""
18928 "Search permission is denied for a component of the path prefix, or the named "
18929 "file is not writable by the user.  (See also B<path_resolution>(7).)"
18930 msgstr ""
18931
18932 #. type: Plain text
18933 #: build/C/man2/truncate.2:129
18934 msgid "The argument I<path> points outside the process's allocated address space."
18935 msgstr ""
18936
18937 #. type: TP
18938 #: build/C/man2/truncate.2:129
18939 #, no-wrap
18940 msgid "B<EFBIG>"
18941 msgstr ""
18942
18943 #. type: Plain text
18944 #: build/C/man2/truncate.2:134
18945 msgid "The argument I<length> is larger than the maximum file size. (XSI)"
18946 msgstr ""
18947
18948 #. type: Plain text
18949 #: build/C/man2/truncate.2:141
18950 msgid ""
18951 "While blocked waiting to complete, the call was interrupted by a signal "
18952 "handler; see B<fcntl>(2)  and B<signal>(7)."
18953 msgstr ""
18954
18955 #. type: Plain text
18956 #: build/C/man2/truncate.2:146
18957 msgid "The argument I<length> is negative or larger than the maximum file size."
18958 msgstr ""
18959
18960 #. type: Plain text
18961 #: build/C/man2/truncate.2:149
18962 msgid "An I/O error occurred updating the inode."
18963 msgstr ""
18964
18965 #. type: Plain text
18966 #: build/C/man2/truncate.2:152
18967 msgid "The named file is a directory."
18968 msgstr ""
18969
18970 #. type: Plain text
18971 #: build/C/man2/truncate.2:155
18972 msgid "Too many symbolic links were encountered in translating the pathname."
18973 msgstr ""
18974
18975 #. type: Plain text
18976 #: build/C/man2/truncate.2:159
18977 msgid ""
18978 "A component of a pathname exceeded 255 characters, or an entire pathname "
18979 "exceeded 1023 characters."
18980 msgstr ""
18981
18982 #. type: Plain text
18983 #: build/C/man2/truncate.2:162
18984 msgid "The named file does not exist."
18985 msgstr ""
18986
18987 #.  This happens for at least MSDOS and VFAT filesystems
18988 #.  on kernel 2.6.13
18989 #. type: Plain text
18990 #: build/C/man2/truncate.2:171
18991 msgid ""
18992 "The underlying filesystem does not support extending a file beyond its "
18993 "current size."
18994 msgstr ""
18995
18996 #. type: Plain text
18997 #: build/C/man2/truncate.2:177
18998 msgid "The file is a pure procedure (shared text) file that is being executed."
18999 msgstr ""
19000
19001 #. type: Plain text
19002 #: build/C/man2/truncate.2:184
19003 msgid ""
19004 "For B<ftruncate>()  the same errors apply, but instead of things that can be "
19005 "wrong with I<path>, we now have things that can be wrong with the file "
19006 "descriptor, I<fd>:"
19007 msgstr ""
19008
19009 #. type: TP
19010 #: build/C/man2/truncate.2:188
19011 #, no-wrap
19012 msgid "B<EBADF> or B<EINVAL>"
19013 msgstr ""
19014
19015 #. type: Plain text
19016 #: build/C/man2/truncate.2:192
19017 msgid "I<fd> is not open for writing."
19018 msgstr ""
19019
19020 #. type: Plain text
19021 #: build/C/man2/truncate.2:196
19022 msgid "I<fd> does not reference a regular file."
19023 msgstr ""
19024
19025 #.  POSIX.1-1996 has
19026 #.  .BR ftruncate ().
19027 #.  POSIX.1-2001 also has
19028 #.  .BR truncate (),
19029 #.  as an XSI extension.
19030 #.  .LP
19031 #.  SVr4 documents additional
19032 #.  .BR truncate ()
19033 #.  error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK.  SVr4 documents for
19034 #.  .BR ftruncate ()
19035 #.  an additional EAGAIN error condition.
19036 #. type: Plain text
19037 #: build/C/man2/truncate.2:209
19038 msgid "4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD)."
19039 msgstr ""
19040
19041 #.  At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
19042 #. type: Plain text
19043 #: build/C/man2/truncate.2:230
19044 msgid ""
19045 "The details in DESCRIPTION are for XSI-compliant systems.  For "
19046 "non-XSI-compliant systems, the POSIX standard allows two behaviors for "
19047 "B<ftruncate>()  when I<length> exceeds the file length (note that "
19048 "B<truncate>()  is not specified at all in such an environment): either "
19049 "returning an error, or extending the file.  Like most UNIX implementations, "
19050 "Linux follows the XSI requirement when dealing with native filesystems.  "
19051 "However, some nonnative filesystems do not permit B<truncate>()  and "
19052 "B<ftruncate>()  to be used to extend a file beyond its current length: a "
19053 "notable example on Linux is VFAT."
19054 msgstr ""
19055
19056 #. type: Plain text
19057 #: build/C/man2/truncate.2:244
19058 msgid ""
19059 "The original Linux B<truncate>()  and B<ftruncate>()  system calls were not "
19060 "designed to handle large file offsets.  Consequently, Linux 2.4 added "
19061 "B<truncate64>()  and B<ftruncate64>()  system calls that handle large "
19062 "files.  However, these details can be ignored by applications using glibc, "
19063 "whose wrapper functions transparently employ the more recent system calls "
19064 "where they are available."
19065 msgstr ""
19066
19067 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12037
19068 #. type: Plain text
19069 #: build/C/man2/truncate.2:257
19070 msgid ""
19071 "A header file bug in glibc 2.12 meant that the minimum value of "
19072 "B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>()  was "
19073 "200809L instead of 200112L.  This has been fixed in later glibc versions."
19074 msgstr ""
19075
19076 #. type: Plain text
19077 #: build/C/man2/truncate.2:261
19078 msgid "B<open>(2), B<stat>(2), B<path_resolution>(7)"
19079 msgstr ""
19080
19081 #. type: TH
19082 #: build/C/man3/ualarm.3:24
19083 #, no-wrap
19084 msgid "UALARM"
19085 msgstr ""
19086
19087 #. type: TH
19088 #: build/C/man3/ualarm.3:24
19089 #, no-wrap
19090 msgid "2013-12-23"
19091 msgstr ""
19092
19093 #. type: Plain text
19094 #: build/C/man3/ualarm.3:27
19095 msgid "ualarm - schedule signal after given number of microseconds"
19096 msgstr ""
19097
19098 #. type: Plain text
19099 #: build/C/man3/ualarm.3:32
19100 #, no-wrap
19101 msgid "B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<interval>B<);>\n"
19102 msgstr ""
19103
19104 #. type: Plain text
19105 #: build/C/man3/ualarm.3:40
19106 msgid "B<ualarm>():"
19107 msgstr ""
19108
19109 #. type: Plain text
19110 #: build/C/man3/ualarm.3:69
19111 msgid ""
19112 "The B<ualarm>()  function causes the signal B<SIGALRM> to be sent to the "
19113 "invoking process after (not less than)  I<usecs> microseconds.  The delay "
19114 "may be lengthened slightly by any system activity or by the time spent "
19115 "processing the call or by the granularity of system timers."
19116 msgstr ""
19117
19118 #. type: Plain text
19119 #: build/C/man3/ualarm.3:73
19120 msgid "Unless caught or ignored, the B<SIGALRM> signal will terminate the process."
19121 msgstr ""
19122
19123 #. type: Plain text
19124 #: build/C/man3/ualarm.3:81
19125 msgid ""
19126 "If the I<interval> argument is nonzero, further B<SIGALRM> signals will be "
19127 "sent every I<interval> microseconds after the first."
19128 msgstr ""
19129
19130 #. type: Plain text
19131 #: build/C/man3/ualarm.3:84
19132 msgid ""
19133 "This function returns the number of microseconds remaining for any alarm "
19134 "that was previously set, or 0 if no alarm was pending."
19135 msgstr ""
19136
19137 #. type: Plain text
19138 #: build/C/man3/ualarm.3:88
19139 msgid "Interrupted by a signal."
19140 msgstr ""
19141
19142 #. type: Plain text
19143 #: build/C/man3/ualarm.3:92
19144 msgid ""
19145 "I<usecs> or I<interval> is not smaller than 1000000.  (On systems where that "
19146 "is considered an error.)"
19147 msgstr ""
19148
19149 #. type: Plain text
19150 #: build/C/man3/ualarm.3:97
19151 msgid "The B<ualarm>()  function is thread-safe."
19152 msgstr ""
19153
19154 #. type: Plain text
19155 #: build/C/man3/ualarm.3:105
19156 msgid ""
19157 "4.3BSD, POSIX.1-2001.  POSIX.1-2001 marks B<ualarm>()  as obsolete.  "
19158 "POSIX.1-2008 removes the specification of B<ualarm>().  4.3BSD, SUSv2, and "
19159 "POSIX do not define any errors."
19160 msgstr ""
19161
19162 #.  This case is not documented in HP-US, Solar, FreeBSD, NetBSD, or OpenBSD!
19163 #. type: Plain text
19164 #: build/C/man3/ualarm.3:112
19165 msgid ""
19166 "POSIX.1-2001 does not specify what happens if the I<usecs> argument is 0.  "
19167 "On Linux (and probably most other systems), the effect is to cancel any "
19168 "pending alarm."
19169 msgstr ""
19170
19171 #. type: Plain text
19172 #: build/C/man3/ualarm.3:125
19173 msgid ""
19174 "The type I<useconds_t> is an unsigned integer type capable of holding "
19175 "integers in the range [0,1000000].  On the original BSD implementation, and "
19176 "in glibc before version 2.1, the arguments to B<ualarm>()  were instead "
19177 "typed as I<unsigned int>.  Programs will be more portable if they never "
19178 "mention I<useconds_t> explicitly."
19179 msgstr ""
19180
19181 #. type: Plain text
19182 #: build/C/man3/ualarm.3:139
19183 msgid ""
19184 "The interaction of this function with other timer functions such as "
19185 "B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), "
19186 "B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), "
19187 "B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3)  is unspecified."
19188 msgstr ""
19189
19190 #. type: Plain text
19191 #: build/C/man3/ualarm.3:147
19192 msgid ""
19193 "This function is obsolete.  Use B<setitimer>(2)  or POSIX interval timers "
19194 "(B<timer_create>(2), etc.)  instead."
19195 msgstr ""
19196
19197 #. type: Plain text
19198 #: build/C/man3/ualarm.3:155
19199 msgid ""
19200 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
19201 "B<setitimer>(2), B<usleep>(3), B<time>(7)"
19202 msgstr ""
19203
19204 #. type: TH
19205 #: build/C/man2/umask.2:34
19206 #, no-wrap
19207 msgid "UMASK"
19208 msgstr ""
19209
19210 #. type: TH
19211 #: build/C/man2/umask.2:34
19212 #, no-wrap
19213 msgid "2008-01-09"
19214 msgstr ""
19215
19216 #. type: Plain text
19217 #: build/C/man2/umask.2:37
19218 msgid "umask - set file mode creation mask"
19219 msgstr ""
19220
19221 #. type: Plain text
19222 #: build/C/man2/umask.2:43
19223 msgid "B<mode_t umask(mode_t >I<mask>B<);>"
19224 msgstr ""
19225
19226 #. type: Plain text
19227 #: build/C/man2/umask.2:50
19228 msgid ""
19229 "B<umask>()  sets the calling process's file mode creation mask (umask) to "
19230 "I<mask> & 0777 (i.e., only the file permission bits of I<mask> are used), "
19231 "and returns the previous value of the mask."
19232 msgstr ""
19233
19234 #.  e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open()
19235 #.  but NOT the System V IPC *get() calls
19236 #. type: Plain text
19237 #: build/C/man2/umask.2:65
19238 msgid ""
19239 "The umask is used by B<open>(2), B<mkdir>(2), and other system calls that "
19240 "create files to modify the permissions placed on newly created files or "
19241 "directories.  Specifically, permissions in the umask are turned off from the "
19242 "I<mode> argument to B<open>(2)  and B<mkdir>(2)."
19243 msgstr ""
19244
19245 #. type: Plain text
19246 #: build/C/man2/umask.2:70
19247 msgid ""
19248 "The constants that should be used to specify I<mask> are described under "
19249 "B<stat>(2)."
19250 msgstr ""
19251
19252 #. type: Plain text
19253 #: build/C/man2/umask.2:79
19254 msgid ""
19255 "The typical default value for the process umask is I<S_IWGRP\\ |\\ S_IWOTH> "
19256 "(octal 022).  In the usual case where the I<mode> argument to B<open>(2)  is "
19257 "specified as:"
19258 msgstr ""
19259
19260 #. type: Plain text
19261 #: build/C/man2/umask.2:82
19262 #, no-wrap
19263 msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\n"
19264 msgstr ""
19265
19266 #. type: Plain text
19267 #: build/C/man2/umask.2:86
19268 msgid ""
19269 "(octal 0666) when creating a new file, the permissions on the resulting file "
19270 "will be:"
19271 msgstr ""
19272
19273 #. type: Plain text
19274 #: build/C/man2/umask.2:89
19275 #, no-wrap
19276 msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n"
19277 msgstr ""
19278
19279 #. type: Plain text
19280 #: build/C/man2/umask.2:92
19281 msgid "(because 0666 & ~022 = 0644; i.e., rw-r--r--)."
19282 msgstr ""
19283
19284 #. type: Plain text
19285 #: build/C/man2/umask.2:95
19286 msgid ""
19287 "This system call always succeeds and the previous value of the mask is "
19288 "returned."
19289 msgstr ""
19290
19291 #. type: Plain text
19292 #: build/C/man2/umask.2:103
19293 msgid ""
19294 "A child process created via B<fork>(2)  inherits its parent's umask.  The "
19295 "umask is left unchanged by B<execve>(2)."
19296 msgstr ""
19297
19298 #. type: Plain text
19299 #: build/C/man2/umask.2:118
19300 msgid ""
19301 "The umask setting also affects the permissions assigned to POSIX IPC objects "
19302 "(B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and "
19303 "UNIX domain sockets (B<unix>(7))  created by the process.  The umask does "
19304 "not affect the permissions assigned to System\\ V IPC objects created by the "
19305 "process (using B<msgget>(2), B<semget>(2), B<shmget>(2))."
19306 msgstr ""
19307
19308 #. type: Plain text
19309 #: build/C/man2/umask.2:124
19310 msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2), B<acl>(5)"
19311 msgstr ""
19312
19313 #. type: TH
19314 #: build/C/man2/uname.2:27
19315 #, no-wrap
19316 msgid "UNAME"
19317 msgstr ""
19318
19319 #. type: Plain text
19320 #: build/C/man2/uname.2:30
19321 msgid "uname - get name and information about current kernel"
19322 msgstr ""
19323
19324 #. type: Plain text
19325 #: build/C/man2/uname.2:32
19326 msgid "B<#include E<lt>sys/utsname.hE<gt>>"
19327 msgstr ""
19328
19329 #. type: Plain text
19330 #: build/C/man2/uname.2:34
19331 msgid "B<int uname(struct utsname *>I<buf>B<);>"
19332 msgstr ""
19333
19334 #. type: Plain text
19335 #: build/C/man2/uname.2:42
19336 msgid ""
19337 "B<uname>()  returns system information in the structure pointed to by "
19338 "I<buf>.  The I<utsname> struct is defined in I<E<lt>sys/utsname.hE<gt>>:"
19339 msgstr ""
19340
19341 #. type: Plain text
19342 #: build/C/man2/uname.2:56
19343 #, no-wrap
19344 msgid ""
19345 "struct utsname {\n"
19346 "    char sysname[];    /* Operating system name (e.g., \"Linux\") */\n"
19347 "    char nodename[];   /* Name within \"some implementation-defined\n"
19348 "                          network\" */\n"
19349 "    char release[];    /* Operating system release (e.g., \"2.6.28\") */\n"
19350 "    char version[];    /* Operating system version */\n"
19351 "    char machine[];    /* Hardware identifier */\n"
19352 "#ifdef _GNU_SOURCE\n"
19353 "    char domainname[]; /* NIS or YP domain name */\n"
19354 "#endif\n"
19355 "};\n"
19356 msgstr ""
19357
19358 #. type: Plain text
19359 #: build/C/man2/uname.2:63
19360 msgid ""
19361 "The length of the arrays in a I<struct utsname> is unspecified (see NOTES); "
19362 "the fields are terminated by a null byte (\\(aq\\e0\\(aq)."
19363 msgstr ""
19364
19365 #. type: Plain text
19366 #: build/C/man2/uname.2:73
19367 msgid "I<buf> is not valid."
19368 msgstr ""
19369
19370 #. type: Plain text
19371 #: build/C/man2/uname.2:78
19372 msgid "SVr4, POSIX.1-2001.  There is no B<uname>()  call in 4.3BSD."
19373 msgstr ""
19374
19375 #. type: Plain text
19376 #: build/C/man2/uname.2:82
19377 msgid "The I<domainname> member (the NIS or YP domain name) is a GNU extension."
19378 msgstr ""
19379
19380 #. type: Plain text
19381 #: build/C/man2/uname.2:98
19382 msgid ""
19383 "This is a system call, and the operating system presumably knows its name, "
19384 "release and version.  It also knows what hardware it runs on.  So, four of "
19385 "the fields of the struct are meaningful.  On the other hand, the field "
19386 "I<nodename> is meaningless: it gives the name of the present machine in some "
19387 "undefined network, but typically machines are in more than one network and "
19388 "have several names.  Moreover, the kernel has no way of knowing about such "
19389 "things, so it has to be told what to answer here.  The same holds for the "
19390 "additional I<domainname> field."
19391 msgstr ""
19392
19393 #. type: Plain text
19394 #: build/C/man2/uname.2:116
19395 msgid ""
19396 "To this end, Linux uses the system calls B<sethostname>(2)  and "
19397 "B<setdomainname>(2).  Note that there is no standard that says that the "
19398 "hostname set by B<sethostname>(2)  is the same string as the I<nodename> "
19399 "field of the struct returned by B<uname>()  (indeed, some systems allow a "
19400 "256-byte hostname and an 8-byte nodename), but this is true on Linux.  The "
19401 "same holds for B<setdomainname>(2)  and the I<domainname> field."
19402 msgstr ""
19403
19404 #. type: Plain text
19405 #: build/C/man2/uname.2:131
19406 msgid ""
19407 "The length of the fields in the struct varies.  Some operating systems or "
19408 "libraries use a hardcoded 9 or 33 or 65 or 257.  Other systems use "
19409 "B<SYS_NMLN> or B<_SYS_NMLN> or B<UTSLEN> or B<_UTSNAME_LENGTH>.  Clearly, it "
19410 "is a bad idea to use any of these constants; just use sizeof(...).  Often "
19411 "257 is chosen in order to have room for an internet hostname."
19412 msgstr ""
19413
19414 #. type: Plain text
19415 #: build/C/man2/uname.2:138
19416 msgid ""
19417 "Part of the utsname information is also accessible via "
19418 "I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, "
19419 "I<domainname>}."
19420 msgstr ""
19421
19422 #.  That was back before Linux 1.0
19423 #.  That was also back before Linux 1.0
19424 #. type: Plain text
19425 #: build/C/man2/uname.2:167
19426 msgid ""
19427 "Over time, increases in the size of the I<utsname> structure have led to "
19428 "three successive versions of B<uname>(): I<sys_olduname>()  (slot "
19429 "I<__NR_oldolduname>), I<sys_uname>()  (slot I<__NR_olduname>), and "
19430 "I<sys_newuname>()  (slot I<__NR_uname)>.  The first one used length 9 for "
19431 "all fields; the second used 65; the third also uses 65 but adds the "
19432 "I<domainname> field.  The glibc B<uname>()  wrapper function hides these "
19433 "details from applications, invoking the most recent version of the system "
19434 "call provided by the kernel."
19435 msgstr ""
19436
19437 #. type: Plain text
19438 #: build/C/man2/uname.2:172
19439 msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2), B<namespaces>(7)"
19440 msgstr ""
19441
19442 #. type: TH
19443 #: build/C/man2/uselib.2:31
19444 #, no-wrap
19445 msgid "USELIB"
19446 msgstr ""
19447
19448 #. type: TH
19449 #: build/C/man2/uselib.2:31
19450 #, no-wrap
19451 msgid "2005-01-09"
19452 msgstr ""
19453
19454 #. type: Plain text
19455 #: build/C/man2/uselib.2:34
19456 msgid "uselib - load shared library"
19457 msgstr ""
19458
19459 #. type: Plain text
19460 #: build/C/man2/uselib.2:38
19461 msgid "B<int uselib(const char *>I<library>B<);>"
19462 msgstr ""
19463
19464 #. type: Plain text
19465 #: build/C/man2/uselib.2:48
19466 msgid ""
19467 "The system call B<uselib>()  serves to load a shared library to be used by "
19468 "the calling process.  It is given a pathname.  The address where to load is "
19469 "found in the library itself.  The library can have any recognized binary "
19470 "format."
19471 msgstr ""
19472
19473 #. type: Plain text
19474 #: build/C/man2/uselib.2:59
19475 msgid ""
19476 "In addition to all of the error codes returned by B<open>(2)  and "
19477 "B<mmap>(2), the following may also be returned:"
19478 msgstr ""
19479
19480 #. type: Plain text
19481 #: build/C/man2/uselib.2:67
19482 msgid ""
19483 "The library specified by I<library> does not have read or execute "
19484 "permission, or the caller does not have search permission for one of the "
19485 "directories in the path prefix.  (See also B<path_resolution>(7).)"
19486 msgstr ""
19487
19488 #. type: Plain text
19489 #: build/C/man2/uselib.2:76
19490 msgid ""
19491 "The file specified by I<library> is not an executable of a known type; for "
19492 "example, it does not have the correct magic numbers."
19493 msgstr ""
19494
19495 #. type: Plain text
19496 #: build/C/man2/uselib.2:80
19497 msgid ""
19498 "B<uselib>()  is Linux-specific, and should not be used in programs intended "
19499 "to be portable."
19500 msgstr ""
19501
19502 #. type: Plain text
19503 #: build/C/man2/uselib.2:85
19504 msgid ""
19505 "B<uselib>()  was used by early libc startup code to load the shared "
19506 "libraries with names found in an array of names in the binary."
19507 msgstr ""
19508
19509 #.  libc 4.3.1f - changelog 1993-03-02
19510 #.  libc 4.3.4 - changelog 1993-04-21
19511 #. type: Plain text
19512 #: build/C/man2/uselib.2:95
19513 msgid ""
19514 "Since libc 4.3.2, startup code tries to prefix these names with "
19515 "\"/usr/lib\", \"/lib\" and \"\" before giving up.  In libc 4.3.4 and later "
19516 "these names are looked for in the directories found in B<LD_LIBRARY_PATH>, "
19517 "and if not found there, prefixes \"/usr/lib\", \"/lib\" and \"/\" are tried."
19518 msgstr ""
19519
19520 #. type: Plain text
19521 #: build/C/man2/uselib.2:100
19522 msgid ""
19523 "From libc 4.4.4 on only the library \"/lib/ld.so\" is loaded, so that this "
19524 "dynamic library can load the remaining libraries needed (again using this "
19525 "call).  This is also the state of affairs in libc5."
19526 msgstr ""
19527
19528 #. type: Plain text
19529 #: build/C/man2/uselib.2:102
19530 msgid "glibc2 does not use this call."
19531 msgstr ""
19532
19533 #. type: Plain text
19534 #: build/C/man2/uselib.2:112
19535 msgid ""
19536 "B<ar>(1), B<gcc>(1), B<ld>(1), B<ldd>(1), B<mmap>(2), B<open>(2), "
19537 "B<dlopen>(3), B<capabilities>(7), B<ld.so>(8)"
19538 msgstr ""
19539
19540 #. type: TH
19541 #: build/C/man3/usleep.3:33
19542 #, no-wrap
19543 msgid "USLEEP"
19544 msgstr ""
19545
19546 #. type: TH
19547 #: build/C/man3/usleep.3:33
19548 #, no-wrap
19549 msgid "2013-12-10"
19550 msgstr ""
19551
19552 #. type: Plain text
19553 #: build/C/man3/usleep.3:36
19554 msgid "usleep - suspend execution for microsecond intervals"
19555 msgstr ""
19556
19557 #. type: Plain text
19558 #: build/C/man3/usleep.3:41
19559 #, no-wrap
19560 msgid "B<int usleep(useconds_t >I<usec>B<);>\n"
19561 msgstr ""
19562
19563 #. type: Plain text
19564 #: build/C/man3/usleep.3:49
19565 msgid "B<usleep>():"
19566 msgstr ""
19567
19568 #. type: Plain text
19569 #: build/C/man3/usleep.3:75
19570 msgid ""
19571 "The B<usleep>()  function suspends execution of the calling thread for (at "
19572 "least) I<usec> microseconds.  The sleep may be lengthened slightly by any "
19573 "system activity or by the time spent processing the call or by the "
19574 "granularity of system timers."
19575 msgstr ""
19576
19577 #. type: Plain text
19578 #: build/C/man3/usleep.3:82
19579 msgid ""
19580 "The B<usleep>()  function returns 0 on success.  On error, -1 is returned, "
19581 "with I<errno> set to indicate the cause of the error."
19582 msgstr ""
19583
19584 #. type: Plain text
19585 #: build/C/man3/usleep.3:87
19586 msgid "Interrupted by a signal; see B<signal>(7)."
19587 msgstr ""
19588
19589 #. type: Plain text
19590 #: build/C/man3/usleep.3:91
19591 msgid ""
19592 "I<usec> is not smaller than 1000000.  (On systems where that is considered "
19593 "an error.)"
19594 msgstr ""
19595
19596 #. type: Plain text
19597 #: build/C/man3/usleep.3:96
19598 msgid "The B<usleep>()  function is thread-safe."
19599 msgstr ""
19600
19601 #. type: Plain text
19602 #: build/C/man3/usleep.3:103
19603 msgid ""
19604 "4.3BSD, POSIX.1-2001.  POSIX.1-2001 declares this function obsolete; use "
19605 "B<nanosleep>(2)  instead.  POSIX.1-2008 removes the specification of "
19606 "B<usleep>()."
19607 msgstr ""
19608
19609 #. type: Plain text
19610 #: build/C/man3/usleep.3:110
19611 msgid ""
19612 "On the original BSD implementation, and in glibc before version 2.2.2, the "
19613 "return type of this function is I<void>.  The POSIX version returns I<int>, "
19614 "and this is also the prototype used since glibc 2.2.2."
19615 msgstr ""
19616
19617 #. type: Plain text
19618 #: build/C/man3/usleep.3:114
19619 msgid "Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001."
19620 msgstr ""
19621
19622 #. type: Plain text
19623 #: build/C/man3/usleep.3:122
19624 msgid ""
19625 "The type I<useconds_t> is an unsigned integer type capable of holding "
19626 "integers in the range [0,1000000].  Programs will be more portable if they "
19627 "never mention this type explicitly.  Use"
19628 msgstr ""
19629
19630 #. type: Plain text
19631 #: build/C/man3/usleep.3:130
19632 #, no-wrap
19633 msgid ""
19634 "#include E<lt>unistd.hE<gt>\n"
19635 "\\&...\n"
19636 "    unsigned int usecs;\n"
19637 "\\&...\n"
19638 "    usleep(usecs);\n"
19639 msgstr ""
19640
19641 #. type: Plain text
19642 #: build/C/man3/usleep.3:147
19643 msgid ""
19644 "The interaction of this function with the B<SIGALRM> signal, and with other "
19645 "timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), "
19646 "B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), "
19647 "B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), "
19648 "B<ualarm>(3)  is unspecified."
19649 msgstr ""
19650
19651 #. type: Plain text
19652 #: build/C/man3/usleep.3:156
19653 msgid ""
19654 "B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
19655 "B<setitimer>(2), B<sleep>(3), B<ualarm>(3), B<time>(7)"
19656 msgstr ""
19657
19658 #. type: TH
19659 #: build/C/man2/vfork.2:28
19660 #, no-wrap
19661 msgid "VFORK"
19662 msgstr ""
19663
19664 #. type: TH
19665 #: build/C/man2/vfork.2:28
19666 #, no-wrap
19667 msgid "2012-08-05"
19668 msgstr ""
19669
19670 #. type: Plain text
19671 #: build/C/man2/vfork.2:31
19672 msgid "vfork - create a child process and block parent"
19673 msgstr ""
19674
19675 #. type: Plain text
19676 #: build/C/man2/vfork.2:37
19677 msgid "B<pid_t vfork(void);>"
19678 msgstr ""
19679
19680 #. type: Plain text
19681 #: build/C/man2/vfork.2:44
19682 msgid "B<vfork>():"
19683 msgstr ""
19684
19685 #. type: SS
19686 #: build/C/man2/vfork.2:63
19687 #, no-wrap
19688 msgid "Standard description"
19689 msgstr ""
19690
19691 #. type: Plain text
19692 #: build/C/man2/vfork.2:82
19693 msgid ""
19694 "(From POSIX.1)  The B<vfork>()  function has the same effect as B<fork>(2), "
19695 "except that the behavior is undefined if the process created by B<vfork>()  "
19696 "either modifies any data other than a variable of type I<pid_t> used to "
19697 "store the return value from B<vfork>(), or returns from the function in "
19698 "which B<vfork>()  was called, or calls any other function before "
19699 "successfully calling B<_exit>(2)  or one of the B<exec>(3)  family of "
19700 "functions."
19701 msgstr ""
19702
19703 #. type: SS
19704 #: build/C/man2/vfork.2:82
19705 #, no-wrap
19706 msgid "Linux description"
19707 msgstr ""
19708
19709 #. type: Plain text
19710 #: build/C/man2/vfork.2:89
19711 msgid ""
19712 "B<vfork>(), just like B<fork>(2), creates a child process of the calling "
19713 "process.  For details and return value and errors, see B<fork>(2)."
19714 msgstr ""
19715
19716 #. type: Plain text
19717 #: build/C/man2/vfork.2:98
19718 msgid ""
19719 "B<vfork>()  is a special case of B<clone>(2).  It is used to create new "
19720 "processes without copying the page tables of the parent process.  It may be "
19721 "useful in performance-sensitive applications where a child is created which "
19722 "then immediately issues an B<execve>(2)."
19723 msgstr ""
19724
19725 #. type: Plain text
19726 #: build/C/man2/vfork.2:115
19727 msgid ""
19728 "B<vfork>()  differs from B<fork>(2)  in that the calling thread is suspended "
19729 "until the child terminates (either normally, by calling B<_exit>(2), or "
19730 "abnormally, after delivery of a fatal signal), or it makes a call to "
19731 "B<execve>(2).  Until that point, the child shares all memory with its "
19732 "parent, including the stack.  The child must not return from the current "
19733 "function or call B<exit>(3), but may call B<_exit>(2)."
19734 msgstr ""
19735
19736 #. type: Plain text
19737 #: build/C/man2/vfork.2:126
19738 msgid ""
19739 "As with B<fork>(2), the child process created by B<vfork>()  inherits copies "
19740 "of various of the caller's process attributes (e.g., file descriptors, "
19741 "signal dispositions, and current working directory); the B<vfork>()  call "
19742 "differs only in the treatment of the virtual address space, as described "
19743 "above."
19744 msgstr ""
19745
19746 #. type: Plain text
19747 #: build/C/man2/vfork.2:132
19748 msgid ""
19749 "Signals sent to the parent arrive after the child releases the parent's "
19750 "memory (i.e., after the child terminates or calls B<execve>(2))."
19751 msgstr ""
19752
19753 #. type: SS
19754 #: build/C/man2/vfork.2:132
19755 #, no-wrap
19756 msgid "Historic description"
19757 msgstr ""
19758
19759 #. type: Plain text
19760 #: build/C/man2/vfork.2:159
19761 msgid ""
19762 "Under Linux, B<fork>(2)  is implemented using copy-on-write pages, so the "
19763 "only penalty incurred by B<fork>(2)  is the time and memory required to "
19764 "duplicate the parent's page tables, and to create a unique task structure "
19765 "for the child.  However, in the bad old days a B<fork>(2)  would require "
19766 "making a complete copy of the caller's data space, often needlessly, since "
19767 "usually immediately afterward an B<exec>(3)  is done.  Thus, for greater "
19768 "efficiency, BSD introduced the B<vfork>()  system call, which did not fully "
19769 "copy the address space of the parent process, but borrowed the parent's "
19770 "memory and thread of control until a call to B<execve>(2)  or an exit "
19771 "occurred.  The parent process was suspended while the child was using its "
19772 "resources.  The use of B<vfork>()  was tricky: for example, not modifying "
19773 "data in the parent process depended on knowing which variables were held in "
19774 "a register."
19775 msgstr ""
19776
19777 #. type: Plain text
19778 #: build/C/man2/vfork.2:163
19779 msgid ""
19780 "4.3BSD; POSIX.1-2001 (but marked OBSOLETE).  POSIX.1-2008 removes the "
19781 "specification of B<vfork>()."
19782 msgstr ""
19783
19784 #.  In AIXv3.1 vfork is equivalent to fork.
19785 #. type: Plain text
19786 #: build/C/man2/vfork.2:174
19787 msgid ""
19788 "The requirements put on B<vfork>()  by the standards are weaker than those "
19789 "put on B<fork>(2), so an implementation where the two are synonymous is "
19790 "compliant.  In particular, the programmer cannot rely on the parent "
19791 "remaining blocked until the child either terminates or calls B<execve>(2), "
19792 "and cannot rely on any specific behavior with respect to shared memory."
19793 msgstr ""
19794
19795 #. type: Plain text
19796 #: build/C/man2/vfork.2:193
19797 msgid ""
19798 "Some consider the semantics of B<vfork>()  to be an architectural blemish, "
19799 "and the 4.2BSD man page stated: \"This system call will be eliminated when "
19800 "proper system sharing mechanisms are implemented.  Users should not depend "
19801 "on the memory sharing semantics of B<vfork>()  as it will, in that case, be "
19802 "made synonymous to B<fork>(2).\" However, even though modern memory "
19803 "management hardware has decreased the performance difference between "
19804 "B<fork>(2)  and B<vfork>(), there are various reasons why Linux and other "
19805 "systems have retained B<vfork>():"
19806 msgstr ""
19807
19808 #. type: Plain text
19809 #: build/C/man2/vfork.2:197
19810 msgid ""
19811 "Some performance-critical applications require the small performance "
19812 "advantage conferred by B<vfork>()."
19813 msgstr ""
19814
19815 #.  http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
19816 #.  http://developers.sun.com/solaris/articles/subprocess/subprocess.html
19817 #.  http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
19818 #. type: Plain text
19819 #: build/C/man2/vfork.2:213
19820 msgid ""
19821 "B<vfork>()  can be implemented on systems that lack a memory-management unit "
19822 "(MMU), but B<fork>(2)  can't be implemented on such systems.  (POSIX.1-2008 "
19823 "removed B<vfork>()  from the standard; the POSIX rationale for the "
19824 "B<posix_spawn>(3)  function notes that that function, which provides "
19825 "functionality equivalent to B<fork>(2)+B<exec>(3), is designed to be "
19826 "implementable on systems that lack an MMU.)"
19827 msgstr ""
19828
19829 #. type: SS
19830 #: build/C/man2/vfork.2:213
19831 #, no-wrap
19832 msgid "Linux notes"
19833 msgstr ""
19834
19835 #. type: Plain text
19836 #: build/C/man2/vfork.2:224
19837 msgid ""
19838 "Fork handlers established using B<pthread_atfork>(3)  are not called when a "
19839 "multithreaded program employing the NPTL threading library calls "
19840 "B<vfork>().  Fork handlers are called in this case in a program using the "
19841 "LinuxThreads threading library.  (See B<pthreads>(7)  for a description of "
19842 "Linux threading libraries.)"
19843 msgstr ""
19844
19845 #. type: Plain text
19846 #: build/C/man2/vfork.2:232
19847 msgid ""
19848 "A call to B<vfork>()  is equivalent to calling B<clone>(2)  with I<flags> "
19849 "specified as:"
19850 msgstr ""
19851
19852 #. type: Plain text
19853 #: build/C/man2/vfork.2:234
19854 #, no-wrap
19855 msgid "     CLONE_VM | CLONE_VFORK | SIGCHLD\n"
19856 msgstr ""
19857
19858 #.  In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
19859 #.  present, but definitely on its way out'.
19860 #. type: Plain text
19861 #: build/C/man2/vfork.2:252
19862 msgid ""
19863 "The B<vfork>()  system call appeared in 3.0BSD.  In 4.4BSD it was made "
19864 "synonymous to B<fork>(2)  but NetBSD introduced it again, cf.  E<.UR "
19865 "http://www.netbsd.org\\:/Documentation\\:/kernel\\:/vfork.html> E<.UE .> In "
19866 "Linux, it has been equivalent to B<fork>(2)  until 2.2.0-pre6 or so.  Since "
19867 "2.2.0-pre9 (on i386, somewhat later on other architectures) it is an "
19868 "independent system call.  Support was added in glibc 2.0.112."
19869 msgstr ""
19870
19871 #
19872 #.  As far as I can tell, the following is not true in 2.6.19:
19873 #.  Currently (Linux 2.3.25),
19874 #.  .BR strace (1)
19875 #.  cannot follow
19876 #.  .BR vfork ()
19877 #.  and requires a kernel patch.
19878 #. type: Plain text
19879 #: build/C/man2/vfork.2:273
19880 msgid ""
19881 "Details of the signal handling are obscure and differ between systems.  The "
19882 "BSD man page states: \"To avoid a possible deadlock situation, processes "
19883 "that are children in the middle of a B<vfork>()  are never sent B<SIGTTOU> "
19884 "or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input "
19885 "attempts result in an end-of-file indication.\""
19886 msgstr ""
19887
19888 #. type: Plain text
19889 #: build/C/man2/vfork.2:279
19890 msgid "B<clone>(2), B<execve>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
19891 msgstr ""
19892
19893 #. type: TH
19894 #: build/C/man2/vhangup.2:28
19895 #, no-wrap
19896 msgid "VHANGUP"
19897 msgstr ""
19898
19899 #. type: TH
19900 #: build/C/man2/vhangup.2:28
19901 #, no-wrap
19902 msgid "2007-07-26"
19903 msgstr ""
19904
19905 #. type: Plain text
19906 #: build/C/man2/vhangup.2:31
19907 msgid "vhangup - virtually hangup the current terminal"
19908 msgstr ""
19909
19910 #. type: Plain text
19911 #: build/C/man2/vhangup.2:35
19912 msgid "B<int vhangup(void);>"
19913 msgstr ""
19914
19915 #. type: Plain text
19916 #: build/C/man2/vhangup.2:44
19917 msgid "B<vhangup>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
19918 msgstr ""
19919
19920 #. type: Plain text
19921 #: build/C/man2/vhangup.2:50
19922 msgid ""
19923 "B<vhangup>()  simulates a hangup on the current terminal.  This call "
19924 "arranges for other users to have a ``clean'' terminal at login time."
19925 msgstr ""
19926
19927 #. type: Plain text
19928 #: build/C/man2/vhangup.2:63
19929 msgid ""
19930 "The calling process has insufficient privilege to call B<vhangup>(); the "
19931 "B<CAP_SYS_TTY_CONFIG> capability is required."
19932 msgstr ""
19933
19934 #. type: Plain text
19935 #: build/C/man2/vhangup.2:66
19936 msgid ""
19937 "This call is Linux-specific, and should not be used in programs intended to "
19938 "be portable."
19939 msgstr ""
19940
19941 #. type: Plain text
19942 #: build/C/man2/vhangup.2:69
19943 msgid "B<capabilities>(7), B<init>(1)"
19944 msgstr ""