# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2012-05-01 04:39+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. type: TH
#: build/C/man2/_syscall.2:38
#, no-wrap
msgid "_SYSCALL"
msgstr ""

#. type: TH
#: build/C/man2/_syscall.2:38
#, no-wrap
msgid "2007-12-19"
msgstr ""

#. type: TH
#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:30 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man2/dup.2:36 build/C/man7/environ.7:33 build/C/man2/execve.2:37 build/C/man2/exit_group.2:23 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:34 build/C/man2/fork.2:39 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:6 build/C/man2/getdomainname.2:29 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man2/getpagesize.2:23 build/C/man2/gettid.2:26 build/C/man2/idle.2:32 build/C/man2/ioctl.2:39 build/C/man2/ioctl_list.2:27 build/C/man2/ioperm.2:35 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:9 build/C/man2/nice.2:31 build/C/man2/pread.2:23 build/C/man2/set_thread_area.2:7 build/C/man2/setup.2:34 build/C/man2/swapon.2:37 build/C/man2/syscall.2:38 build/C/man2/syscalls.2:29 build/C/man2/sysctl.2:28 build/C/man2/sysinfo.2:14 build/C/man2/truncate.2:41 build/C/man2/umask.2:34 build/C/man2/uname.2:25 build/C/man2/uselib.2:31 build/C/man2/vfork.2:26 build/C/man2/vhangup.2:27
#, no-wrap
msgid "Linux"
msgstr ""

#. type: TH
#: build/C/man2/_syscall.2:38 build/C/man2/access.2:43 build/C/man2/alarm.2:30 build/C/man2/brk.2:30 build/C/man2/chdir.2:33 build/C/man2/chmod.2:31 build/C/man2/chown.2:38 build/C/man2/chroot.2:33 build/C/man2/close.2:35 build/C/man3/confstr.3:29 build/C/man3/crypt.3:35 build/C/man3/daemon.3:34 build/C/man3/des_crypt.3:10 build/C/man2/dup.2:36 build/C/man3/encrypt.3:24 build/C/man7/environ.7:33 build/C/man3/euidaccess.3:26 build/C/man3/exec.3:39 build/C/man2/execve.2:37 build/C/man2/exit_group.2:23 build/C/man2/fcntl.2:61 build/C/man3/fexecve.3:25 build/C/man2/flock.2:34 build/C/man2/fork.2:39 build/C/man3/fpathconf.3:24 build/C/man2/fsync.2:38 build/C/man2/get_thread_area.2:6 build/C/man3/getcwd.3:30 build/C/man2/getdomainname.2:29 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man2/gethostname.2:32 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:39 build/C/man2/getpagesize.2:23 build/C/man2/gettid.2:26 build/C/man3/getumask.3:26 build/C/man3/getusershell.3:28 build/C/man2/idle.2:32 build/C/man2/ioctl.2:39 build/C/man2/ioctl_list.2:27 build/C/man2/ioperm.2:35 build/C/man3/lockf.3:22 build/C/man2/mincore.2:34 build/C/man2/mkdir.2:9 build/C/man2/nice.2:31 build/C/man2/pread.2:23 build/C/man2/set_thread_area.2:7 build/C/man2/setup.2:34 build/C/man5/shells.5:27 build/C/man3/sleep.3:24 build/C/man3/swab.3:29 build/C/man2/swapon.2:37 build/C/man2/syscall.2:38 build/C/man2/syscalls.2:29 build/C/man3/sysconf.3:25 build/C/man2/sysctl.2:28 build/C/man2/sysinfo.2:14 build/C/man3/tcgetpgrp.3:23 build/C/man2/truncate.2:41 build/C/man3/ualarm.3:23 build/C/man2/umask.2:34 build/C/man2/uname.2:25 build/C/man2/uselib.2:31 build/C/man3/usleep.3:31 build/C/man2/vfork.2:26 build/C/man2/vhangup.2:27
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:39 build/C/man2/access.2:44 build/C/man2/alarm.2:31 build/C/man2/brk.2:31 build/C/man2/chdir.2:34 build/C/man2/chmod.2:32 build/C/man2/chown.2:39 build/C/man2/chroot.2:34 build/C/man2/close.2:36 build/C/man3/confstr.3:30 build/C/man3/crypt.3:36 build/C/man3/daemon.3:35 build/C/man3/des_crypt.3:11 build/C/man2/dup.2:37 build/C/man3/encrypt.3:25 build/C/man7/environ.7:34 build/C/man3/euidaccess.3:27 build/C/man3/exec.3:40 build/C/man2/execve.2:38 build/C/man2/exit_group.2:24 build/C/man2/fcntl.2:62 build/C/man3/fexecve.3:26 build/C/man2/flock.2:35 build/C/man2/fork.2:40 build/C/man3/fpathconf.3:25 build/C/man2/fsync.2:39 build/C/man2/get_thread_area.2:7 build/C/man3/getcwd.3:31 build/C/man2/getdomainname.2:30 build/C/man2/getdtablesize.2:28 build/C/man3/gethostid.3:30 build/C/man2/gethostname.2:33 build/C/man3/getlogin.3:29 build/C/man3/getopt.3:40 build/C/man2/getpagesize.2:24 build/C/man2/gettid.2:27 build/C/man3/getumask.3:27 build/C/man3/getusershell.3:29 build/C/man2/idle.2:33 build/C/man2/ioctl.2:40 build/C/man2/ioctl_list.2:28 build/C/man2/ioperm.2:36 build/C/man3/lockf.3:23 build/C/man2/mincore.2:35 build/C/man2/mkdir.2:10 build/C/man2/nice.2:32 build/C/man2/pread.2:24 build/C/man2/set_thread_area.2:8 build/C/man2/setup.2:35 build/C/man5/shells.5:28 build/C/man3/sleep.3:25 build/C/man3/swab.3:30 build/C/man2/swapon.2:38 build/C/man2/syscall.2:39 build/C/man2/syscalls.2:30 build/C/man3/sysconf.3:26 build/C/man2/sysctl.2:29 build/C/man2/sysinfo.2:15 build/C/man3/tcgetpgrp.3:24 build/C/man2/truncate.2:42 build/C/man3/ualarm.3:24 build/C/man2/umask.2:35 build/C/man2/uname.2:26 build/C/man2/uselib.2:32 build/C/man3/usleep.3:32 build/C/man2/vfork.2:27 build/C/man2/vhangup.2:28
#, no-wrap
msgid "NAME"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:41
msgid "_syscall - invoking a system call without library support (OBSOLETE)"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:41 build/C/man2/access.2:46 build/C/man2/alarm.2:33 build/C/man2/brk.2:33 build/C/man2/chdir.2:36 build/C/man2/chmod.2:34 build/C/man2/chown.2:41 build/C/man2/chroot.2:36 build/C/man2/close.2:38 build/C/man3/confstr.3:32 build/C/man3/crypt.3:38 build/C/man3/daemon.3:37 build/C/man3/des_crypt.3:14 build/C/man2/dup.2:39 build/C/man3/encrypt.3:27 build/C/man7/environ.7:36 build/C/man3/euidaccess.3:29 build/C/man3/exec.3:42 build/C/man2/execve.2:40 build/C/man2/exit_group.2:26 build/C/man2/fcntl.2:64 build/C/man3/fexecve.3:28 build/C/man2/flock.2:37 build/C/man2/fork.2:42 build/C/man3/fpathconf.3:27 build/C/man2/fsync.2:41 build/C/man2/get_thread_area.2:9 build/C/man3/getcwd.3:33 build/C/man2/getdomainname.2:32 build/C/man2/getdtablesize.2:30 build/C/man3/gethostid.3:32 build/C/man2/gethostname.2:35 build/C/man3/getlogin.3:31 build/C/man3/getopt.3:43 build/C/man2/getpagesize.2:26 build/C/man2/gettid.2:29 build/C/man3/getumask.3:29 build/C/man3/getusershell.3:31 build/C/man2/idle.2:35 build/C/man2/ioctl.2:42 build/C/man2/ioperm.2:38 build/C/man3/lockf.3:25 build/C/man2/mincore.2:37 build/C/man2/mkdir.2:12 build/C/man2/nice.2:34 build/C/man2/pread.2:26 build/C/man2/set_thread_area.2:10 build/C/man2/setup.2:37 build/C/man3/sleep.3:27 build/C/man3/swab.3:32 build/C/man2/swapon.2:40 build/C/man2/syscall.2:41 build/C/man2/syscalls.2:32 build/C/man3/sysconf.3:28 build/C/man2/sysctl.2:31 build/C/man2/sysinfo.2:17 build/C/man3/tcgetpgrp.3:26 build/C/man2/truncate.2:44 build/C/man3/ualarm.3:26 build/C/man2/umask.2:37 build/C/man2/uname.2:28 build/C/man2/uselib.2:34 build/C/man3/usleep.3:34 build/C/man2/vfork.2:29 build/C/man2/vhangup.2:30
#, no-wrap
msgid "SYNOPSIS"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:43 build/C/man2/get_thread_area.2:11 build/C/man2/set_thread_area.2:12
msgid "B<#include E<lt>linux/unistd.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:45
msgid "A _syscall macro"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:47
msgid "desired system call"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:47 build/C/man2/access.2:52 build/C/man2/alarm.2:39 build/C/man2/brk.2:65 build/C/man2/chdir.2:59 build/C/man2/chmod.2:58 build/C/man2/chown.2:67 build/C/man2/chroot.2:63 build/C/man2/close.2:44 build/C/man3/confstr.3:46 build/C/man3/crypt.3:55 build/C/man3/daemon.3:49 build/C/man3/des_crypt.3:30 build/C/man2/dup.2:52 build/C/man3/encrypt.3:50 build/C/man7/environ.7:41 build/C/man3/euidaccess.3:37 build/C/man3/exec.3:70 build/C/man2/execve.2:46 build/C/man2/exit_group.2:32 build/C/man2/fcntl.2:71 build/C/man3/fexecve.3:53 build/C/man2/flock.2:41 build/C/man2/fork.2:46 build/C/man3/fpathconf.3:35 build/C/man2/fsync.2:61 build/C/man2/get_thread_area.2:15 build/C/man3/getcwd.3:73 build/C/man2/getdomainname.2:51 build/C/man2/getdtablesize.2:57 build/C/man3/gethostid.3:56 build/C/man2/gethostname.2:63 build/C/man3/getlogin.3:52 build/C/man3/getopt.3:77 build/C/man2/getpagesize.2:53 build/C/man2/gettid.2:35 build/C/man3/getumask.3:37 build/C/man3/getusershell.3:55 build/C/man2/idle.2:39 build/C/man2/ioctl.2:46 build/C/man2/ioctl_list.2:30 build/C/man2/ioperm.2:46 build/C/man3/lockf.3:42 build/C/man2/mincore.2:51 build/C/man2/mkdir.2:20 build/C/man2/nice.2:46 build/C/man2/pread.2:51 build/C/man2/set_thread_area.2:16 build/C/man2/setup.2:41 build/C/man5/shells.5:30 build/C/man3/sleep.3:33 build/C/man3/swab.3:39 build/C/man2/swapon.2:50 build/C/man2/syscall.2:49 build/C/man2/syscalls.2:34 build/C/man3/sysconf.3:34 build/C/man2/sysctl.2:39 build/C/man2/sysinfo.2:21 build/C/man3/tcgetpgrp.3:32 build/C/man2/truncate.2:77 build/C/man3/ualarm.3:57 build/C/man2/umask.2:43 build/C/man2/uname.2:32 build/C/man2/uselib.2:38 build/C/man3/usleep.3:65 build/C/man2/vfork.2:60 build/C/man2/vhangup.2:44
#, no-wrap
msgid "DESCRIPTION"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:53
msgid ""
"The important thing to know about a system call is its prototype.  You need "
"to know how many arguments, their types, and the function return type.  "
"There are seven macros that make the actual call into the system easier.  "
"They have the form:"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:56
msgid "_syscallI<X>(I<type>,I<name>,I<type1>,I<arg1>,I<type2>,I<arg2>,...)"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:59
msgid "where"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:62
msgid "I<X> is 0\\(en6, which are the number of arguments taken by the system call"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:64
msgid "I<type> is the return type of the system call"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:66
msgid "I<name> is the name of the system call"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:68
msgid "I<typeN> is the Nth argument's type"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:70
msgid "I<argN> is the name of the Nth argument"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:75
msgid ""
"These macros create a function called I<name> with the arguments you "
"specify.  Once you include the _syscall() in your source file, you call the "
"system call by I<name>."
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:75 build/C/man3/getlogin.3:130 build/C/man3/getusershell.3:79 build/C/man5/shells.5:41
#, no-wrap
msgid "FILES"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:77
msgid "I</usr/include/linux/unistd.h>"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:77 build/C/man2/access.2:148 build/C/man2/alarm.2:61 build/C/man2/brk.2:115 build/C/man2/chdir.2:125 build/C/man2/chmod.2:219 build/C/man2/chown.2:181 build/C/man2/chroot.2:134 build/C/man2/close.2:84 build/C/man3/confstr.3:125 build/C/man3/crypt.3:162 build/C/man3/daemon.3:88 build/C/man3/des_crypt.3:130 build/C/man2/dup.2:170 build/C/man3/encrypt.3:118 build/C/man3/euidaccess.3:74 build/C/man3/exec.3:197 build/C/man2/execve.2:435 build/C/man2/exit_group.2:41 build/C/man2/fcntl.2:1146 build/C/man3/fexecve.3:94 build/C/man2/flock.2:137 build/C/man2/fork.2:187 build/C/man3/fpathconf.3:152 build/C/man2/fsync.2:126 build/C/man2/get_thread_area.2:41 build/C/man3/getcwd.3:206 build/C/man2/getdomainname.2:110 build/C/man2/getdtablesize.2:69 build/C/man3/gethostid.3:92 build/C/man2/gethostname.2:124 build/C/man3/getlogin.3:138 build/C/man3/getopt.3:316 build/C/man2/getpagesize.2:62 build/C/man2/gettid.2:55 build/C/man3/getumask.3:56 build/C/man3/getusershell.3:83 build/C/man2/idle.2:61 build/C/man2/ioctl.2:115 build/C/man2/ioperm.2:95 build/C/man3/lockf.3:148 build/C/man2/mincore.2:134 build/C/man2/mkdir.2:113 build/C/man2/nice.2:75 build/C/man2/pread.2:113 build/C/man2/set_thread_area.2:59 build/C/man2/setup.2:62 build/C/man3/sleep.3:42 build/C/man3/swab.3:56 build/C/man2/swapon.2:151 build/C/man3/sysconf.3:322 build/C/man2/sysctl.2:95 build/C/man2/sysinfo.2:83 build/C/man3/tcgetpgrp.3:104 build/C/man2/truncate.2:193 build/C/man3/ualarm.3:91 build/C/man2/umask.2:93 build/C/man2/uname.2:71 build/C/man2/uselib.2:76 build/C/man3/usleep.3:84 build/C/man2/vfork.2:157 build/C/man2/vhangup.2:62
#, no-wrap
msgid "CONFORMING TO"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:79
msgid "The use of these macros is Linux-specific, and deprecated."
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:79 build/C/man2/access.2:150 build/C/man2/alarm.2:63 build/C/man2/brk.2:123 build/C/man2/chdir.2:127 build/C/man2/chown.2:192 build/C/man2/chroot.2:139 build/C/man2/close.2:87 build/C/man3/crypt.3:167 build/C/man3/daemon.3:94 build/C/man2/dup.2:180 build/C/man3/encrypt.3:129 build/C/man3/euidaccess.3:80 build/C/man3/exec.3:203 build/C/man2/execve.2:443 build/C/man2/exit_group.2:43 build/C/man2/fcntl.2:1196 build/C/man3/fexecve.3:98 build/C/man2/flock.2:146 build/C/man2/fork.2:189 build/C/man3/fpathconf.3:154 build/C/man2/fsync.2:141 build/C/man2/get_thread_area.2:45 build/C/man3/getcwd.3:228 build/C/man2/getdomainname.2:113 build/C/man2/getdtablesize.2:77 build/C/man3/gethostid.3:102 build/C/man2/gethostname.2:130 build/C/man3/getopt.3:348 build/C/man2/getpagesize.2:69 build/C/man2/gettid.2:59 build/C/man3/getumask.3:58 build/C/man2/ioctl.2:130 build/C/man2/ioperm.2:99 build/C/man2/mkdir.2:116 build/C/man2/nice.2:82 build/C/man2/pread.2:115 build/C/man2/set_thread_area.2:63 build/C/man2/setup.2:65 build/C/man2/swapon.2:157 build/C/man2/syscall.2:63 build/C/man2/syscalls.2:616 build/C/man2/sysctl.2:109 build/C/man3/tcgetpgrp.3:106 build/C/man2/truncate.2:206 build/C/man3/ualarm.3:99 build/C/man2/umask.2:95 build/C/man2/uname.2:80 build/C/man2/uselib.2:80 build/C/man3/usleep.3:102 build/C/man2/vfork.2:172
#, no-wrap
msgid "NOTES"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:89
msgid ""
"Starting around kernel 2.6.18, the _syscall macros were removed from header "
"files supplied to user space.  Use B<syscall>(2)  instead.  (Some "
"architectures, notably ia64, never provided the _syscall macros; on those "
"architectures, B<syscall>(2)  was always required.)"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:93
msgid ""
"The _syscall() macros I<do not> produce a prototype.  You may have to create "
"one, especially for C++ users."
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:105
msgid ""
"System calls are not required to return only positive or negative error "
"codes.  You need to read the source to be sure how it will return errors.  "
"Usually, it is the negative of a standard error code, for example, "
"-B<EPERM>.  The _syscall() macros will return the result I<r> of the system "
"call when I<r> is nonnegative, but will return -1 and set the variable "
"I<errno> to -I<r> when I<r> is negative.  For the error codes, see "
"B<errno>(3)."
msgstr ""

#.  The preferred way to invoke system calls that glibc does not know
#.  about yet is via
#.  .BR syscall (2).
#.  However, this mechanism can only be used if using a libc
#.  (such as glibc) that supports
#.  .BR syscall (2),
#.  and if the
#.  .I <sys/syscall.h>
#.  header file contains the required SYS_foo definition.
#.  Otherwise, the use of a _syscall macro is required.
#. type: Plain text
#: build/C/man2/_syscall.2:119
msgid ""
"When defining a system call, the argument types I<must> be passed by-value "
"or by-pointer (for aggregates like structs)."
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:119 build/C/man2/chown.2:288 build/C/man3/confstr.3:127 build/C/man3/encrypt.3:131 build/C/man2/execve.2:527 build/C/man2/fork.2:220 build/C/man3/getopt.3:374 build/C/man5/shells.5:43 build/C/man2/syscall.2:67 build/C/man2/sysctl.2:129
#, no-wrap
msgid "EXAMPLE"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:126
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>errno.hE<gt>\n"
"#include E<lt>linux/unistd.hE<gt>       /* for _syscallX macros/related "
"stuff */\n"
"#include E<lt>linux/kernel.hE<gt>       /* for struct sysinfo */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:128
#, no-wrap
msgid "_syscall1(int, sysinfo, struct sysinfo *, info);\n"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:131
#, no-wrap
msgid ""
"/* Note: if you copy directly from the nroff source, remember to\n"
"REMOVE the extra backslashes in the printf statement. */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:137
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
"    struct sysinfo s_info;\n"
"    int error;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:152
#, no-wrap
msgid ""
"    error = sysinfo(&s_info);\n"
"    printf(\"code error = %d\\en\", error);\n"
"    printf(\"Uptime = %lds\\enLoad: 1 min %lu / 5 min %lu / 15 min "
"%lu\\en\"\n"
"           \"RAM: total %lu / free %lu / shared %lu\\en\"\n"
"           \"Memory in buffers = %lu\\enSwap: total %lu / free %lu\\en\"\n"
"           \"Number of processes = %d\\en\",\n"
"           s_info.uptime, s_info.loads[0],\n"
"           s_info.loads[1], s_info.loads[2],\n"
"           s_info.totalram, s_info.freeram,\n"
"           s_info.sharedram, s_info.bufferram,\n"
"           s_info.totalswap, s_info.freeswap,\n"
"           s_info.procs);\n"
"    exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""

#. type: SS
#: build/C/man2/_syscall.2:153
#, no-wrap
msgid "Sample Output"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:162
#, no-wrap
msgid ""
"code error = 0\n"
"uptime = 502034s\n"
"Load: 1 min 13376 / 5 min 5504 / 15 min 1152\n"
"RAM: total 15343616 / free 827392 / shared 8237056\n"
"Memory in buffers = 5066752\n"
"Swap: total 27881472 / free 24698880\n"
"Number of processes = 40\n"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:163 build/C/man2/access.2:241 build/C/man2/alarm.2:81 build/C/man2/brk.2:165 build/C/man2/chdir.2:136 build/C/man2/chmod.2:221 build/C/man2/chown.2:336 build/C/man2/chroot.2:151 build/C/man2/close.2:125 build/C/man3/confstr.3:144 build/C/man3/crypt.3:228 build/C/man3/daemon.3:102 build/C/man3/des_crypt.3:133 build/C/man2/dup.2:207 build/C/man3/encrypt.3:155 build/C/man7/environ.7:227 build/C/man3/euidaccess.3:95 build/C/man3/exec.3:239 build/C/man2/execve.2:622 build/C/man2/exit_group.2:47 build/C/man2/fcntl.2:1297 build/C/man3/fexecve.3:106 build/C/man2/flock.2:200 build/C/man2/fork.2:225 build/C/man3/fpathconf.3:163 build/C/man2/fsync.2:163 build/C/man2/get_thread_area.2:49 build/C/man3/getcwd.3:247 build/C/man2/getdomainname.2:127 build/C/man2/getdtablesize.2:90 build/C/man3/gethostid.3:124 build/C/man2/gethostname.2:176 build/C/man3/getlogin.3:193 build/C/man3/getopt.3:512 build/C/man2/getpagesize.2:106 build/C/man2/gettid.2:68 build/C/man3/getumask.3:61 build/C/man3/getusershell.3:85 build/C/man2/ioctl.2:138 build/C/man2/ioctl_list.2:866 build/C/man2/ioperm.2:108 build/C/man3/lockf.3:150 build/C/man2/mincore.2:166 build/C/man2/mkdir.2:128 build/C/man2/nice.2:105 build/C/man2/pread.2:131 build/C/man2/set_thread_area.2:67 build/C/man5/shells.5:52 build/C/man3/sleep.3:59 build/C/man3/swab.3:58 build/C/man2/swapon.2:191 build/C/man2/syscall.2:82 build/C/man2/syscalls.2:792 build/C/man3/sysconf.3:333 build/C/man2/sysctl.2:167 build/C/man2/sysinfo.2:94 build/C/man3/tcgetpgrp.3:115 build/C/man2/truncate.2:249 build/C/man3/ualarm.3:134 build/C/man2/umask.2:116 build/C/man2/uname.2:155 build/C/man2/uselib.2:102 build/C/man3/usleep.3:135 build/C/man2/vfork.2:270 build/C/man2/vhangup.2:65
#, no-wrap
msgid "SEE ALSO"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:167
msgid "B<intro>(2), B<syscall>(2), B<errno>(3)"
msgstr ""

#. type: SH
#: build/C/man2/_syscall.2:167 build/C/man2/access.2:252 build/C/man2/alarm.2:90 build/C/man2/brk.2:170 build/C/man2/chdir.2:140 build/C/man2/chmod.2:228 build/C/man2/chown.2:342 build/C/man2/chroot.2:154 build/C/man2/close.2:132 build/C/man3/confstr.3:148 build/C/man3/crypt.3:234 build/C/man3/daemon.3:105 build/C/man3/des_crypt.3:137 build/C/man2/dup.2:211 build/C/man3/encrypt.3:160 build/C/man7/environ.7:241 build/C/man3/euidaccess.3:106 build/C/man3/exec.3:246 build/C/man2/execve.2:633 build/C/man2/exit_group.2:49 build/C/man2/fcntl.2:1319 build/C/man3/fexecve.3:108 build/C/man2/flock.2:214 build/C/man2/fork.2:235 build/C/man3/fpathconf.3:168 build/C/man2/fsync.2:172 build/C/man2/get_thread_area.2:52 build/C/man3/getcwd.3:254 build/C/man2/getdomainname.2:131 build/C/man2/getdtablesize.2:95 build/C/man3/gethostid.3:127 build/C/man2/gethostname.2:180 build/C/man3/getlogin.3:197 build/C/man3/getopt.3:514 build/C/man2/getpagesize.2:109 build/C/man2/gettid.2:72 build/C/man3/getumask.3:63 build/C/man3/getusershell.3:87 build/C/man2/idle.2:64 build/C/man2/ioctl.2:146 build/C/man2/ioctl_list.2:868 build/C/man2/ioperm.2:111 build/C/man3/lockf.3:166 build/C/man2/mincore.2:169 build/C/man2/mkdir.2:140 build/C/man2/nice.2:112 build/C/man2/pread.2:136 build/C/man2/set_thread_area.2:69 build/C/man2/setup.2:72 build/C/man5/shells.5:55 build/C/man3/sleep.3:64 build/C/man3/swab.3:60 build/C/man2/swapon.2:195 build/C/man2/syscall.2:86 build/C/man2/syscalls.2:796 build/C/man3/sysconf.3:341 build/C/man2/sysctl.2:169 build/C/man2/sysinfo.2:96 build/C/man3/tcgetpgrp.3:119 build/C/man2/truncate.2:253 build/C/man3/ualarm.3:142 build/C/man2/umask.2:122 build/C/man2/uname.2:159 build/C/man2/uselib.2:112 build/C/man3/usleep.3:144 build/C/man2/vfork.2:276 build/C/man2/vhangup.2:68
#, no-wrap
msgid "COLOPHON"
msgstr ""

#. type: Plain text
#: build/C/man2/_syscall.2:174 build/C/man2/access.2:259 build/C/man2/alarm.2:97 build/C/man2/brk.2:177 build/C/man2/chdir.2:147 build/C/man2/chmod.2:235 build/C/man2/chown.2:349 build/C/man2/chroot.2:161 build/C/man2/close.2:139 build/C/man3/confstr.3:155 build/C/man3/crypt.3:241 build/C/man3/daemon.3:112 build/C/man3/des_crypt.3:144 build/C/man2/dup.2:218 build/C/man3/encrypt.3:167 build/C/man7/environ.7:248 build/C/man3/euidaccess.3:113 build/C/man3/exec.3:253 build/C/man2/execve.2:640 build/C/man2/exit_group.2:56 build/C/man2/fcntl.2:1326 build/C/man3/fexecve.3:115 build/C/man2/flock.2:221 build/C/man2/fork.2:242 build/C/man3/fpathconf.3:175 build/C/man2/fsync.2:179 build/C/man2/get_thread_area.2:59 build/C/man3/getcwd.3:261 build/C/man2/getdomainname.2:138 build/C/man2/getdtablesize.2:102 build/C/man3/gethostid.3:134 build/C/man2/gethostname.2:187 build/C/man3/getlogin.3:204 build/C/man3/getopt.3:521 build/C/man2/getpagesize.2:116 build/C/man2/gettid.2:79 build/C/man3/getumask.3:70 build/C/man3/getusershell.3:94 build/C/man2/idle.2:71 build/C/man2/ioctl.2:153 build/C/man2/ioctl_list.2:875 build/C/man2/ioperm.2:118 build/C/man3/lockf.3:173 build/C/man2/mincore.2:176 build/C/man2/mkdir.2:147 build/C/man2/nice.2:119 build/C/man2/pread.2:143 build/C/man2/set_thread_area.2:76 build/C/man2/setup.2:79 build/C/man5/shells.5:62 build/C/man3/sleep.3:71 build/C/man3/swab.3:67 build/C/man2/swapon.2:202 build/C/man2/syscall.2:93 build/C/man2/syscalls.2:803 build/C/man3/sysconf.3:348 build/C/man2/sysctl.2:176 build/C/man2/sysinfo.2:103 build/C/man3/tcgetpgrp.3:126 build/C/man2/truncate.2:260 build/C/man3/ualarm.3:149 build/C/man2/umask.2:129 build/C/man2/uname.2:166 build/C/man2/uselib.2:119 build/C/man3/usleep.3:151 build/C/man2/vfork.2:283 build/C/man2/vhangup.2:75
msgid ""
"This page is part of release 3.40 of the Linux I<man-pages> project.  A "
"description of the project, and information about reporting bugs, can be "
"found at http://www.kernel.org/doc/man-pages/."
msgstr ""

#. type: TH
#: build/C/man2/access.2:43
#, no-wrap
msgid "ACCESS"
msgstr ""

#. type: TH
#: build/C/man2/access.2:43
#, no-wrap
msgid "2010-10-24"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:46
msgid "access - check real user's permissions for a file"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:49 build/C/man2/alarm.2:36 build/C/man2/close.2:41 build/C/man3/confstr.3:35 build/C/man3/crypt.3:43 build/C/man2/dup.2:42 build/C/man3/fexecve.3:31 build/C/man3/fpathconf.3:30 build/C/man3/getcwd.3:36 build/C/man3/getopt.3:46 build/C/man3/getusershell.3:34 build/C/man3/sleep.3:30 build/C/man3/sysconf.3:31 build/C/man2/sysctl.2:34 build/C/man3/ualarm.3:29 build/C/man3/usleep.3:37
#, no-wrap
msgid "B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:51
#, no-wrap
msgid "B<int access(const char *>I<pathname>B<, int >I<mode>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:59
msgid ""
"B<access>()  checks whether the calling process can access the file "
"I<pathname>.  If I<pathname> is a symbolic link, it is dereferenced."
msgstr ""

#.  F_OK is defined as 0 on every system that I know of.
#. type: Plain text
#: build/C/man2/access.2:73
msgid ""
"The I<mode> specifies the accessibility check(s) to be performed, and is "
"either the value B<F_OK>, or a mask consisting of the bitwise OR of one or "
"more of B<R_OK>, B<W_OK>, and B<X_OK>.  B<F_OK> tests for the existence of "
"the file.  B<R_OK>, B<W_OK>, and B<X_OK> test whether the file exists and "
"grants read, write, and execute permissions, respectively."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:82
msgid ""
"The check is done using the calling process's I<real> UID and GID, rather "
"than the effective IDs as is done when actually attempting an operation "
"(e.g., B<open>(2))  on the file.  This allows set-user-ID programs to easily "
"determine the invoking user's authority."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:88
msgid ""
"If the calling process is privileged (i.e., its real UID is zero), then an "
"B<X_OK> check is successful for a regular file if execute permission is "
"enabled for any of the file owner, group, or other."
msgstr ""

#. type: SH
#: build/C/man2/access.2:88 build/C/man2/alarm.2:56 build/C/man2/brk.2:94 build/C/man2/chdir.2:70 build/C/man2/chmod.2:153 build/C/man2/chown.2:119 build/C/man2/chroot.2:90 build/C/man2/close.2:64 build/C/man3/confstr.3:92 build/C/man3/crypt.3:119 build/C/man3/daemon.3:70 build/C/man3/des_crypt.3:102 build/C/man2/dup.2:120 build/C/man3/encrypt.3:107 build/C/man3/euidaccess.3:59 build/C/man3/exec.3:181 build/C/man2/execve.2:340 build/C/man2/exit_group.2:37 build/C/man2/fcntl.2:1051 build/C/man3/fexecve.3:67 build/C/man2/flock.2:110 build/C/man2/fork.2:160 build/C/man3/fpathconf.3:143 build/C/man2/fsync.2:109 build/C/man2/get_thread_area.2:24 build/C/man3/getcwd.3:154 build/C/man2/getdomainname.2:75 build/C/man2/getdtablesize.2:61 build/C/man3/gethostid.3:71 build/C/man2/gethostname.2:89 build/C/man3/getlogin.3:95 build/C/man3/getopt.3:272 build/C/man2/gettid.2:47 build/C/man3/getusershell.3:75 build/C/man2/idle.2:52 build/C/man2/ioctl.2:81 build/C/man2/ioctl_list.2:103 build/C/man2/ioperm.2:73 build/C/man3/lockf.3:110 build/C/man2/mincore.2:94 build/C/man2/mkdir.2:47 build/C/man2/nice.2:56 build/C/man2/pread.2:77 build/C/man2/set_thread_area.2:40 build/C/man2/setup.2:53 build/C/man3/sleep.3:38 build/C/man3/swab.3:52 build/C/man2/swapon.2:108 build/C/man2/syscall.2:57 build/C/man3/sysconf.3:309 build/C/man2/sysctl.2:69 build/C/man2/sysinfo.2:74 build/C/man3/tcgetpgrp.3:59 build/C/man2/truncate.2:108 build/C/man3/ualarm.3:80 build/C/man2/umask.2:90 build/C/man2/uname.2:61 build/C/man2/uselib.2:48 build/C/man3/usleep.3:73 build/C/man2/vhangup.2:49
#, no-wrap
msgid "RETURN VALUE"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:96 build/C/man3/euidaccess.3:67
msgid ""
"On success (all requested permissions granted), zero is returned.  On error "
"(at least one bit in I<mode> asked for a permission that is denied, or some "
"other error occurred), -1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: SH
#: build/C/man2/access.2:96 build/C/man2/chdir.2:75 build/C/man2/chmod.2:158 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/close.2:70 build/C/man3/confstr.3:119 build/C/man3/crypt.3:122 build/C/man2/dup.2:126 build/C/man3/encrypt.3:109 build/C/man3/euidaccess.3:67 build/C/man3/exec.3:188 build/C/man2/execve.2:346 build/C/man2/fcntl.2:1084 build/C/man3/fexecve.3:74 build/C/man2/flock.2:115 build/C/man2/fork.2:167 build/C/man2/fsync.2:114 build/C/man2/get_thread_area.2:30 build/C/man3/getcwd.3:170 build/C/man2/getdomainname.2:80 build/C/man2/getdtablesize.2:63 build/C/man3/gethostid.3:81 build/C/man2/gethostname.2:94 build/C/man3/getlogin.3:101 build/C/man2/gettid.2:49 build/C/man2/idle.2:55 build/C/man2/ioctl.2:90 build/C/man2/ioperm.2:78 build/C/man3/lockf.3:115 build/C/man2/mincore.2:101 build/C/man2/mkdir.2:52 build/C/man2/nice.2:61 build/C/man2/pread.2:87 build/C/man2/set_thread_area.2:45 build/C/man2/setup.2:56 build/C/man2/swapon.2:113 build/C/man2/sysctl.2:76 build/C/man2/sysinfo.2:79 build/C/man3/tcgetpgrp.3:81 build/C/man2/truncate.2:113 build/C/man3/ualarm.3:83 build/C/man2/uname.2:66 build/C/man2/uselib.2:53 build/C/man3/usleep.3:75 build/C/man2/vhangup.2:54
#, no-wrap
msgid "ERRORS"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:99
msgid "B<access>()  shall fail if:"
msgstr ""

#. type: TP
#: build/C/man2/access.2:99 build/C/man2/chdir.2:81 build/C/man2/chdir.2:117 build/C/man2/chmod.2:163 build/C/man2/chown.2:129 build/C/man2/chroot.2:98 build/C/man2/execve.2:354 build/C/man2/execve.2:361 build/C/man2/execve.2:364 build/C/man2/execve.2:367 build/C/man3/getcwd.3:171 build/C/man3/gethostid.3:84 build/C/man2/mkdir.2:53 build/C/man2/truncate.2:116 build/C/man2/uselib.2:59
#, no-wrap
msgid "B<EACCES>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:106
msgid ""
"The requested access would be denied to the file, or search permission is "
"denied for one of the directories in the path prefix of I<pathname>.  (See "
"also B<path_resolution>(7).)"
msgstr ""

#. type: TP
#: build/C/man2/access.2:106 build/C/man2/chdir.2:94 build/C/man2/chmod.2:175 build/C/man2/chown.2:138 build/C/man2/chroot.2:112 build/C/man2/execve.2:388 build/C/man2/mkdir.2:71 build/C/man2/truncate.2:149
#, no-wrap
msgid "B<ELOOP>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:110 build/C/man2/mkdir.2:75
msgid "Too many symbolic links were encountered in resolving I<pathname>."
msgstr ""

#. type: TP
#: build/C/man2/access.2:110 build/C/man2/chdir.2:98 build/C/man2/chmod.2:179 build/C/man2/chown.2:142 build/C/man2/chroot.2:116 build/C/man2/execve.2:396 build/C/man2/gethostname.2:109 build/C/man2/mkdir.2:79 build/C/man2/truncate.2:152
#, no-wrap
msgid "B<ENAMETOOLONG>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:114
msgid "I<pathname> is too long."
msgstr ""

#. type: TP
#: build/C/man2/access.2:114 build/C/man2/chdir.2:102 build/C/man2/chmod.2:183 build/C/man2/chown.2:146 build/C/man2/chown.2:172 build/C/man2/chroot.2:120 build/C/man2/execve.2:403 build/C/man3/getcwd.3:196 build/C/man3/getlogin.3:120 build/C/man2/mkdir.2:82 build/C/man2/swapon.2:136 build/C/man2/truncate.2:156
#, no-wrap
msgid "B<ENOENT>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:119
msgid "A component of I<pathname> does not exist or is a dangling symbolic link."
msgstr ""

#. type: TP
#: build/C/man2/access.2:119 build/C/man2/chdir.2:108 build/C/man2/chmod.2:189 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:417 build/C/man2/mkdir.2:99 build/C/man2/sysctl.2:83 build/C/man2/truncate.2:159
#, no-wrap
msgid "B<ENOTDIR>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:124 build/C/man2/mkdir.2:104
msgid "A component used as a directory in I<pathname> is not, in fact, a directory."
msgstr ""

#. type: TP
#: build/C/man2/access.2:124 build/C/man2/chmod.2:198 build/C/man2/chmod.2:216 build/C/man2/chown.2:159 build/C/man2/chown.2:178 build/C/man2/mkdir.2:109 build/C/man2/truncate.2:168
#, no-wrap
msgid "B<EROFS>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:127
msgid "Write permission was requested for a file on a read-only file system."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:130
msgid "B<access>()  may fail if:"
msgstr ""

#. type: TP
#: build/C/man2/access.2:130 build/C/man2/chdir.2:87 build/C/man2/chmod.2:168 build/C/man2/chown.2:134 build/C/man2/chroot.2:105 build/C/man2/execve.2:371 build/C/man2/fcntl.2:1106 build/C/man2/get_thread_area.2:31 build/C/man3/getcwd.3:174 build/C/man2/getdomainname.2:83 build/C/man2/gethostname.2:95 build/C/man2/ioctl.2:95 build/C/man2/mincore.2:104 build/C/man2/mkdir.2:68 build/C/man2/set_thread_area.2:49 build/C/man2/sysctl.2:77 build/C/man2/sysinfo.2:80 build/C/man2/truncate.2:122 build/C/man2/uname.2:67
#, no-wrap
msgid "B<EFAULT>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:134 build/C/man2/mkdir.2:71
msgid "I<pathname> points outside your accessible address space."
msgstr ""

#. type: TP
#: build/C/man2/access.2:134 build/C/man3/confstr.3:120 build/C/man2/dup.2:151 build/C/man2/execve.2:375 build/C/man2/fcntl.2:1122 build/C/man3/fexecve.3:78 build/C/man2/flock.2:125 build/C/man2/get_thread_area.2:34 build/C/man3/getcwd.3:178 build/C/man2/getdomainname.2:87 build/C/man2/getdomainname.2:99 build/C/man2/gethostname.2:99 build/C/man2/ioctl.2:99 build/C/man2/ioperm.2:79 build/C/man3/lockf.3:141 build/C/man2/mincore.2:108 build/C/man2/set_thread_area.2:46 build/C/man2/swapon.2:121 build/C/man3/tcgetpgrp.3:86 build/C/man2/truncate.2:138 build/C/man2/truncate.2:189 build/C/man3/ualarm.3:87 build/C/man3/usleep.3:80
#, no-wrap
msgid "B<EINVAL>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:138
msgid "I<mode> was incorrectly specified."
msgstr ""

#. type: TP
#: build/C/man2/access.2:138 build/C/man2/chdir.2:91 build/C/man2/chmod.2:172 build/C/man2/chmod.2:210 build/C/man2/chown.2:169 build/C/man2/chroot.2:109 build/C/man2/close.2:81 build/C/man2/execve.2:379 build/C/man2/fsync.2:119 build/C/man2/ioperm.2:85 build/C/man2/truncate.2:143
#, no-wrap
msgid "B<EIO>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:141 build/C/man2/chdir.2:94 build/C/man2/chmod.2:175 build/C/man2/chroot.2:112 build/C/man2/close.2:84 build/C/man2/execve.2:382
msgid "An I/O error occurred."
msgstr ""

#. type: TP
#: build/C/man2/access.2:141 build/C/man2/chdir.2:105 build/C/man2/chmod.2:186 build/C/man2/chown.2:149 build/C/man2/chroot.2:123 build/C/man2/execve.2:414 build/C/man2/fork.2:183 build/C/man3/getlogin.3:123 build/C/man2/ioperm.2:88 build/C/man2/mincore.2:112 build/C/man2/mincore.2:124 build/C/man2/mkdir.2:87 build/C/man2/swapon.2:141
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:144 build/C/man2/chdir.2:108 build/C/man2/chmod.2:189 build/C/man2/chown.2:152 build/C/man2/chroot.2:126 build/C/man2/execve.2:417 build/C/man2/mkdir.2:90
msgid "Insufficient kernel memory was available."
msgstr ""

#. type: TP
#: build/C/man2/access.2:144 build/C/man2/execve.2:432 build/C/man2/truncate.2:171
#, no-wrap
msgid "B<ETXTBSY>"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:148
msgid "Write access was requested to an executable which is being executed."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:150 build/C/man2/close.2:87 build/C/man2/fork.2:189 build/C/man3/swab.3:58 build/C/man2/umask.2:95
msgid "SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:165
msgid ""
"B<Warning>: Using B<access>()  to check if a user is authorized to, for "
"example, open a file before actually doing so using B<open>(2)  creates a "
"security hole, because the user might exploit the short time interval "
"between checking and opening the file to manipulate it.  B<For this reason, "
"the use of this system call should be avoided>.  (In the example just "
"described, a safer alternative would be to temporarily switch the process's "
"effective user ID to the real ID and then call B<open>(2).)"
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:172
msgid ""
"B<access>()  always dereferences symbolic links.  If you need to check the "
"permissions on a symbolic link, use B<faccessat(2)> with the flag "
"B<AT_SYMLINK_NOFOLLOW>."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:179
msgid ""
"B<access>()  returns an error if any of the access types in I<mode> is "
"denied, even if some of the other access types in I<mode> are permitted."
msgstr ""

#.  HPU-UX 11 and Tru64 5.1 do this.
#. type: Plain text
#: build/C/man2/access.2:186
msgid ""
"If the calling process has appropriate privileges (i.e., is superuser), "
"POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> "
"check even if none of the execute file permission bits are set.  Linux does "
"not do this."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:194
msgid ""
"A file is only accessible if the permissions on each of the directories in "
"the path prefix of I<pathname> grant search (i.e., execute) access.  If any "
"directory is inaccessible, then the B<access>()  call will fail, regardless "
"of the permissions on the file itself."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:202
msgid ""
"Only access bits are checked, not the file type or contents.  Therefore, if "
"a directory is found to be writable, it probably means that files can be "
"created in the directory, and not that the directory can be written as a "
"file.  Similarly, a DOS file may be found to be \"executable,\" but the "
"B<execve>(2)  call will still fail."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:207
msgid ""
"B<access>()  may not work correctly on NFS file systems with UID mapping "
"enabled, because UID mapping is done on the server and hidden from the "
"client, which checks permissions."
msgstr ""

#. type: SH
#: build/C/man2/access.2:207 build/C/man7/environ.7:189 build/C/man2/fcntl.2:1239 build/C/man3/gethostid.3:122 build/C/man3/getlogin.3:161 build/C/man3/getopt.3:367 build/C/man2/mincore.2:144 build/C/man3/sleep.3:44 build/C/man3/sysconf.3:324 build/C/man2/sysctl.2:121 build/C/man2/truncate.2:241 build/C/man2/vfork.2:249
#, no-wrap
msgid "BUGS"
msgstr ""

#.  This behavior appears to have been an implementation accident.
#. type: Plain text
#: build/C/man2/access.2:230
msgid ""
"In kernel 2.4 (and earlier) there is some strangeness in the handling of "
"B<X_OK> tests for superuser.  If all categories of execute permission are "
"disabled for a nondirectory file, then the only B<access>()  test that "
"returns -1 is when I<mode> is specified as just B<X_OK>; if B<R_OK> or "
"B<W_OK> is also specified in I<mode>, then B<access>()  returns 0 for such "
"files.  Early 2.6 kernels (up to and including 2.6.3)  also behaved in the "
"same way as kernel 2.4."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:241
msgid ""
"In kernels before 2.6.20, B<access>()  ignored the effect of the "
"B<MS_NOEXEC> flag if it was used to B<mount>(2)  the underlying file "
"system.  Since kernel 2.6.20, B<access>()  honors this flag."
msgstr ""

#. type: Plain text
#: build/C/man2/access.2:252
msgid ""
"B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), B<setgid>(2), "
"B<setuid>(2), B<stat>(2), B<euidaccess>(3), B<credentials>(7), "
"B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man2/alarm.2:30
#, no-wrap
msgid "ALARM"
msgstr ""

#. type: TH
#: build/C/man2/alarm.2:30
#, no-wrap
msgid "2008-06-12"
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:33
msgid "alarm - set an alarm clock for delivery of a signal"
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:38
#, no-wrap
msgid "B<unsigned int alarm(unsigned int >I<seconds>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:46
msgid ""
"B<alarm>()  arranges for a B<SIGALRM> signal to be delivered to the calling "
"process in I<seconds> seconds."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:52
msgid "If I<seconds> is zero, no new B<alarm>()  is scheduled."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:56
msgid "In any event any previously set B<alarm>()  is canceled."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:61
msgid ""
"B<alarm>()  returns the number of seconds remaining until any previously "
"scheduled alarm was due to be delivered, or zero if there was no previously "
"scheduled alarm."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:63
msgid "SVr4, POSIX.1-2001, 4.3BSD."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:69
msgid ""
"B<alarm>()  and B<setitimer>(2)  share the same timer; calls to one will "
"interfere with use of the other."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:78
msgid ""
"B<sleep>(3)  may be implemented using B<SIGALRM>; mixing calls to B<alarm>()  "
"and B<sleep>(3)  is a bad idea."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:81
msgid ""
"Scheduling delays can, as ever, cause the execution of the process to be "
"delayed by an arbitrary amount of time."
msgstr ""

#. type: Plain text
#: build/C/man2/alarm.2:90
msgid ""
"B<gettimeofday>(2), B<pause>(2), B<select>(2), B<setitimer>(2), "
"B<sigaction>(2), B<signal>(2), B<sleep>(3), B<time>(7)"
msgstr ""

#. type: TH
#: build/C/man2/brk.2:30
#, no-wrap
msgid "BRK"
msgstr ""

#. type: TH
#: build/C/man2/brk.2:30 build/C/man2/chroot.2:33 build/C/man3/getcwd.3:30 build/C/man2/getdtablesize.2:27 build/C/man3/gethostid.3:29 build/C/man3/ualarm.3:23
#, no-wrap
msgid "2010-09-20"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:33
msgid "brk, sbrk - change data segment size"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:35 build/C/man2/chdir.2:38 build/C/man2/chown.2:43 build/C/man2/chroot.2:38 build/C/man3/daemon.3:39 build/C/man3/encrypt.3:31 build/C/man3/exec.3:44 build/C/man2/execve.2:42 build/C/man2/fork.2:44 build/C/man2/fsync.2:43 build/C/man2/getdomainname.2:34 build/C/man2/getdtablesize.2:32 build/C/man3/gethostid.3:34 build/C/man2/gethostname.2:37 build/C/man3/getlogin.3:33 build/C/man2/getpagesize.2:28 build/C/man2/idle.2:37 build/C/man3/lockf.3:27 build/C/man2/mincore.2:39 build/C/man2/nice.2:36 build/C/man2/pread.2:28 build/C/man2/setup.2:39 build/C/man2/swapon.2:42 build/C/man3/tcgetpgrp.3:28 build/C/man2/truncate.2:46 build/C/man2/uselib.2:36 build/C/man2/vfork.2:33 build/C/man2/vhangup.2:32
msgid "B<#include E<lt>unistd.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:37
msgid "B<int brk(void *>I<addr>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:39
msgid "B<void *sbrk(intptr_t >I<increment>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:43 build/C/man2/chdir.2:46 build/C/man2/chmod.2:44 build/C/man2/chown.2:53 build/C/man2/chroot.2:44 build/C/man3/confstr.3:42 build/C/man3/daemon.3:45 build/C/man3/exec.3:66 build/C/man3/fexecve.3:38 build/C/man2/fsync.2:51 build/C/man3/getcwd.3:47 build/C/man2/getdomainname.2:42 build/C/man2/getdtablesize.2:38 build/C/man3/gethostid.3:42 build/C/man2/gethostname.2:45 build/C/man3/getlogin.3:45 build/C/man3/getopt.3:67 build/C/man2/getpagesize.2:34 build/C/man3/getusershell.3:45 build/C/man3/lockf.3:33 build/C/man2/mincore.2:47 build/C/man2/nice.2:42 build/C/man2/pread.2:38 build/C/man2/truncate.2:56 build/C/man3/ualarm.3:36 build/C/man3/usleep.3:44 build/C/man2/vfork.2:39 build/C/man2/vhangup.2:38
msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:47
msgid "B<brk>(), B<sbrk>():"
msgstr ""

#. type: TP
#: build/C/man2/brk.2:50 build/C/man3/getcwd.3:58 build/C/man2/getdtablesize.2:44 build/C/man2/getpagesize.2:40 build/C/man3/ualarm.3:42 build/C/man3/usleep.3:50 build/C/man2/vfork.2:45
#, no-wrap
msgid "Since glibc 2.12:"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:57
#, no-wrap
msgid ""
"_BSD_SOURCE || _SVID_SOURCE ||\n"
"    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
"        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
"    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:62
msgid ""
"Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ "
"500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:77
msgid ""
"B<brk>()  and B<sbrk>()  change the location of the I<program break>, which "
"defines the end of the process's data segment (i.e., the program break is "
"the first location after the end of the uninitialized data segment).  "
"Increasing the program break has the effect of allocating memory to the "
"process; decreasing the break deallocates memory."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:84
msgid ""
"B<brk>()  sets the end of the data segment to the value specified by "
"I<addr>, when that value is reasonable, the system has enough memory, and "
"the process does not exceed its maximum data size (see B<setrlimit>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:94
msgid ""
"B<sbrk>()  increments the program's data space by I<increment> bytes.  "
"Calling B<sbrk>()  with an I<increment> of 0 can be used to find the current "
"location of the program break."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:103
msgid ""
"On success, B<brk>()  returns zero.  On error, -1 is returned, and I<errno> "
"is set to B<ENOMEM>.  (But see I<Linux Notes> below.)"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:115
msgid ""
"On success, B<sbrk>()  returns the previous program break.  (If the break "
"was increased, then this value is a pointer to the start of the newly "
"allocated memory).  On error, I<(void\\ *)\\ -1> is returned, and I<errno> "
"is set to B<ENOMEM>."
msgstr ""

#
#.  .BR brk ()
#.  and
#.  .BR sbrk ()
#.  are not defined in the C Standard and are deliberately excluded from the
#.  POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
#. type: Plain text
#: build/C/man2/brk.2:123
msgid "4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:132
msgid ""
"Avoid using B<brk>()  and B<sbrk>(): the B<malloc>(3)  memory allocation "
"package is the portable and comfortable way of allocating memory."
msgstr ""

#.  One sees
#.  \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
#.  \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
#.  \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
#.  \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
#.  Tru64 5.1, glibc2.2).
#. type: Plain text
#: build/C/man2/brk.2:142
msgid ""
"Various systems use various types for the argument of B<sbrk>().  Common are "
"I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>."
msgstr ""

#. type: SS
#: build/C/man2/brk.2:142 build/C/man2/vfork.2:211
#, no-wrap
msgid "Linux Notes"
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:158
msgid ""
"The return value described above for B<brk>()  is the behavior provided by "
"the glibc wrapper function for the Linux B<brk>()  system call.  (On most "
"other implementations, the return value from B<brk>()  is the same; this "
"return value was also specified in SUSv2.)  However, the actual Linux system "
"call returns the new program break on success.  On failure, the system call "
"returns the current break.  The glibc wrapper function does some work (i.e., "
"checks whether the new break is less than I<addr>)  to provide the 0 and -1 "
"return values described above."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:165
msgid ""
"On Linux, B<sbrk>()  is implemented as a library function that uses the "
"B<brk>()  system call, and does some internal bookkeeping so that it can "
"return the old break value."
msgstr ""

#. type: Plain text
#: build/C/man2/brk.2:170
msgid "B<execve>(2), B<getrlimit>(2), B<end>(3), B<malloc>(3)"
msgstr ""

#. type: TH
#: build/C/man2/chdir.2:33
#, no-wrap
msgid "CHDIR"
msgstr ""

#. type: TH
#: build/C/man2/chdir.2:33
#, no-wrap
msgid "2010-11-25"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:36
msgid "chdir, fchdir - change working directory"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:40
msgid "B<int chdir(const char *>I<path>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:42
msgid "B<int fchdir(int >I<fd>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:49
msgid "B<fchdir>():"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:54 build/C/man2/chmod.2:53 build/C/man2/chown.2:62 build/C/man3/gethostid.3:50 build/C/man2/truncate.2:64 build/C/man2/truncate.2:72
msgid ""
"_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:56 build/C/man2/chmod.2:55 build/C/man2/chown.2:64 build/C/man2/pread.2:48 build/C/man2/truncate.2:66
msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:64
msgid ""
"B<chdir>()  changes the current working directory of the calling process to "
"the directory specified in I<path>."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:70
msgid ""
"B<fchdir>()  is identical to B<chdir>(); the only difference is that the "
"directory is given as an open file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:75 build/C/man2/chmod.2:158 build/C/man2/chown.2:124 build/C/man2/chroot.2:95 build/C/man2/flock.2:115 build/C/man2/getdomainname.2:80 build/C/man2/gethostname.2:94 build/C/man2/ioperm.2:78 build/C/man3/lockf.3:115 build/C/man2/swapon.2:113 build/C/man2/sysinfo.2:79 build/C/man2/truncate.2:113 build/C/man2/uname.2:66 build/C/man2/uselib.2:53 build/C/man2/vhangup.2:54
msgid ""
"On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:81
msgid ""
"Depending on the file system, other errors can be returned.  The more "
"general errors for B<chdir>()  are listed below:"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:87
msgid ""
"Search permission is denied for one of the components of I<path>.  (See also "
"B<path_resolution>(7).)"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:91 build/C/man2/chmod.2:172 build/C/man2/chown.2:138 build/C/man2/chroot.2:109
msgid "I<path> points outside your accessible address space."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:98 build/C/man2/chmod.2:179 build/C/man2/chown.2:142 build/C/man2/chroot.2:116
msgid "Too many symbolic links were encountered in resolving I<path>."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:102 build/C/man2/chmod.2:183 build/C/man2/chown.2:146 build/C/man2/chroot.2:120
msgid "I<path> is too long."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:105 build/C/man2/chmod.2:186 build/C/man2/chown.2:149 build/C/man2/chroot.2:123
msgid "The file does not exist."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:113 build/C/man2/chroot.2:131
msgid "A component of I<path> is not a directory."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:117
msgid "The general errors for B<fchdir>()  are listed below:"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:121
msgid "Search permission was denied on the directory open on I<fd>."
msgstr ""

#. type: TP
#: build/C/man2/chdir.2:121 build/C/man2/chmod.2:205 build/C/man2/chown.2:166 build/C/man2/close.2:71 build/C/man2/dup.2:127 build/C/man2/fcntl.2:1092 build/C/man2/flock.2:116 build/C/man2/fsync.2:115 build/C/man2/ioctl.2:91 build/C/man3/lockf.3:124 build/C/man3/tcgetpgrp.3:82 build/C/man2/truncate.2:181
#, no-wrap
msgid "B<EBADF>"
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:125 build/C/man3/tcgetpgrp.3:86
msgid "I<fd> is not a valid file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:127
msgid "SVr4, 4.4BSD, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:130
msgid ""
"The current working directory is the starting point for interpreting "
"relative pathnames (those not starting with \\(aq/\\(aq)."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:136
msgid ""
"A child process created via B<fork>(2)  inherits its parent's current "
"working directory.  The current working directory is left unchanged by "
"B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/chdir.2:140
msgid "B<chroot>(2), B<getcwd>(3), B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man2/chmod.2:31
#, no-wrap
msgid "CHMOD"
msgstr ""

#. type: TH
#: build/C/man2/chmod.2:31 build/C/man2/gethostname.2:32
#, no-wrap
msgid "2010-09-26"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:34
msgid "chmod, fchmod - change permissions of a file"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:36 build/C/man3/getumask.3:35 build/C/man2/umask.2:41
msgid "B<#include E<lt>sys/stat.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:38
msgid "B<int chmod(const char *>I<path>B<, mode_t >I<mode>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:40
msgid "B<int fchmod(int >I<fd>B<, mode_t >I<mode>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:49
msgid "B<fchmod>():"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:61
msgid ""
"These system calls change the permissions of a file.  They differ only in "
"how the file is specified:"
msgstr ""

#. type: IP
#: build/C/man2/chmod.2:61 build/C/man2/chmod.2:66 build/C/man2/chown.2:70 build/C/man2/chown.2:75 build/C/man2/chown.2:79 build/C/man2/chown.2:233 build/C/man2/chown.2:238 build/C/man2/chown.2:244 build/C/man2/dup.2:62 build/C/man2/dup.2:68 build/C/man2/dup.2:101 build/C/man2/dup.2:110 build/C/man2/execve.2:123 build/C/man2/execve.2:127 build/C/man2/execve.2:130 build/C/man2/execve.2:133 build/C/man2/execve.2:136 build/C/man2/execve.2:139 build/C/man2/execve.2:142 build/C/man2/execve.2:145 build/C/man2/execve.2:148 build/C/man2/execve.2:151 build/C/man2/execve.2:155 build/C/man2/execve.2:159 build/C/man2/execve.2:168 build/C/man2/execve.2:175 build/C/man2/execve.2:180 build/C/man2/execve.2:187 build/C/man2/execve.2:194 build/C/man2/execve.2:198 build/C/man2/execve.2:201 build/C/man2/execve.2:209 build/C/man2/execve.2:213 build/C/man2/execve.2:218 build/C/man2/fork.2:52 build/C/man2/fork.2:56 build/C/man2/fork.2:58 build/C/man2/fork.2:62 build/C/man2/fork.2:68 build/C/man2/fork.2:71 build/C/man2/fork.2:74 build/C/man2/fork.2:77 build/C/man2/fork.2:82 build/C/man2/fork.2:94 build/C/man2/fork.2:101 build/C/man2/fork.2:107 build/C/man2/fork.2:113 build/C/man2/fork.2:120 build/C/man2/fork.2:129 build/C/man2/fork.2:143 build/C/man2/fork.2:152 build/C/man2/syscalls.2:85 build/C/man2/syscalls.2:88 build/C/man2/syscalls.2:94 build/C/man2/syscalls.2:110 build/C/man2/syscalls.2:116 build/C/man2/syscalls.2:122 build/C/man2/syscalls.2:128 build/C/man2/syscalls.2:135 build/C/man2/syscalls.2:651 build/C/man2/syscalls.2:672 build/C/man2/syscalls.2:683 build/C/man2/syscalls.2:690 build/C/man2/syscalls.2:701 build/C/man2/syscalls.2:713 build/C/man2/syscalls.2:734 build/C/man2/syscalls.2:742 build/C/man2/vfork.2:191 build/C/man2/vfork.2:195
#, no-wrap
msgid "*"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:66
msgid ""
"B<chmod>()  changes the permissions of the file specified whose pathname is "
"given in I<path>, which is dereferenced if it is a symbolic link."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:70
msgid ""
"B<fchmod>()  changes the permissions of the file referred to by the open "
"file descriptor I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:75
msgid ""
"The new file permissions are specified in I<mode>, which is a bit mask "
"created by ORing together zero or more of the following:"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:75
#, no-wrap
msgid "B<S_ISUID>  (04000)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:79
msgid "set-user-ID (set process effective user ID on B<execve>(2))"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:79
#, no-wrap
msgid "B<S_ISGID>  (02000)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:89
msgid ""
"set-group-ID (set process effective group ID on B<execve>(2); mandatory "
"locking, as described in B<fcntl>(2); take a new file's group from parent "
"directory, as described in B<chown>(2)  and B<mkdir>(2))"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:89
#, no-wrap
msgid "B<S_ISVTX>  (01000)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:93
msgid "sticky bit (restricted deletion flag, as described in B<unlink>(2))"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:93
#, no-wrap
msgid "B<S_IRUSR>  (00400)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:96
msgid "read by owner"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:96
#, no-wrap
msgid "B<S_IWUSR>  (00200)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:99
msgid "write by owner"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:99
#, no-wrap
msgid "B<S_IXUSR>  (00100)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:103
msgid ""
"execute/search by owner (\"search\" applies for directories, and means that "
"entries within the directory can be accessed)"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:103
#, no-wrap
msgid "B<S_IRGRP>  (00040)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:106
msgid "read by group"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:106
#, no-wrap
msgid "B<S_IWGRP>  (00020)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:109
msgid "write by group"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:109
#, no-wrap
msgid "B<S_IXGRP>  (00010)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:112
msgid "execute/search by group"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:112
#, no-wrap
msgid "B<S_IROTH>  (00004)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:115
msgid "read by others"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:115
#, no-wrap
msgid "B<S_IWOTH>  (00002)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:118
msgid "write by others"
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:118
#, no-wrap
msgid "B<S_IXOTH>  (00001)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:121
msgid "execute/search by others"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:126
msgid ""
"The effective UID of the calling process must match the owner of the file, "
"or the process must be privileged (Linux: it must have the B<CAP_FOWNER> "
"capability)."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:135
msgid ""
"If the calling process is not privileged (Linux: does not have the "
"B<CAP_FSETID> capability), and the group of the file does not match the "
"effective group ID of the process or one of its supplementary group IDs, the "
"B<S_ISGID> bit will be turned off, but this will not cause an error to be "
"returned."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:147
msgid ""
"As a security measure, depending on the file system, the set-user-ID and "
"set-group-ID execution bits may be turned off if a file is written.  (On "
"Linux this occurs if the writing process does not have the B<CAP_FSETID> "
"capability.)  On some file systems, only the superuser can set the sticky "
"bit, which may have a special meaning.  For the sticky bit, and for "
"set-user-ID and set-group-ID bits on directories, see B<stat>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:153
msgid ""
"On NFS file systems, restricting the permissions will immediately influence "
"already open files, because the access control is done on the server, but "
"open files are maintained by the client.  Widening the permissions may be "
"delayed for other clients if attribute caching is enabled on them."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:163
msgid ""
"Depending on the file system, other errors can be returned.  The more "
"general errors for B<chmod>()  are listed below:"
msgstr ""

#.  Also search permission is required on the final component,
#.  maybe just to guarantee that it is a directory?
#. type: Plain text
#: build/C/man2/chmod.2:168 build/C/man2/chown.2:134 build/C/man2/chroot.2:105
msgid ""
"Search permission is denied on a component of the path prefix.  (See also "
"B<path_resolution>(7).)"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:192 build/C/man2/chown.2:155 build/C/man2/truncate.2:162
msgid "A component of the path prefix is not a directory."
msgstr ""

#. type: TP
#: build/C/man2/chmod.2:192 build/C/man2/chmod.2:213 build/C/man2/chown.2:155 build/C/man2/chown.2:175 build/C/man2/chroot.2:131 build/C/man2/execve.2:422 build/C/man2/execve.2:428 build/C/man2/fcntl.2:1141 build/C/man2/getdomainname.2:91 build/C/man3/gethostid.3:88 build/C/man2/gethostname.2:117 build/C/man2/idle.2:56 build/C/man2/ioperm.2:92 build/C/man2/mkdir.2:104 build/C/man2/nice.2:62 build/C/man2/setup.2:57 build/C/man2/swapon.2:144 build/C/man2/sysctl.2:87 build/C/man3/tcgetpgrp.3:99 build/C/man2/truncate.2:162 build/C/man2/vhangup.2:55
#, no-wrap
msgid "B<EPERM>"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:198
msgid ""
"The effective UID does not match the owner of the file, and the process is "
"not privileged (Linux: it does not have the B<CAP_FOWNER> capability)."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:201 build/C/man2/chown.2:162 build/C/man2/truncate.2:171
msgid "The named file resides on a read-only file system."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:205
msgid "The general errors for B<fchmod>()  are listed below:"
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:210
msgid "The file descriptor I<fd> is not valid."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:213 build/C/man2/chmod.2:216 build/C/man2/chmod.2:219 build/C/man2/chown.2:175 build/C/man2/chown.2:178 build/C/man2/chown.2:181
msgid "See above."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:221 build/C/man2/chown.2:183
msgid "4.4BSD, SVr4, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/chmod.2:228
msgid ""
"B<chown>(2), B<execve>(2), B<fchmodat>(2), B<open>(2), B<stat>(2), "
"B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man2/chown.2:38
#, no-wrap
msgid "CHOWN"
msgstr ""

#. type: TH
#: build/C/man2/chown.2:38
#, no-wrap
msgid "2010-11-22"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:41
msgid "chown, fchown, lchown - change ownership of a file"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:45
msgid "B<int chown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:47
msgid "B<int fchown(int >I<fd>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:49
msgid "B<int lchown(const char *>I<path>B<, uid_t >I<owner>B<, gid_t >I<group>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:57
msgid "B<fchown>(), B<lchown>():"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:70
msgid ""
"These system calls change the owner and group of a file.  The differ only in "
"how the file is specified:"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:75
msgid ""
"B<chown>()  changes the ownership of the file specified by I<path>, which is "
"dereferenced if it is a symbolic link."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:79
msgid ""
"B<fchown>()  changes the ownership of the file referred to by the open file "
"descriptor I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:84
msgid "B<lchown>()  is like B<chown>(), but does not dereference symbolic links."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:93
msgid ""
"Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may "
"change the owner of a file.  The owner of a file may change the group of the "
"file to any group of which that owner is a member.  A privileged process "
"(Linux: with B<CAP_CHOWN>)  may change the group arbitrarily."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:99
msgid "If the I<owner> or I<group> is specified as -1, then that ID is not changed."
msgstr ""

#.  In Linux 2.0 kernels, superuser was like everyone else
#.  In 2.2, up to 2.2.12, these bits were not cleared for superuser.
#.  Since 2.2.13, superuser is once more like everyone else.
#. type: Plain text
#: build/C/man2/chown.2:119
msgid ""
"When the owner or group of an executable file are changed by an unprivileged "
"user the B<S_ISUID> and B<S_ISGID> mode bits are cleared.  POSIX does not "
"specify whether this also should happen when root does the B<chown>(); the "
"Linux behavior depends on the kernel version.  In case of a "
"non-group-executable file (i.e., one for which the B<S_IXGRP> bit is not "
"set) the B<S_ISGID> bit indicates mandatory locking, and is not cleared by a "
"B<chown>()."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:129
msgid ""
"Depending on the file system, other errors can be returned.  The more "
"general errors for B<chown>()  are listed below."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:159
msgid ""
"The calling process did not have the required permissions (see above) to "
"change owner and/or group."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:166
msgid "The general errors for B<fchown>()  are listed below:"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:169
msgid "The descriptor is not valid."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:172
msgid "A low-level I/O error occurred while modifying the inode."
msgstr ""

#.  chown():
#.  SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no
#.  ENOMEM.  POSIX.1 does not document ENOMEM or ELOOP error conditions.
#.  fchown():
#.  SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK
#.  error conditions.
#. type: Plain text
#: build/C/man2/chown.2:192
msgid ""
"The 4.4BSD version can only be used by the superuser (that is, ordinary "
"users cannot give away files)."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:211
msgid ""
"The original Linux B<chown>(), B<fchown>(), and B<lchown>()  system calls "
"supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
"B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs.  The "
"glibc B<chown>(), B<fchown>(), and B<lchown>()  wrapper functions "
"transparently deal with the variations across kernel versions."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:233
msgid ""
"When a new file is created (by, for example, B<open>(2)  or B<mkdir>(2)), "
"its owner is made the same as the file system user ID of the creating "
"process.  The group of the file depends on a range of factors, including the "
"type of file system, the options used to mount the file system, and whether "
"or not the set-group-ID permission bit is enabled on the parent directory.  "
"If the file system supports the I<-o\\ grpid> (or, synonymously I<-o\\ "
"bsdgroups>)  and I<-o\\ nogrpid> (or, synonymously I<-o\\ sysvgroups>)  "
"B<mount>(8)  options, then the rules are as follows:"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:238
msgid ""
"If the file system is mounted with I<-o\\ grpid>, then the group of a new "
"file is made the same as that of the parent directory."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:244
msgid ""
"If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
"is disabled on the parent directory, then the group of a new file is made "
"the same as the process's file system GID."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:250
msgid ""
"If the file system is mounted with I<-o\\ nogrpid> and the set-group-ID bit "
"is enabled on the parent directory, then the group of a new file is made the "
"same as that of the parent directory."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:260
msgid ""
"As at Linux 2.6.25, the I<-o\\ grpid> and I<-o\\ nogrpid> mount options are "
"supported by ext2, ext3, ext4, and XFS.  File systems that don't support "
"these mount options follow the I<-o\\ nogrpid> rules."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:273
msgid ""
"The B<chown>()  semantics are deliberately violated on NFS file systems "
"which have UID mapping enabled.  Additionally, the semantics of all system "
"calls which access the file contents are violated, because B<chown>()  may "
"cause immediate access revocation on already open files.  Client side "
"caching may lead to a delay between the time where ownership have been "
"changed to allow access for a user and the time where the file can actually "
"be accessed by the user on other clients."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:288
msgid ""
"In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>()  "
"did not follow symbolic links.  Since Linux 2.1.81, B<chown>()  does follow "
"symbolic links, and there is a new system call B<lchown>()  that does not "
"follow symbolic links.  Since Linux 2.1.86, this new call (that has the same "
"semantics as the old B<chown>())  has got the same syscall number, and "
"B<chown>()  got the newly introduced number."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:297
msgid ""
"The following program changes the ownership of the file named in its second "
"command-line argument to the value specified in its first command-line "
"argument.  The new owner can be specified either as a numeric user ID, or as "
"a username (which is converted to a user ID by using B<getpwnam>(3)  to "
"perform a lookup in the system password file)."
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:303
#, no-wrap
msgid ""
"#include E<lt>pwd.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:310
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    uid_t uid;\n"
"    struct passwd *pwd;\n"
"    char *endptr;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:315
#, no-wrap
msgid ""
"    if (argc != 3 || argv[1][0] == \\(aq\\e0\\(aq) {\n"
"        fprintf(stderr, \"%s E<lt>ownerE<gt> E<lt>fileE<gt>\\en\", "
"argv[0]);\n"
"        exit(EXIT_FAILURE);\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:317
#, no-wrap
msgid "    uid = strtol(argv[1], &endptr, 10);  /* Allow a numeric string */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:324
#, no-wrap
msgid ""
"    if (*endptr != \\(aq\\e0\\(aq) {         /* Was not pure numeric string "
"*/\n"
"        pwd = getpwnam(argv[1]);   /* Try getting UID for username */\n"
"        if (pwd == NULL) {\n"
"            perror(\"getpwnam\");\n"
"            exit(EXIT_FAILURE);\n"
"        }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:327
#, no-wrap
msgid ""
"        uid = pwd-E<gt>pw_uid;\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:332
#, no-wrap
msgid ""
"    if (chown(argv[2], uid, -1) == -1) {\n"
"        perror(\"chown\");\n"
"        exit(EXIT_FAILURE);\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:335 build/C/man2/execve.2:548 build/C/man3/getopt.3:426 build/C/man3/getopt.3:511
#, no-wrap
msgid ""
"    exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chown.2:342
msgid ""
"B<chmod>(2), B<fchownat>(2), B<flock>(2), B<path_resolution>(7), "
"B<symlink>(7)"
msgstr ""

#. type: TH
#: build/C/man2/chroot.2:33
#, no-wrap
msgid "CHROOT"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:36
msgid "chroot - change root directory"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:40
msgid "B<int chroot(const char *>I<path>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:47
msgid "B<chroot>():"
msgstr ""

#. type: TP
#: build/C/man2/chroot.2:50
#, no-wrap
msgid "Since glibc 2.2.2:"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:57
#, no-wrap
msgid ""
"_BSD_SOURCE ||\n"
"    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
"        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
"    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:60
msgid "Before glibc 2.2.2: none"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:69
msgid ""
"B<chroot>()  changes the root directory of the calling process to that "
"specified in I<path>.  This directory will be used for pathnames beginning "
"with I</>.  The root directory is inherited by all children of the calling "
"process."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:74
msgid ""
"Only a privileged process (Linux: one with the B<CAP_SYS_CHROOT> capability) "
"may call B<chroot>()."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:77
msgid ""
"This call changes an ingredient in the pathname resolution process and does "
"nothing else."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:83
msgid ""
"This call does not change the current working directory, so that after the "
"call \\(aqI<.>\\(aq can be outside the tree rooted at \\(aqI</>\\(aq.  In "
"particular, the superuser can escape from a \"chroot jail\" by doing:"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:86
#, no-wrap
msgid "    mkdir foo; chroot foo; cd ..\n"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:90
msgid ""
"This call does not close open file descriptors, and such file descriptors "
"may allow access to files outside the chroot tree."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:98
msgid ""
"Depending on the file system, other errors can be returned.  The more "
"general errors are listed below:"
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:134
msgid "The caller has insufficient privilege."
msgstr ""

#.  SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions.
#.  X/OPEN does not document EIO, ENOMEM or EFAULT error conditions.
#. type: Plain text
#: build/C/man2/chroot.2:139
msgid ""
"SVr4, 4.4BSD, SUSv2 (marked LEGACY).  This function is not part of "
"POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:145
msgid ""
"A child process created via B<fork>(2)  inherits its parent's root "
"directory.  The root directory is left unchanged by B<execve>(2)."
msgstr ""

#.  FIXME . eventually say something about containers,
#.  virtual servers, etc.?
#. type: Plain text
#: build/C/man2/chroot.2:151
msgid "FreeBSD has a stronger B<jail>()  system call."
msgstr ""

#. type: Plain text
#: build/C/man2/chroot.2:154
msgid "B<chdir>(2), B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man2/close.2:35
#, no-wrap
msgid "CLOSE"
msgstr ""

#. type: TH
#: build/C/man2/close.2:35
#, no-wrap
msgid "2007-12-28"
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:38
msgid "close - close a file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:43
#, no-wrap
msgid "B<int close(int >I<fd>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:53
msgid ""
"B<close>()  closes a file descriptor, so that it no longer refers to any "
"file and may be reused.  Any record locks (see B<fcntl>(2))  held on the "
"file it was associated with, and owned by the process, are removed "
"(regardless of the file descriptor that was used to obtain the lock)."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:64
msgid ""
"If I<fd> is the last file descriptor referring to the underlying open file "
"description (see B<open>(2)), the resources associated with the open file "
"description are freed; if the descriptor was the last reference to a file "
"which has been removed using B<unlink>(2)  the file is deleted."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:70
msgid ""
"B<close>()  returns zero on success.  On error, -1 is returned, and I<errno> "
"is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:75
msgid "I<fd> isn't a valid open file descriptor."
msgstr ""

#. type: TP
#: build/C/man2/close.2:75 build/C/man2/dup.2:143 build/C/man2/fcntl.2:1110 build/C/man2/flock.2:120 build/C/man2/truncate.2:131 build/C/man3/ualarm.3:84 build/C/man3/usleep.3:76
#, no-wrap
msgid "B<EINTR>"
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:81
msgid "The B<close>()  call was interrupted by a signal; see B<signal>(7)."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:101
msgid ""
"Not checking the return value of B<close>()  is a common but nevertheless "
"serious programming error.  It is quite possible that errors on a previous "
"B<write>(2)  operation are first reported at the final B<close>().  Not "
"checking the return value when closing the file may lead to silent loss of "
"data.  This can especially be observed with NFS and with disk quota."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:110
msgid ""
"A successful close does not guarantee that the data has been successfully "
"saved to disk, as the kernel defers writes.  It is not common for a file "
"system to flush the buffers when the stream is closed.  If you need to be "
"sure that the data is physically stored use B<fsync>(2).  (It will depend on "
"the disk hardware at this point.)"
msgstr ""

#.  Date: Tue, 4 Sep 2007 13:57:35 +0200
#.  From: Fredrik Noring <noring@nocrew.org>
#.  One such race involves signals and ERESTARTSYS. If a file descriptor
#.  in use by a system call is closed and then reused by e.g. an
#.  independent open() in some unrelated thread, before the original system
#.  call has restared after ERESTARTSYS, the original system call will
#.  later restart with the reused file descriptor. This is most likely a
#.  serious programming error.
#. type: Plain text
#: build/C/man2/close.2:125
msgid ""
"It is probably unwise to close file descriptors while they may be in use by "
"system calls in other threads in the same process.  Since a file descriptor "
"may be reused, there are some obscure race conditions that may cause "
"unintended side effects."
msgstr ""

#. type: Plain text
#: build/C/man2/close.2:132
msgid ""
"B<fcntl>(2), B<fsync>(2), B<open>(2), B<shutdown>(2), B<unlink>(2), "
"B<fclose>(3)"
msgstr ""

#. type: TH
#: build/C/man3/confstr.3:29
#, no-wrap
msgid "CONFSTR"
msgstr ""

#. type: TH
#: build/C/man3/confstr.3:29 build/C/man3/sleep.3:24
#, no-wrap
msgid "2010-02-03"
msgstr ""

#. type: TH
#: build/C/man3/confstr.3:29 build/C/man3/daemon.3:34 build/C/man3/exec.3:39 build/C/man3/fpathconf.3:24 build/C/man3/getcwd.3:30 build/C/man3/getlogin.3:28 build/C/man3/getopt.3:39 build/C/man3/getumask.3:26 build/C/man3/getusershell.3:28 build/C/man3/lockf.3:22 build/C/man3/sleep.3:24 build/C/man3/sysconf.3:25 build/C/man3/tcgetpgrp.3:23
#, no-wrap
msgid "GNU"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:32
msgid "confstr - get configuration dependent string variables"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:37
#, no-wrap
msgid "B<size_t confstr(int >I<name>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:46
msgid "B<confstr>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:49
msgid "B<confstr>()  gets the value of configuration-dependent string variables."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:54
msgid ""
"The I<name> argument is the system variable to be queried.  The following "
"variables are supported:"
msgstr ""

#. type: TP
#: build/C/man3/confstr.3:54
#, no-wrap
msgid "B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:58
msgid ""
"A string which identifies the GNU C library version on this system (e.g, "
"\"glibc 2.3.4\")."
msgstr ""

#. type: TP
#: build/C/man3/confstr.3:58
#, no-wrap
msgid "B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:62
msgid ""
"A string which identifies the POSIX implementation supplied by this C "
"library (e.g, \"NPTL 2.3.4\" or \"linuxthreads-0.10\")."
msgstr ""

#. type: TP
#: build/C/man3/confstr.3:62
#, no-wrap
msgid "B<_CS_PATH>"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:68
msgid ""
"A value for the B<PATH> variable which indicates where all the POSIX.2 "
"standard utilities can be found."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:84
msgid ""
"If I<buf> is not NULL and I<len> is not zero, B<confstr>()  copies the value "
"of the string to I<buf> truncated to I<len - 1> characters if necessary, "
"with a null byte (\\(aq\\e0\\(aq) as terminator.  This can be detected by "
"comparing the return value of B<confstr>()  against I<len>."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:92
msgid ""
"If I<len> is zero and I<buf> is NULL, B<confstr>()  just returns the value "
"as defined below."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:104
msgid ""
"If I<name> is a valid configuration variable, B<confstr>()  returns the "
"number of bytes (including the terminating null byte)  that would be "
"required to hold the entire value of that variable.  This value may be "
"greater than I<len>, which means that the value in I<buf> is truncated."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:119
msgid ""
"If I<name> is a valid configuration variable, but that variable does not "
"have a value, then B<confstr>()  returns 0.  If I<name> does not correspond "
"to a valid configuration variable, B<confstr>()  returns 0, and I<errno> is "
"set to B<EINVAL>."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:125
msgid "If the value of I<name> is invalid."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:127 build/C/man3/fpathconf.3:154 build/C/man2/pread.2:115 build/C/man3/sleep.3:44 build/C/man3/sysconf.3:324 build/C/man3/tcgetpgrp.3:106
msgid "POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:130
msgid ""
"The following code fragment determines the path where to find the POSIX.2 "
"system utilities:"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:136
#, no-wrap
msgid ""
"char *pathbuf;\n"
"size_t n;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:142
#, no-wrap
msgid ""
"n = confstr(_CS_PATH,NULL,(size_t) 0);\n"
"pathbuf = malloc(n);\n"
"if (pathbuf == NULL)\n"
"    abort();\n"
"confstr(_CS_PATH, pathbuf, n);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/confstr.3:148
msgid "B<sh>(1), B<exec>(3), B<system>(3)"
msgstr ""

#. type: TH
#: build/C/man3/crypt.3:35
#, no-wrap
msgid "CRYPT"
msgstr ""

#. type: TH
#: build/C/man3/crypt.3:35
#, no-wrap
msgid "2011-09-15"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:38
msgid "crypt, crypt_r - password and data encryption"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:41
#, no-wrap
msgid "B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:45
#, no-wrap
msgid "B<char *crypt(const char *>I<key>B<, const char *>I<salt>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:47
#, no-wrap
msgid "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:49
#, no-wrap
msgid "B<#include E<lt>crypt.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:52
#, no-wrap
msgid ""
"B<char *crypt_r(const char *>I<key>B<, const char *>I<salt>B<,>\n"
"B<              struct crypt_data *>I<data>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:55
msgid "Link with I<-lcrypt>."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:61
msgid ""
"B<crypt>()  is the password encryption function.  It is based on the Data "
"Encryption Standard algorithm with variations intended (among other things) "
"to discourage use of hardware implementations of a key search."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:64
msgid "I<key> is a user's typed password."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:70
msgid ""
"I<salt> is a two-character string chosen from the set "
"[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>].  This string is used to perturb the "
"algorithm in one of 4096 different ways."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:81
msgid ""
"By taking the lowest 7 bits of each of the first eight characters of the "
"I<key>, a 56-bit key is obtained.  This 56-bit key is used to encrypt "
"repeatedly a constant string (usually a string consisting of all zeros).  "
"The returned value points to the encrypted password, a series of 13 "
"printable ASCII characters (the first two characters represent the salt "
"itself).  The return value points to static data whose content is "
"overwritten by each call."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:83
msgid "Warning: The key space consists of"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:98
msgid ""
"equal 7.2e16 possible values.  Exhaustive searches of this key space are "
"possible using massively parallel computers.  Software, such as B<crack>(1), "
"is available which will search the portion of this key space that is "
"generally used by humans for passwords.  Hence, password selection should, "
"at minimum, avoid common words and names.  The use of a B<passwd>(1)  "
"program that checks for crackable passwords during the selection process is "
"recommended."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:107
msgid ""
"The DES algorithm itself has a few quirks which make the use of the "
"B<crypt>()  interface a very poor choice for anything other than password "
"authentication.  If you are planning on using the B<crypt>()  interface for "
"a cryptography project, don't do it: get a good book on encryption and one "
"of the widely available DES libraries."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:119
msgid ""
"B<crypt_r>()  is a reentrant version of B<crypt>().  The structure pointed "
"to by I<data> is used to store result data and bookkeeping information.  "
"Other than allocating it, the only thing that the caller should do with this "
"structure is to set I<data-E<gt>initialized> to zero before the first call "
"to B<crypt_r>()."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:122
msgid ""
"On success, a pointer to the encrypted password is returned.  On error, NULL "
"is returned."
msgstr ""

#. type: TP
#: build/C/man3/crypt.3:123 build/C/man3/encrypt.3:114 build/C/man3/fexecve.3:86
#, no-wrap
msgid "B<ENOSYS>"
msgstr ""

#.  This level of detail is not necessary in this man page. . .
#.  .PP
#.  When encrypting a plain text P using DES with the key K results in the
#.  encrypted text C, then the complementary plain text P' being encrypted
#.  using the complementary key K' will result in the complementary encrypted
#.  text C'.
#.  .PP
#.  Weak keys are keys which stay invariant under the DES key transformation.
#.  The four known weak keys 0101010101010101, fefefefefefefefe,
#.  1f1f1f1f0e0e0e0e and e0e0e0e0f1f1f1f1 must be avoided.
#.  .PP
#.  There are six known half weak key pairs, which keys lead to the same
#.  encrypted data.  Keys which are part of such key clusters should be
#.  avoided.
#.  Sorry, I could not find out what they are.
#. "
#.  .PP
#.  Heavily redundant data causes trouble with DES encryption, when used in the
#.  .I codebook
#.  mode that
#.  .BR crypt ()
#.  implements.  The
#.  .BR crypt ()
#.  interface should be used only for its intended purpose of password
#.  verification, and should not be used as part of a data encryption tool.
#.  .PP
#.  The first and last three output bits of the fourth S-box can be
#.  represented as function of their input bits.  Empiric studies have
#.  shown that S-boxes partially compute the same output for similar input.
#.  It is suspected that this may contain a back door which could allow the
#.  NSA to decrypt DES encrypted data.
#.  .PP
#.  Making encrypted data computed using crypt() publicly available has
#.  to be considered insecure for the given reasons.
#. type: Plain text
#: build/C/man3/crypt.3:162
msgid ""
"The B<crypt>()  function was not implemented, probably because of "
"U.S.A. export restrictions."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:167
msgid "B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001.  B<crypt_r>()  is a GNU extension."
msgstr ""

#. type: SS
#: build/C/man3/crypt.3:168 build/C/man2/gethostname.2:140
#, no-wrap
msgid "Glibc Notes"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:171
msgid ""
"The glibc2 version of this function supports additional encryption "
"algorithms."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:176
msgid ""
"If I<salt> is a character string starting with the characters \"$I<id>$\" "
"followed by a string terminated by \"$\":"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:179
msgid "$I<id>$I<salt>$I<encrypted>"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:188
msgid ""
"then instead of using the DES machine, I<id> identifies the encryption "
"method used and this then determines how the rest of the password string is "
"interpreted.  The following values of I<id> are supported:"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:191
#, no-wrap
msgid "ID  | Method\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:192
#, no-wrap
msgid "_\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:193
#, no-wrap
msgid "1   | MD5\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:194
#, no-wrap
msgid "2a  | Blowfish (not in mainline glibc; added in some\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:195
#, no-wrap
msgid "    | Linux distributions)\n"
msgstr ""

#.  openSUSE has Blowfish, but AFAICS, this option is not supported
#.  natively by glibc -- mtk, Jul 08
#
#.  md5 | Sun MD5
#.  glibc doesn't appear to natively support Sun MD5; I don't know
#.  if any distros add the support.
#. type: tbl table
#: build/C/man3/crypt.3:202
#, no-wrap
msgid "5   | SHA-256 (since glibc 2.7)\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:203
#, no-wrap
msgid "6   | SHA-512 (since glibc 2.7)\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:210
msgid ""
"So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and "
"$6$I<salt>$I<encrypted> is an SHA-512 encoded one."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:215
msgid ""
"\"I<salt>\" stands for the up to 16 characters following \"$I<id>$\" in the "
"salt.  The encrypted part of the password string is the actual computed "
"password.  The size of this string is fixed:"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:217
#, no-wrap
msgid "MD5     | 22 characters\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:218
#, no-wrap
msgid "SHA-256 | 43 characters\n"
msgstr ""

#. type: tbl table
#: build/C/man3/crypt.3:219
#, no-wrap
msgid "SHA-512 | 86 characters\n"
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:228
msgid ""
"The characters in \"I<salt>\" and \"I<encrypted>\" are drawn from the set "
"[B<a>\\(enB<zA>\\(enB<Z0>\\(enB<9./>].  In the MD5 and SHA implementations "
"the entire I<key> is significant (instead of only the first 8 bytes in DES)."
msgstr ""

#. type: Plain text
#: build/C/man3/crypt.3:234
msgid "B<login>(1), B<passwd>(1), B<encrypt>(3), B<getpass>(3), B<passwd>(5)"
msgstr ""

#. type: TH
#: build/C/man3/daemon.3:34
#, no-wrap
msgid "DAEMON"
msgstr ""

#. type: TH
#: build/C/man3/daemon.3:34
#, no-wrap
msgid "2009-12-05"
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:37
msgid "daemon - run in the background"
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:41
msgid "B<int daemon(int >I<nochdir>B<, int >I<noclose>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:49
msgid "B<daemon>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:54
msgid ""
"The B<daemon>()  function is for programs wishing to detach themselves from "
"the controlling terminal and run in the background as system daemons."
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:62
msgid ""
"If I<nochdir> is zero, B<daemon>()  changes the calling process's current "
"working directory to the root directory (\"/\"); otherwise, the current "
"working directory is left unchanged."
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:70
msgid ""
"If I<noclose> is zero, B<daemon>()  redirects standard input, standard "
"output and standard error to I</dev/null>; otherwise, no changes are made to "
"these file descriptors."
msgstr ""

#.  not .IR in order not to underline _
#. type: Plain text
#: build/C/man3/daemon.3:88
msgid ""
"(This function forks, and if the B<fork>(2)  succeeds, the parent calls "
"B<_exit>(2), so that further errors are seen by the child only.)  On success "
"B<daemon>()  returns zero.  If an error occurs, B<daemon>()  returns -1 and "
"sets I<errno> to any of the errors specified for the B<fork>(2)  and "
"B<setsid>(2)."
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:94
msgid ""
"Not in POSIX.1-2001.  A similar function appears on the BSDs.  The "
"B<daemon>()  function first appeared in 4.4BSD."
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:102
msgid ""
"The glibc implementation can also return -1 when I</dev/null> exists but is "
"not a character device with the expected major and minor numbers.  In this "
"case I<errno> need not be set."
msgstr ""

#. type: Plain text
#: build/C/man3/daemon.3:105
msgid "B<fork>(2), B<setsid>(2)"
msgstr ""

#. type: TH
#: build/C/man3/des_crypt.3:10
#, no-wrap
msgid "DES_CRYPT"
msgstr ""

#. type: TH
#: build/C/man3/des_crypt.3:10
#, no-wrap
msgid "2007-05-18"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:14
msgid ""
"des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - fast DES "
"encryption"
msgstr ""

#.  Sun version
#.  .B #include <des_crypt.h>
#. type: Plain text
#: build/C/man3/des_crypt.3:19
#, no-wrap
msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:22
#, no-wrap
msgid ""
"B<int ecb_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
">I<datalen>B<,>\n"
"B<              unsigned >I<mode>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:25
#, no-wrap
msgid ""
"B<int cbc_crypt(char *>I<key>B<, char *>I<data>B<, unsigned "
">I<datalen>B<,>\n"
"B<              unsigned >I<mode>B<, char *>I<ivec>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:27
#, no-wrap
msgid "B<void des_setparity(char *>I<key>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:29
#, no-wrap
msgid "B<int DES_FAILED(int >I<status>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:59
msgid ""
"B<ecb_crypt>()  and B<cbc_crypt>()  implement the NBS DES (Data Encryption "
"Standard).  These routines are faster and more general purpose than "
"B<crypt>(3).  They also are able to utilize DES hardware if it is "
"available.  B<ecb_crypt>()  encrypts in ECB (Electronic Code Book)  mode, "
"which encrypts blocks of data independently.  B<cbc_crypt>()  encrypts in "
"CBC (Cipher Block Chaining)  mode, which chains together successive blocks.  "
"CBC mode protects against insertions, deletions and substitutions of "
"blocks.  Also, regularities in the clear text will not appear in the cipher "
"text."
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:102
msgid ""
"Here is how to use these routines.  The first argument, I<key>, is the "
"8-byte encryption key with parity.  To set the key's parity, which for DES "
"is in the low bit of each byte, use B<des_setparity>().  The second "
"argument, I<data>, contains the data to be encrypted or decrypted.  The "
"third argument, I<datalen>, is the length in bytes of I<data>, which must be "
"a multiple of 8.  The fourth argument, I<mode>, is formed by ORing together "
"some things.  For the encryption direction OR in either B<DES_ENCRYPT> or "
"B<DES_DECRYPT>.  For software versus hardware encryption, OR in either "
"B<DES_HW> or B<DES_SW>.  If B<DES_HW> is specified, and there is no "
"hardware, then the encryption is performed in software and the routine "
"returns B<DESERR_NOHWDEVICE>.  For B<cbc_crypt>(), the argument I<ivec> is "
"the 8-byte initialization vector for the chaining.  It is updated to the "
"next initialization vector upon return."
msgstr ""

#. type: TP
#: build/C/man3/des_crypt.3:104
#, no-wrap
msgid "B<DESERR_NONE>"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:107
msgid "No error."
msgstr ""

#. type: TP
#: build/C/man3/des_crypt.3:107
#, no-wrap
msgid "B<DESERR_NOHWDEVICE>"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:110
msgid ""
"Encryption succeeded, but done in software instead of the requested "
"hardware."
msgstr ""

#. type: TP
#: build/C/man3/des_crypt.3:110
#, no-wrap
msgid "B<DESERR_HWERROR>"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:113
msgid "An error occurred in the hardware or driver."
msgstr ""

#. type: TP
#: build/C/man3/des_crypt.3:113
#, no-wrap
msgid "B<DESERR_BADPARAM>"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:116
msgid "Bad argument to routine."
msgstr ""

#.  .BR DES_FAILED\c
#.  .BR ( stat )
#.  So far the Sun page
#.  Some additions - aeb
#. type: Plain text
#: build/C/man3/des_crypt.3:127
msgid ""
"Given a result status I<stat>, the macro B<DES_FAILED(>I<stat>B<)> is false "
"only for the first two statuses."
msgstr ""

#. type: SH
#: build/C/man3/des_crypt.3:127 build/C/man2/dup.2:165 build/C/man3/euidaccess.3:70 build/C/man3/exec.3:193 build/C/man2/exit_group.2:39 build/C/man3/fexecve.3:91 build/C/man2/get_thread_area.2:37 build/C/man2/gettid.2:51 build/C/man2/idle.2:59 build/C/man2/mincore.2:132 build/C/man2/pread.2:102 build/C/man2/set_thread_area.2:55 build/C/man2/setup.2:60
#, no-wrap
msgid "VERSIONS"
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:130
msgid ""
"These routines are present in libc 4.6.27 and later, and in glibc 2.1 and "
"later."
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:133
msgid "4.3BSD.  Not in POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/des_crypt.3:137
msgid "B<des>(1), B<crypt>(3), B<xcrypt>(3)"
msgstr ""

#. type: TH
#: build/C/man2/dup.2:36
#, no-wrap
msgid "DUP"
msgstr ""

#. type: TH
#: build/C/man2/dup.2:36
#, no-wrap
msgid "2012-02-14"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:39
msgid "dup, dup2, dup3 - duplicate a file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:45
#, no-wrap
msgid ""
"B<int dup(int >I<oldfd>B<);>\n"
"B<int dup2(int >I<oldfd>B<, int >I<newfd>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:49
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
"B<#include E<lt>fcntl.hE<gt>>              /* Obtain O_* constant "
"definitions */\n"
"B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:51
#, no-wrap
msgid "B<int dup3(int >I<oldfd>B<, int >I<newfd>B<, int >I<flags>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:55
msgid "These system calls create a copy of the file descriptor I<oldfd>."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:58
msgid "B<dup>()  uses the lowest-numbered unused descriptor for the new descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:62
msgid ""
"B<dup2>()  makes I<newfd> be the copy of I<oldfd>, closing I<newfd> first if "
"necessary, but note the following:"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:68
msgid ""
"If I<oldfd> is not a valid file descriptor, then the call fails, and "
"I<newfd> is not closed."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:79
msgid ""
"If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as "
"I<oldfd>, then B<dup2>()  does nothing, and returns I<newfd>."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:88
msgid ""
"After a successful return from one of these system calls, the old and new "
"file descriptors may be used interchangeably.  They refer to the same open "
"file description (see B<open>(2))  and thus share file offset and file "
"status flags; for example, if the file offset is modified by using "
"B<lseek>(2)  on one of the descriptors, the offset is also changed for the "
"other."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:96
msgid ""
"The two descriptors do not share file descriptor flags (the close-on-exec "
"flag).  The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2))  for the "
"duplicate descriptor is off."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:101
msgid "B<dup3>()  is the same as B<dup2>(), except that:"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:110
msgid ""
"The caller can force the close-on-exec flag to be set for the new file "
"descriptor by specifying B<O_CLOEXEC> in I<flags>.  See the description of "
"the same flag in B<open>(2)  for reasons why this may be useful."
msgstr ""

#.  FIXME . To confirm with Al Viro that this was intended, and its rationale
#. type: Plain text
#: build/C/man2/dup.2:120
msgid "If I<oldfd> equals I<newfd>, then B<dup3>()  fails with the error B<EINVAL>."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:126
msgid ""
"On success, these system calls return the new descriptor.  On error, -1 is "
"returned, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:133
msgid ""
"I<oldfd> isn't an open file descriptor, or I<newfd> is out of the allowed "
"range for file descriptors."
msgstr ""

#. type: TP
#: build/C/man2/dup.2:133 build/C/man2/swapon.2:114
#, no-wrap
msgid "B<EBUSY>"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:143
msgid ""
"(Linux only) This may be returned by B<dup2>()  or B<dup3>()  during a race "
"condition with B<open>(2)  and B<dup>()."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:151
msgid ""
"The B<dup2>()  or B<dup3>()  call was interrupted by a signal; see "
"B<signal>(7)."
msgstr ""

#.  FIXME . To confirm with Al Viro that this was intended, and its rationale
#. type: Plain text
#: build/C/man2/dup.2:161
msgid ""
"(B<dup3>())  I<flags> contain an invalid value.  Or, I<oldfd> was equal to "
"I<newfd>."
msgstr ""

#. type: TP
#: build/C/man2/dup.2:161 build/C/man2/execve.2:393 build/C/man2/fcntl.2:1132 build/C/man3/getlogin.3:103
#, no-wrap
msgid "B<EMFILE>"
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:165
msgid ""
"The process already has the maximum number of file descriptors open and "
"tried to open a new one."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:170
msgid ""
"B<dup3>()  was added to Linux in version 2.6.27; glibc support is available "
"starting with version 2.9."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:174
msgid "B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""

#.  SVr4 documents additional
#.  EINTR and ENOLINK error conditions.  POSIX.1 adds EINTR.
#.  The EBUSY return is Linux-specific.
#. type: Plain text
#: build/C/man2/dup.2:180
msgid "B<dup3>()  is Linux-specific."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:194
msgid ""
"The error returned by B<dup2>()  is different from that returned by "
"B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range.  On some "
"systems B<dup2>()  also sometimes returns B<EINVAL> like B<F_DUPFD>."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:207
msgid ""
"If I<newfd> was open, any errors that would have been reported at "
"B<close>(2)  time are lost.  A careful programmer will not use B<dup2>()  or "
"B<dup3>()  without closing I<newfd> first."
msgstr ""

#. type: Plain text
#: build/C/man2/dup.2:211
msgid "B<close>(2), B<fcntl>(2), B<open>(2)"
msgstr ""

#. type: TH
#: build/C/man3/encrypt.3:24
#, no-wrap
msgid "ENCRYPT"
msgstr ""

#. type: TH
#: build/C/man3/encrypt.3:24
#, no-wrap
msgid "2003-04-04"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:27
msgid "encrypt, setkey, encrypt_r, setkey_r - encrypt 64-bit messages"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:29 build/C/man3/encrypt.3:35
msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:33
msgid "B<void encrypt(char >I<block>B<[64], int >I<edflag>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:37
msgid "B<#include E<lt>stdlib.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:39
msgid "B<void setkey(const char *>I<key>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:41 build/C/man3/getumask.3:31
msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:43
msgid "B<#include E<lt>crypt.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:45
msgid "B<void setkey_r(const char *>I<key>B<, struct crypt_data *>I<data>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:48
msgid ""
"B<void encrypt_r(char *>I<block>B<, int >I<edflag>B<, struct crypt_data "
"*>I<data>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:50
msgid "Each of these requires linking with I<-lcrypt>."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:62
msgid ""
"These functions encrypt and decrypt 64-bit messages.  The B<setkey>()  "
"function sets the key used by B<encrypt>().  The I<key> argument used here "
"is an array of 64 bytes, each of which has numerical value 1 or 0.  The "
"bytes key[n] where n=8*i-1 are ignored, so that the effective key length is "
"56 bits."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:74
msgid ""
"The B<encrypt>()  function modifies the passed buffer, encoding if I<edflag> "
"is 0, and decoding if 1 is being passed.  Like the I<key> argument, also "
"I<block> is a bit vector representation of the actual value that is "
"encoded.  The result is returned in that same vector."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:84
msgid ""
"These two functions are not reentrant, that is, the key data is kept in "
"static storage.  The functions B<setkey_r>()  and B<encrypt_r>()  are the "
"reentrant versions.  They use the following structure to hold the key data:"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:99
#, no-wrap
msgid ""
"struct crypt_data {\n"
"    char     keysched[16 * 8];\n"
"    char     sb0[32768];\n"
"    char     sb1[32768];\n"
"    char     sb2[32768];\n"
"    char     sb3[32768];\n"
"    char     crypt_3_buf[14];\n"
"    char     current_salt[2];\n"
"    long int current_saltbits;\n"
"    int      direction;\n"
"    int      initialized;\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:107
msgid "Before calling B<setkey_r>()  set I<data-E<gt>initialized> to zero."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:109
msgid "These functions do not return any value."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:114
msgid ""
"Set I<errno> to zero before calling the above functions.  On success, it is "
"unchanged."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:118
msgid ""
"The function is not provided.  (For example because of former USA export "
"restrictions.)"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:129
msgid ""
"The functions B<encrypt>()  and B<setkey>()  conform to SVr4, SUSv2, and "
"POSIX.1-2001.  The functions B<encrypt_r>()  and B<setkey_r>()  are GNU "
"extensions."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:131
msgid "In glibc 2.2 these functions use the DES algorithm."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:138
msgid ""
"You need to link with libcrypt to compile this example with glibc.  To do "
"useful work the I<key[]> and I<txt[]> arrays must be filled with a useful "
"bit pattern."
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:143
#, no-wrap
msgid ""
"#define _XOPEN_SOURCE\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:149
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
"    char key[64];      /* bit pattern for key */\n"
"    char txt[64];      /* bit pattern for messages */\n"
msgstr ""

#. type: Plain text
#: build/C/man3/encrypt.3:154
#, no-wrap
msgid ""
"    setkey(key);\n"
"    encrypt(txt, 0);   /* encode */\n"
"    encrypt(txt, 1);   /* decode */\n"
"}\n"
msgstr ""

#.  .BR fcrypt (3)
#. type: Plain text
#: build/C/man3/encrypt.3:160
msgid "B<cbc_crypt>(3), B<crypt>(3), B<ecb_crypt>(3),"
msgstr ""

#. type: TH
#: build/C/man7/environ.7:33
#, no-wrap
msgid "ENVIRON"
msgstr ""

#. type: TH
#: build/C/man7/environ.7:33 build/C/man2/flock.2:34
#, no-wrap
msgid "2009-07-25"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:36
msgid "environ - user environment"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:39
#, no-wrap
msgid "B<extern char **>I<environ>B<;>\n"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:56
msgid ""
"The variable I<environ> points to an array of pointers to strings called the "
"\"environment\".  The last pointer in this array has the value NULL.  (This "
"variable must be declared in the user program, but is declared in the header "
"file I<E<lt>unistd.hE<gt>> in case the header files came from libc4 or "
"libc5, and in case they came from glibc and B<_GNU_SOURCE> was defined.)  "
"This array of strings is made available to the process by the B<exec>(3)  "
"call that started the process."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:61
msgid ""
"By convention the strings in I<environ> have the form "
"\"I<name>B<=>I<value>\".  Common examples are:"
msgstr ""

#. type: TP
#: build/C/man7/environ.7:61
#, no-wrap
msgid "B<USER>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:64
msgid "The name of the logged-in user (used by some BSD-derived programs)."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:64
#, no-wrap
msgid "B<LOGNAME>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:67
msgid "The name of the logged-in user (used by some System-V derived programs)."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:67
#, no-wrap
msgid "B<HOME>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:73
msgid ""
"A user's login directory, set by B<login>(1)  from the password file "
"B<passwd>(5)."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:73
#, no-wrap
msgid "B<LANG>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:80
msgid ""
"The name of a locale to use for locale categories when not overridden by "
"B<LC_ALL> or more specific environment variables like B<LC_COLLATE>, "
"B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, B<LC_TIME>, cf.  "
"B<locale>(5)."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:80
#, no-wrap
msgid "B<PATH>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:92
msgid ""
"The sequence of directory prefixes that B<sh>(1)  and many other programs "
"apply in searching for a file known by an incomplete pathname.  The prefixes "
"are separated by \\(aqB<:>\\(aq.  (Similarly one has B<CDPATH> used by some "
"shells to find the target of a change directory command, B<MANPATH> used by "
"B<man>(1)  to find manual pages, etc.)"
msgstr ""

#. type: TP
#: build/C/man7/environ.7:92
#, no-wrap
msgid "B<PWD>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:96
msgid "The current working directory.  Set by some shells."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:96
#, no-wrap
msgid "B<SHELL>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:99
msgid "The pathname of the user's login shell."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:99
#, no-wrap
msgid "B<TERM>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:102
msgid "The terminal type for which output is to be prepared."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:102
#, no-wrap
msgid "B<PAGER>"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:105
msgid "The user's preferred utility to display text files."
msgstr ""

#. type: TP
#: build/C/man7/environ.7:105
#, no-wrap
msgid "B<EDITOR>/B<VISUAL>"
msgstr ""

#.  .TP
#.  .B BROWSER
#.  The user's preferred utility to browse URLs. Sequence of colon-separated
#.  browser commands. See http://www.catb.org/~esr/BROWSER/ .
#. type: Plain text
#: build/C/man7/environ.7:112
msgid "The user's preferred utility to edit text files."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:127
msgid ""
"Further names may be placed in the environment by the I<export> command and "
"\"name=value\" in B<sh>(1), or by the I<setenv> command if you use "
"B<csh>(1).  Arguments may also be placed in the environment at the point of "
"an B<exec>(3).  A C program can manipulate its environment using the "
"functions B<getenv>(3), B<putenv>(3), B<setenv>(3), and B<unsetenv>(3)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:131
msgid ""
"Note that the behavior of many programs and library routines is influenced "
"by the presence or value of certain environment variables.  A random "
"collection:"
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:137
msgid ""
"The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, "
"B<LC_MESSAGES>, etc. influence locale handling, cf.  B<locale>(5)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:144
msgid ""
"B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3)  and "
"other routines, the temporary directory used by B<sort>(1)  and other "
"programs, etc."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:148
msgid ""
"B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the "
"behavior of the dynamic loader/linker."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:152
msgid ""
"B<POSIXLY_CORRECT> makes certain programs and library routines follow the "
"prescriptions of POSIX."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:158
msgid "The behavior of B<malloc>(3)  is influenced by B<MALLOC_*> variables."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:164
msgid ""
"The variable B<HOSTALIASES> gives the name of a file containing aliases to "
"be used with B<gethostbyname>(3)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:175
msgid ""
"B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3)  and "
"through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), "
"B<strftime>(3).  See also B<tzselect>(8)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:179
msgid ""
"B<TERMCAP> gives information on how to address a given terminal (or gives "
"the name of a file containing such information)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:182
msgid ""
"B<COLUMNS> and B<LINES> tell applications about the window size, possibly "
"overriding the actual size."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:187
msgid ""
"B<PRINTER> or B<LPDEST> may specify the desired printer to use.  See "
"B<lpr>(1)."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:189
msgid "Etc."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:194
msgid ""
"Clearly there is a security risk here.  Many a system command has been "
"tricked into mischief by a user who specified unusual values for B<IFS> or "
"B<LD_LIBRARY_PATH>."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:227
msgid ""
"There is also the risk of name space pollution.  Programs like I<make> and "
"I<autoconf> allow overriding of default utility names from the environment "
"with similarly named variables in all caps.  Thus one uses B<CC> to select "
"the desired C compiler (and similarly B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, "
"B<LEX>, B<RM>, B<YACC>, etc.).  However, in some traditional uses such an "
"environment variable gives options for the program instead of a pathname.  "
"Thus, one has B<MORE>, B<LESS>, and B<GZIP>.  Such usage is considered "
"mistaken, and to be avoided in new programs.  The authors of I<gzip> should "
"consider renaming their option to B<GZIP_OPT>."
msgstr ""

#. type: Plain text
#: build/C/man7/environ.7:241
msgid ""
"B<bash>(1), B<csh>(1), B<login>(1), B<sh>(1), B<tcsh>(1), B<execve>(2), "
"B<clearenv>(3), B<exec>(3), B<getenv>(3), B<putenv>(3), B<setenv>(3), "
"B<unsetenv>(3), B<locale>(5)"
msgstr ""

#. type: TH
#: build/C/man3/euidaccess.3:26
#, no-wrap
msgid "EUIDACCESS"
msgstr ""

#. type: TH
#: build/C/man3/euidaccess.3:26 build/C/man3/getopt.3:39
#, no-wrap
msgid "2010-11-01"
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:29
msgid "euidaccess, eaccess - check effective user's permissions for a file"
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:33
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
"B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:36
#, no-wrap
msgid ""
"B<int euidaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
"B<int eaccess(const char *>I<pathname>B<, int >I<mode>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:48
msgid ""
"Like B<access>(2), B<euidaccess>()  checks permissions and existence of the "
"file identified by its argument I<pathname>.  However, whereas B<access>(2), "
"performs checks using the real user and group identifiers of the process, "
"B<euidaccess>()  uses the effective identifiers."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:54
msgid ""
"I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK> and "
"B<F_OK>, with the same meanings as for B<access>(2)."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:59
msgid ""
"B<eaccess>()  is a synonym for B<euidaccess>(), provided for compatibility "
"with some other systems."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:70
msgid "As for B<access>(2)."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:74
msgid "The B<eaccess>()  function was added to glibc in version 2.4."
msgstr ""

#.  e.g., FreeBSD 6.1.
#. type: Plain text
#: build/C/man3/euidaccess.3:80
msgid ""
"These functions are nonstandard.  Some other systems have an B<eaccess>()  "
"function."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:87
msgid ""
"I<Warning>: Using this function to check a process's permissions on a file "
"before performing some operation based on that information leads to race "
"conditions: the file permissions may change between the two steps.  "
"Generally, it is safer just to attempt the desired operation and handle any "
"permission error that occurs."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:95
msgid ""
"This function always dereferences symbolic links.  If you need to check the "
"permissions on a symbolic link, use B<faccessat(2)> with the flags "
"B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW>."
msgstr ""

#. type: Plain text
#: build/C/man3/euidaccess.3:106
msgid ""
"B<access>(2), B<chmod>(2), B<chown>(2), B<faccessat>(2), B<open>(2), "
"B<setgid>(2), B<setuid>(2), B<stat>(2), B<credentials>(7), "
"B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man3/exec.3:39
#, no-wrap
msgid "EXEC"
msgstr ""

#. type: TH
#: build/C/man3/exec.3:39
#, no-wrap
msgid "2010-09-25"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:42
msgid "execl, execlp, execle, execv, execvp, execvpe - execute a file"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:46
msgid "B<extern char **environ;>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:48
msgid "B<int execl(const char *>I<path>B<, const char *>I<arg>B<, ...);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:50
msgid "B<int execlp(const char *>I<file>B<, const char *>I<arg>B<, ...);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:52
msgid "B<int execle(const char *>I<path>B<, const char *>I<arg>B<,>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:54
msgid "B< ..., char * const >I<envp>B<[]);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:56
msgid "B<int execv(const char *>I<path>B<, char *const >I<argv>B<[]);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:58
msgid "B<int execvp(const char *>I<file>B<, char *const >I<argv>B<[]);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:60
msgid "B<int execvpe(const char *>I<file>B<, char *const >I<argv>B<[],>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:62 build/C/man2/execve.2:46
msgid "B< char *const >I<envp>B<[]);>"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:70
msgid "B<execvpe>(): _GNU_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:80
msgid ""
"The B<exec>()  family of functions replaces the current process image with a "
"new process image.  The functions described in this manual page are "
"front-ends for B<execve>(2).  (See the manual page for B<execve>(2)  for "
"further details about the replacement of the current process image.)"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:83
msgid ""
"The initial argument for these functions is the name of a file that is to be "
"executed."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:105
msgid ""
"The I<const char *arg> and subsequent ellipses in the B<execl>(), "
"B<execlp>(), and B<execle>()  functions can be thought of as I<arg0>, "
"I<arg1>, \\&..., I<argn>.  Together they describe a list of one or more "
"pointers to null-terminated strings that represent the argument list "
"available to the executed program.  The first argument, by convention, "
"should point to the filename associated with the file being executed.  The "
"list of arguments I<must> be terminated by a NULL pointer, and, since these "
"are variadic functions, this pointer must be cast I<(char *) NULL>."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:118
msgid ""
"The B<execv>(), B<execvp>(), and B<execvpe>()  functions provide an array of "
"pointers to null-terminated strings that represent the argument list "
"available to the new program.  The first argument, by convention, should "
"point to the filename associated with the file being executed.  The array of "
"pointers I<must> be terminated by a NULL pointer."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:135
msgid ""
"The B<execle>()  and B<execvpe>()  functions allow the caller to specify the "
"environment of the executed program via the argument I<envp>.  The I<envp> "
"argument is an array of pointers to null-terminated strings and I<must> be "
"terminated by a NULL pointer.  The other functions take the environment for "
"the new process image from the external variable I<environ> in the calling "
"process."
msgstr ""

#. type: SS
#: build/C/man3/exec.3:135
#, no-wrap
msgid "Special semantics for execlp() and execvp()"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:155
msgid ""
"The B<execlp>(), B<execvp>(), and B<execvpe>()  functions duplicate the "
"actions of the shell in searching for an executable file if the specified "
"filename does not contain a slash (/) character.  The file is sought in the "
"colon-separated list of directory pathnames specified in the B<PATH> "
"environment variable.  If this variable isn't defined, the path list "
"defaults to the current directory followed by the list of directories "
"returned by I<confstr(_CS_PATH)>.  (This B<confstr>(3)  call typically "
"returns the value \"/bin:/usr/bin\".)"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:159
msgid ""
"If the specified filename includes a slash character, then B<PATH> is "
"ignored, and the file at the specified pathname is executed."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:161
msgid "In addition, certain errors are treated specially."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:172
msgid ""
"If permission is denied for a file (the attempted B<execve>(2)  failed with "
"the error B<EACCES>), these functions will continue searching the rest of "
"the search path.  If no other file is found, however, they will return with "
"I<errno> set to B<EACCES>."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:181
msgid ""
"If the header of a file isn't recognized (the attempted B<execve>(2)  failed "
"with the error B<ENOEXEC>), these functions will execute the shell "
"(I</bin/sh>)  with the path of the file as its first argument.  (If this "
"attempt fails, no further searching is done.)"
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:188
msgid ""
"The B<exec>()  functions only return if an error has have occurred.  The "
"return value is -1, and I<errno> is set to indicate the error."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:193
msgid ""
"All of these functions may fail and set I<errno> for any of the errors "
"specified for B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:197
msgid "The B<execvpe>()  function first appeared in glibc 2.11."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:199
msgid "POSIX.1-2001, POSIX.1-2008."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:203
msgid "The B<execvpe>()  function is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:213
msgid ""
"On some other systems, the default path (used when the environment does not "
"contain the variable B<PATH>) has the current working directory listed after "
"I</bin> and I</usr/bin>, as an anti-Trojan-horse measure.  Linux uses here "
"the traditional \"current directory first\" default path."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:227
msgid ""
"The behavior of B<execlp>()  and B<execvp>()  when errors occur while "
"attempting to execute the file is historic practice, but has not "
"traditionally been documented and is not specified by the POSIX standard.  "
"BSD (and possibly other systems) do an automatic sleep and retry if "
"B<ETXTBSY> is encountered.  Linux treats it as a hard error and returns "
"immediately."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:239
msgid ""
"Traditionally, the functions B<execlp>()  and B<execvp>()  ignored all "
"errors except for the ones described above and B<ENOMEM> and B<E2BIG>, upon "
"which they returned.  They now return if any error other than the ones "
"described above occurs."
msgstr ""

#. type: Plain text
#: build/C/man3/exec.3:246
msgid ""
"B<sh>(1), B<execve>(2), B<fork>(2), B<ptrace>(2), B<fexecve>(3), "
"B<environ>(7)"
msgstr ""

#. type: TH
#: build/C/man2/execve.2:37
#, no-wrap
msgid "EXECVE"
msgstr ""

#. type: TH
#: build/C/man2/execve.2:37
#, no-wrap
msgid "2011-09-14"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:40
msgid "execve - execute program"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:44
msgid "B<int execve(const char *>I<filename>B<, char *const >I<argv>B<[], >"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:51
msgid ""
"B<execve>()  executes the program pointed to by I<filename>.  I<filename> "
"must be either a binary executable, or a script starting with a line of the "
"form:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:55 build/C/man2/execve.2:252
#, no-wrap
msgid "B<#!> I<interpreter >[optional-arg]\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:59
msgid "For details of the latter case, see \"Interpreter scripts\" below."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:68
msgid ""
"I<argv> is an array of argument strings passed to the new program.  By "
"convention, the first of these strings should contain the filename "
"associated with the file being executed.  I<envp> is an array of strings, "
"conventionally of the form B<key=value>, which are passed as environment to "
"the new program.  Both I<argv> and I<envp> must be terminated by a NULL "
"pointer.  The argument vector and environment can be accessed by the called "
"program's main function, when it is defined as:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:72
#, no-wrap
msgid "int main(int argc, char *argv[], char *envp[])\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:79
msgid ""
"B<execve>()  does not return on success, and the text, data, bss, and stack "
"of the calling process are overwritten by that of the program loaded."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:83
msgid ""
"If the current program is being ptraced, a B<SIGTRAP> is sent to it after a "
"successful B<execve>()."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:98
msgid ""
"If the set-user-ID bit is set on the program file pointed to by I<filename>, "
"and the underlying file system is not mounted I<nosuid> (the B<MS_NOSUID> "
"flag for B<mount>(2)), and the calling process is not being ptraced, then "
"the effective user ID of the calling process is changed to that of the owner "
"of the program file.  Similarly, when the set-group-ID bit of the program "
"file is set the effective group ID of the calling process is set to the "
"group of the program file."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:103
msgid ""
"The effective user ID of the process is copied to the saved set-user-ID; "
"similarly, the effective group ID is copied to the saved set-group-ID.  This "
"copying takes place after any effective ID changes that occur because of the "
"set-user-ID and set-group-ID permission bits."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:111
msgid ""
"If the executable is an a.out dynamically linked binary executable "
"containing shared-library stubs, the Linux dynamic linker B<ld.so>(8)  is "
"called at the start of execution to bring needed shared libraries into "
"memory and link the executable with them."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:119
msgid ""
"If the executable is a dynamically linked ELF executable, the interpreter "
"named in the PT_INTERP segment is used to load the needed shared libraries.  "
"This interpreter is typically I</lib/ld-linux.so.1> for binaries linked with "
"the Linux libc 5, or I</lib/ld-linux.so.2> for binaries linked with the "
"glibc 2."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:123
msgid ""
"All process attributes are preserved during an B<execve>(), except the "
"following:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:127
msgid ""
"The dispositions of any signals that are being caught are reset to the "
"default (B<signal>(7))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:130
msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:133
msgid "Memory mappings are not preserved (B<mmap>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:136
msgid "Attached System V shared memory segments are detached (B<shmat>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:139
msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:142
msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:145
msgid "Any open POSIX named semaphores are closed (B<sem_overview>(7))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:148
msgid "POSIX timers are not preserved (B<timer_create>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:151
msgid "Any open directory streams are closed (B<opendir>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:155
msgid "Memory locks are not preserved (B<mlock>(2), B<mlockall>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:159
msgid "Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:162
msgid "The floating-point environment is reset to the default (see B<fenv>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:168
msgid ""
"The process attributes in the preceding list are all specified in "
"POSIX.1-2001.  The following Linux-specific process attributes are also not "
"preserved during an B<execve>():"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:175
msgid ""
"The B<prctl>(2)  B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or "
"set-group ID program is being executed, in which case it is cleared."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:180
msgid "The B<prctl>(2)  B<PR_SET_KEEPCAPS> flag is cleared."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:187
msgid ""
"The process name, as set by B<prctl>(2)  B<PR_SET_NAME> (and displayed by "
"I<ps\\ -o comm>), is reset to the name of the new executable file."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:192
msgid "The termination signal is reset to B<SIGCHLD> (see B<clone>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:194 build/C/man2/fork.2:120
msgid "Note the following further points:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:198
msgid ""
"All threads other than the calling thread are destroyed during an "
"B<execve>().  Mutexes, condition variables, and other pthreads objects are "
"not preserved."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:201
msgid ""
"The equivalent of I<setlocale(LC_ALL, \"C\")> is executed at program "
"start-up."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:209
msgid ""
"POSIX.1-2001 specifies that the dispositions of any signals that are ignored "
"or set to the default are left unchanged.  POSIX.1-2001 specifies one "
"exception: if B<SIGCHLD> is being ignored, then an implementation may leave "
"the disposition unchanged or reset it to the default; Linux does the former."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:213
msgid ""
"Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), "
"B<aio_write>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:218
msgid "For the handling of capabilities during B<execve>(), see B<capabilities>(7)."
msgstr ""

#.  On Linux it appears that these file descriptors are
#.  always open after an execve(), and it looks like
#.  Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
#. type: Plain text
#: build/C/man2/execve.2:245
msgid ""
"By default, file descriptors remain open across an B<execve>().  File "
"descriptors that are marked close-on-exec are closed; see the description of "
"B<FD_CLOEXEC> in B<fcntl>(2).  (If a file descriptor is closed, this will "
"cause the release of all record locks obtained on the underlying file by "
"this process.  See B<fcntl>(2)  for details.)  POSIX.1-2001 says that if "
"file descriptors 0, 1, and 2 would otherwise be closed after a successful "
"B<execve>(), and the process would gain privilege because the set-user_ID or "
"set-group_ID permission bit was set on the executed file, then the system "
"may open an unspecified file for each of these file descriptors.  As a "
"general principle, no portable program, whether privileged or not, can "
"assume that these three file descriptors will remain closed across an "
"B<execve>()."
msgstr ""

#. type: SS
#: build/C/man2/execve.2:245
#, no-wrap
msgid "Interpreter scripts"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:248
msgid ""
"An interpreter script is a text file that has execute permission enabled and "
"whose first line is of the form:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:266
msgid ""
"The I<interpreter> must be a valid pathname for an executable which is not "
"itself a script.  If the I<filename> argument of B<execve>()  specifies an "
"interpreter script, then I<interpreter> will be invoked with the following "
"arguments:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:270
#, no-wrap
msgid "I<interpreter> [optional-arg] I<filename> arg...\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:279
msgid ""
"where I<arg...> is the series of words pointed to by the I<argv> argument of "
"B<execve>()."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:284
msgid ""
"For portable use, I<optional-arg> should either be absent, or be specified "
"as a single word (i.e., it should not contain white space); see NOTES below."
msgstr ""

#. type: SS
#: build/C/man2/execve.2:284
#, no-wrap
msgid "Limits on size of arguments and environment"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:297
msgid ""
"Most UNIX implementations impose some limit on the total size of the "
"command-line argument (I<argv>)  and environment (I<envp>)  strings that may "
"be passed to a new program.  POSIX.1 allows an implementation to advertise "
"this limit using the B<ARG_MAX> constant (either defined in "
"I<E<lt>limits.hE<gt>> or available at run time using the call "
"I<sysconf(_SC_ARG_MAX)>)."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:304
msgid ""
"On Linux prior to kernel 2.6.23, the memory used to store the environment "
"and argument strings was limited to 32 pages (defined by the kernel constant "
"B<MAX_ARG_PAGES>).  On architectures with a 4-kB page size, this yields a "
"maximum size of 128 kB."
msgstr ""

#.  For some background on the changes to ARG_MAX in kernels 2.6.23 and
#.  2.6.25, see:
#.      http://sourceware.org/bugzilla/show_bug.cgi?id=5786
#.      http://bugzilla.kernel.org/show_bug.cgi?id=10095
#.      http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101,
#.      checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.
#.  Ollie: That doesn't include the lists of pointers, though,
#.  so the actual usage is a bit higher (1 pointer per argument).
#. type: Plain text
#: build/C/man2/execve.2:340
msgid ""
"On kernel 2.6.23 and later, most architectures support a size limit derived "
"from the soft B<RLIMIT_STACK> resource limit (see B<getrlimit>(2))  that is "
"in force at the time of the B<execve>()  call.  (Architectures with no "
"memory management unit are excepted: they maintain the limit that was in "
"effect before kernel 2.6.23.)  This change allows programs to have a much "
"larger argument and/or environment list.  For these architectures, the total "
"size is limited to 1/4 of the allowed stack size.  (Imposing the 1/4-limit "
"ensures that the new program always has some stack space.)  Since Linux "
"2.6.25, the kernel places a floor of 32 pages on this size limit, so that, "
"even when B<RLIMIT_STACK> is set very low, applications are guaranteed to "
"have at least as much argument and environment space as was provided by "
"Linux 2.6.23 and earlier.  (This guarantee was not provided in Linux 2.6.23 "
"and 2.6.24.)  Additionally, the limit per string is 32 pages (the kernel "
"constant B<MAX_ARG_STRLEN>), and the maximum number of strings is "
"0x7FFFFFFF."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:346
msgid ""
"On success, B<execve>()  does not return, on error -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""

#. type: TP
#: build/C/man2/execve.2:347
#, no-wrap
msgid "B<E2BIG>"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:354
msgid ""
"The total number of bytes in the environment (I<envp>)  and argument list "
"(I<argv>)  is too large."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:361
msgid ""
"Search permission is denied on a component of the path prefix of I<filename> "
"or the name of a script interpreter.  (See also B<path_resolution>(7).)"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:364
msgid "The file or a script interpreter is not a regular file."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:367
msgid "Execute permission is denied for the file or a script or ELF interpreter."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:371
msgid "The file system is mounted I<noexec>."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:375
msgid "I<filename> points outside your accessible address space."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:379
msgid ""
"An ELF executable had more than one PT_INTERP segment (i.e., tried to name "
"more than one interpreter)."
msgstr ""

#. type: TP
#: build/C/man2/execve.2:382 build/C/man2/truncate.2:146
#, no-wrap
msgid "B<EISDIR>"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:385
msgid "An ELF interpreter was a directory."
msgstr ""

#. type: TP
#: build/C/man2/execve.2:385
#, no-wrap
msgid "B<ELIBBAD>"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:388
msgid "An ELF interpreter was not in a recognized format."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:393
msgid ""
"Too many symbolic links were encountered in resolving I<filename> or the "
"name of a script or ELF interpreter."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:396
msgid "The process has the maximum number of files open."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:400
msgid "I<filename> is too long."
msgstr ""

#. type: TP
#: build/C/man2/execve.2:400 build/C/man3/getlogin.3:106 build/C/man2/swapon.2:133 build/C/man2/uselib.2:67
#, no-wrap
msgid "B<ENFILE>"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:403 build/C/man2/swapon.2:136 build/C/man2/uselib.2:70
msgid "The system limit on the total number of open files has been reached."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:409
msgid ""
"The file I<filename> or a script or ELF interpreter does not exist, or a "
"shared library needed for file or interpreter cannot be found."
msgstr ""

#. type: TP
#: build/C/man2/execve.2:409 build/C/man2/uselib.2:70
#, no-wrap
msgid "B<ENOEXEC>"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:414
msgid ""
"An executable is not in a recognized format, is for the wrong architecture, "
"or has some other format error that means it cannot be executed."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:422
msgid ""
"A component of the path prefix of I<filename> or a script or ELF interpreter "
"is not a directory."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:428
msgid ""
"The file system is mounted I<nosuid>, the user is not the superuser, and the "
"file has the set-user-ID or set-group-ID bit set."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:432
msgid ""
"The process is being traced, the user is not the superuser and the file has "
"the set-user-ID or set-group-ID bit set."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:435
msgid "Executable was open for writing by one or more processes."
msgstr ""

#.  SVr4 documents additional error
#.  conditions EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX does not
#.  document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL,
#.  EISDIR or ELIBBAD error conditions.
#. type: Plain text
#: build/C/man2/execve.2:443
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2001 does not document the #! behavior "
"but is otherwise compatible."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:446
msgid "Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:448
msgid "Linux ignores the set-user-ID and set-group-ID bits on scripts."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:459
msgid ""
"The result of mounting a file system I<nosuid> varies across Linux kernel "
"versions: some will refuse execution of set-user-ID and set-group-ID "
"executables when this would give the user powers she did not have already "
"(and return B<EPERM>), some will just ignore the set-user-ID and "
"set-group-ID bits and B<exec>()  successfully."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:462
msgid ""
"A maximum line length of 127 characters is allowed for the first line in a "
"#! executable shell script."
msgstr ""

#.  e.g., Solaris 8
#.  e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
#. type: Plain text
#: build/C/man2/execve.2:481
msgid ""
"The semantics of the I<optional-arg> argument of an interpreter script vary "
"across implementations.  On Linux, the entire string following the "
"I<interpreter> name is passed as a single argument to the interpreter, and "
"this string can include white space.  However, behavior differs on some "
"other systems.  Some systems use the first white space to terminate "
"I<optional-arg>.  On some systems, an interpreter script can have multiple "
"arguments, and white spaces in I<optional-arg> are used to delimit the "
"arguments."
msgstr ""

#.  e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but
#.  HP-UX 11 is like Linux -- mtk, Apr 2007
#.  Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408
#.  Bug rejected (because fix would constitute an ABI change).
#. type: Plain text
#: build/C/man2/execve.2:496
msgid ""
"On Linux, I<argv> can be specified as NULL, which has the same effect as "
"specifying this argument as a pointer to a list containing a single NULL "
"pointer.  B<Do not take advantage of this misfeature!> It is nonstandard and "
"nonportable: on most other UNIX systems doing this will result in an error "
"(B<EFAULT>)."
msgstr ""

#
#.  .SH BUGS
#.  Some Linux versions have failed to check permissions on ELF
#.  interpreters.  This is a security hole, because it allows users to
#.  open any file, such as a rewinding tape device, for reading.  Some
#.  Linux versions have also had other security holes in
#.  .BR execve ()
#.  that could be exploited for denial of service by a suitably crafted
#.  ELF binary. There are no known problems with 2.0.34 or 2.2.15.
#. type: Plain text
#: build/C/man2/execve.2:516
msgid ""
"POSIX.1-2001 says that values returned by B<sysconf>(3)  should be invariant "
"over the lifetime of a process.  However, since Linux 2.6.23, if the "
"B<RLIMIT_STACK> resource limit changes, then the value reported by "
"B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space "
"for holding command-line arguments and environment variables has changed."
msgstr ""

#. type: SS
#: build/C/man2/execve.2:516
#, no-wrap
msgid "Historical"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:527
msgid ""
"With UNIX V6 the argument list of an B<exec>()  call was ended by 0, while "
"the argument list of I<main> was ended by -1.  Thus, this argument list was "
"not directly usable in a further B<exec>()  call.  Since UNIX V7 both are "
"NULL."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:530
msgid ""
"The following program is designed to be execed by the second program below.  "
"It just echoes its command-line one per line."
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:534
#, no-wrap
msgid "/* myecho.c */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:537
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:542
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    int j;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:545
#, no-wrap
msgid ""
"    for (j = 0; j E<lt> argc; j++)\n"
"        printf(\"argv[%d]: %s\\en\", j, argv[j]);\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:553
msgid ""
"This program can be used to exec the program named in its command-line "
"argument:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:557
#, no-wrap
msgid "/* execve.c */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:561
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:567
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    char *newargv[] = { NULL, \"hello\", \"world\", NULL };\n"
"    char *newenviron[] = { NULL };\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:572
#, no-wrap
msgid ""
"    if (argc != 2) {\n"
"\tfprintf(stderr, \"Usage: %s E<lt>file-to-execE<gt>\\en\", argv[0]);\n"
"\texit(EXIT_FAILURE);\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:574
#, no-wrap
msgid "    newargv[0] = argv[1];\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:579
#, no-wrap
msgid ""
"    execve(argv[1], newargv, newenviron);\n"
"    perror(\"execve\");   /* execve() only returns on error */\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:583
msgid "We can use the second program to exec the first as follows:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:592
#, no-wrap
msgid ""
"$B< cc myecho.c -o myecho>\n"
"$B< cc execve.c -o execve>\n"
"$B< ./execve ./myecho>\n"
"argv[0]: ./myecho\n"
"argv[1]: hello\n"
"argv[2]: world\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:600
msgid ""
"We can also use these programs to demonstrate the use of a script "
"interpreter.  To do this we create a script whose \"interpreter\" is our "
"I<myecho> program:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:607
#, no-wrap
msgid ""
"$B< cat E<gt> script.sh>\n"
"B<#! ./myecho script-arg>\n"
"B<^D>\n"
"$B< chmod +x script.sh>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:611
msgid "We can then use our program to exec the script:"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:620
#, no-wrap
msgid ""
"$B< ./execve ./script.sh>\n"
"argv[0]: ./myecho\n"
"argv[1]: script-arg\n"
"argv[2]: ./script.sh\n"
"argv[3]: hello\n"
"argv[4]: world\n"
msgstr ""

#. type: Plain text
#: build/C/man2/execve.2:633
msgid ""
"B<chmod>(2), B<fork>(2), B<ptrace>(2), B<execl>(3), B<fexecve>(3), "
"B<getopt>(3), B<credentials>(7), B<environ>(7), B<path_resolution>(7), "
"B<ld.so>(8)"
msgstr ""

#. type: TH
#: build/C/man2/exit_group.2:23
#, no-wrap
msgid "EXIT_GROUP"
msgstr ""

#. type: TH
#: build/C/man2/exit_group.2:23 build/C/man2/get_thread_area.2:6 build/C/man2/set_thread_area.2:7
#, no-wrap
msgid "2008-11-27"
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:26
msgid "exit_group - exit all threads in a process"
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:29
#, no-wrap
msgid "B<#include E<lt>linux/unistd.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:31
#, no-wrap
msgid "B<void exit_group(int >I<status>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:37
msgid ""
"This system call is equivalent to B<exit>(2)  except that it terminates not "
"only the calling thread, but all threads in the calling process's thread "
"group."
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:39
msgid "This system call does not return."
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:41
msgid "This call is present since Linux 2.5.35."
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:43
msgid "This call is Linux-specific."
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:47
msgid ""
"Since glibc 2.3, this is the system call invoked when the B<exit>(2)  "
"wrapper function is called."
msgstr ""

#. type: Plain text
#: build/C/man2/exit_group.2:49
msgid "B<exit>(2)"
msgstr ""

#. type: TH
#: build/C/man2/fcntl.2:61
#, no-wrap
msgid "FCNTL"
msgstr ""

#. type: TH
#: build/C/man2/fcntl.2:61 build/C/man3/sysconf.3:25
#, no-wrap
msgid "2012-04-15"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:64
msgid "fcntl - manipulate file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:68
#, no-wrap
msgid ""
"B<#include E<lt>unistd.hE<gt>>\n"
"B<#include E<lt>fcntl.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:70
#, no-wrap
msgid "B<int fcntl(int >I<fd>B<, int >I<cmd>B<, ... /* >I<arg>B< */ );>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:77
msgid ""
"B<fcntl>()  performs one of the operations described below on the open file "
"descriptor I<fd>.  The operation is determined by I<cmd>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:91
msgid ""
"B<fcntl>()  can take an optional third argument.  Whether or not this "
"argument is required is determined by I<cmd>.  The required argument type is "
"indicated in parentheses after each I<cmd> name (in most cases, the required "
"type is I<int>, and we identify the argument using the name I<arg>), or "
"I<void> is specified if the argument is not required."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:91
#, no-wrap
msgid "Duplicating a file descriptor"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:92
#, no-wrap
msgid "B<F_DUPFD> (I<int>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:102
msgid ""
"Find the lowest numbered available file descriptor greater than or equal to "
"I<arg> and make it be a copy of I<fd>.  This is different from B<dup2>(2), "
"which uses exactly the descriptor specified."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:104
msgid "On success, the new descriptor is returned."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:108
msgid "See B<dup>(2)  for further details."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:108
#, no-wrap
msgid "B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:125
msgid ""
"As for B<F_DUPFD>, but additionally set the close-on-exec flag for the "
"duplicate descriptor.  Specifying this flag permits a program to avoid an "
"additional B<fcntl>()  B<F_SETFD> operation to set the B<FD_CLOEXEC> flag.  "
"For an explanation of why this flag is useful, see the description of "
"B<O_CLOEXEC> in B<open>(2)."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:125
#, no-wrap
msgid "File descriptor flags"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:136
msgid ""
"The following commands manipulate the flags associated with a file "
"descriptor.  Currently, only one such flag is defined: B<FD_CLOEXEC>, the "
"close-on-exec flag.  If the B<FD_CLOEXEC> bit is 0, the file descriptor will "
"remain open across an B<execve>(2), otherwise it will be closed."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:136
#, no-wrap
msgid "B<F_GETFD> (I<void>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:141
msgid "Read the file descriptor flags; I<arg> is ignored."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:141
#, no-wrap
msgid "B<F_SETFD> (I<int>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:145
msgid "Set the file descriptor flags to the value specified by I<arg>."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:145
#, no-wrap
msgid "File status flags"
msgstr ""

#.  or
#.  .BR creat (2),
#. type: Plain text
#: build/C/man2/fcntl.2:160
msgid ""
"Each open file description has certain associated status flags, initialized "
"by B<open>(2)  and possibly modified by B<fcntl>().  Duplicated file "
"descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer "
"to the same open file description, and thus share the same file status "
"flags."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:163
msgid "The file status flags and their semantics are described in B<open>(2)."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:163
#, no-wrap
msgid "B<F_GETFL> (I<void>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:168
msgid "Get the file access mode and the file status flags; I<arg> is ignored."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:168
#, no-wrap
msgid "B<F_SETFL> (I<int>)"
msgstr ""

#.  FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable
#.  via fcntl(2), but currently Linux does not permit this
#.  See http://bugzilla.kernel.org/show_bug.cgi?id=5994
#. type: Plain text
#: build/C/man2/fcntl.2:191
msgid ""
"Set the file status flags to the value specified by I<arg>.  File access "
"mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>)  and file creation flags (i.e., "
"B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>)  in I<arg> are ignored.  On "
"Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, "
"B<O_NOATIME>, and B<O_NONBLOCK> flags."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:191
#, no-wrap
msgid "Advisory locking"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:199
msgid ""
"B<F_GETLK>, B<F_SETLK> and B<F_SETLKW> are used to acquire, release, and "
"test for the existence of record locks (also known as file-segment or "
"file-region locks).  The third argument, I<lock>, is a pointer to a "
"structure that has at least the following fields (in unspecified order)."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:214
#, no-wrap
msgid ""
"struct flock {\n"
"    ...\n"
"    short l_type;    /* Type of lock: F_RDLCK,\n"
"                        F_WRLCK, F_UNLCK */\n"
"    short l_whence;  /* How to interpret l_start:\n"
"                        SEEK_SET, SEEK_CUR, SEEK_END */\n"
"    off_t l_start;   /* Starting offset for lock */\n"
"    off_t l_len;     /* Number of bytes to lock */\n"
"    pid_t l_pid;     /* PID of process blocking our lock\n"
"                        (F_GETLK only) */\n"
"    ...\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:222
msgid ""
"The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify "
"the range of bytes we wish to lock.  Bytes past the end of the file may be "
"locked, but not bytes before the start of the file."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:242
msgid ""
"I<l_start> is the starting offset for the lock, and is interpreted relative "
"to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the "
"current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file "
"(if I<l_whence> is B<SEEK_END>).  In the final two cases, I<l_start> can be "
"a negative number provided the offset does not lie before the start of the "
"file."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:257
msgid ""
"I<l_len> specifies the number of bytes to be locked.  If I<l_len> is "
"positive, then the range to be locked covers bytes I<l_start> up to and "
"including I<l_start>+I<l_len>-I<1>.  Specifying 0 for I<l_len> has the "
"special meaning: lock all bytes starting at the location specified by "
"I<l_whence> and I<l_start> through to the end of file, no matter how large "
"the file grows."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:270
msgid ""
"POSIX.1-2001 allows (but does not require)  an implementation to support a "
"negative I<l_len> value; if I<l_len> is negative, the interval described by "
"I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1.  "
"This is supported by Linux since kernel versions 2.4.21 and 2.5.49."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:289
msgid ""
"The I<l_type> field can be used to place a read (B<F_RDLCK>)  or a write "
"(B<F_WRLCK>)  lock on a file.  Any number of processes may hold a read lock "
"(shared lock)  on a file region, but only one process may hold a write lock "
"(exclusive lock).  An exclusive lock excludes all other locks, both shared "
"and exclusive.  A single process can hold only one type of lock on a file "
"region; if a new lock is applied to an already-locked region, then the "
"existing lock is converted to the new lock type.  (Such conversions may "
"involve splitting, shrinking, or coalescing with an existing lock if the "
"byte range specified by the new lock does not precisely coincide with the "
"range of the existing lock.)"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:289
#, no-wrap
msgid "B<F_SETLK> (I<struct flock *>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:312
msgid ""
"Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>)  or release a "
"lock (when I<l_type> is B<F_UNLCK>)  on the bytes specified by the "
"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If a conflicting "
"lock is held by another process, this call returns -1 and sets I<errno> to "
"B<EACCES> or B<EAGAIN>."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:312
#, no-wrap
msgid "B<F_SETLKW> (I<struct flock *>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:326
msgid ""
"As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait "
"for that lock to be released.  If a signal is caught while waiting, then the "
"call is interrupted and (after the signal handler has returned)  returns "
"immediately (with return value -1 and I<errno> set to B<EINTR>; see "
"B<signal>(7))."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:326
#, no-wrap
msgid "B<F_GETLK> (I<struct flock *>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:350
msgid ""
"On input to this call, I<lock> describes a lock we would like to place on "
"the file.  If the lock could be placed, B<fcntl>()  does not actually place "
"it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
"other fields of the structure unchanged.  If one or more incompatible locks "
"would prevent this lock being placed, then B<fcntl>()  returns details about "
"one of these locks in the I<l_type>, I<l_whence>, I<l_start>, and I<l_len> "
"fields of I<lock> and sets I<l_pid> to be the PID of the process holding "
"that lock."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:358
msgid ""
"In order to place a read lock, I<fd> must be open for reading.  In order to "
"place a write lock, I<fd> must be open for writing.  To place both types of "
"lock, open a file read-write."
msgstr ""

#.  (Additional file descriptors referring to the same file
#.  may have been obtained by calls to
#.  .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
#. type: Plain text
#: build/C/man2/fcntl.2:375
msgid ""
"As well as being removed by an explicit B<F_UNLCK>, record locks are "
"automatically released when the process terminates or if it closes I<any> "
"file descriptor referring to a file on which locks are held.  This is bad: "
"it means that a process can lose the locks on a file like I</etc/passwd> or "
"I</etc/mtab> when for some reason a library function decides to open, read "
"and close it."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:380
msgid ""
"Record locks are not inherited by a child created via B<fork>(2), but are "
"preserved across an B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:389
msgid ""
"Because of the buffering performed by the B<stdio>(3)  library, the use of "
"record locking with routines in that package should be avoided; use "
"B<read>(2)  and B<write>(2)  instead."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:389
#, no-wrap
msgid "Mandatory locking"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:393
msgid ""
"(Non-POSIX.)  The above record locks may be either advisory or mandatory, "
"and are advisory by default."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:396
msgid ""
"Advisory locks are not enforced and are useful only between cooperating "
"processes."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:415
msgid ""
"Mandatory locks are enforced for all processes.  If a process tries to "
"perform an incompatible access (e.g., B<read>(2)  or B<write>(2))  on a file "
"region that has an incompatible mandatory lock, then the result depends upon "
"whether the B<O_NONBLOCK> flag is enabled for its open file description.  If "
"the B<O_NONBLOCK> flag is not enabled, then system call is blocked until the "
"lock is removed or converted to a mode that is compatible with the access.  "
"If the B<O_NONBLOCK> flag is enabled, then the system call fails with the "
"error B<EAGAIN>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:432
msgid ""
"To make use of mandatory locks, mandatory locking must be enabled both on "
"the file system that contains the file to be locked, and on the file "
"itself.  Mandatory locking is enabled on a file system using the \"-o mand\" "
"option to B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2).  "
"Mandatory locking is enabled on a file by disabling group execute permission "
"on the file and enabling the set-group-ID permission bit (see B<chmod>(1)  "
"and B<chmod>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:435
msgid ""
"The Linux implementation of mandatory locking is unreliable.  See BUGS "
"below."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:435
#, no-wrap
msgid "Managing signals"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:444
msgid ""
"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
"B<F_SETSIG> are used to manage I/O availability signals:"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:444
#, no-wrap
msgid "B<F_GETOWN> (I<void>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:457
msgid ""
"Return (as the function result)  the process ID or process group currently "
"receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
"I<fd>.  Process IDs are returned as positive values; process group IDs are "
"returned as negative values (but see BUGS below).  I<arg> is ignored."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:457
#, no-wrap
msgid "B<F_SETOWN> (I<int>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:474
msgid ""
"Set the process ID or process group ID that will receive B<SIGIO> and "
"B<SIGURG> signals for events on file descriptor I<fd> to the ID given in "
"I<arg>.  A process ID is specified as a positive value; a process group ID "
"is specified as a negative value.  Most commonly, the calling process "
"specifies itself as the owner (that is, I<arg> is specified as "
"B<getpid>(2))."
msgstr ""

#.  From glibc.info:
#. type: Plain text
#: build/C/man2/fcntl.2:491
msgid ""
"If you set the B<O_ASYNC> status flag on a file descriptor by using the "
"B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input "
"or output becomes possible on that file descriptor.  B<F_SETSIG> can be used "
"to obtain delivery of a signal other than B<SIGIO>.  If this permission "
"check fails, then the signal is silently discarded."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:499
msgid ""
"Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
"subject to the same permissions checks as are described for B<kill>(2), "
"where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
"below)."
msgstr ""

#.  The following appears to be rubbish.  It doesn't seem to
#.  be true according to the kernel source, and I can write
#.  a program that gets a terminal-generated SIGIO even though
#.  it is not the foreground process group of the terminal.
#.  -- MTK, 8 Apr 05
#
#.  If the file descriptor
#.  .I fd
#.  refers to a terminal device, then SIGIO
#.  signals are sent to the foreground process group of the terminal.
#. type: Plain text
#: build/C/man2/fcntl.2:523
msgid ""
"If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
"the recipient of B<SIGURG> signals that are delivered when out-of-band data "
"arrives on that socket.  (B<SIGURG> is sent in any situation where "
"B<select>(2)  would report the socket as having an \"exceptional "
"condition\".)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:526
msgid "The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
msgstr ""

#.  The relevant place in the (2.6) kernel source is the
#.  'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
#.  send_sigurg()/send_sigurg_to_task() bypasses
#.  kill_fasync()/send_sigio()/send_sigio_to_task()
#.  to directly call send_group_sig_info()
#. 	-- MTK, Apr 2005 (kernel 2.6.11)
#. type: Plain text
#: build/C/man2/fcntl.2:566
msgid ""
"If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
"running with a threading library that supports thread groups (e.g., NPTL), "
"then a positive value given to B<F_SETOWN> has a different meaning: instead "
"of being a process ID identifying a whole process, it is a thread ID "
"identifying a specific thread within a process.  Consequently, it may be "
"necessary to pass B<F_SETOWN> the result of B<gettid>(2)  instead of "
"B<getpid>(2)  to get sensible results when B<F_SETSIG> is used.  (In current "
"Linux threading implementations, a main thread's thread ID is the same as "
"its process ID.  This means that a single-threaded program can equally use "
"B<gettid>(2)  or B<getpid>(2)  in this scenario.)  Note, however, that the "
"statements in this paragraph do not apply to the B<SIGURG> signal generated "
"for out-of-band data on a socket: this signal is always sent to either a "
"process or a process group, depending on the value given to B<F_SETOWN>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:577
msgid ""
"The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
"restored.  From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
"and B<SIGURG> signals at a particular thread."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:577
#, no-wrap
msgid "B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:586
msgid ""
"Return the current file descriptor owner settings as defined by a previous "
"B<F_SETOWN_EX> operation.  The information is returned in the structure "
"pointed to by I<arg>, which has the following form:"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:593
#, no-wrap
msgid ""
"struct f_owner_ex {\n"
"    int   type;\n"
"    pid_t pid;\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:610
msgid ""
"The I<type> field will have one of the values B<F_OWNER_TID>, "
"B<F_OWNER_PID>, or B<F_OWNER_PGRP>.  The I<pid> field is a positive integer "
"representing a thread ID, process ID, or process group ID.  See "
"B<F_SETOWN_EX> for more details."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:610
#, no-wrap
msgid "B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:626
msgid ""
"This operation performs a similar task to B<F_SETOWN>.  It allows the caller "
"to direct I/O availability signals to a specific thread, process, or process "
"group.  The caller specifies the target of signals via I<arg>, which is a "
"pointer to a I<f_owner_ex> structure.  The I<type> field has one of the "
"following values, which define how I<pid> is interpreted:"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:627
#, no-wrap
msgid "B<F_OWNER_TID>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:636
msgid ""
"Send the signal to the thread whose thread ID (the value returned by a call "
"to B<clone>(2)  or B<gettid>(2))  is specified in I<pid>."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:636
#, no-wrap
msgid "B<F_OWNER_PID>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:641
msgid "Send the signal to the process whose ID is specified in I<pid>."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:641
#, no-wrap
msgid "B<F_OWNER_PGRP>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:649
msgid ""
"Send the signal to the process group whose ID is specified in I<pid>.  (Note "
"that, unlike with B<F_SETOWN>, a process group ID is specified as a positive "
"value here.)"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:650
#, no-wrap
msgid "B<F_GETSIG> (I<void>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:665
msgid ""
"Return (as the function result)  the signal sent when input or output "
"becomes possible.  A value of zero means B<SIGIO> is sent.  Any other value "
"(including B<SIGIO>)  is the signal sent instead, and in this case "
"additional info is available to the signal handler if installed with "
"B<SA_SIGINFO>.  I<arg> is ignored."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:665
#, no-wrap
msgid "B<F_SETSIG> (I<int>)"
msgstr ""

#
#.  The following was true only up until 2.6.11:
#
#.  Additionally, passing a nonzero value to
#.  .B F_SETSIG
#.  changes the signal recipient from a whole process to a specific thread
#.  within a process.
#.  See the description of
#.  .B F_SETOWN
#.  for more details.
#. type: Plain text
#: build/C/man2/fcntl.2:688
msgid ""
"Set the signal sent when input or output becomes possible to the value given "
"in I<arg>.  A value of zero means to send the default B<SIGIO> signal.  Any "
"other value (including B<SIGIO>)  is the signal to send instead, and in this "
"case additional info is available to the signal handler if installed with "
"B<SA_SIGINFO>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:716
msgid ""
"By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the "
"signal handler (see B<sigaction>(2)), extra information about I/O events is "
"passed to the handler in a I<siginfo_t> structure.  If the I<si_code> field "
"indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file "
"descriptor associated with the event.  Otherwise, there is no indication "
"which file descriptors are pending, and you should use the usual mechanisms "
"(B<select>(2), B<poll>(2), B<read>(2)  with B<O_NONBLOCK> set etc.) to "
"determine which file descriptors are available for I/O."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:725
msgid ""
"By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O "
"events may be queued using the same signal numbers.  (Queuing is dependent "
"on available memory).  Extra information is available if B<SA_SIGINFO> is "
"set for the signal handler, as above."
msgstr ""

#.  See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
#. type: Plain text
#: build/C/man2/fcntl.2:738
msgid ""
"Note that Linux imposes a limit on the number of real-time signals that may "
"be queued to a process (see B<getrlimit>(2)  and B<signal>(7))  and if this "
"limit is reached, then the kernel reverts to delivering B<SIGIO>, and this "
"signal is delivered to the entire process rather than to a specific thread."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:745
msgid ""
"Using these mechanisms, a program can implement fully asynchronous I/O "
"without using B<select>(2)  or B<poll>(2)  most of the time."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:761
msgid ""
"The use of B<O_ASYNC>, B<F_GETOWN>, B<F_SETOWN> is specific to BSD and "
"Linux.  B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and B<F_SETSIG> are "
"Linux-specific.  POSIX has asynchronous I/O and the I<aio_sigevent> "
"structure to achieve similar things; these are also available in Linux as "
"part of the GNU C Library (Glibc)."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:761
#, no-wrap
msgid "Leases"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:776
msgid ""
"B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) "
"to establish a new lease, and retrieve the current lease, on the open file "
"description referred to by the file descriptor I<fd>.  A file lease provides "
"a mechanism whereby the process holding the lease (the \"lease holder\") is "
"notified (via delivery of a signal)  when a process (the \"lease breaker\") "
"tries to B<open>(2)  or B<truncate>(2)  the file referred to by that file "
"descriptor."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:776
#, no-wrap
msgid "B<F_SETLEASE> (I<int>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:781
msgid ""
"Set or remove a file lease according to which of the following values is "
"specified in the integer I<arg>:"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:782
#, no-wrap
msgid "B<F_RDLCK>"
msgstr ""

#.  The following became true in kernel 2.6.10:
#.  See the man-pages-2.09 Changelog for further info.
#. type: Plain text
#: build/C/man2/fcntl.2:791
msgid ""
"Take out a read lease.  This will cause the calling process to be notified "
"when the file is opened for writing or is truncated.  A read lease can only "
"be placed on a file descriptor that is opened read-only."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:791
#, no-wrap
msgid "B<F_WRLCK>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:798
msgid ""
"Take out a write lease.  This will cause the caller to be notified when the "
"file is opened for reading or writing or is truncated.  A write lease may be "
"placed on a file only if there are no other open file descriptors for the "
"file."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:798
#, no-wrap
msgid "B<F_UNLCK>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:801
msgid "Remove our lease from the file."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:815
msgid ""
"Leases are associated with an open file description (see B<open>(2)).  This "
"means that duplicate file descriptors (created by, for example, B<fork>(2)  "
"or B<dup>(2))  refer to the same lease, and this lease may be modified or "
"released using any of these descriptors.  Furthermore, the lease is released "
"by either an explicit B<F_UNLCK> operation on any of these duplicate "
"descriptors, or when all such descriptors have been closed."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:822
msgid ""
"Leases may only be taken out on regular files.  An unprivileged process may "
"only take out a lease on a file whose UID (owner) matches the file system "
"UID of the process.  A process with the B<CAP_LEASE> capability may take out "
"leases on arbitrary files."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:822
#, no-wrap
msgid "B<F_GETLEASE> (I<void>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:831
msgid ""
"Indicates what type of lease is associated with the file descriptor I<fd> by "
"returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, "
"respectively, a read lease , a write lease, or no lease.  I<arg> is ignored."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:862
msgid ""
"When a process (the \"lease breaker\") performs an B<open>(2)  or "
"B<truncate>(2)  that conflicts with a lease established via B<F_SETLEASE>, "
"the system call is blocked by the kernel and the kernel notifies the lease "
"holder by sending it a signal (B<SIGIO> by default).  The lease holder "
"should respond to receipt of this signal by doing whatever cleanup is "
"required in preparation for the file to be accessed by another process "
"(e.g., flushing cached buffers) and then either remove or downgrade its "
"lease.  A lease is removed by performing an B<F_SETLEASE> command specifying "
"I<arg> as B<F_UNLCK>.  If the lease holder currently holds a write lease on "
"the file, and the lease breaker is opening the file for reading, then it is "
"sufficient for the lease holder to downgrade the lease to a read lease.  "
"This is done by performing an B<F_SETLEASE> command specifying I<arg> as "
"B<F_RDLCK>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:867
msgid ""
"If the lease holder fails to downgrade or remove the lease within the number "
"of seconds specified in I</proc/sys/fs/lease-break-time> then the kernel "
"forcibly removes or downgrades the lease holder's lease."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:877
msgid ""
"Once a lease break has been initiated, B<F_GETLEASE> returns the target "
"lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be "
"compatible with the lease breaker)  until the lease holder voluntarily "
"downgrades or removes the lease or the kernel forcibly does so after the "
"lease break timer expires."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:881
msgid ""
"Once the lease has been voluntarily or forcibly removed or downgraded, and "
"assuming the lease breaker has not unblocked its system call, the kernel "
"permits the lease breaker's system call to proceed."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:902
msgid ""
"If the lease breaker's blocked B<open>(2)  or B<truncate>(2)  is interrupted "
"by a signal handler, then the system call fails with the error B<EINTR>, but "
"the other steps still occur as described above.  If the lease breaker is "
"killed by a signal while blocked in B<open>(2)  or B<truncate>(2), then the "
"other steps still occur as described above.  If the lease breaker specifies "
"the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately "
"fails with the error B<EWOULDBLOCK>, but the other steps still occur as "
"described above."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:923
msgid ""
"The default signal used to notify the lease holder is B<SIGIO>, but this can "
"be changed using the B<F_SETSIG> command to B<fcntl>().  If a B<F_SETSIG> "
"command is performed (even one specifying B<SIGIO>), and the signal handler "
"is established using B<SA_SIGINFO>, then the handler will receive a "
"I<siginfo_t> structure as its second argument, and the I<si_fd> field of "
"this argument will hold the descriptor of the leased file that has been "
"accessed by another process.  (This is useful if the caller holds leases "
"against multiple files)."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:923
#, no-wrap
msgid "File and directory change notification (dnotify)"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:924
#, no-wrap
msgid "B<F_NOTIFY> (I<int>)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:934
msgid ""
"(Linux 2.4 onward)  Provide notification when the directory referred to by "
"I<fd> or any of the files that it contains is changed.  The events to be "
"notified are specified in I<arg>, which is a bit mask specified by ORing "
"together zero or more of the following bits:"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:937
#, no-wrap
msgid "B<DN_ACCESS>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:940
msgid "A file was accessed (read, pread, readv)"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:940
#, no-wrap
msgid "B<DN_MODIFY>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:943
msgid "A file was modified (write, pwrite, writev, truncate, ftruncate)."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:943
#, no-wrap
msgid "B<DN_CREATE>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:946
msgid "A file was created (open, creat, mknod, mkdir, link, symlink, rename)."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:946
#, no-wrap
msgid "B<DN_DELETE>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:949
msgid "A file was unlinked (unlink, rename to another directory, rmdir)."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:949
#, no-wrap
msgid "B<DN_RENAME>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:952
msgid "A file was renamed within this directory (rename)."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:952
#, no-wrap
msgid "B<DN_ATTRIB>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:955
msgid "The attributes of a file were changed (chown, chmod, utime[s])."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:963
msgid ""
"(In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro "
"must be defined before including I<any> header files.)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:971
msgid ""
"Directory notifications are normally \"one-shot\", and the application must "
"reregister to receive further notifications.  Alternatively, if "
"B<DN_MULTISHOT> is included in I<arg>, then notification will remain in "
"effect until explicitly removed."
msgstr ""

#.  The following does seem a poor API-design choice...
#. type: Plain text
#: build/C/man2/fcntl.2:983
msgid ""
"A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> "
"being added to the set already monitored.  To disable notification of all "
"events, make an B<F_NOTIFY> call specifying I<arg> as 0."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1001
msgid ""
"Notification occurs via delivery of a signal.  The default signal is "
"B<SIGIO>, but this can be changed using the B<F_SETSIG> command to "
"B<fcntl>().  In the latter case, the signal handler receives a I<siginfo_t> "
"structure as its second argument (if the handler was established using "
"B<SA_SIGINFO>)  and the I<si_fd> field of this structure contains the file "
"descriptor which generated the notification (useful when establishing "
"notification on multiple directories)."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1006
msgid ""
"Especially when using B<DN_MULTISHOT>, a real time signal should be used for "
"notification, so that multiple notifications can be queued."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1015
msgid ""
"B<NOTE:> New applications should use the I<inotify> interface (available "
"since kernel 2.6.13), which provides a much superior interface for obtaining "
"notifications of file system events.  See B<inotify>(7)."
msgstr ""

#. type: SS
#: build/C/man2/fcntl.2:1015
#, no-wrap
msgid "Changing the capacity of a pipe"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1016
#, no-wrap
msgid "B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1047
msgid ""
"Change the capacity of the pipe referred to by I<fd> to be at least I<arg> "
"bytes.  An unprivileged process can adjust the pipe capacity to any value "
"between the system page size and the limit defined in "
"I</proc/sys/fs/pipe-max-size> (see B<proc>(5)).  Attempts to set the pipe "
"capacity below the page size are silently rounded up to the page size.  "
"Attempts by an unprivileged process to set the pipe capacity above the limit "
"in I</proc/sys/fs/pipe-max-size> yield the error B<EPERM>; a privileged "
"process (B<CAP_SYS_RESOURCE>)  can override the limit.  When allocating the "
"buffer for the pipe, the kernel may use a capacity larger than I<arg>, if "
"that is convenient for the implementation.  The B<F_GETPIPE_SZ> operation "
"returns the actual size used.  Attempting to set the pipe capacity smaller "
"than the amount of buffer space currently used to store data produces the "
"error B<EBUSY>."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1047
#, no-wrap
msgid "B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1051
msgid ""
"Return (as the function result) the capacity of the pipe referred to by "
"I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1053
msgid "For a successful call, the return value depends on the operation:"
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1053
#, no-wrap
msgid "B<F_DUPFD>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1056
msgid "The new descriptor."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1056
#, no-wrap
msgid "B<F_GETFD>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1059
msgid "Value of file descriptor flags."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1059
#, no-wrap
msgid "B<F_GETFL>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1062
msgid "Value of file status flags."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1062
#, no-wrap
msgid "B<F_GETLEASE>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1065
msgid "Type of lease held on file descriptor."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1065
#, no-wrap
msgid "B<F_GETOWN>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1068
msgid "Value of descriptor owner."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1068
#, no-wrap
msgid "B<F_GETSIG>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1074
msgid ""
"Value of signal sent when read or write becomes possible, or zero for "
"traditional B<SIGIO> behavior."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1074
#, no-wrap
msgid "B<F_GETPIPE_SZ>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1077
msgid "The pipe capacity."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1077
#, no-wrap
msgid "All other commands"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1080
msgid "Zero."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1084
msgid "On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1085 build/C/man3/lockf.3:116
#, no-wrap
msgid "B<EACCES> or B<EAGAIN>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1088
msgid "Operation is prohibited by locks held by other processes."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1088 build/C/man2/fork.2:168 build/C/man2/fork.2:173
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1092
msgid ""
"The operation is prohibited because the file has been memory-mapped by "
"another process."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1101
msgid ""
"I<fd> is not an open file descriptor, or the command was B<F_SETLK> or "
"B<F_SETLKW> and the file descriptor open mode doesn't match with the type of "
"lock requested."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1101 build/C/man3/lockf.3:136
#, no-wrap
msgid "B<EDEADLK>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1106
msgid ""
"It was detected that the specified B<F_SETLKW> command would cause a "
"deadlock."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1110
msgid "I<lock> is outside your accessible address space."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1122
msgid ""
"For B<F_SETLKW>, the command was interrupted by a signal; see B<signal>(7).  "
"For B<F_GETLK> and B<F_SETLK>, the command was interrupted by a signal "
"before the lock was checked or acquired.  Most likely when locking a remote "
"file (e.g., locking over NFS), but can sometimes happen locally."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1132
msgid ""
"For B<F_DUPFD>, I<arg> is negative or is greater than the maximum allowable "
"value.  For B<F_SETSIG>, I<arg> is not an allowable signal number."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1137
msgid ""
"For B<F_DUPFD>, the process already has the maximum number of file "
"descriptors open."
msgstr ""

#. type: TP
#: build/C/man2/fcntl.2:1137 build/C/man2/flock.2:129 build/C/man3/lockf.3:145
#, no-wrap
msgid "B<ENOLCK>"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1141
msgid ""
"Too many segment locks open, lock table is full, or a remote locking "
"protocol failed (e.g., locking over NFS)."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1146
msgid ""
"Attempted to clear the B<O_APPEND> flag on a file that has the append-only "
"attribute set."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1159
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001.  Only the operations B<F_DUPFD>, B<F_GETFD>, "
"B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK> and B<F_SETLKW>, "
"are specified in POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1171
msgid ""
"B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001.  (To get their "
"definitions, define B<BSD_SOURCE>, or B<_XOPEN_SOURCE> with the value 500 or "
"greater, or define B<_POSIX_C_SOURCE> with the value 200809L or greater.)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1179
msgid ""
"B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008.  (To get this definition, "
"define B<_POSIX_C_SOURCE> with the value 200809L or greater, or "
"B<_XOPEN_SOURCE> with the value 700 or greater.)"
msgstr ""

#.  .PP
#.  SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions.
#. type: Plain text
#: build/C/man2/fcntl.2:1196
msgid ""
"B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, "
"B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are "
"Linux-specific.  (Define the B<_GNU_SOURCE> macro to obtain these "
"definitions.)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1217
msgid ""
"The original Linux B<fcntl>()  system call was not designed to handle large "
"file offsets (in the I<flock> structure).  Consequently, an B<fcntl64>()  "
"system call was added in Linux 2.4.  The newer system call employs a "
"different structure for file locking, I<flock64>, and corresponding "
"commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>.  However, these "
"details can be ignored by applications using glibc, whose B<fcntl>()  "
"wrapper function transparently employs the more recent system call where it "
"is available."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1222
msgid ""
"The errors returned by B<dup2>(2)  are different from those returned by "
"B<F_DUPFD>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1228
msgid ""
"Since kernel 2.0, there is no interaction between the types of lock placed "
"by B<flock>(2)  and B<fcntl>()."
msgstr ""

#.  e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
#.  documents it in fcntl(5).  mtk, May 2007
#. type: Plain text
#: build/C/man2/fcntl.2:1239
msgid ""
"Several systems have more fields in I<struct flock> such as, for example, "
"I<l_sysid>.  Clearly, I<l_pid> alone is not going to be very useful if the "
"process holding the lock may live on a different machine."
msgstr ""

#.  glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h
#.  mtk, Dec 04: some limited testing on alpha and ia64 seems to
#.  indicate that ANY negative PGID value will cause F_GETOWN
#.  to misinterpret the return as an error. Some other architectures
#.  seem to have the same range check as i386.
#. type: Plain text
#: build/C/man2/fcntl.2:1265
msgid ""
"A limitation of the Linux system call conventions on some architectures "
"(notably i386) means that if a (negative)  process group ID to be returned "
"by B<F_GETOWN> falls in the range -1 to -4095, then the return value is "
"wrongly interpreted by glibc as an error in the system call; that is, the "
"return value of B<fcntl>()  will be -1, and I<errno> will contain the "
"(positive) process group ID.  The Linux-specific B<F_GETOWN_EX> operation "
"avoids this problem.  Since glibc version 2.11, glibc makes the kernel "
"B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using "
"B<F_GETOWN_EX>."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1282
msgid ""
"In Linux 2.4 and earlier, there is bug that can occur when an unprivileged "
"process uses B<F_SETOWN> to specify the owner of a socket file descriptor as "
"a process (group) other than the caller.  In this case, B<fcntl>()  can "
"return -1 with I<errno> set to B<EPERM>, even when the owner process (group) "
"is one that the caller has permission to send signals to.  Despite this "
"error return, the file descriptor owner is set, and signals will be sent to "
"the owner."
msgstr ""

#.  http://marc.info/?l=linux-kernel&m=119013491707153&w=2
#. type: Plain text
#: build/C/man2/fcntl.2:1297
msgid ""
"The implementation of mandatory locking in all known versions of Linux is "
"subject to race conditions which render it unreliable: a B<write>(2)  call "
"that overlaps with a lock may modify data after the mandatory lock is "
"acquired; a B<read>(2)  call that overlaps with a lock may detect changes to "
"data that were made only after a write lock was acquired.  Similar races "
"exist between mandatory locks and B<mmap>(2).  It is therefore inadvisable "
"to rely on mandatory locking."
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1305
msgid ""
"B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), "
"B<capabilities>(7), B<feature_test_macros>(7)"
msgstr ""

#. type: Plain text
#: build/C/man2/fcntl.2:1319
msgid ""
"See also I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the "
"kernel source directory I<Documentation/filesystems/>.  (On older kernels, "
"these files are directly under the I<Documentation/> directory, and "
"I<mandatory-locking.txt> is called I<mandatory.txt>.)"
msgstr ""

#. type: TH
#: build/C/man3/fexecve.3:25
#, no-wrap
msgid "FEXECVE"
msgstr ""

#. type: TH
#: build/C/man3/fexecve.3:25
#, no-wrap
msgid "2010-09-15"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:28
msgid "fexecve - execute program specified via file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:33
#, no-wrap
msgid ""
"B<int fexecve(int >I<fd>B<, char *const >I<argv>B<[], char *const "
">I<envp>B<[]);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:41
msgid "B<fexecve>():"
msgstr ""

#. type: TP
#: build/C/man3/fexecve.3:44
#, no-wrap
msgid "Since glibc 2.10:"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:47
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr ""

#. type: TP
#: build/C/man3/fexecve.3:47
#, no-wrap
msgid "Before glibc 2.10:"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:50 build/C/man3/getcwd.3:52
msgid "_GNU_SOURCE"
msgstr ""

#.  POSIX.1-2008 specifies the O_EXEC flag for open as an alternative,
#.  but Linux doesn't support this flag yet.
#. type: Plain text
#: build/C/man3/fexecve.3:67
msgid ""
"B<fexecve>()  performs the same task as B<execve>(2), with the difference "
"that the file to be executed is specified via a file descriptor, I<fd>, "
"rather than via a pathname.  The file descriptor I<fd> must be opened "
"read-only, and the caller must have permission to execute the file that it "
"refers to."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:74
msgid ""
"A successful call to B<fexecve>()  never returns.  On error, the function "
"returns, with a result value of -1, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:78
msgid "Errors are as for B<execve>(2), with the following additions:"
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:86
msgid ""
"I<fd> is not a valid file descriptor, or I<argv> is NULL, or I<envp> is "
"NULL."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:91
msgid "The I</proc> file system could not be accessed."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:94
msgid "B<fexecve>()  is implemented since glibc 2.3.2."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:98
msgid ""
"POSIX.1-2008.  This function is not specified in POSIX.1-2001, and is not "
"widely available on other systems."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:106
msgid ""
"On Linux, B<fexecve>()  is implemented using the B<proc>(5)  file system, so "
"I</proc> needs to be mounted and available at the time of the call."
msgstr ""

#. type: Plain text
#: build/C/man3/fexecve.3:108
msgid "B<execve>(2)"
msgstr ""

#. type: TH
#: build/C/man2/flock.2:34
#, no-wrap
msgid "FLOCK"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:37
msgid "flock - apply or remove an advisory lock on an open file"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:39
msgid "B<#include E<lt>sys/file.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:41
msgid "B<int flock(int >I<fd>B<, int >I<operation>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:47
msgid ""
"Apply or remove an advisory lock on the open file specified by I<fd>.  The "
"argument I<operation> is one of the following:"
msgstr ""

#. type: TP
#: build/C/man2/flock.2:48
#, no-wrap
msgid "B<LOCK_SH>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:53
msgid ""
"Place a shared lock.  More than one process may hold a shared lock for a "
"given file at a given time."
msgstr ""

#. type: TP
#: build/C/man2/flock.2:53
#, no-wrap
msgid "B<LOCK_EX>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:58
msgid ""
"Place an exclusive lock.  Only one process may hold an exclusive lock for a "
"given file at a given time."
msgstr ""

#. type: TP
#: build/C/man2/flock.2:58
#, no-wrap
msgid "B<LOCK_UN>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:61
msgid "Remove an existing lock held by this process."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:70
msgid ""
"A call to B<flock>()  may block if an incompatible lock is held by another "
"process.  To make a nonblocking request, include B<LOCK_NB> (by ORing)  with "
"any of the above operations."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:72
msgid "A single file may not simultaneously have both shared and exclusive locks."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:86
msgid ""
"Locks created by B<flock>()  are associated with an open file table entry.  "
"This means that duplicate file descriptors (created by, for example, "
"B<fork>(2)  or B<dup>(2))  refer to the same lock, and this lock may be "
"modified or released using any of these descriptors.  Furthermore, the lock "
"is released either by an explicit B<LOCK_UN> operation on any of these "
"duplicate descriptors, or when all such descriptors have been closed."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:95
msgid ""
"If a process uses B<open>(2)  (or similar) to obtain more than one "
"descriptor for the same file, these descriptors are treated independently by "
"B<flock>().  An attempt to lock the file using one of these file descriptors "
"may be denied by a lock that the calling process has already placed via "
"another descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:102
msgid ""
"A process may only hold one type of lock (shared or exclusive)  on a file.  "
"Subsequent B<flock>()  calls on an already locked file will convert an "
"existing lock to the new lock mode."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:107
msgid "Locks created by B<flock>()  are preserved across an B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:110
msgid ""
"A shared or exclusive lock can be placed on a file regardless of the mode in "
"which the file was opened."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:120
msgid "I<fd> is not an open file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:125
msgid ""
"While waiting to acquire a lock, the call was interrupted by delivery of a "
"signal caught by a handler; see B<signal>(7)."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:129
msgid "I<operation> is invalid."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:132
msgid "The kernel ran out of memory for allocating lock records."
msgstr ""

#. type: TP
#: build/C/man2/flock.2:132
#, no-wrap
msgid "B<EWOULDBLOCK>"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:137
msgid "The file is locked and the B<LOCK_NB> flag was selected."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:146
msgid ""
"4.4BSD (the B<flock>()  call first appeared in 4.2BSD).  A version of "
"B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most "
"UNIX systems."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:153
msgid ""
"B<flock>()  does not lock files over NFS.  Use B<fcntl>(2)  instead: that "
"does work over NFS, given a sufficiently recent version of Linux and a "
"server which supports locking."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:168
msgid ""
"Since kernel 2.0, B<flock>()  is implemented as a system call in its own "
"right rather than being emulated in the GNU C library as a call to "
"B<fcntl>(2).  This yields true BSD semantics: there is no interaction "
"between the types of lock placed by B<flock>()  and B<fcntl>(2), and "
"B<flock>()  does not detect deadlock."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:174
msgid ""
"B<flock>()  places advisory locks only; given suitable permissions on a "
"file, a process is free to ignore the use of B<flock>()  and perform I/O on "
"the file."
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:187
msgid ""
"B<flock>()  and B<fcntl>(2)  locks have different semantics with respect to "
"forked processes and B<dup>(2).  On systems that implement B<flock>()  using "
"B<fcntl>(2), the semantics of B<flock>()  will be different from those "
"described in this manual page."
msgstr ""

#.  Kernel 2.5.21 changed things a little: during lock conversion
#.  it is now the highest priority process that will get the lock -- mtk
#. type: Plain text
#: build/C/man2/flock.2:200
msgid ""
"Converting a lock (shared to exclusive, or vice versa) is not guaranteed to "
"be atomic: the existing lock is first removed, and then a new lock is "
"established.  Between these two steps, a pending lock request by another "
"process may be granted, with the result that the conversion either blocks, "
"or fails if B<LOCK_NB> was specified.  (This is the original BSD behavior, "
"and occurs on many other implementations.)"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:208
msgid ""
"B<close>(2), B<dup>(2), B<execve>(2), B<fcntl>(2), B<fork>(2), B<open>(2), "
"B<lockf>(3)"
msgstr ""

#. type: Plain text
#: build/C/man2/flock.2:214
msgid ""
"See also I<Documentation/filesystem/locks.txt> in the kernel source "
"(I<Documentation/locks.txt> in older kernels)."
msgstr ""

#. type: TH
#: build/C/man2/fork.2:39
#, no-wrap
msgid "FORK"
msgstr ""

#. type: TH
#: build/C/man2/fork.2:39 build/C/man2/fsync.2:38
#, no-wrap
msgid "2012-02-27"
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:42
msgid "fork - create a child process"
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:46
msgid "B<pid_t fork(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:52
msgid ""
"B<fork>()  creates a new process by duplicating the calling process.  The "
"new process, referred to as the I<child>, is an exact duplicate of the "
"calling process, referred to as the I<parent>, except for the following "
"points:"
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:56
msgid ""
"The child has its own unique process ID, and this PID does not match the ID "
"of any existing process group (B<setpgid>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:58
msgid "The child's parent process ID is the same as the parent's process ID."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:62
msgid ""
"The child does not inherit its parent's memory locks (B<mlock>(2), "
"B<mlockall>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:68
msgid ""
"Process resource utilizations (B<getrusage>(2))  and CPU time counters "
"(B<times>(2))  are reset to zero in the child."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:71
msgid "The child's set of pending signals is initially empty (B<sigpending>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:74
msgid ""
"The child does not inherit semaphore adjustments from its parent "
"(B<semop>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:77
msgid "The child does not inherit record locks from its parent (B<fcntl>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:82
msgid ""
"The child does not inherit timers from its parent (B<setitimer>(2), "
"B<alarm>(2), B<timer_create>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:89
msgid ""
"The child does not inherit outstanding asynchronous I/O operations from its "
"parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any "
"asynchronous I/O contexts from its parent (see B<io_setup>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:94
msgid ""
"The process attributes in the preceding list are all specified in "
"POSIX.1-2001.  The parent and child also differ with respect to the "
"following Linux-specific process attributes:"
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:101
msgid ""
"The child does not inherit directory change notifications (dnotify)  from "
"its parent (see the description of B<F_NOTIFY> in B<fcntl>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:107
msgid ""
"The B<prctl>(2)  B<PR_SET_PDEATHSIG> setting is reset so that the child does "
"not receive a signal when its parent terminates."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:113
msgid ""
"Memory mappings that have been marked with the B<madvise>(2)  "
"B<MADV_DONTFORK> flag are not inherited across a B<fork>()."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:118
msgid "The termination signal of the child is always B<SIGCHLD> (see B<clone>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:129
msgid ""
"The child process is created with a single thread\\(emthe one that called "
"B<fork>().  The entire virtual address space of the parent is replicated in "
"the child, including the states of mutexes, condition variables, and other "
"pthreads objects; the use of B<pthread_atfork>(3)  may be helpful for "
"dealing with problems that this can cause."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:143
msgid ""
"The child inherits copies of the parent's set of open file descriptors.  "
"Each file descriptor in the child refers to the same open file description "
"(see B<open>(2))  as the corresponding file descriptor in the parent.  This "
"means that the two descriptors share open file status flags, current file "
"offset, and signal-driven I/O attributes (see the description of B<F_SETOWN> "
"and B<F_SETSIG> in B<fcntl>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:152
msgid ""
"The child inherits copies of the parent's set of open message queue "
"descriptors (see B<mq_overview>(7)).  Each descriptor in the child refers to "
"the same open message queue description as the corresponding descriptor in "
"the parent.  This means that the two descriptors share the same flags "
"(I<mq_flags>)."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:160
msgid ""
"The child inherits copies of the parent's set of open directory streams (see "
"B<opendir>(3)).  POSIX.1-2001 says that the corresponding directory streams "
"in the parent and child I<may> share the directory stream positioning; on "
"Linux/glibc they do not."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:167
msgid ""
"On success, the PID of the child process is returned in the parent, and 0 is "
"returned in the child.  On failure, -1 is returned in the parent, no child "
"process is created, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:173
msgid ""
"B<fork>()  cannot allocate sufficient memory to copy the parent's page "
"tables and allocate a task structure for the child."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:183
msgid ""
"It was not possible to create a new process because the caller's "
"B<RLIMIT_NPROC> resource limit was encountered.  To exceed this limit, the "
"process must have either the B<CAP_SYS_ADMIN> or the B<CAP_SYS_RESOURCE> "
"capability."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:187
msgid ""
"B<fork>()  failed to allocate the necessary kernel structures because memory "
"is tight."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:196
msgid ""
"Under Linux, B<fork>()  is implemented using copy-on-write pages, so the "
"only penalty that it incurs is the time and memory required to duplicate the "
"parent's page tables, and to create a unique task structure for the child."
msgstr ""

#.  nptl/sysdeps/unix/sysv/linux/fork.c
#.  and does some magic to ensure that getpid(2) returns the right value.
#. type: Plain text
#: build/C/man2/fork.2:220
msgid ""
"Since version 2.3.3, rather than invoking the kernel's B<fork>()  system "
"call, the glibc B<fork>()  wrapper that is provided as part of the NPTL "
"threading implementation invokes B<clone>(2)  with flags that provide the "
"same effect as the traditional system call.  (A call to B<fork>()  is "
"equivalent to a call to B<clone>(2)  specifying I<flags> as just "
"B<SIGCHLD>.)  The glibc wrapper invokes any fork handlers that have been "
"established using B<pthread_atfork>(3)."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:225
msgid "See B<pipe>(2)  and B<wait>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/fork.2:235
msgid ""
"B<clone>(2), B<execve>(2), B<setrlimit>(2), B<unshare>(2), B<vfork>(2), "
"B<wait>(2), B<daemon>(3), B<capabilities>(7), B<credentials>(7)"
msgstr ""

#. type: TH
#: build/C/man3/fpathconf.3:24
#, no-wrap
msgid "FPATHCONF"
msgstr ""

#. type: TH
#: build/C/man3/fpathconf.3:24
#, no-wrap
msgid "1993-04-04"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:27
msgid "fpathconf, pathconf - get configuration values for files"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:32
#, no-wrap
msgid "B<long fpathconf(int >I<fd>B<, int >I<name>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:34
#, no-wrap
msgid "B<long pathconf(char *>I<path>B<, int >I<name>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:41
msgid ""
"B<fpathconf>()  gets a value for the configuration option I<name> for the "
"open file descriptor I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:47
msgid ""
"B<pathconf>()  gets a value for configuration option I<name> for the "
"filename I<path>."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:56
msgid ""
"The corresponding macros defined in I<E<lt>unistd.hE<gt>> are minimum "
"values; if an application wants to take advantage of values which may "
"change, a call to B<fpathconf>()  or B<pathconf>()  can be made, which may "
"yield more liberal results."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:61
msgid ""
"Setting I<name> equal to one of the following constants returns the "
"following configuration options:"
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:61
#, no-wrap
msgid "B<_PC_LINK_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:71
msgid ""
"returns the maximum number of links to the file.  If I<fd> or I<path> refer "
"to a directory, then the value applies to the whole directory.  The "
"corresponding macro is B<_POSIX_LINK_MAX>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:71
#, no-wrap
msgid "B<_PC_MAX_CANON>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:80
msgid ""
"returns the maximum length of a formatted input line, where I<fd> or I<path> "
"must refer to a terminal.  The corresponding macro is B<_POSIX_MAX_CANON>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:80
#, no-wrap
msgid "B<_PC_MAX_INPUT>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:89
msgid ""
"returns the maximum length of an input line, where I<fd> or I<path> must "
"refer to a terminal.  The corresponding macro is B<_POSIX_MAX_INPUT>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:89
#, no-wrap
msgid "B<_PC_NAME_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:98
msgid ""
"returns the maximum length of a filename in the directory I<path> or I<fd> "
"that the process is allowed to create.  The corresponding macro is "
"B<_POSIX_NAME_MAX>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:98
#, no-wrap
msgid "B<_PC_PATH_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:107
msgid ""
"returns the maximum length of a relative pathname when I<path> or I<fd> is "
"the current working directory.  The corresponding macro is "
"B<_POSIX_PATH_MAX>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:107
#, no-wrap
msgid "B<_PC_PIPE_BUF>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:116
msgid ""
"returns the size of the pipe buffer, where I<fd> must refer to a pipe or "
"FIFO and I<path> must refer to a FIFO.  The corresponding macro is "
"B<_POSIX_PIPE_BUF>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:116
#, no-wrap
msgid "B<_PC_CHOWN_RESTRICTED>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:129
msgid ""
"returns nonzero if the B<chown>(2)  call may not be used on this file.  If "
"I<fd> or I<path> refer to a directory, then this applies to all files in "
"that directory.  The corresponding macro is B<_POSIX_CHOWN_RESTRICTED>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:129
#, no-wrap
msgid "B<_PC_NO_TRUNC>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:136
msgid ""
"returns nonzero if accessing filenames longer than B<_POSIX_NAME_MAX> "
"generates an error.  The corresponding macro is B<_POSIX_NO_TRUNC>."
msgstr ""

#. type: TP
#: build/C/man3/fpathconf.3:136
#, no-wrap
msgid "B<_PC_VDISABLE>"
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:143
msgid ""
"returns nonzero if special character processing can be disabled, where I<fd> "
"or I<path> must refer to a terminal."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:152
msgid ""
"The limit is returned, if one exists.  If the system does not have a limit "
"for the requested resource, -1 is returned, and I<errno> is unchanged.  If "
"there is an error, -1 is returned, and I<errno> is set to reflect the nature "
"of the error."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:160
msgid ""
"Files with name lengths longer than the value returned for I<name> equal to "
"B<_PC_NAME_MAX> may exist in the given directory."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:163 build/C/man3/sysconf.3:333
msgid ""
"Some returned values may be huge; they are not suitable for allocating "
"memory."
msgstr ""

#. type: Plain text
#: build/C/man3/fpathconf.3:168
msgid "B<getconf>(1), B<open>(2), B<statfs>(2), B<sysconf>(3)"
msgstr ""

#. type: TH
#: build/C/man2/fsync.2:38
#, no-wrap
msgid "FSYNC"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:41
msgid "fsync, fdatasync - synchronize a file's in-core state with storage device"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:45
msgid "B<int fsync(int >I<fd>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:47
msgid "B<int fdatasync(int >I<fd>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:55
msgid "B<fsync>(): _BSD_SOURCE || _XOPEN_SOURCE"
msgstr ""

#.  _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8
#. type: Plain text
#: build/C/man2/fsync.2:58
#, no-wrap
msgid "         || /* since glibc 2.8: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L\n"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:61
msgid ""
"B<fdatasync>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L || _XOPEN_SOURCE\\ "
"E<gt>=\\ 500"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:74
msgid ""
"B<fsync>()  transfers (\"flushes\") all modified in-core data of (i.e., "
"modified buffer cache pages for) the file referred to by the file descriptor "
"I<fd> to the disk device (or other permanent storage device) so that all "
"changed information can be retrieved even after the system crashed or was "
"rebooted.  This includes writing through or flushing a disk cache if "
"present.  The call blocks until the device reports that the transfer has "
"completed.  It also flushes metadata information associated with the file "
"(see B<stat>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:83
msgid ""
"Calling B<fsync>()  does not necessarily ensure that the entry in the "
"directory containing the file has also reached disk.  For that an explicit "
"B<fsync>()  on a file descriptor for the directory is also needed."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:104
msgid ""
"B<fdatasync>()  is similar to B<fsync>(), but does not flush modified "
"metadata unless that metadata is needed in order to allow a subsequent data "
"retrieval to be correctly handled.  For example, changes to I<st_atime> or "
"I<st_mtime> (respectively, time of last access and time of last "
"modification; see B<stat>(2))  do not require flushing because they are not "
"necessary for a subsequent data read to be handled correctly.  On the other "
"hand, a change to the file size (I<st_size>, as made by say "
"B<ftruncate>(2)), would require a metadata flush."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:109
msgid ""
"The aim of B<fdatasync>()  is to reduce disk activity for applications that "
"do not require all metadata to be synchronized with the disk."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:114
msgid ""
"On success, these system calls return zero.  On error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:119
msgid "I<fd> is not a valid open file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:122
msgid "An error occurred during synchronization."
msgstr ""

#. type: TP
#: build/C/man2/fsync.2:122
#, no-wrap
msgid "B<EROFS>, B<EINVAL>"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:126
msgid "I<fd> is bound to a special file which does not support synchronization."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:128
msgid "4.3BSD, POSIX.1-2001."
msgstr ""

#. type: SH
#: build/C/man2/fsync.2:128
#, no-wrap
msgid "AVAILABILITY"
msgstr ""

#.  POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
#.  -1: unavailable, 0: ask using sysconf().
#.  glibc defines them to 1.
#. type: Plain text
#: build/C/man2/fsync.2:141
msgid ""
"On POSIX systems on which B<fdatasync>()  is available, "
"B<_POSIX_SYNCHRONIZED_IO> is defined in I<E<lt>unistd.hE<gt>> to a value "
"greater than 0.  (See also B<sysconf>(3).)"
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:147
msgid ""
"On some UNIX systems (but not Linux), I<fd> must be a I<writable> file "
"descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:153
msgid ""
"In Linux 2.2 and earlier, B<fdatasync>()  is equivalent to B<fsync>(), and "
"so has no performance advantage."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:163
msgid ""
"The B<fsync>()  implementations in older kernels and lesser used filesystems "
"does not know how to flush disk caches.  In these cases disk caches need to "
"be disabled using B<hdparm>(8)  or B<sdparm>(8)  to guarantee safe "
"operation."
msgstr ""

#. type: Plain text
#: build/C/man2/fsync.2:172
msgid ""
"B<bdflush>(2), B<open>(2), B<sync>(2), B<sync_file_range>(2), B<hdparm>(8), "
"B<mount>(8), B<sync>(8), B<update>(8)"
msgstr ""

#. type: TH
#: build/C/man2/get_thread_area.2:6
#, no-wrap
msgid "GET_THREAD_AREA"
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:9
msgid "get_thread_area - Get a Thread Local Storage (TLS) area"
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:13 build/C/man2/set_thread_area.2:14
msgid "B<#include E<lt>asm/ldt.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:15
msgid "B<int get_thread_area(struct user_desc *>I<u_info>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:24
msgid ""
"B<get_thread_area>()  returns an entry in the current thread's Thread Local "
"Storage (TLS) array.  The index of the entry corresponds to the value of "
"I<u_info-E<gt>entry_number>, passed in by the user.  If the value is in "
"bounds, B<get_thread_area>()  copies the corresponding TLS entry into the "
"area pointed to by I<u_info>."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:30
msgid ""
"B<get_thread_area>()  returns 0 on success.  Otherwise, it returns -1 and "
"sets I<errno> appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:34 build/C/man2/set_thread_area.2:52
msgid "I<u_info> is an invalid pointer."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:37 build/C/man2/set_thread_area.2:49
msgid "I<u_info-E<gt>entry_number> is out of bounds."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:41
msgid "A version of B<get_thread_area>()  first appeared in Linux 2.5.32."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:45
msgid ""
"B<get_thread_area>()  is Linux-specific and should not be used in programs "
"that are intended to be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:49 build/C/man2/gettid.2:64 build/C/man2/set_thread_area.2:67 build/C/man2/sysctl.2:112
msgid ""
"Glibc does not provide a wrapper for this system call; call it using "
"B<syscall>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/get_thread_area.2:52
msgid "B<modify_ldt>(2), B<set_thread_area>(2)"
msgstr ""

#. type: TH
#: build/C/man3/getcwd.3:30
#, no-wrap
msgid "GETCWD"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:33
msgid "getcwd, getwd, get_current_dir_name - Get current working directory"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:38
#, no-wrap
msgid "B<char *getcwd(char *>I<buf>B<, size_t >I<size>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:40
#, no-wrap
msgid "B<char *getwd(char *>I<buf>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:42
#, no-wrap
msgid "B<char *get_current_dir_name(void);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:50
msgid "B<get_current_dir_name>():"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:55
msgid "B<getwd>():"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:65 build/C/man3/ualarm.3:49 build/C/man3/usleep.3:57 build/C/man2/vfork.2:52
#, no-wrap
msgid ""
"_BSD_SOURCE ||\n"
"    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
"        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
"    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:70 build/C/man2/getdtablesize.2:54 build/C/man2/getpagesize.2:50 build/C/man3/ualarm.3:54 build/C/man3/usleep.3:62 build/C/man2/vfork.2:57
msgid ""
"Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
"_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:80
msgid ""
"These functions return a null-terminated string containing an absolute "
"pathname that is the current working directory of the calling process.  The "
"pathname is returned as the function result and via the argument I<buf>, if "
"present."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:88
msgid ""
"The B<getcwd>()  function copies an absolute pathname of the current working "
"directory to the array pointed to by I<buf>, which is of length I<size>."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:98
msgid ""
"If the length of the absolute pathname of the current working directory, "
"including the terminating null byte, exceeds I<size> bytes, NULL is "
"returned, and I<errno> is set to B<ERANGE>; an application should check for "
"this error, and allocate a larger buffer if necessary."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:116
msgid ""
"As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc)  "
"B<getcwd>()  allocates the buffer dynamically using B<malloc>(3)  if I<buf> "
"is NULL.  In this case, the allocated buffer has the length I<size> unless "
"I<size> is zero, when I<buf> is allocated as big as necessary.  The caller "
"should B<free>(3)  the returned buffer."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:129
msgid ""
"B<get_current_dir_name>()  will B<malloc>(3)  an array big enough to hold "
"the absolute pathname of the current working directory.  If the environment "
"variable B<PWD> is set, and its value is correct, then that value will be "
"returned.  The caller should B<free>(3)  the returned buffer."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:154
msgid ""
"B<getwd>()  does not B<malloc>(3)  any memory.  The I<buf> argument should "
"be a pointer to an array at least B<PATH_MAX> bytes long.  If the length of "
"the absolute pathname of the current working directory, including the "
"terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and "
"I<errno> is set to B<ENAMETOOLONG>.  (Note that on some systems, B<PATH_MAX> "
"may not be a compile-time constant; furthermore, its value may depend on the "
"file system, see B<pathconf>(3).)  For portability and security reasons, use "
"of B<getwd>()  is deprecated."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:163
msgid ""
"On success, these functions return a pointer to a string containing the "
"pathname of the current working directory.  In the case B<getcwd>()  and "
"B<getwd>()  this is the same value as I<buf>."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:170
msgid ""
"On failure, these functions return NULL, and I<errno> is set to indicate the "
"error.  The contents of the array pointed to by I<buf> are undefined on "
"error."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:174
msgid "Permission to read or search a component of the filename was denied."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:178
msgid "I<buf> points to a bad address."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:185
msgid "The I<size> argument is zero and I<buf> is not a NULL pointer."
msgstr ""

#. type: TP
#: build/C/man3/getcwd.3:185
#, no-wrap
msgid "EINVAL"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:190
msgid "B<getwd>(): I<buf> is NULL."
msgstr ""

#. type: TP
#: build/C/man3/getcwd.3:190
#, no-wrap
msgid "ENAMETOOLONG"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:196
msgid ""
"B<getwd>(): The size of the null-terminated absolute pathname string exceeds "
"B<PATH_MAX> bytes."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:199
msgid "The current working directory has been unlinked."
msgstr ""

#. type: TP
#: build/C/man3/getcwd.3:199 build/C/man3/getlogin.3:112
#, no-wrap
msgid "B<ERANGE>"
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:206
msgid ""
"The I<size> argument is less than the length of the absolute pathname of the "
"working directory, including the terminating null byte.  You need to "
"allocate a bigger array and try again."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:214
msgid ""
"B<getcwd>()  conforms to POSIX.1-2001.  Note however that POSIX.1-2001 "
"leaves the behavior of B<getcwd>()  unspecified if I<buf> is NULL."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:225
msgid ""
"B<getwd>()  is present in POSIX.1-2001, but marked LEGACY.  POSIX.1-2008 "
"removes the specification of B<getwd>().  Use B<getcwd>()  instead.  "
"POSIX.1-2001 does not define any errors for B<getwd>()."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:228
msgid "B<get_current_dir_name>()  is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:239
msgid ""
"Under Linux, the function B<getcwd>()  is a system call (since 2.1.92).  On "
"older systems it would query I</proc/self/cwd>.  If both system call and "
"proc file system are missing, a generic implementation is called.  Only in "
"that case can these calls fail under Linux with B<EACCES>."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:247
msgid ""
"These functions are often used to save the location of the current working "
"directory for the purpose of returning to it later.  Opening the current "
"directory (\".\") and calling B<fchdir>(2)  to return is usually a faster "
"and more reliable alternative when sufficiently many file descriptors are "
"available, especially on platforms other than Linux."
msgstr ""

#. type: Plain text
#: build/C/man3/getcwd.3:254
msgid ""
"B<chdir>(2), B<fchdir>(2), B<open>(2), B<unlink>(2), B<free>(3), "
"B<malloc>(3)"
msgstr ""

#. type: TH
#: build/C/man2/getdomainname.2:29
#, no-wrap
msgid "GETDOMAINNAME"
msgstr ""

#. type: TH
#: build/C/man2/getdomainname.2:29
#, no-wrap
msgid "2009-09-27"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:32
msgid "getdomainname, setdomainname - get/set domain name"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:36
msgid "B<int getdomainname(char *>I<name>B<, size_t >I<len>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:38
msgid "B<int setdomainname(const char *>I<name>B<, size_t >I<len>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:47
msgid "B<getdomainname>(), B<setdomainname>():"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:49 build/C/man3/gethostid.3:54 build/C/man2/gethostname.2:60 build/C/man3/getusershell.3:53
msgid "_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:54
msgid ""
"These functions are used to access or to change the domain name of the host "
"system."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:65
msgid ""
"B<setdomainname>()  sets the domain name to the value given in the character "
"array I<name>.  The I<len> argument specifies the number of bytes in "
"I<name>.  (Thus, I<name> does not require a terminating null byte.)"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:75
msgid ""
"B<getdomainname>()  returns the null-terminated domain name in the character "
"array I<name>, which has a length of I<len> bytes.  If the null-terminated "
"domain name requires more than I<len> bytes, B<getdomainname>()  returns the "
"first I<len> bytes (glibc) or gives an error (libc)."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:83
msgid "B<setdomainname>()  can fail with the following errors:"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:87
msgid "I<name> pointed outside of user address space."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:91
msgid "I<len> was negative or too large."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:96
msgid ""
"the caller is unprivileged (Linux: does not have the B<CAP_SYS_ADMIN> "
"capability)."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:99
msgid "B<getdomainname>()  can fail with the following errors:"
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:110
msgid ""
"For B<getdomainname>()  under libc: I<name> is NULL or I<name> is longer "
"than I<len> bytes."
msgstr ""

#.  But they appear on most systems...
#. type: Plain text
#: build/C/man2/getdomainname.2:113
msgid "POSIX does not specify these calls."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:117
msgid ""
"Since Linux 1.0, the limit on the length of a domain name, including the "
"terminating null byte, is 64 bytes.  In older kernels, it was 8 bytes."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:127
msgid ""
"On most Linux architectures (including x86), there is no B<getdomainname>()  "
"system call; instead, glibc implements B<getdomainname>()  as a library "
"function that returns a copy of the I<domainname> field returned from a call "
"to B<uname>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/getdomainname.2:131
msgid "B<gethostname>(2), B<sethostname>(2), B<uname>(2)"
msgstr ""

#. type: TH
#: build/C/man2/getdtablesize.2:27
#, no-wrap
msgid "GETDTABLESIZE"
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:30
msgid "getdtablesize - get descriptor table size"
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:34
msgid "B<int getdtablesize(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:41
msgid "B<getdtablesize>():"
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:49 build/C/man2/getpagesize.2:45
#, no-wrap
msgid ""
"_BSD_SOURCE ||\n"
"    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:61
msgid ""
"B<getdtablesize>()  returns the maximum number of files a process can have "
"open, one more than the largest possible value for a file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:63
msgid "The current limit on the number of open files per process."
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:69
msgid ""
"On Linux, B<getdtablesize>()  can return any of the errors described for "
"B<getrlimit>(2); see NOTES below."
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:77
msgid ""
"SVr4, 4.4BSD (the B<getdtablesize>()  function first appeared in 4.2BSD).  "
"It is not specified in POSIX.1-2001; portable applications should employ "
"I<sysconf(_SC_OPEN_MAX)> instead of this call."
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:90
msgid ""
"B<getdtablesize>()  is implemented as a libc library function.  The glibc "
"version calls B<getrlimit>(2)  and returns the current B<RLIMIT_NOFILE> "
"limit, or B<OPEN_MAX> when that fails.  The libc4 and libc5 versions return "
"B<OPEN_MAX> (set to 256 since Linux 0.98.4)."
msgstr ""

#. type: Plain text
#: build/C/man2/getdtablesize.2:95
msgid "B<close>(2), B<dup>(2), B<getrlimit>(2), B<open>(2)"
msgstr ""

#. type: TH
#: build/C/man3/gethostid.3:29
#, no-wrap
msgid "GETHOSTID"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:32
msgid "gethostid, sethostid - get or set the unique identifier of the current host"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:36
msgid "B<long gethostid(void);>"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:38
msgid "B<int sethostid(long >I<hostid>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:47
msgid "B<gethostid>():"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:52
msgid "B<sethostid>():"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:67
msgid ""
"B<gethostid>()  and B<sethostid>()  respectively get or set a unique 32-bit "
"identifier for the current machine.  The 32-bit identifier is intended to be "
"unique among all UNIX systems in existence.  This normally resembles the "
"Internet address for the local machine, as returned by B<gethostbyname>(3), "
"and thus usually never needs to be set."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:71
msgid "The B<sethostid>()  call is restricted to the superuser."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:75
msgid ""
"B<gethostid>()  returns the 32-bit identifier for the current host as set by "
"B<sethostid>()."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:81
msgid ""
"On success, B<sethostid>()  returns 0; on error, -1 is returned, and "
"I<errno> is set to indicate the error."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:84
msgid "B<sethostid>()  can fail with the following errors:"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:88
msgid ""
"The caller did not have permission to write to the file used to store the "
"host ID."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:92
msgid ""
"The calling process's effective user or group ID is not the same as its "
"corresponding real ID."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:102
msgid ""
"4.2BSD; these functions were dropped in 4.4BSD.  SVr4 includes "
"B<gethostid>()  but not B<sethostid>().  POSIX.1-2001 specifies "
"B<gethostid>()  but not B<sethostid>()."
msgstr ""

#.  libc5 used /etc/hostid; libc4 didn't have these functions
#. type: Plain text
#: build/C/man3/gethostid.3:111
msgid ""
"In the glibc implementation, the I<hostid> is stored in the file "
"I</etc/hostid>.  (In glibc versions before 2.2, the file I</var/adm/hostid> "
"was used.)"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:122
msgid ""
"In the glibc implementation, if B<gethostid>()  cannot open the file "
"containing the host ID, then it obtains the hostname using "
"B<gethostname>(2), passes that hostname to B<gethostbyname_r>(3)  in order "
"to obtain the host's IPv4 address, and returns a value obtained by "
"bit-twiddling the IPv4 address.  (This value may not be unique.)"
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:124
msgid "It is impossible to ensure that the identifier is globally unique."
msgstr ""

#. type: Plain text
#: build/C/man3/gethostid.3:127
msgid "B<hostid>(1), B<gethostbyname>(3)"
msgstr ""

#. type: TH
#: build/C/man2/gethostname.2:32
#, no-wrap
msgid "GETHOSTNAME"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:35
msgid "gethostname, sethostname - get/set hostname"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:39
msgid "B<int gethostname(char *>I<name>B<, size_t >I<len>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:41
msgid "B<int sethostname(const char *>I<name>B<, size_t >I<len>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:50
msgid "B<gethostname>():"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:53
msgid "Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:55
msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:58
msgid "B<sethostname>():"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:66
msgid ""
"These system calls are used to access or to change the hostname of the "
"current processor."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:77
msgid ""
"B<sethostname>()  sets the hostname to the value given in the character "
"array I<name>.  The I<len> argument specifies the number of bytes in "
"I<name>.  (Thus, I<name> does not require a terminating null byte.)"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:89
msgid ""
"B<gethostname>()  returns the null-terminated hostname in the character "
"array I<name>, which has a length of I<len> bytes.  If the null-terminated "
"hostname is too large to fit, then the name is truncated, and no error is "
"returned (but see NOTES below).  POSIX.1-2001 says that if such truncation "
"occurs, then it is unspecified whether the returned buffer includes a "
"terminating null byte."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:99
msgid "I<name> is an invalid address."
msgstr ""

#.  Can't occur for gethostbyname() wrapper, since 'len' has an
#.  unsigned type; can occur for the underlying system call.
#. type: Plain text
#: build/C/man2/gethostname.2:109
msgid ""
"I<len> is negative or, for B<sethostname>(), I<len> is larger than the "
"maximum allowed size."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:117
msgid ""
"(glibc B<gethostname>())  I<len> is smaller than the actual size.  (Before "
"version 2.1, glibc uses B<EINVAL> for this case.)"
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:124
msgid ""
"For B<sethostname>(), the caller did not have the B<CAP_SYS_ADMIN> "
"capability."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:130
msgid ""
"SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).  POSIX.1-2001 "
"specifies B<gethostname>()  but not B<sethostname>()."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:140
msgid ""
"SUSv2 guarantees that \"Host names are limited to 255 bytes\".  POSIX.1-2001 "
"guarantees that \"Host names (not including the terminating null byte) are "
"limited to B<HOST_NAME_MAX> bytes\".  On Linux, B<HOST_NAME_MAX> is defined "
"with the value 64, which has been the limit since Linux 1.0 (earlier kernels "
"imposed a limit of 8 bytes)."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:163
msgid ""
"The GNU C library does not employ the B<gethostname>()  system call; "
"instead, it implements B<gethostname>()  as a library function that calls "
"B<uname>(2)  and copies up to I<len> bytes from the returned I<nodename> "
"field into I<name>.  Having performed the copy, the function then checks if "
"the length of the I<nodename> was greater than or equal to I<len>, and if it "
"is, then the function returns -1 with I<errno> set to B<ENAMETOOLONG>; in "
"this case, a terminating null byte is not included in the returned I<name>."
msgstr ""

#.  At least glibc 2.0 and 2.1, older versions not checked
#. type: Plain text
#: build/C/man2/gethostname.2:176
msgid ""
"Versions of glibc before 2.2 handle the case where the length of the "
"I<nodename> was greater than or equal to I<len> differently: nothing is "
"copied into I<name> and the function returns -1 with I<errno> set to "
"B<ENAMETOOLONG>."
msgstr ""

#. type: Plain text
#: build/C/man2/gethostname.2:180
msgid "B<getdomainname>(2), B<setdomainname>(2), B<uname>(2)"
msgstr ""

#. type: TH
#: build/C/man3/getlogin.3:28
#, no-wrap
msgid "GETLOGIN"
msgstr ""

#. type: TH
#: build/C/man3/getlogin.3:28
#, no-wrap
msgid "2008-06-29"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:31
msgid "getlogin, getlogin_r, cuserid - get username"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:35
msgid "B<char *getlogin(void);>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:37
msgid "B<int getlogin_r(char *>I<buf>B<, size_t >I<bufsize>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:39
msgid "B<#include E<lt>stdio.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:41
msgid "B<char *cuserid(char *>I<string>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:49
msgid "B<getlogin_r>(): _REENTRANT || _POSIX_C_SOURCE\\ E<gt>=\\ 199506L"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:52
msgid "B<cuserid>(): _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:61
msgid ""
"B<getlogin>()  returns a pointer to a string containing the name of the user "
"logged in on the controlling terminal of the process, or a NULL pointer if "
"this information cannot be determined.  The string is statically allocated "
"and might be overwritten on subsequent calls to this function or to "
"B<cuserid>()."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:67
msgid ""
"B<getlogin_r>()  returns this same username in the array I<buf> of size "
"I<bufsize>."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:79
msgid ""
"B<cuserid>()  returns a pointer to a string containing a username associated "
"with the effective user ID of the process.  If I<string> is not a NULL "
"pointer, it should be an array that can hold at least B<L_cuserid> "
"characters; the string is returned in this array.  Otherwise, a pointer to a "
"string in a static area is returned.  This string is statically allocated "
"and might be overwritten on subsequent calls to this function or to "
"B<getlogin>()."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:83
msgid ""
"The macro B<L_cuserid> is an integer constant that indicates how long an "
"array you might need to store a username.  B<L_cuserid> is declared in "
"I<E<lt>stdio.hE<gt>>."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:90
msgid ""
"These functions let your program identify positively the user who is running "
"(B<cuserid>())  or the user who logged in this session (B<getlogin>()).  "
"(These can differ when set-user-ID programs are involved.)"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:95
msgid ""
"For most purposes, it is more useful to use the environment variable "
"B<LOGNAME> to find out who the user is.  This is more flexible precisely "
"because the user can set B<LOGNAME> arbitrarily."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:101
msgid ""
"B<getlogin>()  returns a pointer to the username when successful, and NULL "
"on failure.  B<getlogin_r>()  returns 0 when successful, and nonzero on "
"failure."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:103
msgid "POSIX specifies"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:106
msgid "The calling process already has the maximum allowed number of open files."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:109
msgid "The system already has the maximum allowed number of open files."
msgstr ""

#. type: TP
#: build/C/man3/getlogin.3:109
#, no-wrap
msgid "B<ENXIO>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:112
msgid "The calling process has no controlling tty."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:118
msgid ""
"(getlogin_r)  The length of the username, including the terminating null "
"byte, is larger than I<bufsize>."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:120
msgid "Linux/glibc also has"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:123
msgid "There was no corresponding entry in the utmp-file."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:126
msgid "Insufficient memory to allocate passwd structure."
msgstr ""

#. type: TP
#: build/C/man3/getlogin.3:126 build/C/man2/ioctl.2:105 build/C/man2/ioctl.2:109 build/C/man3/tcgetpgrp.3:90
#, no-wrap
msgid "B<ENOTTY>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:130
msgid "Standard input didn't refer to a terminal.  (See BUGS.)"
msgstr ""

#. type: TP
#: build/C/man3/getlogin.3:131
#, no-wrap
msgid "I</etc/passwd>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:134
msgid "password database file"
msgstr ""

#. type: TP
#: build/C/man3/getlogin.3:134
#, no-wrap
msgid "I</var/run/utmp>"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:138
msgid "(traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:143
msgid "B<getlogin>()  and B<getlogin_r>()  specified in POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:154
msgid ""
"System V has a B<cuserid>()  function which uses the real user ID rather "
"than the effective user ID.  The B<cuserid>()  function was included in the "
"1988 version of POSIX, but removed from the 1990 version.  It was present in "
"SUSv2, but removed in POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:161
msgid ""
"OpenBSD has B<getlogin>()  and B<setlogin>(), and a username associated with "
"a session, even if it has no controlling tty."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:173
msgid ""
"Unfortunately, it is often rather easy to fool B<getlogin>().  Sometimes it "
"does not work at all, because some program messed up the utmp file.  Often, "
"it gives only the first 8 characters of the login name.  The user currently "
"logged in on the controlling tty of our program need not be the user who "
"started it.  Avoid B<getlogin>()  for security-related purposes."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:183
msgid ""
"Note that glibc does not follow the POSIX specification and uses I<stdin> "
"instead of I</dev/tty>.  A bug.  (Other recent systems, like SunOS 5.8 and "
"HP-UX 11.11 and FreeBSD 4.8 all return the login name also when I<stdin> is "
"redirected.)"
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:193
msgid ""
"Nobody knows precisely what B<cuserid>()  does; avoid it in portable "
"programs.  Or avoid it altogether: use I<getpwuid(geteuid())> instead, if "
"that is what you meant.  B<Do not use> B<cuserid>()."
msgstr ""

#. type: Plain text
#: build/C/man3/getlogin.3:197
msgid "B<geteuid>(2), B<getuid>(2), B<utmp>(5)"
msgstr ""

#. type: TH
#: build/C/man3/getopt.3:39
#, no-wrap
msgid "GETOPT"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:43
msgid ""
"getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - "
"Parse command-line options"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:49
#, no-wrap
msgid ""
"B<int getopt(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
"B<           const char *>I<optstring>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:52
#, no-wrap
msgid ""
"B<extern char *>I<optarg>B<;>\n"
"B<extern int >I<optind>B<, >I<opterr>B<, >I<optopt>B<;>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:54
#, no-wrap
msgid "B<#include E<lt>getopt.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:58
#, no-wrap
msgid ""
"B<int getopt_long(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
"B<           const char *>I<optstring>B<,>\n"
"B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:62
#, no-wrap
msgid ""
"B<int getopt_long_only(int >I<argc>B<, char * const >I<argv[]>B<,>\n"
"B<           const char *>I<optstring>B<,>\n"
"B<           const struct option *>I<longopts>B<, int *>I<longindex>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:72
msgid "B<getopt>(): _POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:76
msgid "B<getopt_long>(), B<getopt_long_only>(): _GNU_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:97
msgid ""
"The B<getopt>()  function parses the command-line arguments.  Its arguments "
"I<argc> and I<argv> are the argument count and array as passed to the "
"I<main>()  function on program invocation.  An element of I<argv> that "
"starts with \\(aq-\\(aq (and is not exactly \"-\" or \"--\")  is an option "
"element.  The characters of this element (aside from the initial "
"\\(aq-\\(aq) are option characters.  If B<getopt>()  is called repeatedly, "
"it returns successively each of the option characters from each of the "
"option elements."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:106
msgid ""
"The variable I<optind> is the index of the next element to be processed in "
"I<argv>.  The system initializes this value to 1.  The caller can reset it "
"to 1 to restart scanning of the same I<argv>, or when scanning a new "
"argument vector."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:116
msgid ""
"If B<getopt>()  finds another option character, it returns that character, "
"updating the external variable I<optind> and a static variable I<nextchar> "
"so that the next call to B<getopt>()  can resume the scan with the following "
"option character or I<argv>-element."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:122
msgid ""
"If there are no more option characters, B<getopt>()  returns -1.  Then "
"I<optind> is the index in I<argv> of the first I<argv>-element that is not "
"an option."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:149
msgid ""
"I<optstring> is a string containing the legitimate option characters.  If "
"such a character is followed by a colon, the option requires an argument, so "
"B<getopt>()  places a pointer to the following text in the same "
"I<argv>-element, or the text of the following I<argv>-element, in "
"I<optarg>.  Two colons mean an option takes an optional arg; if there is "
"text in the current I<argv>-element (i.e., in the same word as the option "
"name itself, for example, \"-oarg\"), then it is returned in I<optarg>, "
"otherwise I<optarg> is set to zero.  This is a GNU extension.  If "
"I<optstring> contains B<W> followed by a semicolon, then B<-W foo> is "
"treated as the long option B<--foo>.  (The B<-W> option is reserved by "
"POSIX.2 for implementation extensions.)  This behavior is a GNU extension, "
"not available with libraries before glibc 2."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:167
msgid ""
"By default, B<getopt>()  permutes the contents of I<argv> as it scans, so "
"that eventually all the nonoptions are at the end.  Two other modes are also "
"implemented.  If the first character of I<optstring> is \\(aq+\\(aq or the "
"environment variable B<POSIXLY_CORRECT> is set, then option processing stops "
"as soon as a nonoption argument is encountered.  If the first character of "
"I<optstring> is \\(aq-\\(aq, then each nonoption I<argv>-element is handled "
"as if it were the argument of an option with character code 1.  (This is "
"used by programs that were written to expect options and other "
"I<argv>-elements in any order and that care about the ordering of the two.)  "
"The special argument \"--\" forces an end of option-scanning regardless of "
"the scanning mode."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:175
msgid ""
"If B<getopt>()  does not recognize an option character, it prints an error "
"message to I<stderr>, stores the character in I<optopt>, and returns "
"\\(aq?\\(aq.  The calling program may prevent the error message by setting "
"I<opterr> to 0."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:194
msgid ""
"If B<getopt>()  finds an option character in I<argv> that was not included "
"in I<optstring>, or if it detects a missing option argument, it returns "
"\\(aq?\\(aq and sets the external variable I<optopt> to the actual option "
"character.  If the first character (following any optional \\(aq+\\(aq or "
"\\(aq-\\(aq described above)  of I<optstring> is a colon (\\(aq:\\(aq), then "
"B<getopt>()  returns \\(aq:\\(aq instead of \\(aq?\\(aq to indicate a "
"missing option argument.  If an error was detected, and the first character "
"of I<optstring> is not a colon, and the external variable I<opterr> is "
"nonzero (which is the default), B<getopt>()  prints an error message."
msgstr ""

#. type: SS
#: build/C/man3/getopt.3:194
#, no-wrap
msgid "getopt_long() and getopt_long_only()"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:210
msgid ""
"The B<getopt_long>()  function works like B<getopt>()  except that it also "
"accepts long options, started with two dashes.  (If the program accepts only "
"long options, then I<optstring> should be specified as an empty string "
"(\"\"), not NULL.)  Long option names may be abbreviated if the abbreviation "
"is unique or is an exact match for some defined option.  A long option may "
"take a parameter, of the form B<--arg=param> or B<--arg param>."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:217
msgid ""
"I<longopts> is a pointer to the first element of an array of I<struct "
"option> declared in I<E<lt>getopt.hE<gt>> as"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:226
#, no-wrap
msgid ""
"struct option {\n"
"    const char *name;\n"
"    int         has_arg;\n"
"    int        *flag;\n"
"    int         val;\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:230
msgid "The meanings of the different fields are:"
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:230
#, no-wrap
msgid "I<name>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:233
msgid "is the name of the long option."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:233
#, no-wrap
msgid "I<has_arg>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:239
msgid ""
"is: B<no_argument> (or 0) if the option does not take an argument; "
"B<required_argument> (or 1) if the option requires an argument; or "
"B<optional_argument> (or 2) if the option takes an optional argument."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:239
#, no-wrap
msgid "I<flag>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:253
msgid ""
"specifies how results are returned for a long option.  If I<flag> is NULL, "
"then B<getopt_long>()  returns I<val>.  (For example, the calling program "
"may set I<val> to the equivalent short option character.)  Otherwise, "
"B<getopt_long>()  returns 0, and I<flag> points to a variable which is set "
"to I<val> if the option is found, but left unchanged if the option is not "
"found."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:253
#, no-wrap
msgid "I<val>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:257
msgid "is the value to return, or to load into the variable pointed to by I<flag>."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:259
msgid "The last element of the array has to be filled with zeros."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:263
msgid ""
"If I<longindex> is not NULL, it points to a variable which is set to the "
"index of the long option relative to I<longopts>."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:272
msgid ""
"B<getopt_long_only>()  is like B<getopt_long>(), but \\(aq-\\(aq as well as "
"\"--\" can indicate a long option.  If an option that starts with "
"\\(aq-\\(aq (not \"--\") doesn't match a long option, but does match a short "
"option, it is parsed as a short option instead."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:290
msgid ""
"If an option was successfully found, then B<getopt>()  returns the option "
"character.  If all command-line options have been parsed, then B<getopt>()  "
"returns -1.  If B<getopt>()  encounters an option character that was not in "
"I<optstring>, then \\(aq?\\(aq is returned.  If B<getopt>()  encounters an "
"option with a missing argument, then the return value depends on the first "
"character in I<optstring>: if it is \\(aq:\\(aq, then \\(aq:\\(aq is "
"returned; otherwise \\(aq?\\(aq is returned."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:302
msgid ""
"B<getopt_long>()  and B<getopt_long_only>()  also return the option "
"character when a short option is recognized.  For a long option, they return "
"I<val> if I<flag> is NULL, and 0 otherwise.  Error and -1 returns are the "
"same as for B<getopt>(), plus \\(aq?\\(aq for an ambiguous match or an "
"extraneous parameter."
msgstr ""

#. type: SH
#: build/C/man3/getopt.3:302
#, no-wrap
msgid "ENVIRONMENT"
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:303
#, no-wrap
msgid "B<POSIXLY_CORRECT>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:307
msgid ""
"If this is set, then option processing stops as soon as a nonoption argument "
"is encountered."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:307
#, no-wrap
msgid "B<_E<lt>PIDE<gt>_GNU_nonoption_argv_flags_>"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:316
msgid ""
"This variable was used by B<bash>(1)  2.0 to communicate to glibc which "
"arguments are the results of wildcard expansion and so should not be "
"considered as options.  This behavior was removed in B<bash>(1)  version "
"2.01, but the support remains in glibc."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:317
#, no-wrap
msgid "B<getopt>():"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:327
msgid ""
"POSIX.2 and POSIX.1-2001, provided the environment variable "
"B<POSIXLY_CORRECT> is set.  Otherwise, the elements of I<argv> aren't really "
"const, because we permute them.  We pretend they're const in the prototype "
"to be compatible with other systems."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:331
msgid "The use of \\(aq+\\(aq and \\(aq-\\(aq in I<optstring> is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:345
msgid ""
"On some older implementations, B<getopt>()  was declared in "
"I<E<lt>stdio.hE<gt>>.  SUSv1 permitted the declaration to appear in either "
"I<E<lt>unistd.hE<gt>> or I<E<lt>stdio.hE<gt>>.  POSIX.1-2001 marked the use "
"of I<E<lt>stdio.hE<gt>> for this purpose as LEGACY.  POSIX.1-2001 does not "
"allow the declaration to appear in I<E<lt>stdio.hE<gt>>."
msgstr ""

#. type: TP
#: build/C/man3/getopt.3:345
#, no-wrap
msgid "B<getopt_long>() and B<getopt_long_only>():"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:348
msgid "These functions are GNU extensions."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:367
msgid ""
"A program that scans multiple argument vectors, or rescans the same vector "
"more than once, and wants to make use of GNU extensions such as \\(aq+\\(aq "
"and \\(aq-\\(aq at the start of I<optstring>, or changes the value of "
"B<POSIXLY_CORRECT> between scans, must reinitialize B<getopt>()  by "
"resetting I<optind> to 0, rather than the traditional value of 1.  "
"(Resetting to 0 forces the invocation of an internal initialization routine "
"that rechecks B<POSIXLY_CORRECT> and checks for GNU extensions in "
"I<optstring>.)"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:374
msgid ""
"The POSIX.2 specification of B<getopt>()  has a technical error described in "
"POSIX.2 Interpretation 150.  The GNU implementation (and probably all other "
"implementations) implements the correct behavior rather than that specified."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:382
msgid ""
"The following trivial example program uses B<getopt>()  to handle two "
"program options: I<-n>, with no associated value; and I<-t val>, which "
"expects an associated value."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:387
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:393
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    int flags, opt;\n"
"    int nsecs, tfnd;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:412
#, no-wrap
msgid ""
"    nsecs = 0;\n"
"    tfnd = 0;\n"
"    flags = 0;\n"
"    while ((opt = getopt(argc, argv, \"nt:\")) != -1) {\n"
"        switch (opt) {\n"
"        case \\(aqn\\(aq:\n"
"            flags = 1;\n"
"            break;\n"
"        case \\(aqt\\(aq:\n"
"            nsecs = atoi(optarg);\n"
"            tfnd = 1;\n"
"            break;\n"
"        default: /* \\(aq?\\(aq */\n"
"            fprintf(stderr, \"Usage: %s [-t nsecs] [-n] name\\en\",\n"
"                    argv[0]);\n"
"            exit(EXIT_FAILURE);\n"
"        }\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:414
#, no-wrap
msgid "    printf(\"flags=%d; tfnd=%d; optind=%d\\en\", flags, tfnd, optind);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:419
#, no-wrap
msgid ""
"    if (optind E<gt>= argc) {\n"
"        fprintf(stderr, \"Expected argument after options\\en\");\n"
"        exit(EXIT_FAILURE);\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:421
#, no-wrap
msgid "    printf(\"name argument = %s\\en\", argv[optind]);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:423
#, no-wrap
msgid "    /* Other code omitted */\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:431
msgid ""
"The following example program illustrates the use of B<getopt_long>()  with "
"most of its features."
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:436
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>     /* for printf */\n"
"#include E<lt>stdlib.hE<gt>    /* for exit */\n"
"#include E<lt>getopt.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:442
#, no-wrap
msgid ""
"int\n"
"main(int argc, char **argv)\n"
"{\n"
"    int c;\n"
"    int digit_optind = 0;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:455
#, no-wrap
msgid ""
"    while (1) {\n"
"        int this_option_optind = optind ? optind : 1;\n"
"        int option_index = 0;\n"
"        static struct option long_options[] = {\n"
"            {\"add\",     required_argument, 0,  0 },\n"
"            {\"append\",  no_argument,       0,  0 },\n"
"            {\"delete\",  required_argument, 0,  0 },\n"
"            {\"verbose\", no_argument,       0,  0 },\n"
"            {\"create\",  required_argument, 0, \\(aqc\\(aq},\n"
"            {\"file\",    required_argument, 0,  0 },\n"
"            {0,         0,                 0,  0 }\n"
"        };\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:460
#, no-wrap
msgid ""
"        c = getopt_long(argc, argv, \"abc:d:012\",\n"
"                 long_options, &option_index);\n"
"        if (c == -1)\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:468
#, no-wrap
msgid ""
"        switch (c) {\n"
"        case 0:\n"
"            printf(\"option %s\", long_options[option_index].name);\n"
"            if (optarg)\n"
"                printf(\" with arg %s\", optarg);\n"
"            printf(\"\\en\");\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:477
#, no-wrap
msgid ""
"        case \\(aq0\\(aq:\n"
"        case \\(aq1\\(aq:\n"
"        case \\(aq2\\(aq:\n"
"            if (digit_optind != 0 && digit_optind != this_option_optind)\n"
"              printf(\"digits occur in two different "
"argv-elements.\\en\");\n"
"            digit_optind = this_option_optind;\n"
"            printf(\"option %c\\en\", c);\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:481
#, no-wrap
msgid ""
"        case \\(aqa\\(aq:\n"
"            printf(\"option a\\en\");\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:485
#, no-wrap
msgid ""
"        case \\(aqb\\(aq:\n"
"            printf(\"option b\\en\");\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:489
#, no-wrap
msgid ""
"        case \\(aqc\\(aq:\n"
"            printf(\"option c with value \\(aq%s\\(aq\\en\", optarg);\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:493
#, no-wrap
msgid ""
"        case \\(aqd\\(aq:\n"
"            printf(\"option d with value \\(aq%s\\(aq\\en\", optarg);\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:496
#, no-wrap
msgid ""
"        case \\(aq?\\(aq:\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:501
#, no-wrap
msgid ""
"        default:\n"
"            printf(\"?? getopt returned character code 0%o ??\\en\", c);\n"
"        }\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:508
#, no-wrap
msgid ""
"    if (optind E<lt> argc) {\n"
"        printf(\"non-option ARGV-elements: \");\n"
"        while (optind E<lt> argc)\n"
"            printf(\"%s \", argv[optind++]);\n"
"        printf(\"\\en\");\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getopt.3:514
msgid "B<getsubopt>(3)"
msgstr ""

#. type: TH
#: build/C/man2/getpagesize.2:23
#, no-wrap
msgid "GETPAGESIZE"
msgstr ""

#. type: TH
#: build/C/man2/getpagesize.2:23
#, no-wrap
msgid "2010-11-16"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:26
msgid "getpagesize - get memory page size"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:30
msgid "B<int getpagesize(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:37
msgid "B<getpagesize>():"
msgstr ""

#.  .SH HISTORY
#.  This call first appeared in 4.2BSD.
#. type: Plain text
#: build/C/man2/getpagesize.2:62
msgid ""
"The function B<getpagesize>()  returns the number of bytes in a memory page, "
"where \"page\" is a fixed-length block, the unit for memory allocation and "
"file mapping performed by B<mmap>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:69
msgid ""
"SVr4, 4.4BSD, SUSv2.  In SUSv2 the B<getpagesize>()  call is labeled LEGACY, "
"and in POSIX.1-2001 it has been dropped; HP-UX does not have this call."
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:74
msgid ""
"Portable applications should employ I<sysconf(_SC_PAGESIZE)> instead of "
"B<getpagesize>():"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:79
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
"long sz = sysconf(_SC_PAGESIZE);\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:86
msgid "(Most systems allow the synonym B<_SC_PAGE_SIZE> for B<_SC_PAGESIZE>.)"
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:106
msgid ""
"Whether B<getpagesize>()  is present as a Linux system call depends on the "
"architecture.  If it is, it returns the kernel symbol B<PAGE_SIZE>, whose "
"value depends on the architecture and machine model.  Generally, one uses "
"binaries that are dependent on the architecture but not on the machine "
"model, in order to have a single binary distribution per architecture.  This "
"means that a user program should not find B<PAGE_SIZE> at compile time from "
"a header file, but use an actual system call, at least for those "
"architectures (like sun4) where this dependency exists.  Here libc4, libc5, "
"glibc 2.0 fail because their B<getpagesize>()  returns a statically derived "
"value, and does not use a system call.  Things are OK in glibc 2.1."
msgstr ""

#. type: Plain text
#: build/C/man2/getpagesize.2:109
msgid "B<mmap>(2), B<sysconf>(3)"
msgstr ""

#. type: TH
#: build/C/man2/gettid.2:26
#, no-wrap
msgid "GETTID"
msgstr ""

#. type: TH
#: build/C/man2/gettid.2:26
#, no-wrap
msgid "2008-04-14"
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:29
msgid "gettid - get thread identification"
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:32
#, no-wrap
msgid "B<#include E<lt>sys/types.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:34
#, no-wrap
msgid "B<pid_t gettid(void);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:47
msgid ""
"B<gettid>()  returns the caller's thread ID (TID).  In a single-threaded "
"process, the thread ID is equal to the process ID (PID, as returned by "
"B<getpid>(2)).  In a multithreaded process, all threads have the same PID, "
"but each one has a unique TID.  For further details, see the discussion of "
"B<CLONE_THREAD> in B<clone>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:49
msgid "On success, returns the thread ID of the calling process."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:51
msgid "This call is always successful."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:55
msgid "The B<gettid>()  system call first appeared on Linux in kernel 2.4.11."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:59
msgid ""
"B<gettid>()  is Linux-specific and should not be used in programs that are "
"intended to be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:68
msgid ""
"The thread ID returned by this call is not the same thing as a POSIX thread "
"ID (i.e., the opaque value returned by B<pthread_self>(3))."
msgstr ""

#. type: Plain text
#: build/C/man2/gettid.2:72
msgid "B<clone>(2), B<fork>(2), B<getpid>(2)"
msgstr ""

#. type: TH
#: build/C/man3/getumask.3:26
#, no-wrap
msgid "GETUMASK"
msgstr ""

#. type: TH
#: build/C/man3/getumask.3:26
#, no-wrap
msgid "2010-09-10"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:29
msgid "getumask - get file creation mask"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:33 build/C/man2/truncate.2:48 build/C/man2/umask.2:39 build/C/man2/vfork.2:31
msgid "B<#include E<lt>sys/types.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:37
msgid "B<mode_t getumask(void);>"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:40
msgid "This function returns the current file creation mask.  It is equivalent to"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:49
#, no-wrap
msgid ""
"mode_t getumask(void)\n"
"{\n"
"    mode_t mask = umask( 0 );\n"
"    umask(mask);\n"
"    return mask;\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:56
msgid ""
"except that it is documented to be thread-safe (that is, shares a lock with "
"the B<umask>(2)  library call)."
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:58
msgid "This is a vaporware GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:61
msgid ""
"This function is documented but not implemented yet in glibc, as at version "
"2.9."
msgstr ""

#. type: Plain text
#: build/C/man3/getumask.3:63
msgid "B<umask>(2)"
msgstr ""

#. type: TH
#: build/C/man3/getusershell.3:28
#, no-wrap
msgid "GETUSERSHELL"
msgstr ""

#. type: TH
#: build/C/man3/getusershell.3:28 build/C/man2/nice.2:31 build/C/man2/syscall.2:38 build/C/man2/vhangup.2:27
#, no-wrap
msgid "2007-07-26"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:31
msgid "getusershell, setusershell, endusershell - get permitted user shells"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:36
#, no-wrap
msgid "B<char *getusershell(void);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:38
#, no-wrap
msgid "B<void setusershell(void);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:40
#, no-wrap
msgid "B<void endusershell(void);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:51
msgid "B<getusershell>(), B<setusershell>(), B<endusershell>():"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:67
msgid ""
"The B<getusershell>()  function returns the next line from the file "
"I</etc/shells>, opening the file if necessary.  The line should contain the "
"pathname of a valid user shell.  If I</etc/shells> does not exist or is "
"unreadable, B<getusershell>()  behaves as if I</bin/sh> and I</bin/csh> were "
"listed in the file."
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:71
msgid "The B<setusershell>()  function rewinds I</etc/shells>."
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:75
msgid "The B<endusershell>()  function closes I</etc/shells>."
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:79
msgid "The B<getusershell>()  function returns a NULL pointer on end-of-file."
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:82
#, no-wrap
msgid "/etc/shells\n"
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:85
msgid "4.3BSD."
msgstr ""

#. type: Plain text
#: build/C/man3/getusershell.3:87
msgid "B<shells>(5)"
msgstr ""

#. type: TH
#: build/C/man2/idle.2:32
#, no-wrap
msgid "IDLE"
msgstr ""

#. type: TH
#: build/C/man2/idle.2:32
#, no-wrap
msgid "1994-08-21"
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:35
msgid "idle - make process 0 idle"
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:39
msgid "B<int idle(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:46
msgid ""
"B<idle>()  is an internal system call used during bootstrap.  It marks the "
"process's pages as swappable, lowers its priority, and enters the main "
"scheduling loop.  B<idle>()  never returns."
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:52
msgid ""
"Only process 0 may call B<idle>().  Any user process, even a process with "
"superuser permission, will receive B<EPERM>."
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:55
msgid ""
"B<idle>()  never returns for process 0, and always returns -1 for a user "
"process."
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:59 build/C/man2/setup.2:60
msgid "Always, for a user process."
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:61
msgid "Since 2.3.13 this system call does not exist anymore."
msgstr ""

#. type: Plain text
#: build/C/man2/idle.2:64 build/C/man2/sysinfo.2:86
msgid ""
"This function is Linux-specific, and should not be used in programs intended "
"to be portable."
msgstr ""

#. type: TH
#: build/C/man2/ioctl.2:39
#, no-wrap
msgid "IOCTL"
msgstr ""

#. type: TH
#: build/C/man2/ioctl.2:39
#, no-wrap
msgid "2000-09-21"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:42
msgid "ioctl - control device"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:44
msgid "B<#include E<lt>sys/ioctl.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:46
msgid "B<int ioctl(int >I<d>B<, int >I<request>B<, ...);>"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:57
msgid ""
"The B<ioctl>()  function manipulates the underlying device parameters of "
"special files.  In particular, many operating characteristics of character "
"special files (e.g., terminals) may be controlled with B<ioctl>()  "
"requests.  The argument I<d> must be an open file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:65
msgid ""
"The second argument is a device-dependent request code.  The third argument "
"is an untyped pointer to memory.  It's traditionally B<char *>I<argp> (from "
"the days before B<void *> was valid C), and will be so named for this "
"discussion."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:81
msgid ""
"An B<ioctl>()  I<request> has encoded in it whether the argument is an I<in> "
"parameter or I<out> parameter, and the size of the argument I<argp> in "
"bytes.  Macros and defines used in specifying an B<ioctl>()  I<request> are "
"located in the file I<E<lt>sys/ioctl.hE<gt>>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:90
msgid ""
"Usually, on success zero is returned.  A few B<ioctl>()  requests use the "
"return value as an output parameter and return a nonnegative value on "
"success.  On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:95
msgid "I<d> is not a valid descriptor."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:99
msgid "I<argp> references an inaccessible memory area."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:105
msgid "I<Request> or I<argp> is not valid."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:109
msgid "I<d> is not associated with a character special device."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:115
msgid ""
"The specified request does not apply to the kind of object that the "
"descriptor I<d> references."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:130
msgid ""
"No single standard.  Arguments, returns, and semantics of B<ioctl>()  vary "
"according to the device driver in question (the call is used as a catch-all "
"for operations that don't cleanly fit the UNIX stream I/O model).  See "
"B<ioctl_list>(2)  for a list of many of the known B<ioctl>()  calls.  The "
"B<ioctl>()  function call appeared in Version 7 AT&T UNIX."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl.2:138
msgid ""
"In order to use this call, one needs an open file descriptor.  Often the "
"B<open>(2)  call has unwanted side effects, that can be avoided under Linux "
"by giving it the B<O_NONBLOCK> flag."
msgstr ""

#.  .BR mt (4),
#. type: Plain text
#: build/C/man2/ioctl.2:146
msgid "B<execve>(2), B<fcntl>(2), B<ioctl_list>(2), B<open>(2), B<sd>(4), B<tty>(4)"
msgstr ""

#. type: TH
#: build/C/man2/ioctl_list.2:27
#, no-wrap
msgid "IOCTL_LIST"
msgstr ""

#. type: TH
#: build/C/man2/ioctl_list.2:27
#, no-wrap
msgid "2007-12-29"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:30
msgid "ioctl_list - list of ioctl calls in Linux/i386 kernel"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:37
msgid ""
"This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel "
"1.3.27.  It contains 421 ioctls from "
"I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>.  For each ioctl, its numerical "
"value, its name, and its argument type are given."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:45
msgid ""
"An argument type of I<const struct foo *> means the argument is input to the "
"kernel.  I<struct foo *> means the kernel outputs the argument.  If the "
"kernel uses the argument for both input and output, this is marked with "
"I<//\\ I-O>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:50
msgid ""
"Some ioctls take more arguments or return more values than a single "
"structure.  These are marked I<//\\ MORE> and documented further in a "
"separate section."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:52
msgid "This list is very incomplete."
msgstr ""

#. type: SS
#: build/C/man2/ioctl_list.2:52
#, no-wrap
msgid "ioctl structure"
msgstr ""

#.  added two sections - aeb
#. type: Plain text
#: build/C/man2/ioctl_list.2:57
msgid ""
"Ioctl command values are 32-bit constants.  In principle these constants are "
"completely arbitrary, but people have tried to build some structure into "
"them."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:76
msgid ""
"The old Linux situation was that of mostly 16-bit constants, where the last "
"byte is a serial number, and the preceding byte(s) give a type indicating "
"the driver.  Sometimes the major number was used: 0x03 for the B<HDIO_*> "
"ioctls, 0x06 for the B<LP*> ioctls.  And sometimes one or more ASCII letters "
"were used.  For example, B<TCGETS> has value 0x00005401, with 0x54 = "
"\\(aqT\\(aq indicating the terminal driver, and B<CYGETTIMEOUT> has value "
"0x00435906, with 0x43 0x59 = \\(aqC\\(aq \\(aqY\\(aq indicating the cyclades "
"driver."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:84
msgid ""
"Later (0.98p5) some more information was built into the number.  One has 2 "
"direction bits (00: none, 01: write, 10: read, 11: read/write)  followed by "
"14 size bits (giving the size of the argument), followed by an 8-bit type "
"(collecting the ioctls in groups for a common purpose or a common driver), "
"and an 8-bit serial number."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:94
msgid ""
"The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and "
"are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>.  They use "
"I<sizeof(size)> so that size is a misnomer here: this third argument is a "
"data type."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:99
msgid ""
"Note that the size bits are very unreliable: in lots of cases they are "
"wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or "
"because of legacy values."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:103
msgid ""
"Thus, it seems that the new structure only gave disadvantages: it does not "
"help in checking, but it causes varying values for the various "
"architectures."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:109
msgid ""
"Decent ioctls return 0 on success and -1 on error, while any output value is "
"stored via the argument.  However, quite a few ioctls in fact return an "
"output value.  This is not yet indicated below."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:111
msgid "// Main table."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:113
msgid "// E<lt>include/asm-i386/socket.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:115
#, no-wrap
msgid "0x00008901\tFIOSETOWN\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:116
#, no-wrap
msgid "0x00008902\tSIOCSPGRP\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:117
#, no-wrap
msgid "0x00008903\tFIOGETOWN\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:118
#, no-wrap
msgid "0x00008904\tSIOCGPGRP\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:119
#, no-wrap
msgid "0x00008905\tSIOCATMAR\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:120
#, no-wrap
msgid "0x00008906\tSIOCGSTAMP\ttimeval *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:124
msgid "// E<lt>include/asm-i386/termios.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:126
#, no-wrap
msgid "0x00005401\tTCGETS\tstruct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:127
#, no-wrap
msgid "0x00005402\tTCSETS\tconst struct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:128
#, no-wrap
msgid "0x00005403\tTCSETSW\tconst struct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:129
#, no-wrap
msgid "0x00005404\tTCSETSF\tconst struct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:130
#, no-wrap
msgid "0x00005405\tTCGETA\tstruct termio *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:131
#, no-wrap
msgid "0x00005406\tTCSETA\tconst struct termio *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:132
#, no-wrap
msgid "0x00005407\tTCSETAW\tconst struct termio *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:133
#, no-wrap
msgid "0x00005408\tTCSETAF\tconst struct termio *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:134
#, no-wrap
msgid "0x00005409\tTCSBRK\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:135
#, no-wrap
msgid "0x0000540A\tTCXONC\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:136
#, no-wrap
msgid "0x0000540B\tTCFLSH\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:137
#, no-wrap
msgid "0x0000540C\tTIOCEXCL\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:138
#, no-wrap
msgid "0x0000540D\tTIOCNXCL\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:139
#, no-wrap
msgid "0x0000540E\tTIOCSCTTY\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:140
#, no-wrap
msgid "0x0000540F\tTIOCGPGRP\tpid_t *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:141
#, no-wrap
msgid "0x00005410\tTIOCSPGRP\tconst pid_t *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:142
#, no-wrap
msgid "0x00005411\tTIOCOUTQ\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:143
#, no-wrap
msgid "0x00005412\tTIOCSTI\tconst char *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:144
#, no-wrap
msgid "0x00005413\tTIOCGWINSZ\tstruct winsize *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:145
#, no-wrap
msgid "0x00005414\tTIOCSWINSZ\tconst struct winsize *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:146
#, no-wrap
msgid "0x00005415\tTIOCMGET\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:147
#, no-wrap
msgid "0x00005416\tTIOCMBIS\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:148
#, no-wrap
msgid "0x00005417\tTIOCMBIC\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:149
#, no-wrap
msgid "0x00005418\tTIOCMSET\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:150
#, no-wrap
msgid "0x00005419\tTIOCGSOFTCAR\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:151
#, no-wrap
msgid "0x0000541A\tTIOCSSOFTCAR\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:152
#, no-wrap
msgid "0x0000541B\tFIONREAD\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:153
#, no-wrap
msgid "0x0000541B\tTIOCINQ\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:154
#, no-wrap
msgid "0x0000541C\tTIOCLINUX\tconst char *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:155
#, no-wrap
msgid "0x0000541D\tTIOCCONS\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:156
#, no-wrap
msgid "0x0000541E\tTIOCGSERIAL\tstruct serial_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:157
#, no-wrap
msgid "0x0000541F\tTIOCSSERIAL\tconst struct serial_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:158
#, no-wrap
msgid "0x00005420\tTIOCPKT\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:159
#, no-wrap
msgid "0x00005421\tFIONBIO\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:160
#, no-wrap
msgid "0x00005422\tTIOCNOTTY\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:161
#, no-wrap
msgid "0x00005423\tTIOCSETD\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:162
#, no-wrap
msgid "0x00005424\tTIOCGETD\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:163
#, no-wrap
msgid "0x00005425\tTCSBRKP\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:164
#, no-wrap
msgid "0x00005426\tTIOCTTYGSTRUCT\tstruct tty_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:165
#, no-wrap
msgid "0x00005450\tFIONCLEX\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:166
#, no-wrap
msgid "0x00005451\tFIOCLEX\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:167
#, no-wrap
msgid "0x00005452\tFIOASYNC\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:168
#, no-wrap
msgid "0x00005453\tTIOCSERCONFIG\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:169
#, no-wrap
msgid "0x00005454\tTIOCSERGWILD\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:170
#, no-wrap
msgid "0x00005455\tTIOCSERSWILD\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:171
#, no-wrap
msgid "0x00005456\tTIOCGLCKTRMIOS\tstruct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:172
#, no-wrap
msgid "0x00005457\tTIOCSLCKTRMIOS\tconst struct termios *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:173
#, no-wrap
msgid "0x00005458\tTIOCSERGSTRUCT\tstruct async_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:174
#, no-wrap
msgid "0x00005459\tTIOCSERGETLSR\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:175
#, no-wrap
msgid "0x0000545A\tTIOCSERGETMULTI\tstruct serial_multiport_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:176
#, no-wrap
msgid "0x0000545B\tTIOCSERSETMULTI\tconst struct serial_multiport_struct *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:180
msgid "// E<lt>include/linux/ax25.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:182
#, no-wrap
msgid "0x000089E0\tSIOCAX25GETUID\tconst struct sockaddr_ax25 *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:183
#, no-wrap
msgid "0x000089E1\tSIOCAX25ADDUID\tconst struct sockaddr_ax25 *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:184
#, no-wrap
msgid "0x000089E2\tSIOCAX25DELUID\tconst struct sockaddr_ax25 *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:185
#, no-wrap
msgid "0x000089E3\tSIOCAX25NOUID\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:186
#, no-wrap
msgid "0x000089E4\tSIOCAX25DIGCTL\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:187
#, no-wrap
msgid "0x000089E5\tSIOCAX25GETPARMS\tstruct ax25_parms_struct *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:188
#, no-wrap
msgid "0x000089E6\tSIOCAX25SETPARMS\tconst struct ax25_parms_struct *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:192
msgid "// E<lt>include/linux/cdk.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:194
#, no-wrap
msgid "0x00007314\tSTL_BINTR\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:195
#, no-wrap
msgid "0x00007315\tSTL_BSTART\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:196
#, no-wrap
msgid "0x00007316\tSTL_BSTOP\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:197
#, no-wrap
msgid "0x00007317\tSTL_BRESET\tvoid\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:201
msgid "// E<lt>include/linux/cdrom.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:203
#, no-wrap
msgid "0x00005301\tCDROMPAUSE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:204
#, no-wrap
msgid "0x00005302\tCDROMRESUME\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:205
#, no-wrap
msgid "0x00005303\tCDROMPLAYMSF\tconst struct cdrom_msf *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:206
#, no-wrap
msgid "0x00005304\tCDROMPLAYTRKIND\tconst struct cdrom_ti *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:207
#, no-wrap
msgid "0x00005305\tCDROMREADTOCHDR\tstruct cdrom_tochdr *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:208
#, no-wrap
msgid "0x00005306\tCDROMREADTOCENTRY\tstruct cdrom_tocentry *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:209
#, no-wrap
msgid "0x00005307\tCDROMSTOP\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:210
#, no-wrap
msgid "0x00005308\tCDROMSTART\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:211
#, no-wrap
msgid "0x00005309\tCDROMEJECT\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:212
#, no-wrap
msgid "0x0000530A\tCDROMVOLCTRL\tconst struct cdrom_volctrl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:213
#, no-wrap
msgid "0x0000530B\tCDROMSUBCHNL\tstruct cdrom_subchnl *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:214
#, no-wrap
msgid "0x0000530C\tCDROMREADMODE2\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:215
#, no-wrap
msgid "0x0000530D\tCDROMREADMODE1\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:216
#, no-wrap
msgid "0x0000530E\tCDROMREADAUDIO\tconst struct cdrom_read_audio *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:217
#, no-wrap
msgid "0x0000530F\tCDROMEJECT_SW\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:218
#, no-wrap
msgid "0x00005310\tCDROMMULTISESSION\tstruct cdrom_multisession *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:219
#, no-wrap
msgid "0x00005311\tCDROM_GET_UPC\tstruct { char [8]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:220
#, no-wrap
msgid "0x00005312\tCDROMRESET\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:221
#, no-wrap
msgid "0x00005313\tCDROMVOLREAD\tstruct cdrom_volctrl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:222
#, no-wrap
msgid "0x00005314\tCDROMREADRAW\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:223
#, no-wrap
msgid "0x00005315\tCDROMREADCOOKED\tconst struct cdrom_msf *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:224
#, no-wrap
msgid "0x00005316\tCDROMSEEK\tconst struct cdrom_msf *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:228
msgid "// E<lt>include/linux/cm206.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:230
#, no-wrap
msgid "0x00002000\tCM206CTL_GET_STAT\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:231
#, no-wrap
msgid "0x00002001\tCM206CTL_GET_LAST_STAT\tint\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:235
msgid "// E<lt>include/linux/cyclades.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:237
#, no-wrap
msgid "0x00435901\tCYGETMON\tstruct cyclades_monitor *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:238
#, no-wrap
msgid "0x00435902\tCYGETTHRESH\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:239
#, no-wrap
msgid "0x00435903\tCYSETTHRESH\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:240
#, no-wrap
msgid "0x00435904\tCYGETDEFTHRESH\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:241
#, no-wrap
msgid "0x00435905\tCYSETDEFTHRESH\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:242
#, no-wrap
msgid "0x00435906\tCYGETTIMEOUT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:243
#, no-wrap
msgid "0x00435907\tCYSETTIMEOUT\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:244
#, no-wrap
msgid "0x00435908\tCYGETDEFTIMEOUT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:245
#, no-wrap
msgid "0x00435909\tCYSETDEFTIMEOUT\tint\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:249
msgid "// E<lt>include/linux/ext2_fs.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:251
#, no-wrap
msgid "0x80046601\tEXT2_IOC_GETFLAGS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:252
#, no-wrap
msgid "0x40046602\tEXT2_IOC_SETFLAGS\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:253
#, no-wrap
msgid "0x80047601\tEXT2_IOC_GETVERSION\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:254
#, no-wrap
msgid "0x40047602\tEXT2_IOC_SETVERSION\tconst int *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:258
msgid "// E<lt>include/linux/fd.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:260
#, no-wrap
msgid "0x00000000\tFDCLRPRM\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:261
#, no-wrap
msgid "0x00000001\tFDSETPRM\tconst struct floppy_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:262
#, no-wrap
msgid "0x00000002\tFDDEFPRM\tconst struct floppy_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:263
#, no-wrap
msgid "0x00000003\tFDGETPRM\tstruct floppy_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:264
#, no-wrap
msgid "0x00000004\tFDMSGON\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:265
#, no-wrap
msgid "0x00000005\tFDMSGOFF\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:266
#, no-wrap
msgid "0x00000006\tFDFMTBEG\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:267
#, no-wrap
msgid "0x00000007\tFDFMTTRK\tconst struct format_descr *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:268
#, no-wrap
msgid "0x00000008\tFDFMTEND\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:269
#, no-wrap
msgid "0x0000000A\tFDSETEMSGTRESH\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:270
#, no-wrap
msgid "0x0000000B\tFDFLUSH\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:271
#, no-wrap
msgid "0x0000000C\tFDSETMAXERRS\tconst struct floppy_max_errors *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:272
#, no-wrap
msgid "0x0000000E\tFDGETMAXERRS\tstruct floppy_max_errors *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:273
#, no-wrap
msgid "0x00000010\tFDGETDRVTYP\tstruct { char [16]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:274
#, no-wrap
msgid "0x00000014\tFDSETDRVPRM\tconst struct floppy_drive_params *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:275
#, no-wrap
msgid "0x00000015\tFDGETDRVPRM\tstruct floppy_drive_params *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:276
#, no-wrap
msgid "0x00000016\tFDGETDRVSTAT\tstruct floppy_drive_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:277
#, no-wrap
msgid "0x00000017\tFDPOLLDRVSTAT\tstruct floppy_drive_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:278
#, no-wrap
msgid "0x00000018\tFDRESET\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:279
#, no-wrap
msgid "0x00000019\tFDGETFDCSTAT\tstruct floppy_fdc_state *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:280
#, no-wrap
msgid "0x0000001B\tFDWERRORCLR\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:281
#, no-wrap
msgid "0x0000001C\tFDWERRORGET\tstruct floppy_write_errors *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:282
#, no-wrap
msgid "0x0000001E\tFDRAWCMD\tstruct floppy_raw_cmd *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:283
#, no-wrap
msgid "0x00000028\tFDTWADDLE\tvoid\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:287
msgid "// E<lt>include/linux/fs.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:289
#, no-wrap
msgid "0x0000125D\tBLKROSET\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:290
#, no-wrap
msgid "0x0000125E\tBLKROGET\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:291
#, no-wrap
msgid "0x0000125F\tBLKRRPART\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:292
#, no-wrap
msgid "0x00001260\tBLKGETSIZE\tunsigned long *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:293
#, no-wrap
msgid "0x00001261\tBLKFLSBUF\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:294
#, no-wrap
msgid "0x00001262\tBLKRASET\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:295
#, no-wrap
msgid "0x00001263\tBLKRAGET\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:296
#, no-wrap
msgid "0x00000001\tFIBMAP\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:297
#, no-wrap
msgid "0x00000002\tFIGETBSZ\tint *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:301
msgid "// E<lt>include/linux/hdreg.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:303
#, no-wrap
msgid "0x00000301\tHDIO_GETGEO\tstruct hd_geometry *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:304
#, no-wrap
msgid "0x00000302\tHDIO_GET_UNMASKINTR\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:305
#, no-wrap
msgid "0x00000304\tHDIO_GET_MULTCOUNT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:306
#, no-wrap
msgid "0x00000307\tHDIO_GET_IDENTITY\tstruct hd_driveid *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:307
#, no-wrap
msgid "0x00000308\tHDIO_GET_KEEPSETTINGS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:308
#, no-wrap
msgid "0x00000309\tHDIO_GET_CHIPSET\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:309
#, no-wrap
msgid "0x0000030A\tHDIO_GET_NOWERR\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:310
#, no-wrap
msgid "0x0000030B\tHDIO_GET_DMA\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:311
#, no-wrap
msgid "0x0000031F\tHDIO_DRIVE_CMD\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:312
#, no-wrap
msgid "0x00000321\tHDIO_SET_MULTCOUNT\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:313
#, no-wrap
msgid "0x00000322\tHDIO_SET_UNMASKINTR\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:314
#, no-wrap
msgid "0x00000323\tHDIO_SET_KEEPSETTINGS\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:315
#, no-wrap
msgid "0x00000324\tHDIO_SET_CHIPSET\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:316
#, no-wrap
msgid "0x00000325\tHDIO_SET_NOWERR\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:317
#, no-wrap
msgid "0x00000326\tHDIO_SET_DMA\tint\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:321
msgid "// E<lt>include/linux/if_eql.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:323
#, no-wrap
msgid "0x000089F0\tEQL_ENSLAVE\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:324
#, no-wrap
msgid "0x000089F1\tEQL_EMANCIPATE\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:325
#, no-wrap
msgid "0x000089F2\tEQL_GETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:326
#, no-wrap
msgid "0x000089F3\tEQL_SETSLAVECFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:327
#, no-wrap
msgid "0x000089F4\tEQL_GETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:328
#, no-wrap
msgid "0x000089F5\tEQL_SETMASTRCFG\tstruct ifreq *\t// MORE // I-O\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:332
msgid "// E<lt>include/linux/if_plip.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:334
#, no-wrap
msgid "0x000089F0\tSIOCDEVPLIP\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:338
msgid "// E<lt>include/linux/if_ppp.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:340
#, no-wrap
msgid "0x00005490\tPPPIOCGFLAGS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:341
#, no-wrap
msgid "0x00005491\tPPPIOCSFLAGS\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:342
#, no-wrap
msgid "0x00005492\tPPPIOCGASYNCMAP\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:343
#, no-wrap
msgid "0x00005493\tPPPIOCSASYNCMAP\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:344
#, no-wrap
msgid "0x00005494\tPPPIOCGUNIT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:345
#, no-wrap
msgid "0x00005495\tPPPIOCSINPSIG\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:346
#, no-wrap
msgid "0x00005497\tPPPIOCSDEBUG\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:347
#, no-wrap
msgid "0x00005498\tPPPIOCGDEBUG\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:348
#, no-wrap
msgid "0x00005499\tPPPIOCGSTAT\tstruct ppp_stats *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:349
#, no-wrap
msgid "0x0000549A\tPPPIOCGTIME\tstruct ppp_ddinfo *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:350
#, no-wrap
msgid "0x0000549B\tPPPIOCGXASYNCMAP\tstruct { int [8]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:351
#, no-wrap
msgid "0x0000549C\tPPPIOCSXASYNCMAP\tconst struct { int [8]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:352
#, no-wrap
msgid "0x0000549D\tPPPIOCSMRU\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:353
#, no-wrap
msgid "0x0000549E\tPPPIOCRASYNCMAP\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:354
#, no-wrap
msgid "0x0000549F\tPPPIOCSMAXCID\tconst int *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:358
msgid "// E<lt>include/linux/ipx.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:360
#, no-wrap
msgid "0x000089E0\tSIOCAIPXITFCRT\tconst char *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:361
#, no-wrap
msgid "0x000089E1\tSIOCAIPXPRISLT\tconst char *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:362
#, no-wrap
msgid "0x000089E2\tSIOCIPXCFGDATA\tstruct ipx_config_data *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:366
msgid "// E<lt>include/linux/kd.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:368
#, no-wrap
msgid "0x00004B60\tGIO_FONT\tstruct { char [8192]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:369
#, no-wrap
msgid "0x00004B61\tPIO_FONT\tconst struct { char [8192]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:370
#, no-wrap
msgid "0x00004B6B\tGIO_FONTX\tstruct console_font_desc *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:371
#, no-wrap
msgid "0x00004B6C\tPIO_FONTX\tconst struct console_font_desc *\t//MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:372
#, no-wrap
msgid "0x00004B70\tGIO_CMAP\tstruct { char [48]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:373
#, no-wrap
msgid "0x00004B71\tPIO_CMAP\tconst struct { char [48]; }\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:374
#, no-wrap
msgid "0x00004B2F\tKIOCSOUND\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:375
#, no-wrap
msgid "0x00004B30\tKDMKTONE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:376
#, no-wrap
msgid "0x00004B31\tKDGETLED\tchar *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:377
#, no-wrap
msgid "0x00004B32\tKDSETLED\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:378
#, no-wrap
msgid "0x00004B33\tKDGKBTYPE\tchar *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:379
#, no-wrap
msgid "0x00004B34\tKDADDIO\tint\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:380
#, no-wrap
msgid "0x00004B35\tKDDELIO\tint\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:381
#, no-wrap
msgid "0x00004B36\tKDENABIO\tvoid\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:382
#, no-wrap
msgid "0x00004B37\tKDDISABIO\tvoid\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:383
#, no-wrap
msgid "0x00004B3A\tKDSETMODE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:384
#, no-wrap
msgid "0x00004B3B\tKDGETMODE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:385
#, no-wrap
msgid "0x00004B3C\tKDMAPDISP\tvoid\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:386
#, no-wrap
msgid "0x00004B3D\tKDUNMAPDISP\tvoid\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:387
#, no-wrap
msgid "0x00004B40\tGIO_SCRNMAP\tstruct { char [E_TABSZ]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:388
#, no-wrap
msgid "0x00004B41\tPIO_SCRNMAP\tconst struct { char [E_TABSZ]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:389
#, no-wrap
msgid "0x00004B69\tGIO_UNISCRNMAP\tstruct { short [E_TABSZ]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:390
#, no-wrap
msgid "0x00004B6A\tPIO_UNISCRNMAP\tconst struct { short [E_TABSZ]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:391
#, no-wrap
msgid "0x00004B66\tGIO_UNIMAP\tstruct unimapdesc *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:392
#, no-wrap
msgid "0x00004B67\tPIO_UNIMAP\tconst struct unimapdesc *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:393
#, no-wrap
msgid "0x00004B68\tPIO_UNIMAPCLR\tconst struct unimapinit *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:394
#, no-wrap
msgid "0x00004B44\tKDGKBMODE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:395
#, no-wrap
msgid "0x00004B45\tKDSKBMODE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:396
#, no-wrap
msgid "0x00004B62\tKDGKBMETA\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:397
#, no-wrap
msgid "0x00004B63\tKDSKBMETA\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:398
#, no-wrap
msgid "0x00004B64\tKDGKBLED\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:399
#, no-wrap
msgid "0x00004B65\tKDSKBLED\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:400
#, no-wrap
msgid "0x00004B46\tKDGKBENT\tstruct kbentry *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:401
#, no-wrap
msgid "0x00004B47\tKDSKBENT\tconst struct kbentry *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:402
#, no-wrap
msgid "0x00004B48\tKDGKBSENT\tstruct kbsentry *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:403
#, no-wrap
msgid "0x00004B49\tKDSKBSENT\tconst struct kbsentry *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:404
#, no-wrap
msgid "0x00004B4A\tKDGKBDIACR\tstruct kbdiacrs *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:405
#, no-wrap
msgid "0x00004B4B\tKDSKBDIACR\tconst struct kbdiacrs *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:406
#, no-wrap
msgid "0x00004B4C\tKDGETKEYCODE\tstruct kbkeycode *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:407
#, no-wrap
msgid "0x00004B4D\tKDSETKEYCODE\tconst struct kbkeycode *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:408
#, no-wrap
msgid "0x00004B4E\tKDSIGACCEPT\tint\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:412
msgid "// E<lt>include/linux/lp.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:414
#, no-wrap
msgid "0x00000601\tLPCHAR\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:415
#, no-wrap
msgid "0x00000602\tLPTIME\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:416
#, no-wrap
msgid "0x00000604\tLPABORT\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:417
#, no-wrap
msgid "0x00000605\tLPSETIRQ\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:418
#, no-wrap
msgid "0x00000606\tLPGETIRQ\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:419
#, no-wrap
msgid "0x00000608\tLPWAIT\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:420
#, no-wrap
msgid "0x00000609\tLPCAREFUL\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:421
#, no-wrap
msgid "0x0000060A\tLPABORTOPEN\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:422
#, no-wrap
msgid "0x0000060B\tLPGETSTATUS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:423
#, no-wrap
msgid "0x0000060C\tLPRESET\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:424
#, no-wrap
msgid "0x0000060D\tLPGETSTATS\tstruct lp_stats *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:428
msgid "// E<lt>include/linux/mroute.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:430
#, no-wrap
msgid "0x000089E0\tSIOCGETVIFCNT\tstruct sioc_vif_req *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:431
#, no-wrap
msgid "0x000089E1\tSIOCGETSGCNT\tstruct sioc_sg_req *\t// I-O\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:435
msgid "// E<lt>include/linux/mtio.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:437
#, no-wrap
msgid "0x40086D01\tMTIOCTOP\tconst struct mtop *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:438
#, no-wrap
msgid "0x801C6D02\tMTIOCGET\tstruct mtget *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:439
#, no-wrap
msgid "0x80046D03\tMTIOCPOS\tstruct mtpos *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:440
#, no-wrap
msgid "0x80206D04\tMTIOCGETCONFIG\tstruct mtconfiginfo *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:441
#, no-wrap
msgid "0x40206D05\tMTIOCSETCONFIG\tconst struct mtconfiginfo *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:445
msgid "// E<lt>include/linux/netrom.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:447
#, no-wrap
msgid "0x000089E0\tSIOCNRGETPARMS\tstruct nr_parms_struct *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:448
#, no-wrap
msgid "0x000089E1\tSIOCNRSETPARMS\tconst struct nr_parms_struct *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:449
#, no-wrap
msgid "0x000089E2\tSIOCNRDECOBS\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:450
#, no-wrap
msgid "0x000089E3\tSIOCNRRTCTL\tconst int *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:454
msgid "// E<lt>include/linux/sbpcd.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:456
#, no-wrap
msgid "0x00009000\tDDIOCSDBG\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:457
#, no-wrap
msgid "0x00005382\tCDROMAUDIOBUFSIZ\tint\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:461
msgid "// E<lt>include/linux/scc.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:463
#, no-wrap
msgid "0x00005470\tTIOCSCCINI\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:464
#, no-wrap
msgid "0x00005471\tTIOCCHANINI\tconst struct scc_modem *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:465
#, no-wrap
msgid "0x00005472\tTIOCGKISS\tstruct ioctl_command *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:466
#, no-wrap
msgid "0x00005473\tTIOCSKISS\tconst struct ioctl_command *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:467
#, no-wrap
msgid "0x00005474\tTIOCSCCSTAT\tstruct scc_stat *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:471
msgid "// E<lt>include/linux/scsi.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:473
#, no-wrap
msgid "0x00005382\tSCSI_IOCTL_GET_IDLUN\tstruct { int [2]; } *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:474
#, no-wrap
msgid "0x00005383\tSCSI_IOCTL_TAGGED_ENABLE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:475
#, no-wrap
msgid "0x00005384\tSCSI_IOCTL_TAGGED_DISABLE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:476
#, no-wrap
msgid "0x00005385\tSCSI_IOCTL_PROBE_HOST\tconst int *\t// MORE\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:480
msgid "// E<lt>include/linux/smb_fs.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:482
#, no-wrap
msgid "0x80027501\tSMB_IOC_GETMOUNTUID\tuid_t *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:486
msgid "// E<lt>include/linux/sockios.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:488
#, no-wrap
msgid "0x0000890B\tSIOCADDRT\tconst struct rtentry *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:489
#, no-wrap
msgid "0x0000890C\tSIOCDELRT\tconst struct rtentry *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:490
#, no-wrap
msgid "0x00008910\tSIOCGIFNAME\tchar []\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:491
#, no-wrap
msgid "0x00008911\tSIOCSIFLINK\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:492
#, no-wrap
msgid "0x00008912\tSIOCGIFCONF\tstruct ifconf *\t// MORE // I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:493
#, no-wrap
msgid "0x00008913\tSIOCGIFFLAGS\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:494
#, no-wrap
msgid "0x00008914\tSIOCSIFFLAGS\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:495
#, no-wrap
msgid "0x00008915\tSIOCGIFADDR\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:496
#, no-wrap
msgid "0x00008916\tSIOCSIFADDR\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:497
#, no-wrap
msgid "0x00008917\tSIOCGIFDSTADDR\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:498
#, no-wrap
msgid "0x00008918\tSIOCSIFDSTADDR\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:499
#, no-wrap
msgid "0x00008919\tSIOCGIFBRDADDR\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:500
#, no-wrap
msgid "0x0000891A\tSIOCSIFBRDADDR\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:501
#, no-wrap
msgid "0x0000891B\tSIOCGIFNETMASK\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:502
#, no-wrap
msgid "0x0000891C\tSIOCSIFNETMASK\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:503
#, no-wrap
msgid "0x0000891D\tSIOCGIFMETRIC\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:504
#, no-wrap
msgid "0x0000891E\tSIOCSIFMETRIC\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:505
#, no-wrap
msgid "0x0000891F\tSIOCGIFMEM\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:506
#, no-wrap
msgid "0x00008920\tSIOCSIFMEM\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:507
#, no-wrap
msgid "0x00008921\tSIOCGIFMTU\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:508
#, no-wrap
msgid "0x00008922\tSIOCSIFMTU\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:509
#, no-wrap
msgid "0x00008923\tOLD_SIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:510
#, no-wrap
msgid "0x00008924\tSIOCSIFHWADDR\tconst struct ifreq *\t// MORE\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:511
#, no-wrap
msgid "0x00008925\tSIOCGIFENCAP\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:512
#, no-wrap
msgid "0x00008926\tSIOCSIFENCAP\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:513
#, no-wrap
msgid "0x00008927\tSIOCGIFHWADDR\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:514
#, no-wrap
msgid "0x00008929\tSIOCGIFSLAVE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:515
#, no-wrap
msgid "0x00008930\tSIOCSIFSLAVE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:516
#, no-wrap
msgid "0x00008931\tSIOCADDMULTI\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:517
#, no-wrap
msgid "0x00008932\tSIOCDELMULTI\tconst struct ifreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:518
#, no-wrap
msgid "0x00008940\tSIOCADDRTOLD\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:519
#, no-wrap
msgid "0x00008941\tSIOCDELRTOLD\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:520
#, no-wrap
msgid "0x00008950\tSIOCDARP\tconst struct arpreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:521
#, no-wrap
msgid "0x00008951\tSIOCGARP\tstruct arpreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:522
#, no-wrap
msgid "0x00008952\tSIOCSARP\tconst struct arpreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:523
#, no-wrap
msgid "0x00008960\tSIOCDRARP\tconst struct arpreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:524
#, no-wrap
msgid "0x00008961\tSIOCGRARP\tstruct arpreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:525
#, no-wrap
msgid "0x00008962\tSIOCSRARP\tconst struct arpreq *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:526
#, no-wrap
msgid "0x00008970\tSIOCGIFMAP\tstruct ifreq *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:527
#, no-wrap
msgid "0x00008971\tSIOCSIFMAP\tconst struct ifreq *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:531
msgid "// E<lt>include/linux/soundcard.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:533
#, no-wrap
msgid "0x00005100\tSNDCTL_SEQ_RESET\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:534
#, no-wrap
msgid "0x00005101\tSNDCTL_SEQ_SYNC\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:535
#, no-wrap
msgid "0xC08C5102\tSNDCTL_SYNTH_INFO\tstruct synth_info *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:536
#, no-wrap
msgid "0xC0045103\tSNDCTL_SEQ_CTRLRATE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:537
#, no-wrap
msgid "0x80045104\tSNDCTL_SEQ_GETOUTCOUNT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:538
#, no-wrap
msgid "0x80045105\tSNDCTL_SEQ_GETINCOUNT\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:539
#, no-wrap
msgid "0x40045106\tSNDCTL_SEQ_PERCMODE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:540
#, no-wrap
msgid "0x40285107\tSNDCTL_FM_LOAD_INSTR\tconst struct sbi_instrument *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:541
#, no-wrap
msgid "0x40045108\tSNDCTL_SEQ_TESTMIDI\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:542
#, no-wrap
msgid "0x40045109\tSNDCTL_SEQ_RESETSAMPLES\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:543
#, no-wrap
msgid "0x8004510A\tSNDCTL_SEQ_NRSYNTHS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:544
#, no-wrap
msgid "0x8004510B\tSNDCTL_SEQ_NRMIDIS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:545
#, no-wrap
msgid "0xC074510C\tSNDCTL_MIDI_INFO\tstruct midi_info *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:546
#, no-wrap
msgid "0x4004510D\tSNDCTL_SEQ_THRESHOLD\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:547
#, no-wrap
msgid "0xC004510E\tSNDCTL_SYNTH_MEMAVL\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:548
#, no-wrap
msgid "0x4004510F\tSNDCTL_FM_4OP_ENABLE\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:549
#, no-wrap
msgid "0xCFB85110\tSNDCTL_PMGR_ACCESS\tstruct patmgr_info *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:550
#, no-wrap
msgid "0x00005111\tSNDCTL_SEQ_PANIC\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:551
#, no-wrap
msgid "0x40085112\tSNDCTL_SEQ_OUTOFBAND\tconst struct seq_event_rec *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:552
#, no-wrap
msgid "0xC0045401\tSNDCTL_TMR_TIMEBASE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:553
#, no-wrap
msgid "0x00005402\tSNDCTL_TMR_START\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:554
#, no-wrap
msgid "0x00005403\tSNDCTL_TMR_STOP\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:555
#, no-wrap
msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:556
#, no-wrap
msgid "0xC0045405\tSNDCTL_TMR_TEMPO\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:557
#, no-wrap
msgid "0xC0045406\tSNDCTL_TMR_SOURCE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:558
#, no-wrap
msgid "0x40045407\tSNDCTL_TMR_METRONOME\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:559
#, no-wrap
msgid "0x40045408\tSNDCTL_TMR_SELECT\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:560
#, no-wrap
msgid "0xCFB85001\tSNDCTL_PMGR_IFACE\tstruct patmgr_info *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:561
#, no-wrap
msgid "0xC0046D00\tSNDCTL_MIDI_PRETIME\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:562
#, no-wrap
msgid "0xC0046D01\tSNDCTL_MIDI_MPUMODE\tconst int *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:563
#, no-wrap
msgid "0xC0216D02\tSNDCTL_MIDI_MPUCMD\tstruct mpu_command_rec *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:564
#, no-wrap
msgid "0x00005000\tSNDCTL_DSP_RESET\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:565
#, no-wrap
msgid "0x00005001\tSNDCTL_DSP_SYNC\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:566
#, no-wrap
msgid "0xC0045002\tSNDCTL_DSP_SPEED\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:567
#, no-wrap
msgid "0xC0045003\tSNDCTL_DSP_STEREO\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:568
#, no-wrap
msgid "0xC0045004\tSNDCTL_DSP_GETBLKSIZE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:569
#, no-wrap
msgid "0xC0045006\tSOUND_PCM_WRITE_CHANNELS\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:570
#, no-wrap
msgid "0xC0045007\tSOUND_PCM_WRITE_FILTER\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:571
#, no-wrap
msgid "0x00005008\tSNDCTL_DSP_POST\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:572
#, no-wrap
msgid "0xC0045009\tSNDCTL_DSP_SUBDIVIDE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:573
#, no-wrap
msgid "0xC004500A\tSNDCTL_DSP_SETFRAGMENT\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:574
#, no-wrap
msgid "0x8004500B\tSNDCTL_DSP_GETFMTS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:575
#, no-wrap
msgid "0xC0045005\tSNDCTL_DSP_SETFMT\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:576
#, no-wrap
msgid "0x800C500C\tSNDCTL_DSP_GETOSPACE\tstruct audio_buf_info *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:577
#, no-wrap
msgid "0x800C500D\tSNDCTL_DSP_GETISPACE\tstruct audio_buf_info *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:578
#, no-wrap
msgid "0x0000500E\tSNDCTL_DSP_NONBLOCK\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:579
#, no-wrap
msgid "0x80045002\tSOUND_PCM_READ_RATE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:580
#, no-wrap
msgid "0x80045006\tSOUND_PCM_READ_CHANNELS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:581
#, no-wrap
msgid "0x80045005\tSOUND_PCM_READ_BITS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:582
#, no-wrap
msgid "0x80045007\tSOUND_PCM_READ_FILTER\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:583
#, no-wrap
msgid "0x00004300\tSNDCTL_COPR_RESET\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:584
#, no-wrap
msgid "0xCFB04301\tSNDCTL_COPR_LOAD\tconst struct copr_buffer *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:585
#, no-wrap
msgid "0xC0144302\tSNDCTL_COPR_RDATA\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:586
#, no-wrap
msgid "0xC0144303\tSNDCTL_COPR_RCODE\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:587
#, no-wrap
msgid "0x40144304\tSNDCTL_COPR_WDATA\tconst struct copr_debug_buf *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:588
#, no-wrap
msgid "0x40144305\tSNDCTL_COPR_WCODE\tconst struct copr_debug_buf *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:589
#, no-wrap
msgid "0xC0144306\tSNDCTL_COPR_RUN\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:590
#, no-wrap
msgid "0xC0144307\tSNDCTL_COPR_HALT\tstruct copr_debug_buf *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:591
#, no-wrap
msgid "0x4FA44308\tSNDCTL_COPR_SENDMSG\tconst struct copr_msg *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:592
#, no-wrap
msgid "0x8FA44309\tSNDCTL_COPR_RCVMSG\tstruct copr_msg *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:593
#, no-wrap
msgid "0x80044D00\tSOUND_MIXER_READ_VOLUME\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:594
#, no-wrap
msgid "0x80044D01\tSOUND_MIXER_READ_BASS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:595
#, no-wrap
msgid "0x80044D02\tSOUND_MIXER_READ_TREBLE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:596
#, no-wrap
msgid "0x80044D03\tSOUND_MIXER_READ_SYNTH\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:597
#, no-wrap
msgid "0x80044D04\tSOUND_MIXER_READ_PCM\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:598
#, no-wrap
msgid "0x80044D05\tSOUND_MIXER_READ_SPEAKER\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:599
#, no-wrap
msgid "0x80044D06\tSOUND_MIXER_READ_LINE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:600
#, no-wrap
msgid "0x80044D07\tSOUND_MIXER_READ_MIC\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:601
#, no-wrap
msgid "0x80044D08\tSOUND_MIXER_READ_CD\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:602
#, no-wrap
msgid "0x80044D09\tSOUND_MIXER_READ_IMIX\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:603
#, no-wrap
msgid "0x80044D0A\tSOUND_MIXER_READ_ALTPCM\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:604
#, no-wrap
msgid "0x80044D0B\tSOUND_MIXER_READ_RECLEV\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:605
#, no-wrap
msgid "0x80044D0C\tSOUND_MIXER_READ_IGAIN\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:606
#, no-wrap
msgid "0x80044D0D\tSOUND_MIXER_READ_OGAIN\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:607
#, no-wrap
msgid "0x80044D0E\tSOUND_MIXER_READ_LINE1\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:608
#, no-wrap
msgid "0x80044D0F\tSOUND_MIXER_READ_LINE2\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:609
#, no-wrap
msgid "0x80044D10\tSOUND_MIXER_READ_LINE3\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:610
#, no-wrap
msgid "0x80044D1C\tSOUND_MIXER_READ_MUTE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:611
#, no-wrap
msgid "0x80044D1D\tSOUND_MIXER_READ_ENHANCE\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:612
#, no-wrap
msgid "0x80044D1E\tSOUND_MIXER_READ_LOUD\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:613
#, no-wrap
msgid "0x80044DFF\tSOUND_MIXER_READ_RECSRC\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:614
#, no-wrap
msgid "0x80044DFE\tSOUND_MIXER_READ_DEVMASK\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:615
#, no-wrap
msgid "0x80044DFD\tSOUND_MIXER_READ_RECMASK\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:616
#, no-wrap
msgid "0x80044DFB\tSOUND_MIXER_READ_STEREODEVS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:617
#, no-wrap
msgid "0x80044DFC\tSOUND_MIXER_READ_CAPS\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:618
#, no-wrap
msgid "0xC0044D00\tSOUND_MIXER_WRITE_VOLUME\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:619
#, no-wrap
msgid "0xC0044D01\tSOUND_MIXER_WRITE_BASS\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:620
#, no-wrap
msgid "0xC0044D02\tSOUND_MIXER_WRITE_TREBLE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:621
#, no-wrap
msgid "0xC0044D03\tSOUND_MIXER_WRITE_SYNTH\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:622
#, no-wrap
msgid "0xC0044D04\tSOUND_MIXER_WRITE_PCM\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:623
#, no-wrap
msgid "0xC0044D05\tSOUND_MIXER_WRITE_SPEAKER\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:624
#, no-wrap
msgid "0xC0044D06\tSOUND_MIXER_WRITE_LINE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:625
#, no-wrap
msgid "0xC0044D07\tSOUND_MIXER_WRITE_MIC\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:626
#, no-wrap
msgid "0xC0044D08\tSOUND_MIXER_WRITE_CD\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:627
#, no-wrap
msgid "0xC0044D09\tSOUND_MIXER_WRITE_IMIX\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:628
#, no-wrap
msgid "0xC0044D0A\tSOUND_MIXER_WRITE_ALTPCM\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:629
#, no-wrap
msgid "0xC0044D0B\tSOUND_MIXER_WRITE_RECLEV\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:630
#, no-wrap
msgid "0xC0044D0C\tSOUND_MIXER_WRITE_IGAIN\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:631
#, no-wrap
msgid "0xC0044D0D\tSOUND_MIXER_WRITE_OGAIN\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:632
#, no-wrap
msgid "0xC0044D0E\tSOUND_MIXER_WRITE_LINE1\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:633
#, no-wrap
msgid "0xC0044D0F\tSOUND_MIXER_WRITE_LINE2\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:634
#, no-wrap
msgid "0xC0044D10\tSOUND_MIXER_WRITE_LINE3\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:635
#, no-wrap
msgid "0xC0044D1C\tSOUND_MIXER_WRITE_MUTE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:636
#, no-wrap
msgid "0xC0044D1D\tSOUND_MIXER_WRITE_ENHANCE\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:637
#, no-wrap
msgid "0xC0044D1E\tSOUND_MIXER_WRITE_LOUD\tint *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:638
#, no-wrap
msgid "0xC0044DFF\tSOUND_MIXER_WRITE_RECSRC\tint *\t// I-O\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:642
msgid "// E<lt>include/linux/umsdos_fs.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:644
#, no-wrap
msgid "0x000004D2\tUMSDOS_READDIR_DOS\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:645
#, no-wrap
msgid "0x000004D3\tUMSDOS_UNLINK_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:646
#, no-wrap
msgid "0x000004D4\tUMSDOS_RMDIR_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:647
#, no-wrap
msgid "0x000004D5\tUMSDOS_STAT_DOS\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:648
#, no-wrap
msgid "0x000004D6\tUMSDOS_CREAT_EMD\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:649
#, no-wrap
msgid "0x000004D7\tUMSDOS_UNLINK_EMD\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:650
#, no-wrap
msgid "0x000004D8\tUMSDOS_READDIR_EMD\tstruct umsdos_ioctl *\t// I-O\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:651
#, no-wrap
msgid "0x000004D9\tUMSDOS_GETVERSION\tstruct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:652
#, no-wrap
msgid "0x000004DA\tUMSDOS_INIT_EMD\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:653
#, no-wrap
msgid "0x000004DB\tUMSDOS_DOS_SETUP\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:654
#, no-wrap
msgid "0x000004DC\tUMSDOS_RENAME_DOS\tconst struct umsdos_ioctl *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:658
msgid "// E<lt>include/linux/vt.hE<gt>"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:660
#, no-wrap
msgid "0x00005600\tVT_OPENQRY\tint *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:661
#, no-wrap
msgid "0x00005601\tVT_GETMODE\tstruct vt_mode *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:662
#, no-wrap
msgid "0x00005602\tVT_SETMODE\tconst struct vt_mode *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:663
#, no-wrap
msgid "0x00005603\tVT_GETSTATE\tstruct vt_stat *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:664
#, no-wrap
msgid "0x00005604\tVT_SENDSIG\tvoid\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:665
#, no-wrap
msgid "0x00005605\tVT_RELDISP\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:666
#, no-wrap
msgid "0x00005606\tVT_ACTIVATE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:667
#, no-wrap
msgid "0x00005607\tVT_WAITACTIVE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:668
#, no-wrap
msgid "0x00005608\tVT_DISALLOCATE\tint\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:669
#, no-wrap
msgid "0x00005609\tVT_RESIZE\tconst struct vt_sizes *\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:670
#, no-wrap
msgid "0x0000560A\tVT_RESIZEX\tconst struct vt_consize *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:677
msgid ""
"// More arguments.  Some ioctl's take a pointer to a structure which "
"contains additional pointers.  These are documented here in alphabetical "
"order."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:685
msgid ""
"B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio "
"*>.  The I<buf> field points to an output buffer of length I<nframes * "
"CD_FRAMESIZE_RAW>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:701
msgid ""
"B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and "
"B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf *>.  They use "
"the same pointer as an output pointer to I<char []>.  The length varies by "
"request.  For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the "
"Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical "
"value 2048)."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:707
#, no-wrap
msgid ""
"    CDROMREADCOOKED    char [CD_FRAMESIZE]\n"
"    CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]\n"
"    CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]\n"
"    CDROMREADRAW       char [CD_FRAMESIZE_RAW]\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:721
msgid ""
"B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, "
"B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq *>.  The "
"I<ifr_data> field is a pointer to another structure as follows:"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:729
#, no-wrap
msgid ""
"    EQL_ENSLAVE         const struct slaving_request *\n"
"    EQL_EMANCIPATE      const struct slaving_request *\n"
"    EQL_GETSLAVECFG     struct slave_config *           // I-O\n"
"    EQL_SETSLAVECFG     const struct slave_config *\n"
"    EQL_GETMASTERCFG    struct master_config *\n"
"    EQL_SETMASTERCFG    const struct master_config *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:746
msgid ""
"B<FDRAWCMD> takes a I<struct floppy raw_cmd *>.  If I<flags & FD_RAW_WRITE> "
"is nonzero, then I<data> points to an input buffer of length I<length>.  If "
"I<flags & FD_RAW_READ> is nonzero, then I<data> points to an output buffer "
"of length I<length>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:762
msgid ""
"B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc *> or a "
"I<const struct console_font_desc *>, respectively.  I<chardata> points to a "
"buffer of I<char [charcount]>.  This is an output buffer for B<GIO_FONTX> "
"and an input buffer for B<PIO_FONTX>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:778
msgid ""
"B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc *> or a I<const "
"struct unimapdesc *>, respectively.  I<entries> points to a buffer of "
"I<struct unipair [entry_ct]>.  This is an output buffer for B<GIO_UNIMAP> "
"and an input buffer for B<PIO_UNIMAP>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:782
msgid ""
"KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O "
"ports.  They are essentially alternate interfaces to 'ioperm'."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:788
msgid ""
"B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O "
"port access.  They are not implemented in the kernel."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:796
msgid ""
"B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int *>, which is a "
"length.  It uses the same pointer as an output pointer to a I<char []> "
"buffer of this length."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:802
msgid ""
"B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on "
"the protocol:"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:807
#, no-wrap
msgid ""
"    Most protocols      const struct rtentry *\n"
"    AX.25               const struct ax25_route *\n"
"    NET/ROM             const struct nr_route_struct *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:818
msgid ""
"B<SIOCGIFCONF> takes a I<struct ifconf *>.  The I<ifc_buf> field points to a "
"buffer of length I<ifc_len> bytes, into which the kernel writes a list of "
"type I<struct ifreq []>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:821
msgid "B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:825
#, no-wrap
msgid ""
"    Most protocols      const struct ifreq *\n"
"    AX.25               const char [AX25_ADDR_LEN]\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:840
msgid ""
"B<TIOCLINUX> takes a I<const char *>.  It uses this to distinguish several "
"independent subcases.  In the table below, I<N + foo> means I<foo> after an "
"N-byte pad.  I<struct selection> is implicitly defined in "
"I<drivers/char/selection.c>"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:849
#, no-wrap
msgid ""
"    TIOCLINUX-2         1 + const struct selection *\n"
"    TIOCLINUX-3         void\n"
"    TIOCLINUX-4         void\n"
"    TIOCLINUX-5         4 + const struct { long [8]; } *\n"
"    TIOCLINUX-6         char *\n"
"    TIOCLINUX-7         char *\n"
"    TIOCLINUX-10        1 + const char *\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:852
msgid "// Duplicate ioctls"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:857
msgid ""
"This list does not include ioctls in the range B<SIOCDEVPRIVATE> and "
"B<SIOCPROTOPRIVATE>."
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:859
#, no-wrap
msgid "0x00000001\tFDSETPRM\tFIBMAP\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:860
#, no-wrap
msgid "0x00000002\tFDDEFPRM\tFIGETBSZ\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:861
#, no-wrap
msgid "0x00005382\tCDROMAUDIOBUFSIZ\tSCSI_IOCTL_GET_IDLUN\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:862
#, no-wrap
msgid "0x00005402\tSNDCTL_TMR_START\tTCSETS\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:863
#, no-wrap
msgid "0x00005403\tSNDCTL_TMR_STOP\tTCSETSW\n"
msgstr ""

#. type: tbl table
#: build/C/man2/ioctl_list.2:864
#, no-wrap
msgid "0x00005404\tSNDCTL_TMR_CONTINUE\tTCSETSF\n"
msgstr ""

#. type: Plain text
#: build/C/man2/ioctl_list.2:868
msgid "B<ioctl>(2)"
msgstr ""

#. type: TH
#: build/C/man2/ioperm.2:35
#, no-wrap
msgid "IOPERM"
msgstr ""

#. type: TH
#: build/C/man2/ioperm.2:35
#, no-wrap
msgid "2007-06-15"
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:38
msgid "ioperm - set port input/output permissions"
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:41
msgid "B<#include E<lt>unistd.hE<gt>> /* for libc5 */"
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:44
msgid "B<#include E<lt>sys/io.hE<gt>> /* for glibc */"
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:46
msgid ""
"B<int ioperm(unsigned long >I<from>B<, unsigned long >I<num>B<, int "
">I<turn_on>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:53
msgid ""
"B<ioperm>()  sets the port access permission bits for the calling process "
"for I<num> bytes starting from port address I<from> to the value "
"I<turn_on>.  If I<turn_on> is nonzero, the calling process must be "
"privileged (B<CAP_SYS_RAWIO>)."
msgstr ""

#.  FIXME is the following ("Only the first 0x3ff I/O ports can be
#.  specified in this manner") still true?  Looking at changes in
#.  include/asm-i386/processor.h between 2.4 and 2.6 suggests
#.  that the limit is different in 2.6.
#. type: Plain text
#: build/C/man2/ioperm.2:62
msgid ""
"Only the first 0x3ff I/O ports can be specified in this manner.  For more "
"ports, the B<iopl>(2)  system call must be used."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:69
msgid ""
"Permissions are not inherited by the child created by B<fork>(2).  "
"Permissions are preserved across B<execve>(2); this is useful for giving "
"port access permissions to unprivileged programs."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:73
msgid ""
"This call is mostly for the i386 architecture.  On many other architectures "
"it does not exist or will always return an error."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:85
msgid "Invalid values for I<from> or I<num>."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:88
msgid "(on PowerPC) This call is not supported."
msgstr ""

#.  Could not allocate I/O bitmap.
#. type: Plain text
#: build/C/man2/ioperm.2:92
msgid "Out of memory."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:95
msgid "The calling process has insufficient privilege."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:99
msgid ""
"B<ioperm>()  is Linux-specific and should not be used in programs intended "
"to be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:108
msgid ""
"Libc5 treats it as a system call and has a prototype in "
"I<E<lt>unistd.hE<gt>>.  Glibc1 does not have a prototype.  Glibc2 has a "
"prototype both in I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>.  "
"Avoid the latter, it is available on i386 only."
msgstr ""

#. type: Plain text
#: build/C/man2/ioperm.2:111
msgid "B<iopl>(2), B<capabilities>(7)"
msgstr ""

#. type: TH
#: build/C/man3/lockf.3:22
#, no-wrap
msgid "LOCKF"
msgstr ""

#. type: TH
#: build/C/man3/lockf.3:22
#, no-wrap
msgid "2011-09-11"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:25
msgid "lockf - apply, test or remove a POSIX lock on an open file"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:29
msgid "B<int lockf(int >I<fd>B<, int >I<cmd>B<, off_t >I<len>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:36
msgid "B<lockf>():"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:40
msgid ""
"_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
"_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:63
msgid ""
"Apply, test or remove a POSIX lock on a section of an open file.  The file "
"is specified by I<fd>, a file descriptor open for writing, the action by "
"I<cmd>, and the section consists of byte positions I<pos>..I<pos>+I<len>-1 "
"if I<len> is positive, and I<pos>-I<len>..I<pos>-1 if I<len> is negative, "
"where I<pos> is the current file position, and if I<len> is zero, the "
"section extends from the current file position to infinity, encompassing the "
"present and future end-of-file positions.  In all cases, the section may "
"extend past current end-of-file."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:78
msgid ""
"On Linux, B<lockf>()  is just an interface on top of B<fcntl>(2)  locking.  "
"Many other systems implement B<lockf>()  in this way, but note that "
"POSIX.1-2001 leaves the relationship between B<lockf>()  and B<fcntl>(2)  "
"locks unspecified.  A portable application should probably avoid mixing "
"calls to these interfaces."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:80
msgid "Valid operations are given below:"
msgstr ""

#. type: TP
#: build/C/man3/lockf.3:80
#, no-wrap
msgid "B<F_LOCK>"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:90
msgid ""
"Set an exclusive lock on the specified section of the file.  If (part of) "
"this section is already locked, the call blocks until the previous lock is "
"released.  If this section overlaps an earlier locked section, both are "
"merged.  File locks are released as soon as the process holding the locks "
"closes some file descriptor for the file.  A child process does not inherit "
"these locks."
msgstr ""

#. type: TP
#: build/C/man3/lockf.3:90
#, no-wrap
msgid "B<F_TLOCK>"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:96
msgid ""
"Same as B<F_LOCK> but the call never blocks and returns an error instead if "
"the file is already locked."
msgstr ""

#. type: TP
#: build/C/man3/lockf.3:96
#, no-wrap
msgid "B<F_ULOCK>"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:100
msgid ""
"Unlock the indicated section of the file.  This may cause a locked section "
"to be split into two locked sections."
msgstr ""

#. type: TP
#: build/C/man3/lockf.3:100
#, no-wrap
msgid "B<F_TEST>"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:110
msgid ""
"Test the lock: return 0 if the specified section is unlocked or locked by "
"this process; return -1, set I<errno> to B<EAGAIN> (B<EACCES> on some other "
"systems), if another process holds a lock."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:124
msgid ""
"The file is locked and B<F_TLOCK> or B<F_TEST> was specified, or the "
"operation is prohibited because the file has been memory-mapped by another "
"process."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:136
msgid ""
"I<fd> is not an open file descriptor; or I<cmd> is B<F_LOCK> or B<F_TLOCK> "
"and I<fd> is not a writable file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:141
msgid "The command was B<T_LOCK> and this lock operation would cause a deadlock."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:145
msgid "An invalid operation was specified in I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:148
msgid "Too many segment locks open, lock table is full."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:150
msgid "SVr4, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:153
msgid "B<fcntl>(2), B<flock>(2)"
msgstr ""

#. type: Plain text
#: build/C/man3/lockf.3:166
msgid ""
"There are also I<locks.txt> and I<mandatory-locking.txt> in the kernel "
"source directory I<Documentation/filesystems>.  (On older kernels, these "
"files are directly under the I<Documentation/> directory, and "
"I<mandatory-locking.txt> is called I<mandatory.txt>.)"
msgstr ""

#. type: TH
#: build/C/man2/mincore.2:34
#, no-wrap
msgid "MINCORE"
msgstr ""

#. type: TH
#: build/C/man2/mincore.2:34
#, no-wrap
msgid "2008-04-22"
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:37
msgid "mincore - determine whether pages are resident in memory"
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:41
msgid "B<#include E<lt>sys/mman.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:43
msgid ""
"B<int mincore(void *>I<addr>B<, size_t >I<length>B<, unsigned char "
"*>I<vec>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:51
msgid "B<mincore>(): _BSD_SOURCE || _SVID_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:62
msgid ""
"B<mincore>()  returns a vector that indicates whether pages of the calling "
"process's virtual memory are resident in core (RAM), and so will not cause a "
"disk access (page fault) if referenced.  The kernel returns residency "
"information about the pages starting at the address I<addr>, and continuing "
"for I<length> bytes."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:76
msgid ""
"The I<addr> argument must be a multiple of the system page size.  The "
"I<length> argument need not be a multiple of the page size, but since "
"residency information is returned for whole pages, I<length> is effectively "
"rounded up to the next multiple of the page size.  One may obtain the page "
"size (B<PAGE_SIZE>)  using I<sysconf(_SC_PAGESIZE)>."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:94
msgid ""
"The I<vec> argument must point to an array containing at least "
"I<(length+PAGE_SIZE-1) / PAGE_SIZE> bytes.  On return, the least significant "
"bit of each byte will be set if the corresponding page is currently resident "
"in memory, and be clear otherwise.  (The settings of the other bits in each "
"byte are undefined; these bits are reserved for possible later use.)  Of "
"course the information returned in I<vec> is only a snapshot: pages that are "
"not locked in memory can come and go at any moment, and the contents of "
"I<vec> may already be stale by the time this call returns."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:101
msgid ""
"On success, B<mincore>()  returns zero.  On error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:104
msgid "B<EAGAIN> kernel is temporarily out of resources."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:108
msgid "I<vec> points to an invalid address."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:112
msgid "I<addr> is not a multiple of the page size."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:124
msgid ""
"I<length> is greater than (I<TASK_SIZE> - I<addr>).  (This could occur if a "
"negative value is specified for I<length>, since that value will be "
"interpreted as a large unsigned integer.)  In Linux 2.6.11 and earlier, the "
"error B<EINVAL> was returned for this condition."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:132
msgid "I<addr> to I<addr> + I<length> contained unmapped memory."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:134
msgid "Available since Linux 2.3.99pre1 and glibc 2.2."
msgstr ""

#.  It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8,
#.  AIX 5.1, SunOS 4.1
#.  .SH HISTORY
#.  The
#.  .BR mincore ()
#.  function first appeared in 4.4BSD.
#. type: Plain text
#: build/C/man2/mincore.2:144
msgid ""
"B<mincore>()  is not specified in POSIX.1-2001, and it is not available on "
"all UNIX implementations."
msgstr ""

#.  Linux (up to now, 2.6.5),
#.  .B mincore
#.  does not return correct information for MAP_PRIVATE mappings:
#.  for a MAP_PRIVATE file mapping,
#.  .B mincore
#.  returns the residency of the file pages, rather than any
#.  modified process-private pages that have been copied on write;
#.  for a MAP_PRIVATE mapping of
#.  .IR /dev/zero ,
#.  .B mincore
#.  always reports pages as nonresident;
#.  and for a MAP_PRIVATE, MAP_ANONYMOUS mapping,
#.  .B mincore
#.  always fails with the error
#.  .BR ENOMEM .
#. type: Plain text
#: build/C/man2/mincore.2:166
msgid ""
"Before kernel 2.6.21, B<mincore>()  did not return correct information for "
"B<MAP_PRIVATE> mappings, or for nonlinear mappings (established using "
"B<remap_file_pages>(2))."
msgstr ""

#. type: Plain text
#: build/C/man2/mincore.2:169
msgid "B<mlock>(2), B<mmap>(2)"
msgstr ""

#. type: TH
#: build/C/man2/mkdir.2:9
#, no-wrap
msgid "MKDIR"
msgstr ""

#. type: TH
#: build/C/man2/mkdir.2:9
#, no-wrap
msgid "2010-06-26"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:12
msgid "mkdir - create a directory"
msgstr ""

#.  .B #include <unistd.h>
#. type: Plain text
#: build/C/man2/mkdir.2:17
#, no-wrap
msgid ""
"B<#include E<lt>sys/stat.hE<gt>>\n"
"B<#include E<lt>sys/types.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:19
#, no-wrap
msgid "B<int mkdir(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:24
msgid "B<mkdir>()  attempts to create a directory named I<pathname>."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:34
msgid ""
"The argument I<mode> specifies the permissions to use.  It is modified by "
"the process's I<umask> in the usual way: the permissions of the created "
"directory are (I<mode> & ~I<umask> & 0777).  Other mode bits of the created "
"directory depend on the operating system.  For Linux, see below."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:44
msgid ""
"The newly created directory will be owned by the effective user ID of the "
"process.  If the directory containing the file has the set-group-ID bit set, "
"or if the file system is mounted with BSD group semantics (I<mount -o "
"bsdgroups> or, synonymously I<mount -o grpid>), the new directory will "
"inherit the group ownership from its parent; otherwise it will be owned by "
"the effective group ID of the process."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:47
msgid ""
"If the parent directory has the set-group-ID bit set then so will the newly "
"created directory."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:52
msgid ""
"B<mkdir>()  returns zero on success, or -1 if an error occurred (in which "
"case, I<errno> is set appropriately)."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:61
msgid ""
"The parent directory does not allow write permission to the process, or one "
"of the directories in I<pathname> did not allow search permission.  (See "
"also B<path_resolution>(7).)"
msgstr ""

#. type: TP
#: build/C/man2/mkdir.2:61
#, no-wrap
msgid "B<EEXIST>"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:68
msgid ""
"I<pathname> already exists (not necessarily as a directory).  This includes "
"the case where I<pathname> is a symbolic link, dangling or not."
msgstr ""

#. type: TP
#: build/C/man2/mkdir.2:75
#, no-wrap
msgid "B<EMLINK>"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:79
msgid "The number of links to the parent directory would exceed B<LINK_MAX>."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:82
msgid "I<pathname> was too long."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:87
msgid ""
"A directory component in I<pathname> does not exist or is a dangling "
"symbolic link."
msgstr ""

#. type: TP
#: build/C/man2/mkdir.2:90 build/C/man2/mkdir.2:95
#, no-wrap
msgid "B<ENOSPC>"
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:95
msgid "The device containing I<pathname> has no room for the new directory."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:99
msgid ""
"The new directory cannot be created because the user's disk quota is "
"exhausted."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:109
msgid ""
"The file system containing I<pathname> does not support the creation of "
"directories."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:113
msgid "I<pathname> refers to a file on a read-only file system."
msgstr ""

#.  SVr4 documents additional EIO, EMULTIHOP
#. type: Plain text
#: build/C/man2/mkdir.2:116
msgid "SVr4, BSD, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:124
msgid ""
"Under Linux apart from the permission bits, only the B<S_ISVTX> mode bit is "
"honored.  That is, under Linux the created directory actually gets mode "
"(I<mode> & ~I<umask> & 01777).  See also B<stat>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:128
msgid ""
"There are many infelicities in the protocol underlying NFS.  Some of these "
"affect B<mkdir>()."
msgstr ""

#. type: Plain text
#: build/C/man2/mkdir.2:140
msgid ""
"B<mkdir>(1), B<chmod>(2), B<chown>(2), B<mkdirat>(2), B<mknod>(2), "
"B<mount>(2), B<rmdir>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
"B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man2/nice.2:31
#, no-wrap
msgid "NICE"
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:34
msgid "nice - change process priority"
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:38
msgid "B<int nice(int >I<inc>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:46
msgid "B<nice>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:56
msgid ""
"B<nice>()  adds I<inc> to the nice value for the calling process.  (A higher "
"nice value means a low priority.)  Only the super\\%user may specify a "
"negative increment, or priority increase.  The range for nice values is "
"described in B<getpriority>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:61
msgid ""
"On success, the new nice value is returned (but see NOTES below).  On error, "
"-1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:75
msgid ""
"The calling process attempted to increase its priority by supplying a "
"negative I<inc> but has insufficient privileges.  Under Linux the "
"B<CAP_SYS_NICE> capability is required.  (But see the discussion of the "
"B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)"
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:82
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001.  However, the Linux and (g)libc (earlier than "
"glibc 2.2.4) return value is nonstandard, see below.  SVr4 documents an "
"additional B<EINVAL> error code."
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:92
msgid ""
"SUSv2 and POSIX.1-2001 specify that B<nice>()  should return the new nice "
"value.  However, the Linux syscall and the B<nice>()  library function "
"provided in older versions of (g)libc (earlier than glibc 2.2.4) return 0 on "
"success.  The new nice value can be found using B<getpriority>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:105
msgid ""
"Since glibc 2.2.4, B<nice>()  is implemented as a library function that "
"calls B<getpriority>(2)  to obtain the new nice value to be returned to the "
"caller.  With this implementation, a successful call can legitimately return "
"-1.  To reliably detect an error, set I<errno> to 0 before the call, and "
"check its value when B<nice>()  returns -1."
msgstr ""

#. type: Plain text
#: build/C/man2/nice.2:112
msgid ""
"B<nice>(1), B<renice>(1), B<fork>(2), B<getpriority>(2), B<setpriority>(2), "
"B<capabilities>(7)"
msgstr ""

#. type: TH
#: build/C/man2/pread.2:23
#, no-wrap
msgid "PREAD"
msgstr ""

#. type: TH
#: build/C/man2/pread.2:23
#, no-wrap
msgid "2010-11-21"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:26
msgid "pread, pwrite - read from or write to a file descriptor at a given offset"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:31
msgid ""
"B<ssize_t pread(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<, off_t "
">I<offset>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:34
msgid ""
"B<ssize_t pwrite(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<, "
"off_t >I<offset>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:44
msgid "B<pread>(), B<pwrite>():"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:46
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500"
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:62
msgid ""
"B<pread>()  reads up to I<count> bytes from file descriptor I<fd> at offset "
"I<offset> (from the start of the file) into the buffer starting at I<buf>.  "
"The file offset is not changed."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:73
msgid ""
"B<pwrite>()  writes up to I<count> bytes from the buffer starting at I<buf> "
"to the file descriptor I<fd> at offset I<offset>.  The file offset is not "
"changed."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:77
msgid "The file referenced by I<fd> must be capable of seeking."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:87
msgid ""
"On success, the number of bytes read or written is returned (zero indicates "
"that nothing was written, in the case of B<pwrite>(), or end of file, in the "
"case of B<pread>()), or -1 on error, in which case I<errno> is set to "
"indicate the error."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:102
msgid ""
"B<pread>()  can fail and set I<errno> to any error specified for B<read>(2)  "
"or B<lseek>(2).  B<pwrite>()  can fail and set I<errno> to any error "
"specified for B<write>(2)  or B<lseek>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:113
msgid ""
"The B<pread>()  and B<pwrite>()  system calls were added to Linux in version "
"2.1.60; the entries in the i386 system call table were added in 2.1.69.  C "
"library support (including emulation using B<lseek>(2)  on older kernels "
"without the system calls) was added in glibc 2.1."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:131
msgid ""
"On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>()  "
"became B<pread64>(), and B<pwrite>()  became B<pwrite64>().  The system call "
"numbers remained the same.  The glibc B<pread>()  and B<pwrite>()  wrapper "
"functions transparently deal with the change."
msgstr ""

#. type: Plain text
#: build/C/man2/pread.2:136
msgid "B<lseek>(2), B<read>(2), B<readv>(2), B<write>(2)"
msgstr ""

#. type: TH
#: build/C/man2/set_thread_area.2:7
#, no-wrap
msgid "SET_THREAD_AREA"
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:10
msgid "set_thread_area - Set a Thread Local Storage (TLS) area"
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:16
msgid "B<int set_thread_area(struct user_desc *>I<u_info>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:29
msgid ""
"B<set_thread_area>()  sets an entry in the current thread's Thread Local "
"Storage (TLS) array.  The TLS array entry set by B<set_thread_area>()  "
"corresponds to the value of I<u_info-E<gt>entry_number> passed in by the "
"user.  If this value is in bounds, B<set_thread_area>()  copies the TLS "
"descriptor pointed to by I<u_info> into the thread's TLS array."
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:40
msgid ""
"When B<set_thread_area>()  is passed an I<entry_number> of -1, it uses a "
"free TLS entry.  If B<set_thread_area>()  finds a free TLS entry, the value "
"of I<u_info-E<gt>entry_number> is set upon return to show which entry was "
"changed."
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:45
msgid ""
"B<set_thread_area>()  returns 0 on success, and -1 on failure, with I<errno> "
"set appropriately."
msgstr ""

#. type: TP
#: build/C/man2/set_thread_area.2:52
#, no-wrap
msgid "B<ESRCH>"
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:55
msgid "A free TLS entry could not be located."
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:59
msgid "A version of B<set_thread_area>()  first appeared in Linux 2.5.29."
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:63
msgid ""
"B<set_thread_area>()  is Linux-specific and should not be used in programs "
"that are intended to be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/set_thread_area.2:69
msgid "B<get_thread_area>(2)"
msgstr ""

#. type: TH
#: build/C/man2/setup.2:34
#, no-wrap
msgid "SETUP"
msgstr ""

#. type: TH
#: build/C/man2/setup.2:34 build/C/man2/uname.2:25
#, no-wrap
msgid "2008-12-03"
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:37
msgid "setup - setup devices and file systems, mount root file system"
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:41
msgid "B<int setup(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:47
msgid ""
"B<setup>()  is called once from within I<linux/init/main.c>.  It calls "
"initialization functions for devices and file systems configured into the "
"kernel and then mounts the root file system."
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:53
msgid ""
"No user process may call B<setup>().  Any user process, even a process with "
"superuser permission, will receive B<EPERM>."
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:56
msgid "B<setup>()  always returns -1 for a user process."
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:62
msgid "Since Linux 2.1.121, no such function exists anymore."
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:65
msgid ""
"This function is Linux-specific, and should not be used in programs intended "
"to be portable, or indeed in any programs at all."
msgstr ""

#. type: Plain text
#: build/C/man2/setup.2:72
msgid ""
"The calling sequence varied: at some times I<setup ()> has had a single "
"argument I<void *BIOS> and at other times a single argument I<int magic>."
msgstr ""

#. type: TH
#: build/C/man5/shells.5:27
#, no-wrap
msgid "SHELLS"
msgstr ""

#. type: TH
#: build/C/man5/shells.5:27
#, no-wrap
msgid "1993-11-21"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:30
msgid "shells - pathnames of valid login shells"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:36
msgid ""
"I</etc/shells> is a text file which contains the full pathnames of valid "
"login shells.  This file is consulted by B<chsh>(1)  and available to be "
"queried by other programs."
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:41
msgid ""
"Be aware that there are programs which consult this file to find out if a "
"user is a normal user.  E.g.: ftp daemons traditionally disallow access to "
"users with shells not included in this file."
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:43
msgid "I</etc/shells>"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:46
msgid "I</etc/shells> may contain the following paths:"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:49
msgid "I</bin/sh>"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:51
msgid "I</bin/csh>"
msgstr ""

#. type: Plain text
#: build/C/man5/shells.5:55
msgid "B<chsh>(1), B<getusershell>(3)"
msgstr ""

#. type: TH
#: build/C/man3/sleep.3:24
#, no-wrap
msgid "SLEEP"
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:27
msgid "sleep - Sleep for the specified number of seconds"
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:32
#, no-wrap
msgid "B<unsigned int sleep(unsigned int >I<seconds>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:38
msgid ""
"B<sleep>()  makes the calling thread sleep until I<seconds> seconds have "
"elapsed or a signal arrives which is not ignored."
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:42
msgid ""
"Zero if the requested time has elapsed, or the number of seconds left to "
"sleep, if the call was interrupted by a signal handler."
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:53
msgid ""
"B<sleep>()  may be implemented using B<SIGALRM>; mixing calls to B<alarm>(2)  "
"and B<sleep>()  is a bad idea."
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:59
msgid ""
"Using B<longjmp>(3)  from a signal handler or modifying the handling of "
"B<SIGALRM> while sleeping will cause undefined results."
msgstr ""

#. type: Plain text
#: build/C/man3/sleep.3:64
msgid "B<alarm>(2), B<nanosleep>(2), B<signal>(2), B<signal>(7)"
msgstr ""

#. type: TH
#: build/C/man3/swab.3:29
#, no-wrap
msgid "SWAB"
msgstr ""

#. type: TH
#: build/C/man3/swab.3:29
#, no-wrap
msgid "2001-12-15"
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:32
msgid "swab - swap adjacent bytes"
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:36
#, no-wrap
msgid ""
"B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */\n"
"B<#include E<lt>unistd.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:38
#, no-wrap
msgid "B<void swab(const void *>I<from>B<, void *>I<to>B<, ssize_t >I<n>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:47
msgid ""
"The B<swab>()  function copies I<n> bytes from the array pointed to by "
"I<from> to the array pointed to by I<to>, exchanging adjacent even and odd "
"bytes.  This function is used to exchange data between machines that have "
"different low/high byte ordering."
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:52
msgid ""
"This function does nothing when I<n> is negative.  When I<n> is positive and "
"odd, it handles I<n-1> bytes as above, and does something unspecified with "
"the last byte.  (In other words, I<n> should be even.)"
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:56
msgid "The B<swab>()  function returns no value."
msgstr ""

#. type: Plain text
#: build/C/man3/swab.3:60
msgid "B<bstring>(3)"
msgstr ""

#. type: TH
#: build/C/man2/swapon.2:37
#, no-wrap
msgid "SWAPON"
msgstr ""

#. type: TH
#: build/C/man2/swapon.2:37
#, no-wrap
msgid "2010-11-15"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:40
msgid "swapon, swapoff - start/stop swapping to file/device"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:44
msgid "B<#include E<lt>asm/page.hE<gt> /* to find PAGE_SIZE */>"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:46
msgid "B<#include E<lt>sys/swap.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:48
msgid "B<int swapon(const char *>I<path>B<, int >I<swapflags>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:50
msgid "B<int swapoff(const char *>I<path>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:57
msgid ""
"B<swapon>()  sets the swap area to the file or block device specified by "
"I<path>.  B<swapoff>()  stops swapping to the file or block device specified "
"by I<path>."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:67
msgid ""
"If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>()  "
"I<swapflags> argument, the new swap area will have a higher priority than "
"default.  The priority is encoded within I<swapflags> as:"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:70
msgid "I<(prio E<lt>E<lt> SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK>"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:82
msgid ""
"If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>()  "
"I<swapflags> argument, freed swap pages will be discarded before they are "
"reused, if the swap device supports the discard or trim operation.  (This "
"may improve performance on some Solid State Devices, but often it does not.)  "
"See also NOTES."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:86
msgid ""
"These functions may only be used by a privileged process (one having the "
"B<CAP_SYS_ADMIN> capability)."
msgstr ""

#. type: SS
#: build/C/man2/swapon.2:86
#, no-wrap
msgid "Priority"
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:91
msgid ""
"Each swap area has a priority, either high or low.  The default priority is "
"low.  Within the low-priority areas, newer areas are even lower priority "
"than older areas."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:97
msgid ""
"All priorities set with I<swapflags> are high-priority, higher than "
"default.  They may have any nonnegative value chosen by the caller.  Higher "
"numbers mean higher priority."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:105
msgid ""
"Swap pages are allocated from areas in priority order, highest priority "
"first.  For areas with different priorities, a higher-priority area is "
"exhausted before using a lower-priority area.  If two or more areas have the "
"same priority, and it is the highest priority available, pages are allocated "
"on a round-robin basis between them."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:108
msgid ""
"As of Linux 1.3.6, the kernel usually follows these rules, but there are "
"exceptions."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:121
msgid ""
"(for B<swapon>())  The specified I<path> is already being used as a swap "
"area."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:133
msgid ""
"The file I<path> exists, but refers neither to a regular file nor to a block "
"device; or, for B<swapon>(), the indicated path does not contain a valid "
"swap signature or resides on an in-memory file system like tmpfs; or, for "
"B<swapoff>(), I<path> is not currently a swap area."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:141
msgid "The file I<path> does not exist."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:144
msgid "The system has insufficient memory to start swapping."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:151
msgid ""
"The caller does not have the B<CAP_SYS_ADMIN> capability.  Alternatively, "
"the maximum number of swap files are already in use; see NOTES below."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:157
msgid ""
"These functions are Linux-specific and should not be used in programs "
"intended to be portable.  The second I<swapflags> argument was introduced in "
"Linux 1.3.2."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:160
msgid "The partition or path must be prepared with B<mkswap>(8)."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:180
msgid ""
"There is an upper limit on the number of swap files that may be used, "
"defined by the kernel constant B<MAX_SWAPFILES>.  Before kernel 2.4.10, "
"B<MAX_SWAPFILES> has the value 8; since kernel 2.4.10, it has the value 32.  "
"Since kernel 2.6.18, the limit is decreased by 2 (thus: 30)  if the kernel "
"is built with the B<CONFIG_MIGRATION> option (which reserves two swap table "
"entries for the page migration features of B<mbind>(2)  and "
"B<migrate_pages>(2)).  Since kernel 2.6.32, the limit is further decreased "
"by 1 if the kernel is built with the B<CONFIG_MEMORY_FAILURE> option."
msgstr ""

#.  To be precise: 2.6.35.5
#. type: Plain text
#: build/C/man2/swapon.2:191
msgid ""
"Discard of swap pages was introduced in kernel 2.6.29, then made conditional "
"on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the "
"entire swap area when B<swapon>()  is called, even if that flag bit is not "
"set."
msgstr ""

#. type: Plain text
#: build/C/man2/swapon.2:195
msgid "B<mkswap>(8), B<swapoff>(8), B<swapon>(8)"
msgstr ""

#. type: TH
#: build/C/man2/syscall.2:38
#, no-wrap
msgid "SYSCALL"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:41
msgid "syscall - indirect system call"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:46
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
"B<#include E<lt>unistd.hE<gt>>\n"
"B<#include E<lt>sys/syscall.hE<gt>   >/* For SYS_xxx definitions */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:48
#, no-wrap
msgid "B<int syscall(int >I<number>B<, ...);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:57
msgid ""
"B<syscall>()  performs the system call whose assembly language interface has "
"the specified I<number> with the specified arguments.  Symbolic constants "
"for system calls can be found in the header file I<E<lt>sys/syscall.hE<gt>>."
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:63
msgid ""
"The return value is defined by the system call being invoked.  In general, a "
"0 return value indicates success.  A -1 return value indicates an error, and "
"an error code is stored in I<errno>."
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:67
msgid "B<syscall>()  first appeared in 4BSD."
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:73
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>sys/syscall.hE<gt>\n"
"#include E<lt>sys/types.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:78
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    pid_t tid;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:81
#, no-wrap
msgid ""
"    tid = syscall(SYS_gettid);\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscall.2:86
msgid "B<_syscall>(2), B<intro>(2), B<syscalls>(2)"
msgstr ""

#. type: TH
#: build/C/man2/syscalls.2:29
#, no-wrap
msgid "SYSCALLS"
msgstr ""

#. type: TH
#: build/C/man2/syscalls.2:29
#, no-wrap
msgid "2012-03-23"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:32
msgid "syscalls - Linux system calls"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:34
msgid "Linux system calls."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:37
msgid ""
"The system call is the fundamental interface between an application and the "
"Linux kernel."
msgstr ""

#. type: SS
#: build/C/man2/syscalls.2:37
#, no-wrap
msgid "System calls and library wrapper functions"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:47
msgid ""
"System calls are generally not invoked directly, but rather via wrapper "
"functions in glibc (or perhaps some other library).  For details of direct "
"invocation of a system call, see B<intro>(2).  Often, but not always, the "
"name of the wrapper function is the same as the name of the system call that "
"it invokes.  For example, glibc contains a function B<truncate>()  which "
"invokes the underlying \"truncate\" system call."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:65
msgid ""
"Often the glibc wrapper function is quite thin, doing little work other than "
"copying arguments to the right registers before invoking the system call, "
"and then setting I<errno> appropriately after the system call has returned.  "
"(These are the same steps that are performed by B<syscall>(2), which can be "
"used to invoke system calls for which no wrapper function is provided.)  "
"Note: system calls indicate a failure by returning a negative error number "
"to the caller; when this happens, the wrapper function negates the returned "
"error number (to make it positive), copies it to I<errno>, and returns -1 to "
"the caller of the wrapper."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:77
msgid ""
"Sometimes, however, the wrapper function does some extra work before "
"invoking the system call.  For example, nowadays there are (for reasons "
"described below) two related system calls, B<truncate>(2)  and "
"B<truncate64>(2), and the glibc B<truncate>()  wrapper function checks which "
"of those system calls are provided by the kernel and determines which should "
"be employed."
msgstr ""

#. type: SS
#: build/C/man2/syscalls.2:77
#, no-wrap
msgid "System call list"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:85
msgid ""
"Below is a list of those system calls that are common to most platforms.  In "
"the list, the I<Kernel> column indicates the kernel version for those system "
"calls that were new in Linux 2.2, or have appeared since that kernel "
"version.  Note the following points:"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:88
msgid ""
"Where no kernel version is indicated, the system call appeared in kernel 1.0 "
"or earlier."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:94
msgid ""
"Where a system call is marked \"1.2\" this means the system call probably "
"appeared in a 1.1.x kernel version, and first appeared in a stable kernel "
"with 1.2.  (Development of the 1.2 kernel was initiated from a branch of "
"kernel 1.0.6 via the 1.1.x unstable kernel series.)"
msgstr ""

#.  Was kernel 2.0 started from a branch of 1.2.10?
#.  At least from the timestamps of the tarballs of
#.  of 1.2.10 and 1.3.0, that's how it looks, but in
#.  fact the diff doesn't seem very clear, the
#.  1.3.0 .tar.bz is much bigger (2.0 MB) than the
#.  1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
#.  timestamps of some files in 1.3.0 seem to be older
#.  than those in 1.2.10.  All of this suggests
#.  that there might not have been a clean branch point.
#. type: Plain text
#: build/C/man2/syscalls.2:110
msgid ""
"Where a system call is marked \"2.0\" this means the system call probably "
"appeared in a 1.3.x kernel version, and first appeared in a stable kernel "
"with 2.0.  (Development of the 2.0 kernel was initiated from a branch of "
"kernel 1.2.x, somewhere around 1.2.10, via the 1.3.x unstable kernel "
"series.)"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:116
msgid ""
"Where a system call is marked \"2.2\" this means the system call probably "
"appeared in a 2.1.x kernel version, and first appeared in a stable kernel "
"with 2.2.0.  (Development of the 2.2 kernel was initiated from a branch of "
"kernel 2.0.21 via the 2.1.x unstable kernel series.)"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:122
msgid ""
"Where a system call is marked \"2.4\" this means the system call probably "
"appeared in a 2.3.x kernel version, and first appeared in a stable kernel "
"with 2.4.0.  (Development of the 2.4 kernel was initiated from a branch of "
"kernel 2.2.8 via the 2.3.x unstable kernel series.)"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:128
msgid ""
"Where a system call is marked \"2.6\" this means the system call probably "
"appeared in a 2.5.x kernel version, and first appeared in a stable kernel "
"with 2.6.0.  (Development of kernel 2.6 was initiated from a branch of "
"kernel 2.4.15 via the 2.5.x unstable kernel series.)"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:135
msgid ""
"Starting with kernel 2.6.0, the development model changed, and new system "
"calls may appear in each 2.6.x release.  In this case, the exact version "
"number where the system call appeared is shown.  This convention continues "
"with the 3.x kernel series, which followed on from kernel 2.6.39."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:143
msgid ""
"In some cases, a system call was added to a stable kernel series after it "
"branched from the previous stable kernel series, and then backported into "
"the earlier stable kernel series.  For example some system calls that "
"appeared in 2.6.x were also backported into a 2.4.x release after 2.4.15.  "
"When this is so, the version where the system call appeared in both of the "
"major kernel series is listed."
msgstr ""

#
#.  Looking at scripts/checksyscalls.sh in the kernel source is
#.  instructive about i386 specifics.
#. type: Plain text
#: build/C/man2/syscalls.2:150
msgid ""
"The list of system calls that are available as at kernel 3.1 (or in a few "
"cases only on older kernels) is as follows:"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:154
#, no-wrap
msgid "B<System call>\tB<Kernel>\tB<Notes>\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:156
#, no-wrap
msgid "B<_llseek>(2)\t1.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:157
#, no-wrap
msgid "B<_newselect>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:158
#, no-wrap
msgid "B<_sysctl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:159
#, no-wrap
msgid "B<accept>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:160
#, no-wrap
msgid "B<accept4>(2)\t2.6.28\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:161
#, no-wrap
msgid "B<access>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:162
#, no-wrap
msgid "B<acct>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:163
#, no-wrap
msgid "B<add_key>(2)\t2.6.11\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:164
#, no-wrap
msgid "B<adjtimex>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:165
#, no-wrap
msgid "B<alarm>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:166
#, no-wrap
msgid "B<alloc_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:167
#, no-wrap
msgid "B<bdflush>(2)\t\tDeprecated (does nothing)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:168
#, no-wrap
msgid "\t\tsince 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:169
#, no-wrap
msgid "B<bind>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:170
#, no-wrap
msgid "B<brk>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:171
#, no-wrap
msgid "B<cacheflush>(2)\t1.2\tNot on i386\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:172
#, no-wrap
msgid "B<capget>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:173
#, no-wrap
msgid "B<capset>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:174
#, no-wrap
msgid "B<chdir>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:175
#, no-wrap
msgid "B<chmod>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:176
#, no-wrap
msgid "B<chown>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:177
#, no-wrap
msgid "B<chown32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:178
#, no-wrap
msgid "B<chroot>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:179
#, no-wrap
msgid "B<clock_adjtime>(2)\t2.6.39\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:180
#, no-wrap
msgid "B<clock_getres>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:181
#, no-wrap
msgid "B<clock_gettime>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:182
#, no-wrap
msgid "B<clock_nanosleep>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:183
#, no-wrap
msgid "B<clock_settime>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:184
#, no-wrap
msgid "B<clone>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:185
#, no-wrap
msgid "B<close>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:186
#, no-wrap
msgid "B<connect>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:187
#, no-wrap
msgid "B<creat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:188
#, no-wrap
msgid "B<create_module>(2)\tRemoved in 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:189
#, no-wrap
msgid "B<delete_module>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:190
#, no-wrap
msgid "B<dup>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:191
#, no-wrap
msgid "B<dup2>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:192
#, no-wrap
msgid "B<dup3>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:193
#, no-wrap
msgid "B<epoll_create>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:194
#, no-wrap
msgid "B<epoll_create1>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:195
#, no-wrap
msgid "B<epoll_ctl>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:196
#, no-wrap
msgid "B<epoll_pwait>(2)\t2.6.19\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:197
#, no-wrap
msgid "B<epoll_wait>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:198
#, no-wrap
msgid "B<eventfd>(2)\t2.6.22\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:199
#, no-wrap
msgid "B<eventfd2>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:200
#, no-wrap
msgid "B<execve>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:201
#, no-wrap
msgid "B<exit>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:202
#, no-wrap
msgid "B<exit_group>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:203
#, no-wrap
msgid "B<faccessat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:204
#, no-wrap
msgid "B<fadvise64>(2)\t2.6\n"
msgstr ""

#.  Implements \fBposix_fadvise\fP(2)
#. type: tbl table
#: build/C/man2/syscalls.2:206
#, no-wrap
msgid "B<fadvise64_64>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:207
#, no-wrap
msgid "B<fallocate>(2)\t2.6.23\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:208
#, no-wrap
msgid "B<fanotify_init>(2)\t2.6.37\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:209
#, no-wrap
msgid "B<fanotify_mark>(2)\t2.6.37\n"
msgstr ""

#.  The fanotify calls were added in Linux 2.6.36,
#.  but disabled while the API was finalized.
#. type: tbl table
#: build/C/man2/syscalls.2:212
#, no-wrap
msgid "B<fchdir>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:213
#, no-wrap
msgid "B<fchmod>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:214
#, no-wrap
msgid "B<fchmodat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:215
#, no-wrap
msgid "B<fchown>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:216
#, no-wrap
msgid "B<fchown32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:217
#, no-wrap
msgid "B<fchownat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:218
#, no-wrap
msgid "B<fcntl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:219
#, no-wrap
msgid "B<fcntl64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:220
#, no-wrap
msgid "B<fdatasync>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:221
#, no-wrap
msgid "B<fgetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:222
#, no-wrap
msgid "B<flistxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:223
#, no-wrap
msgid "B<flock>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:224
#, no-wrap
msgid "B<fork>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:225
#, no-wrap
msgid "B<free_hugepages>(2)\t2.5.36\tRemoved in 2.5.44\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:226
#, no-wrap
msgid "B<fremovexattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:227
#, no-wrap
msgid "B<fsetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:228
#, no-wrap
msgid "B<fstat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:229
#, no-wrap
msgid "B<fstat64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:230
#, no-wrap
msgid "B<fstatat64>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:231
#, no-wrap
msgid "B<fstatfs>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:232
#, no-wrap
msgid "B<fstatfs64>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:233
#, no-wrap
msgid "B<fsync>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:234
#, no-wrap
msgid "B<ftruncate>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:235
#, no-wrap
msgid "B<ftruncate64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:236
#, no-wrap
msgid "B<futex>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:237
#, no-wrap
msgid "B<futimesat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:238
#, no-wrap
msgid "B<get_kernel_syms>(2)\tRemoved in 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:239
#, no-wrap
msgid "B<get_mempolicy>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:240
#, no-wrap
msgid "B<get_robust_list>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:241
#, no-wrap
msgid "B<get_thread_area>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:242
#, no-wrap
msgid "B<getcpu>(2)\t2.6.19\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:243
#, no-wrap
msgid "B<getcwd>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:244
#, no-wrap
msgid "B<getdents>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:245
#, no-wrap
msgid "B<getdents64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:246
#, no-wrap
msgid "B<getegid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:247
#, no-wrap
msgid "B<getegid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:248
#, no-wrap
msgid "B<geteuid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:249
#, no-wrap
msgid "B<geteuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:250
#, no-wrap
msgid "B<getgid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:251
#, no-wrap
msgid "B<getgid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:252
#, no-wrap
msgid "B<getgroups>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:253
#, no-wrap
msgid "B<getgroups32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:254
#, no-wrap
msgid "B<getitimer>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:255
#, no-wrap
msgid "B<getpeername>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:256
#, no-wrap
msgid "B<getpagesize>(2)\t2.0\tNot on i386\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:257
#, no-wrap
msgid "B<getpgid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:258
#, no-wrap
msgid "B<getpgrp>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:259
#, no-wrap
msgid "B<getpid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:260
#, no-wrap
msgid "B<getppid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:261
#, no-wrap
msgid "B<getpriority>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:262
#, no-wrap
msgid "B<getresgid>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:263
#, no-wrap
msgid "B<getresgid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:264
#, no-wrap
msgid "B<getresuid>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:265
#, no-wrap
msgid "B<getresuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:266
#, no-wrap
msgid "B<getrlimit>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:267
#, no-wrap
msgid "B<getrusage>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:268
#, no-wrap
msgid "B<getsid>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:269
#, no-wrap
msgid "B<getsockname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:270
#, no-wrap
msgid "B<getsockopt>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:271
#, no-wrap
msgid "B<gettid>(2)\t2.4.11\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:272
#, no-wrap
msgid "B<gettimeofday>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:273
#, no-wrap
msgid "B<getuid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:274
#, no-wrap
msgid "B<getuid32>(2)\t2.4\n"
msgstr ""

#.  \fBgetunwind\fP(2)	2.4.8	ia64; DEPRECATED
#. type: tbl table
#: build/C/man2/syscalls.2:276
#, no-wrap
msgid "B<getxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:277
#, no-wrap
msgid "B<init_module>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:278
#, no-wrap
msgid "B<inotify_add_watch>(2)\t2.6.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:279
#, no-wrap
msgid "B<inotify_init>(2)\t2.6.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:280
#, no-wrap
msgid "B<inotify_init1>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:281
#, no-wrap
msgid "B<inotify_rm_watch>(2)\t2.6.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:282
#, no-wrap
msgid "B<io_cancel>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:283
#, no-wrap
msgid "B<io_destroy>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:284
#, no-wrap
msgid "B<io_getevents>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:285
#, no-wrap
msgid "B<io_setup>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:286
#, no-wrap
msgid "B<io_submit>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:287
#, no-wrap
msgid "B<ioctl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:288
#, no-wrap
msgid "B<ioperm>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:289
#, no-wrap
msgid "B<iopl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:290
#, no-wrap
msgid "B<ioprio_get>(2)\t2.6.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:291
#, no-wrap
msgid "B<ioprio_set>(2)\t2.6.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:292
#, no-wrap
msgid "B<ipc>(2)\n"
msgstr ""

#.  Implements System V IPC calls
#. type: tbl table
#: build/C/man2/syscalls.2:294
#, no-wrap
msgid "B<kexec_load>(2)\t2.6.13\n"
msgstr ""

#.  The entry in the syscall table was reserved starting in 2.6.7
#.  Was named sys_kexec_load() from 2.6.7 to 2.6.16
#. type: tbl table
#: build/C/man2/syscalls.2:297
#, no-wrap
msgid "B<keyctl>(2)\t2.6.11\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:298
#, no-wrap
msgid "B<kill>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:299
#, no-wrap
msgid "B<lchown>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:300
#, no-wrap
msgid "B<lchown32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:301
#, no-wrap
msgid "B<lgetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:302
#, no-wrap
msgid "B<link>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:303
#, no-wrap
msgid "B<linkat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:304
#, no-wrap
msgid "B<listen>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:305
#, no-wrap
msgid "B<listxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:306
#, no-wrap
msgid "B<llistxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:307
#, no-wrap
msgid "B<lookup_dcookie>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:308
#, no-wrap
msgid "B<lremovexattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:309
#, no-wrap
msgid "B<lseek>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:310
#, no-wrap
msgid "B<lsetxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:311
#, no-wrap
msgid "B<lstat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:312
#, no-wrap
msgid "B<lstat64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:313
#, no-wrap
msgid "B<madvise>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:314
#, no-wrap
msgid "B<madvise1>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:315
#, no-wrap
msgid "B<mbind>(2)\t2.6.6\n"
msgstr ""

#.  \fBmemory_ordering\fP(2)	???	Sparc64
#. type: tbl table
#: build/C/man2/syscalls.2:317
#, no-wrap
msgid "B<migrate_pages>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:318
#, no-wrap
msgid "B<mincore>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:319
#, no-wrap
msgid "B<mkdir>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:320
#, no-wrap
msgid "B<mkdirat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:321
#, no-wrap
msgid "B<mknod>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:322
#, no-wrap
msgid "B<mknodat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:323
#, no-wrap
msgid "B<mlock>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:324
#, no-wrap
msgid "B<mlockall>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:325
#, no-wrap
msgid "B<mmap>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:326
#, no-wrap
msgid "B<mmap2>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:327
#, no-wrap
msgid "B<modify_ldt>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:328
#, no-wrap
msgid "B<mount>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:329
#, no-wrap
msgid "B<move_pages>(2)\t2.6.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:330
#, no-wrap
msgid "B<mprotect>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:331
#, no-wrap
msgid "B<mq_getsetattr>(2)\t2.6.6\n"
msgstr ""

#.  Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
#. type: tbl table
#: build/C/man2/syscalls.2:333
#, no-wrap
msgid "B<mq_notify>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:334
#, no-wrap
msgid "B<mq_open>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:335
#, no-wrap
msgid "B<mq_timedreceive>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:336
#, no-wrap
msgid "B<mq_timedsend>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:337
#, no-wrap
msgid "B<mq_unlink>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:338
#, no-wrap
msgid "B<mremap>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:339
#, no-wrap
msgid "B<msgctl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:340
#, no-wrap
msgid "B<msgget>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:341
#, no-wrap
msgid "B<msgrcv>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:342
#, no-wrap
msgid "B<msgsnd>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:343
#, no-wrap
msgid "B<msync>(2)\t2.0\n"
msgstr ""

#.  \fBmultiplexer\fP(2)	??	__NR_multiplexer reserved on
#. 		PowerPC, but unimplemented?
#. type: tbl table
#: build/C/man2/syscalls.2:346
#, no-wrap
msgid "B<munlock>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:347
#, no-wrap
msgid "B<munlockall>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:348
#, no-wrap
msgid "B<munmap>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:349
#, no-wrap
msgid "B<name_to_handle_at>(2)\t2.6.39\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:350
#, no-wrap
msgid "B<nanosleep>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:351
#, no-wrap
msgid "B<nfsservctl>(2)\t2.2\tRemoved in 3.1\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:352
#, no-wrap
msgid "B<nice>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:353
#, no-wrap
msgid "B<oldfstat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:354
#, no-wrap
msgid "B<oldlstat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:355
#, no-wrap
msgid "B<oldolduname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:356
#, no-wrap
msgid "B<oldstat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:357
#, no-wrap
msgid "B<olduname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:358
#, no-wrap
msgid "B<open>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:359
#, no-wrap
msgid "B<open_by_handle_at>(2)\t2.6.39\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:360
#, no-wrap
msgid "B<openat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:361
#, no-wrap
msgid "B<pause>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:362
#, no-wrap
msgid "B<pciconfig_iobase>(2)\t2.2.15; 2.4\tNot on i386\n"
msgstr ""

#.  Alpha, PowerPC, ARM; not i386
#. type: tbl table
#: build/C/man2/syscalls.2:364
#, no-wrap
msgid "B<pciconfig_read>(2)\t2.0.26; 2.2\tNot on i386\n"
msgstr ""

#.  , PowerPC, ARM; not i386
#. type: tbl table
#: build/C/man2/syscalls.2:366
#, no-wrap
msgid "B<pciconfig_write>(2)\t2.0.26; 2.2\tNot on i386\n"
msgstr ""

#.  , PowerPC, ARM; not i386
#. type: tbl table
#: build/C/man2/syscalls.2:368
#, no-wrap
msgid "B<perf_event_open>(2)\t2.6.31\tWas called perf_counter_open()\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:369
#, no-wrap
msgid "\t\tin 2.6.31; renamed in 2.6.32\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:370
#, no-wrap
msgid "B<personality>(2)\t1.2\n"
msgstr ""

#.  \fBperfctr\fP(2)	???	Sparc32, Sparc64
#.  \fBperfmonctl\fP(2)	???	ia64
#. type: tbl table
#: build/C/man2/syscalls.2:373
#, no-wrap
msgid "B<pipe>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:374
#, no-wrap
msgid "B<pipe2>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:375
#, no-wrap
msgid "B<pivot_root>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:376
#, no-wrap
msgid "B<poll>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:377
#, no-wrap
msgid "B<ppoll>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:378
#, no-wrap
msgid "B<prctl>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:379
#, no-wrap
msgid "B<pread64>(2)\t\tAdded as \"pread\" in 2.2;\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:380
#, no-wrap
msgid "\t\trenamed \"pread64\" in 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:381
#, no-wrap
msgid "B<preadv>(2)\t2.6.30\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:382
#, no-wrap
msgid "B<prlimit>(2)\t2.6.36\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:383
#, no-wrap
msgid "B<process_vm_readv(2)>\t3.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:384
#, no-wrap
msgid "B<process_vm_writev(2)>\t3.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:385
#, no-wrap
msgid "B<pselect6>(2)\t2.6.16\n"
msgstr ""

#.  Implements \fBpselect\fP(2)
#. type: tbl table
#: build/C/man2/syscalls.2:387
#, no-wrap
msgid "B<ptrace>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:388
#, no-wrap
msgid "B<pwrite64>(2)\t\tAdded as \"pwrite\" in 2.2;\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:389
#, no-wrap
msgid "\t\trenamed \"pwrite64\" in 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:390
#, no-wrap
msgid "B<pwritev>(2)\t2.6.30\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:391
#, no-wrap
msgid "B<query_module>(2)\t2.2\tRemoved in 2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:392
#, no-wrap
msgid "B<quotactl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:393
#, no-wrap
msgid "B<read>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:394
#, no-wrap
msgid "B<readahead>(2)\t2.4.13\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:395
#, no-wrap
msgid "B<readdir>(2)\n"
msgstr ""

#.  Supersedes \fBgetdents\fP(2)
#. type: tbl table
#: build/C/man2/syscalls.2:397
#, no-wrap
msgid "B<readlink>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:398
#, no-wrap
msgid "B<readlinkat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:399
#, no-wrap
msgid "B<readv>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:400
#, no-wrap
msgid "B<reboot>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:401
#, no-wrap
msgid "B<recv>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:402
#, no-wrap
msgid "B<recvfrom>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:403
#, no-wrap
msgid "B<recvmsg>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:404
#, no-wrap
msgid "B<recvmmsg>(2)\t2.6.33\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:405
#, no-wrap
msgid "B<remap_file_pages>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:406
#, no-wrap
msgid "B<removexattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:407
#, no-wrap
msgid "B<rename>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:408
#, no-wrap
msgid "B<renameat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:409
#, no-wrap
msgid "B<request_key>(2)\t2.6.11\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:410
#, no-wrap
msgid "B<restart_syscall>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:411
#, no-wrap
msgid "B<rmdir>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:412
#, no-wrap
msgid "B<rt_sigaction>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:413
#, no-wrap
msgid "B<rt_sigpending>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:414
#, no-wrap
msgid "B<rt_sigprocmask>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:415
#, no-wrap
msgid "B<rt_sigqueueinfo>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:416
#, no-wrap
msgid "B<rt_sigreturn>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:417
#, no-wrap
msgid "B<rt_sigsuspend>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:418
#, no-wrap
msgid "B<rt_sigtimedwait>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:419
#, no-wrap
msgid "B<rt_tgsigqueueinfo>(2)\t2.6.31\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:420
#, no-wrap
msgid "B<sched_get_priority_max>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:421
#, no-wrap
msgid "B<sched_get_priority_min>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:422
#, no-wrap
msgid "B<sched_getaffinity>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:423
#, no-wrap
msgid "B<sched_getparam>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:424
#, no-wrap
msgid "B<sched_getscheduler>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:425
#, no-wrap
msgid "B<sched_rr_get_interval>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:426
#, no-wrap
msgid "B<sched_setaffinity>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:427
#, no-wrap
msgid "B<sched_setparam>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:428
#, no-wrap
msgid "B<sched_setscheduler>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:429
#, no-wrap
msgid "B<sched_yield>(2)\t2.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:430
#, no-wrap
msgid "B<select>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:431
#, no-wrap
msgid "B<semctl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:432
#, no-wrap
msgid "B<semget>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:433
#, no-wrap
msgid "B<semop>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:434
#, no-wrap
msgid "B<semtimedop>(2)\t2.6; 2.4.22\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:435
#, no-wrap
msgid "B<send>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:436
#, no-wrap
msgid "B<sendfile>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:437
#, no-wrap
msgid "B<sendfile64>(2)\t2.6; 2.4.19\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:438
#, no-wrap
msgid "B<sendmmsg>(2)\t3.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:439
#, no-wrap
msgid "B<sendmsg>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:440
#, no-wrap
msgid "B<sendto>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:441
#, no-wrap
msgid "B<set_mempolicy>(2)\t2.6.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:442
#, no-wrap
msgid "B<set_robust_list>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:443
#, no-wrap
msgid "B<set_thread_area>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:444
#, no-wrap
msgid "B<set_tid_address>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:445
#, no-wrap
msgid "B<set_zone_reclaim>(2)\t2.6.13\tRemoved in 2.6.16 (was never\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:446
#, no-wrap
msgid "\t\tavailable to userspace)\n"
msgstr ""

#.  See http://lkml.org/lkml/2005/8/1/83
#.  "[PATCH] remove sys_set_zone_reclaim()"
#. type: tbl table
#: build/C/man2/syscalls.2:449
#, no-wrap
msgid "B<setdomainname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:450
#, no-wrap
msgid "B<setfsgid>(2)\t1.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:451
#, no-wrap
msgid "B<setfsgid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:452
#, no-wrap
msgid "B<setfsuid>(2)\t1.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:453
#, no-wrap
msgid "B<setfsuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:454
#, no-wrap
msgid "B<setgid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:455
#, no-wrap
msgid "B<setgid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:456
#, no-wrap
msgid "B<setgroups>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:457
#, no-wrap
msgid "B<setgroups32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:458
#, no-wrap
msgid "B<sethostname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:459
#, no-wrap
msgid "B<setitimer>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:460
#, no-wrap
msgid "B<setns>(2)\t3.0\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:461
#, no-wrap
msgid "B<setpgid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:462
#, no-wrap
msgid "B<setpriority>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:463
#, no-wrap
msgid "B<setregid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:464
#, no-wrap
msgid "B<setregid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:465
#, no-wrap
msgid "B<setresgid>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:466
#, no-wrap
msgid "B<setresgid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:467
#, no-wrap
msgid "B<setresuid>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:468
#, no-wrap
msgid "B<setresuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:469
#, no-wrap
msgid "B<setreuid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:470
#, no-wrap
msgid "B<setreuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:471
#, no-wrap
msgid "B<setrlimit>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:472
#, no-wrap
msgid "B<setsid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:473
#, no-wrap
msgid "B<setsockopt>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:474
#, no-wrap
msgid "B<settimeofday>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:475
#, no-wrap
msgid "B<setuid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:476
#, no-wrap
msgid "B<setuid32>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:477
#, no-wrap
msgid "B<setup>(2)\t\tRemoved in 2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:478
#, no-wrap
msgid "B<setxattr>(2)\t2.6; 2.4.18\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:479
#, no-wrap
msgid "B<sgetmask>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:480
#, no-wrap
msgid "B<shmat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:481
#, no-wrap
msgid "B<shmctl>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:482
#, no-wrap
msgid "B<shmdt>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:483
#, no-wrap
msgid "B<shmget>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:484
#, no-wrap
msgid "B<shutdown>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:485
#, no-wrap
msgid "B<sigaction>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:486
#, no-wrap
msgid "B<sigaltstack>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:487
#, no-wrap
msgid "B<signal>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:488
#, no-wrap
msgid "B<signalfd>(2)\t2.6.22\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:489
#, no-wrap
msgid "B<signalfd4>(2)\t2.6.27\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:490
#, no-wrap
msgid "B<sigpending>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:491
#, no-wrap
msgid "B<sigprocmask>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:492
#, no-wrap
msgid "B<sigreturn>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:493
#, no-wrap
msgid "B<sigsuspend>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:494
#, no-wrap
msgid "B<socket>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:495
#, no-wrap
msgid "B<socketcall>(2)\n"
msgstr ""

#.  Implements BSD socket calls
#. type: tbl table
#: build/C/man2/syscalls.2:497
#, no-wrap
msgid "B<socketpair>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:498
#, no-wrap
msgid "B<splice>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:499
#, no-wrap
msgid "B<spu_create>(2)\t2.6.16\tPowerPC only\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:500
#, no-wrap
msgid "B<spu_run>(2)\t2.6.16\tPowerPC only\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:501
#, no-wrap
msgid "B<ssetmask>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:502
#, no-wrap
msgid "B<stat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:503
#, no-wrap
msgid "B<stat64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:504
#, no-wrap
msgid "B<statfs>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:505
#, no-wrap
msgid "B<statfs64>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:506
#, no-wrap
msgid "B<stime>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:507
#, no-wrap
msgid "B<subpage_prot>(2)\t2.6.25\tPowerPC if CONFIG_PPC_64K_PAGES\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:508
#, no-wrap
msgid "B<swapoff>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:509
#, no-wrap
msgid "B<swapon>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:510
#, no-wrap
msgid "B<symlink>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:511
#, no-wrap
msgid "B<symlinkat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:512
#, no-wrap
msgid "B<sync>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:513
#, no-wrap
msgid "B<sync_file_range>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:514
#, no-wrap
msgid "B<sync_file_range2>(2)\t2.6.22\tArchitecture-specific variant\n"
msgstr ""

#.  PowerPC, ARM, tile
#.  First appeared on ARM, as arm_sync_file_range(), but later renamed
#. type: tbl table
#: build/C/man2/syscalls.2:517
#, no-wrap
msgid "\t\tof B<sync_file_range>(2)\n"
msgstr ""

#.  \fBsys_debug_setcontext\fP(2)	???	PowerPC if CONFIG_PPC32
#. type: tbl table
#: build/C/man2/syscalls.2:519
#, no-wrap
msgid "B<syncfs>(2)\t2.6.39\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:520
#, no-wrap
msgid "B<sysfs>(2)\t1.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:521
#, no-wrap
msgid "B<sysinfo>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:522
#, no-wrap
msgid "B<syslog>(2)\n"
msgstr ""

#.  glibc interface is \fBklogctl\fP(3)
#. type: tbl table
#: build/C/man2/syscalls.2:524
#, no-wrap
msgid "B<tee>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:525
#, no-wrap
msgid "B<tgkill>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:526
#, no-wrap
msgid "B<time>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:527
#, no-wrap
msgid "B<timer_create>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:528
#, no-wrap
msgid "B<timer_delete>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:529
#, no-wrap
msgid "B<timer_getoverrun>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:530
#, no-wrap
msgid "B<timer_gettime>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:531
#, no-wrap
msgid "B<timer_settime>(2)\t2.6\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:532
#, no-wrap
msgid "B<timerfd_create>(2)\t2.6.25\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:533
#, no-wrap
msgid "B<timerfd_gettime>(2)\t2.6.25\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:534
#, no-wrap
msgid "B<timerfd_settime>(2)\t2.6.25\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:535
#, no-wrap
msgid "B<times>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:536
#, no-wrap
msgid "B<tkill>(2)\t2.6; 2.4.22\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:537
#, no-wrap
msgid "B<truncate>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:538
#, no-wrap
msgid "B<truncate64>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:539
#, no-wrap
msgid "B<ugetrlimit>(2)\t2.4\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:540
#, no-wrap
msgid "B<umask>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:541
#, no-wrap
msgid "B<umount>(2)\n"
msgstr ""

#.  sys_oldumount() -- __NR_umount
#. type: tbl table
#: build/C/man2/syscalls.2:543
#, no-wrap
msgid "B<umount2>(2)\t2.2\n"
msgstr ""

#.  sys_umount() -- __NR_umount2
#. type: tbl table
#: build/C/man2/syscalls.2:545
#, no-wrap
msgid "B<uname>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:546
#, no-wrap
msgid "B<unlink>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:547
#, no-wrap
msgid "B<unlinkat>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:548
#, no-wrap
msgid "B<unshare>(2)\t2.6.16\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:549
#, no-wrap
msgid "B<uselib>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:550
#, no-wrap
msgid "B<ustat>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:551
#, no-wrap
msgid "B<utime>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:552
#, no-wrap
msgid "B<utimensat>(2)\t2.6.22\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:553
#, no-wrap
msgid "B<utimes>(2)\t2.2\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:554
#, no-wrap
msgid "B<vfork>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:555
#, no-wrap
msgid "B<vhangup>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:556
#, no-wrap
msgid "B<vm86old>(2)\n"
msgstr ""

#.  Superseded by \fBvm86\fP(2)
#. type: tbl table
#: build/C/man2/syscalls.2:558
#, no-wrap
msgid "B<vmsplice>(2)\t2.6.17\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:559
#, no-wrap
msgid "B<wait4>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:560
#, no-wrap
msgid "B<waitid>(2)\t2.6.10\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:561
#, no-wrap
msgid "B<waitpid>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:562
#, no-wrap
msgid "B<write>(2)\n"
msgstr ""

#. type: tbl table
#: build/C/man2/syscalls.2:563
#, no-wrap
msgid "B<writev>(2)\t2.0\n"
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:571
msgid ""
"On many platforms, including i386, socket calls are all multiplexed (via "
"glibc wrapper functions) through B<socketcall>(2)  and similarly System V "
"IPC calls are multiplexed through B<ipc>(2)."
msgstr ""

#.  __NR_afs_syscall is 53 on Linux 2.6.22/i386
#.  __NR_break is 17 on Linux 2.6.22/i386
#.  __NR_ftime is 35 on Linux 2.6.22/i386
#.  __NR_getpmsg is 188 on Linux 2.6.22/i386
#.  __NR_gtty is 32 on Linux 2.6.22/i386
#.  __NR_idle is 112 on Linux 2.6.22/i386
#.  __NR_lock is 53 on Linux 2.6.22/i386
#.  __NR_madvise1 is 219 on Linux 2.6.22/i386
#.  __NR_mpx is 66 on Linux 2.6.22/i386
#.  Slot has been reused
#.  __NR_prof is 44 on Linux 2.6.22/i386
#.  __NR_profil is 98 on Linux 2.6.22/i386
#.  __NR_putpmsg is 189 on Linux 2.6.22/i386
#.  __NR_security is 223 on Linux 2.4/i386
#.  __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
#.  on a couple of 2.6 architectures
#.  __NR_stty is 31 on Linux 2.6.22/i386
#.  The security call is for future use.
#.  __NR_tuxcall is 184 on x86_64, also on PPC and alpha
#.  __NR_ulimit is 58 on Linux 2.6.22/i386
#.  __NR_vserver is 273 on Linux 2.6.22/i386
#. type: Plain text
#: build/C/man2/syscalls.2:616
msgid ""
"Although slots are reserved for them in the system call table, the following "
"system calls are not implemented in the standard kernel: B<afs_syscall>(2), "
"B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), "
"B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), "
"B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and "
"B<vserver>(2)  (see also B<unimplemented>(2)).  However, B<ftime>(3), "
"B<profil>(3)  and B<ulimit>(3)  exist as library routines.  The slot for "
"B<phys>(2)  is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2)  "
"will never be implemented.  The B<getpmsg>(2)  and B<putpmsg>(2)  calls are "
"for kernels patched to support STREAMS, and may never be in the standard "
"kernel."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:632
msgid ""
"Roughly speaking, the code belonging to the system call with number __NR_xxx "
"defined in I</usr/include/asm/unistd.h> can be found in the kernel source in "
"the routine I<sys_xxx>().  (The dispatch table for i386 can be found in "
"I</usr/src/linux/arch/i386/kernel/entry.S>.)  There are many exceptions, "
"however, mostly because older system calls were superseded by newer ones, "
"and this has been treated somewhat unsystematically.  On platforms with "
"proprietary OS emulation, such as parisc, sparc, sparc64 and alpha, there "
"are many additional system calls; mips64 also contains a full set of 32-bit "
"system calls."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:651
msgid ""
"Over time, changes to the interfaces of some system calls have been "
"necessary.  One reason for such changes was the need to increase the size of "
"structures or scalar values passed to the system call.  Because of these "
"changes, there are now various groups of related system calls (e.g., "
"B<truncate>(2)  and B<truncate64>(2))  which perform similar tasks, but "
"which vary in details such as the size of their arguments.  (As noted "
"earlier, applications are generally unaware of this: the glibc wrapper "
"functions do some work to ensure that the right system call is invoked, and "
"that ABI compatibility is preserved for old binaries.)  Examples of systems "
"calls that exist in multiple versions are the following:"
msgstr ""

#.  e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
#.  The stat system calls deal with three different data structures,
#.  defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
#. type: Plain text
#: build/C/man2/syscalls.2:672
msgid ""
"By now there are three different versions of B<stat>(2): I<sys_stat>()  "
"(slot I<__NR_oldstat>), I<sys_newstat>()  (slot I<__NR_stat>), and "
"I<sys_stat64>()  (slot I<__NR_stat64>), with the last being the most "
"current.  A similar story applies for B<lstat>(2)  and B<fstat>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:683
msgid ""
"Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and "
"I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>()  and "
"I<sys_newuname>()."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:690
msgid ""
"In Linux 2.0, a new version of B<vm86>(2)  appeared, with the old and the "
"new kernel routines being named I<sys_vm86old>()  and I<sys_vm86>()."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:701
msgid ""
"In Linux 2.4, a new version of B<getrlimit>(2)  appeared, with the old and "
"the new kernel routines being named I<sys_old_getrlimit>()  (slot "
"I<__NR_getrlimit>)  and I<sys_getrlimit>()  (slot I<__NR_ugetrlimit>)."
msgstr ""

#.  64-bit off_t changes: ftruncate64, *stat64,
#.  fcntl64 (because of the flock structure), getdents64, *statfs64
#. type: Plain text
#: build/C/man2/syscalls.2:713
msgid ""
"Linux 2.4 increased the size of user and group IDs from 16 to 32 bits.  To "
"support this change, a range of system calls were added (e.g., "
"B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), "
"superseding earlier calls of the same name without the \"32\" suffix."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:730
msgid ""
"Linux 2.4 added support for applications on 32-bit architectures to access "
"large files (i.e., files for which the sizes and file offsets can't be "
"represented in 32 bits.)  To support this change, replacements were required "
"for system calls that deal with file offsets and sizes.  Thus the following "
"system calls were added: B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), "
"B<stat64>(2), B<statfs64>(2), and their analogs that work with file "
"descriptors or symbolic links.  These system calls supersede the older "
"system calls which, except in the case of the \"stat\" calls, have the same "
"name without the \"64\" suffix."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:734
msgid ""
"On newer platforms that only have 64-bit file access and 32-bit uids (e.g., "
"alpha, ia64, s390x) there are no *64 or *32 calls.  Where the *64 and *32 "
"calls exist, the other versions are obsolete."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:742
msgid ""
"The I<rt_sig*> calls were added in kernel 2.2 to support the addition of "
"real-time signals (see B<signal>(7)).  These system calls supersede the "
"older system calls of the same name without the \"rt_\" prefix."
msgstr ""

#.  (used by libc 6)
#.  .PP
#.  Two system call numbers,
#.  .IR __NR__llseek
#.  and
#.  .IR __NR__sysctl
#.  have an additional underscore absent in
#.  .IR sys_llseek ()
#.  and
#.  .IR sys_sysctl ().
#
#.  In kernel 2.1.81,
#.  .BR lchown (2)
#.  and
#.  .BR chown (2)
#.  were swapped; that is,
#.  .BR lchown (2)
#.  was added with the semantics that were then current for
#.  .BR chown (2),
#.  and the semantics of the latter call were changed to what
#.  they are today.
#. type: Plain text
#: build/C/man2/syscalls.2:792
msgid ""
"The B<select>(2)  and B<mmap>(2)  system calls use five or more arguments, "
"which caused problems the way argument passing on the i386 used to be set "
"up.  Thus, while other architectures have I<sys_select>()  and I<sys_mmap>()  "
"corresponding to I<__NR_select> and I<__NR_mmap>, on i386 one finds "
"I<old_select>()  and I<old_mmap>()  (routines that use a pointer to a "
"argument block) instead.  These days passing five arguments is not a problem "
"any more, and there is a I<__NR__newselect> that corresponds directly to "
"I<sys_select>()  and similarly I<__NR_mmap2>."
msgstr ""

#. type: Plain text
#: build/C/man2/syscalls.2:796
msgid "B<syscall>(2), B<unimplemented>(2), B<libc>(7)"
msgstr ""

#. type: TH
#: build/C/man3/sysconf.3:25
#, no-wrap
msgid "SYSCONF"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:28
msgid "sysconf - Get configuration information at runtime"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:33
#, no-wrap
msgid "B<long sysconf(int >I<name>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:38
msgid ""
"POSIX allows an application to test at compile or run time whether certain "
"options are supported, or what the value is of certain configurable "
"constants or limits."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:44
msgid ""
"At compile time this is done by including I<E<lt>unistd.hE<gt>> and/or "
"I<E<lt>limits.hE<gt>> and testing the value of certain macros."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:54
msgid ""
"At run time, one can ask for numerical values using the present function "
"B<sysconf>().  One can ask for numerical values that may depend on the file "
"system a file is in using the calls B<fpathconf>(3)  and B<pathconf>(3).  "
"One can ask for string values using B<confstr>(3)."
msgstr ""

#.  except that sysconf(_SC_OPEN_MAX) may change answer after a call
#.  to setrlimit( ) which changes the RLIMIT_NOFILE soft limit
#. type: Plain text
#: build/C/man3/sysconf.3:59
msgid ""
"The values obtained from these functions are system configuration "
"constants.  They do not change during the lifetime of a process."
msgstr ""

#.  and 999 to indicate support for options no longer present in the latest
#.  standard. (?)
#. type: Plain text
#: build/C/man3/sysconf.3:82
msgid ""
"For options, typically, there is a constant B<_POSIX_FOO> that may be "
"defined in I<E<lt>unistd.hE<gt>>.  If it is undefined, one should ask at run "
"time.  If it is defined to -1, then the option is not supported.  If it is "
"defined to 0, then relevant functions and headers exist, but one has to ask "
"at runtime what degree of support is available.  If it is defined to a value "
"other than -1 or 0, then the option is supported.  Usually the value (such "
"as 200112L) indicates the year and month of the POSIX revision describing "
"the option.  Glibc uses the value 1 to indicate support as long as the POSIX "
"revision has not been published yet.  The B<sysconf>()  argument will be "
"B<_SC_FOO>.  For a list of options, see B<posixoptions>(7)."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:102
msgid ""
"For variables or limits, typically, there is a constant B<_FOO>, maybe "
"defined in I<E<lt>limits.hE<gt>>, or B<_POSIX_FOO>, maybe defined in "
"I<E<lt>unistd.hE<gt>>.  The constant will not be defined if the limit is "
"unspecified.  If the constant is defined, it gives a guaranteed value, and a "
"greater value might actually be supported.  If an application wants to take "
"advantage of values which may change between systems, a call to B<sysconf>()  "
"can be made.  The B<sysconf>()  argument will be B<_SC_FOO>."
msgstr ""

#. type: SS
#: build/C/man3/sysconf.3:102
#, no-wrap
msgid "POSIX.1 Variables"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:107
msgid ""
"We give the name of the variable, the name of the B<sysconf>()  argument "
"used to inquire about its value, and a short description."
msgstr ""

#.  [for the moment: only the things that are unconditionally present]
#.  .TP
#.  .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX
#.  (if _POSIX_ASYNCHRONOUS_IO)
#.  Maximum number of I/O operations in a single list I/O call.
#.  Must not be less than _POSIX_AIO_LISTIO_MAX.
#.  .TP
#.  .BR AIO_MAX " - " _SC_AIO_MAX
#.  (if _POSIX_ASYNCHRONOUS_IO)
#.  Maximum number of outstanding asynchronous I/O operations.
#.  Must not be less than _POSIX_AIO_MAX.
#.  .TP
#.  .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX
#.  (if _POSIX_ASYNCHRONOUS_IO)
#.  The maximum amount by which a process can decrease its
#.  asynchronous I/O priority level from its own scheduling priority.
#.  Must be nonnegative.
#. type: Plain text
#: build/C/man3/sysconf.3:126
msgid "First, the POSIX.1 compatible values."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:126
#, no-wrap
msgid "B<ARG_MAX> - B<_SC_ARG_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:134
msgid ""
"The maximum length of the arguments to the B<exec>(3)  family of functions.  "
"Must not be less than B<_POSIX_ARG_MAX> (4096)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:134
#, no-wrap
msgid "B<CHILD_MAX> - B<_SC_CHILD_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:140
msgid ""
"The max number of simultaneous processes per user ID.  Must not be less than "
"B<_POSIX_CHILD_MAX> (25)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:140
#, no-wrap
msgid "B<HOST_NAME_MAX> - B<_SC_HOST_NAME_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:148
msgid ""
"Max length of a hostname, not including the terminating null byte, as "
"returned by B<gethostname>(2).  Must not be less than "
"B<_POSIX_HOST_NAME_MAX> (255)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:148
#, no-wrap
msgid "B<LOGIN_NAME_MAX> - B<_SC_LOGIN_NAME_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:154
msgid ""
"Maximum length of a login name, including the terminating null byte.  Must "
"not be less than B<_POSIX_LOGIN_NAME_MAX> (9)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:154
#, no-wrap
msgid "clock ticks - B<_SC_CLK_TCK>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:163
msgid ""
"The number of clock ticks per second.  The corresponding variable is "
"obsolete.  It was of course called B<CLK_TCK>.  (Note: the macro "
"B<CLOCKS_PER_SEC> does not give information: it must equal 1000000.)"
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:163
#, no-wrap
msgid "B<OPEN_MAX> - B<_SC_OPEN_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:169
msgid ""
"The maximum number of files that a process can have open at any time.  Must "
"not be less than B<_POSIX_OPEN_MAX> (20)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:169
#, no-wrap
msgid "B<PAGESIZE> - B<_SC_PAGESIZE>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:174
msgid ""
"Size of a page in bytes.  Must not be less than 1.  (Some systems use "
"PAGE_SIZE instead.)"
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:174 build/C/man3/sysconf.3:261
#, no-wrap
msgid "B<RE_DUP_MAX> - B<_SC_RE_DUP_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:183
msgid ""
"The number of repeated occurrences of a BRE permitted by B<regexec>(3)  and "
"B<regcomp>(3).  Must not be less than B<_POSIX2_RE_DUP_MAX> (255)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:183
#, no-wrap
msgid "B<STREAM_MAX> - B<_SC_STREAM_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:192
msgid ""
"The maximum number of streams that a process can have open at any time.  If "
"defined, it has the same value as the standard C macro B<FOPEN_MAX>.  Must "
"not be less than B<_POSIX_STREAM_MAX> (8)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:192
#, no-wrap
msgid "B<SYMLOOP_MAX> - B<_SC_SYMLOOP_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:200
msgid ""
"The maximum number of symbolic links seen in a pathname before resolution "
"returns B<ELOOP>.  Must not be less than B<_POSIX_SYMLOOP_MAX> (8)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:200
#, no-wrap
msgid "B<TTY_NAME_MAX> - B<_SC_TTY_NAME_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:207
msgid ""
"The maximum length of terminal device name, including the terminating null "
"byte.  Must not be less than B<_POSIX_TTY_NAME_MAX> (9)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:207
#, no-wrap
msgid "B<TZNAME_MAX> - B<_SC_TZNAME_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:213
msgid ""
"The maximum number of bytes in a timezone name.  Must not be less than "
"B<_POSIX_TZNAME_MAX> (6)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:213
#, no-wrap
msgid "B<_POSIX_VERSION> - B<_SC_VERSION>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:221
msgid ""
"indicates the year and month the POSIX.1 standard was approved in the format "
"B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision."
msgstr ""

#. type: SS
#: build/C/man3/sysconf.3:221
#, no-wrap
msgid "POSIX.2 Variables"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:223
msgid "Next, the POSIX.2 values, giving limits for utilities."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:223
#, no-wrap
msgid "B<BC_BASE_MAX> - B<_SC_BC_BASE_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:230
msgid "indicates the maximum I<obase> value accepted by the B<bc>(1)  utility."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:230
#, no-wrap
msgid "B<BC_DIM_MAX> - B<_SC_BC_DIM_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:234
msgid "indicates the maximum value of elements permitted in an array by B<bc>(1)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:234
#, no-wrap
msgid "B<BC_SCALE_MAX> - B<_SC_BC_SCALE_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:240
msgid "indicates the maximum I<scale> value allowed by B<bc>(1)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:240
#, no-wrap
msgid "B<BC_STRING_MAX> - B<_SC_BC_STRING_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:244
msgid "indicates the maximum length of a string accepted by B<bc>(1)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:244
#, no-wrap
msgid "B<COLL_WEIGHTS_MAX> - B<_SC_COLL_WEIGHTS_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:250
msgid ""
"indicates the maximum numbers of weights that can be assigned to an entry of "
"the B<LC_COLLATE order> keyword in the locale definition file,"
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:250
#, no-wrap
msgid "B<EXPR_NEST_MAX> - B<_SC_EXPR_NEST_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:255
msgid ""
"is the maximum number of expressions which can be nested within parentheses "
"by B<expr>(1)."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:255
#, no-wrap
msgid "B<LINE_MAX> - B<_SC_LINE_MAX>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:261
msgid ""
"The maximum length of a utility's input line, either from standard input or "
"from a file.  This includes space for a trailing newline."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:267
msgid ""
"The maximum number of repeated occurrences of a regular expression when the "
"interval notation B<\\e{m,n\\e}> is used."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:267
#, no-wrap
msgid "B<POSIX2_VERSION> - B<_SC_2_VERSION>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:271
msgid "indicates the version of the POSIX.2 standard in the format of YYYYMML."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:271
#, no-wrap
msgid "B<POSIX2_C_DEV> - B<_SC_2_C_DEV>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:275
msgid ""
"indicates whether the POSIX.2 C language development facilities are "
"supported."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:275
#, no-wrap
msgid "B<POSIX2_FORT_DEV> - B<_SC_2_FORT_DEV>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:279
msgid "indicates whether the POSIX.2 FORTRAN development utilities are supported."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:279
#, no-wrap
msgid "B<POSIX2_FORT_RUN> - B<_SC_2_FORT_RUN>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:282
msgid "indicates whether the POSIX.2 FORTRAN runtime utilities are supported."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:282
#, no-wrap
msgid "B<_POSIX2_LOCALEDEF> - B<_SC_2_LOCALEDEF>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:287
msgid ""
"indicates whether the POSIX.2 creation of locates via B<localedef>(1)  is "
"supported."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:287
#, no-wrap
msgid "B<POSIX2_SW_DEV> - B<_SC_2_SW_DEV>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:291
msgid ""
"indicates whether the POSIX.2 software development utilities option is "
"supported."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:293
msgid "These values also exist, but may not be standard."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:293
#, no-wrap
msgid " - B<_SC_PHYS_PAGES>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:300
msgid ""
"The number of pages of physical memory.  Note that it is possible for the "
"product of this value and the value of B<_SC_PAGE_SIZE> to overflow."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:300
#, no-wrap
msgid " - B<_SC_AVPHYS_PAGES>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:303
msgid "The number of currently available pages of physical memory."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:303
#, no-wrap
msgid " - B<_SC_NPROCESSORS_CONF>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:306
msgid "The number of processors configured."
msgstr ""

#. type: TP
#: build/C/man3/sysconf.3:306
#, no-wrap
msgid " - B<_SC_NPROCESSORS_ONLN>"
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:309
msgid "The number of processors currently online (available)."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:322
msgid ""
"If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>.  "
"Otherwise, the value returned is the value of the system resource and "
"I<errno> is not changed.  In the case of options, a positive value is "
"returned if a queried option is available, and -1 if it is not.  In the case "
"of limits, -1 means that there is no definite limit."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:330
msgid ""
"It is difficult to use B<ARG_MAX> because it is not specified how much of "
"the argument space for B<exec>(3)  is consumed by the user's environment "
"variables."
msgstr ""

#. type: Plain text
#: build/C/man3/sysconf.3:341
msgid ""
"B<bc>(1), B<expr>(1), B<getconf>(1), B<locale>(1), B<fpathconf>(3), "
"B<pathconf>(3), B<posixoptions>(7)"
msgstr ""

#. type: TH
#: build/C/man2/sysctl.2:28
#, no-wrap
msgid "SYSCTL"
msgstr ""

#. type: TH
#: build/C/man2/sysctl.2:28
#, no-wrap
msgid "2008-11-20"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:31
msgid "sysctl - read/write system parameters"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:36
#, no-wrap
msgid "B<#include E<lt>linux/sysctl.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:38
#, no-wrap
msgid "B<int _sysctl(struct __sysctl_args *>I<args>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:42
msgid "B<Do not use this system call!> See NOTES."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:49
msgid ""
"The B<_sysctl>()  call reads and/or writes kernel parameters.  For example, "
"the hostname, or the maximum number of open files.  The argument has the "
"form"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:61
#, no-wrap
msgid ""
"struct __sysctl_args {\n"
"    int    *name;    /* integer vector describing variable */\n"
"    int     nlen;    /* length of this vector */\n"
"    void   *oldval;  /* 0 or address where to store old value */\n"
"    size_t *oldlenp; /* available room for old value,\n"
"                        overwritten by actual size of old value */\n"
"    void   *newval;  /* 0 or address of new value */\n"
"    size_t  newlen;  /* size of new value */\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:69
msgid ""
"This call does a search in a tree structure, possibly resembling a directory "
"tree under I</proc/sys>, and if the requested item is found calls some "
"appropriate routine to read or modify the value."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:76
msgid ""
"Upon successful completion, B<_sysctl>()  returns 0.  Otherwise, a value of "
"-1 is returned and I<errno> is set to indicate the error."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:83
msgid ""
"The invocation asked for the previous value by setting I<oldval> non-NULL, "
"but allowed zero room in I<oldlenp>."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:87
msgid "I<name> was not found."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:95
msgid ""
"No search permission for one of the encountered \"directories\", or no read "
"permission where I<oldval> was nonzero, or no write permission where "
"I<newval> was nonzero."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:109
msgid ""
"This call is Linux-specific, and should not be used in programs intended to "
"be portable.  A B<sysctl>()  call has been present in Linux since version "
"1.3.57.  It originated in 4.4BSD.  Only Linux has the I</proc/sys> mirror, "
"and the object naming schemes differ between Linux and 4.4BSD, but the "
"declaration of the B<sysctl>()  function is the same in both."
msgstr ""

#.  See http://lwn.net/Articles/247243/
#. type: Plain text
#: build/C/man2/sysctl.2:121
msgid ""
"Or rather... don't call it: use of this system call has long been "
"discouraged, and it is so unloved that B<it is likely to disappear in a "
"future kernel version>.  Remove it from your programs now; use the "
"I</proc/sys> interface instead."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:124
msgid ""
"The object names vary between kernel versions, making this system call "
"worthless for applications."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:126
msgid "Not all available objects are properly documented."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:129
msgid ""
"It is not yet possible to change operating system by writing to "
"I</proc/sys/kernel/ostype>."
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:138
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>sys/syscall.hE<gt>\n"
"#include E<lt>string.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>linux/sysctl.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:140
#, no-wrap
msgid "int _sysctl(struct __sysctl_args *args );\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:142
#, no-wrap
msgid "#define OSNAMESZ 100\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:150
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
"    struct __sysctl_args args;\n"
"    char osname[OSNAMESZ];\n"
"    size_t osnamelth;\n"
"    int name[] = { CTL_KERN, KERN_OSTYPE };\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:156
#, no-wrap
msgid ""
"    memset(&args, 0, sizeof(struct __sysctl_args));\n"
"    args.name = name;\n"
"    args.nlen = sizeof(name)/sizeof(name[0]);\n"
"    args.oldval = osname;\n"
"    args.oldlenp = &osnamelth;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:158
#, no-wrap
msgid "    osnamelth = sizeof(osname);\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:166
#, no-wrap
msgid ""
"    if (syscall(SYS__sysctl, &args) == -1) {\n"
"        perror(\"_sysctl\");\n"
"        exit(EXIT_FAILURE);\n"
"    }\n"
"    printf(\"This machine is running %*s\\en\", osnamelth, osname);\n"
"    exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysctl.2:169 build/C/man2/sysinfo.2:96
msgid "B<proc>(5)"
msgstr ""

#. type: TH
#: build/C/man2/sysinfo.2:14
#, no-wrap
msgid "SYSINFO"
msgstr ""

#. type: TH
#: build/C/man2/sysinfo.2:14
#, no-wrap
msgid "2007-11-15"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:17
msgid "sysinfo - returns information on overall system statistics"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:19
msgid "B<#include E<lt>sys/sysinfo.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:21
msgid "B<int sysinfo(struct sysinfo *>I<info>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:25
msgid ""
"Until Linux 2.3.16, B<sysinfo>()  used to return information in the "
"following structure:"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:40
#, no-wrap
msgid ""
"struct sysinfo {\n"
"    long uptime;             /* Seconds since boot */\n"
"    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
"    unsigned long totalram;  /* Total usable main memory size */\n"
"    unsigned long freeram;   /* Available memory size */\n"
"    unsigned long sharedram; /* Amount of shared memory */\n"
"    unsigned long bufferram; /* Memory used by buffers */\n"
"    unsigned long totalswap; /* Total swap space size */\n"
"    unsigned long freeswap;  /* swap space still available */\n"
"    unsigned short procs;    /* Number of current processes */\n"
"    char _f[22];             /* Pads structure to 64 bytes */\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:44
msgid "and the sizes were given in bytes."
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:47
msgid "Since Linux 2.3.23 (i386), 2.3.48 (all architectures) the structure is:"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:65
#, no-wrap
msgid ""
"struct sysinfo {\n"
"    long uptime;             /* Seconds since boot */\n"
"    unsigned long loads[3];  /* 1, 5, and 15 minute load averages */\n"
"    unsigned long totalram;  /* Total usable main memory size */\n"
"    unsigned long freeram;   /* Available memory size */\n"
"    unsigned long sharedram; /* Amount of shared memory */\n"
"    unsigned long bufferram; /* Memory used by buffers */\n"
"    unsigned long totalswap; /* Total swap space size */\n"
"    unsigned long freeswap;  /* swap space still available */\n"
"    unsigned short procs;    /* Number of current processes */\n"
"    unsigned long totalhigh; /* Total high memory size */\n"
"    unsigned long freehigh;  /* Available high memory size */\n"
"    unsigned int mem_unit;   /* Memory unit size in bytes */\n"
"    char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding for libc5 */\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:69
msgid "and the sizes are given as multiples of I<mem_unit> bytes."
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:74
msgid ""
"B<sysinfo>()  provides a simple way of getting overall system statistics.  "
"This is more portable than reading I</dev/kmem>."
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:83
msgid "pointer to I<struct\\ sysinfo> is invalid"
msgstr ""

#. type: Plain text
#: build/C/man2/sysinfo.2:94
msgid ""
"The Linux kernel has a B<sysinfo>()  system call since 0.98.pl6.  Linux libc "
"contains a B<sysinfo>()  routine since 5.3.5, and glibc has one since 1.90."
msgstr ""

#. type: TH
#: build/C/man3/tcgetpgrp.3:23
#, no-wrap
msgid "TCGETPGRP"
msgstr ""

#. type: TH
#: build/C/man3/tcgetpgrp.3:23
#, no-wrap
msgid "2003-01-28"
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:26
msgid "tcgetpgrp, tcsetpgrp - get and set terminal foreground process group"
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:30
msgid "B<pid_t tcgetpgrp(int >I<fd>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:32
msgid "B<int tcsetpgrp(int >I<fd>B<, pid_t >I<pgrp>B<);>"
msgstr ""

#.  The process itself may be a background process.
#. type: Plain text
#: build/C/man3/tcgetpgrp.3:40
msgid ""
"The function B<tcgetpgrp>()  returns the process group ID of the foreground "
"process group on the terminal associated to I<fd>, which must be the "
"controlling terminal of the calling process."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:50
msgid ""
"The function B<tcsetpgrp>()  makes the process group with process group ID "
"I<pgrp> the foreground process group on the terminal associated to I<fd>, "
"which must be the controlling terminal of the calling process, and still be "
"associated with its session.  Moreover, I<pgrp> must be a (nonempty) process "
"group belonging to the same session as the calling process."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:59
msgid ""
"If B<tcsetpgrp>()  is called by a member of a background process group in "
"its session, and the calling process is not blocking or ignoring B<SIGTTOU>, "
"a B<SIGTTOU> signal is sent to all members of this background process group."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:74
msgid ""
"When I<fd> refers to the controlling terminal of the calling process, the "
"function B<tcgetpgrp>()  will return the foreground process group ID of that "
"terminal if there is one, and some value larger than 1 that is not presently "
"a process group ID otherwise.  When I<fd> does not refer to the controlling "
"terminal of the calling process, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:81
msgid ""
"When successful, B<tcsetpgrp>()  returns 0.  Otherwise, it returns -1, and "
"I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:90
msgid "I<pgrp> has an unsupported value."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:99
msgid ""
"The calling process does not have a controlling terminal, or it has one but "
"it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling "
"terminal is no longer associated with the session of the calling process."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:104
msgid ""
"I<pgrp> has a supported value, but is not the process group ID of a process "
"in the same session as the calling process."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:112
msgid ""
"These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> "
"ioctls."
msgstr ""

#. type: SS
#: build/C/man3/tcgetpgrp.3:112 build/C/man2/vfork.2:233
#, no-wrap
msgid "History"
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:115
msgid "The ioctls appeared in 4.2BSD.  The functions are POSIX inventions."
msgstr ""

#. type: Plain text
#: build/C/man3/tcgetpgrp.3:119
msgid "B<setpgid>(2), B<setsid>(2), B<credentials>(7)"
msgstr ""

#. type: TH
#: build/C/man2/truncate.2:41
#, no-wrap
msgid "TRUNCATE"
msgstr ""

#. type: TH
#: build/C/man2/truncate.2:41
#, no-wrap
msgid "2011-09-08"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:44
msgid "truncate, ftruncate - truncate a file to a specified length"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:50
msgid "B<int truncate(const char *>I<path>B<, off_t >I<length>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:52
msgid "B<int ftruncate(int >I<fd>B<, off_t >I<length>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:61
msgid "B<truncate>():"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:69
msgid "B<ftruncate>():"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:74
msgid "|| /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:89
msgid ""
"The B<truncate>()  and B<ftruncate>()  functions cause the regular file "
"named by I<path> or referenced by I<fd> to be truncated to a size of "
"precisely I<length> bytes."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:93
msgid ""
"If the file previously was larger than this size, the extra data is lost.  "
"If the file previously was shorter, it is extended, and the extended part "
"reads as null bytes (\\(aq\\e0\\(aq)."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:95
msgid "The file offset is not changed."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:102
msgid ""
"If the size changed, then the st_ctime and st_mtime fields (respectively, "
"time of last status change and time of last modification; see B<stat>(2))  "
"for the file are updated, and the set-user-ID and set-group-ID permission "
"bits may be cleared."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:108
msgid ""
"With B<ftruncate>(), the file must be open for writing; with B<truncate>(), "
"the file must be writable."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:116
msgid "For B<truncate>():"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:122
msgid ""
"Search permission is denied for a component of the path prefix, or the named "
"file is not writable by the user.  (See also B<path_resolution>(7).)"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:126
msgid "I<Path> points outside the process's allocated address space."
msgstr ""

#. type: TP
#: build/C/man2/truncate.2:126
#, no-wrap
msgid "B<EFBIG>"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:131
msgid "The argument I<length> is larger than the maximum file size. (XSI)"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:138
msgid ""
"While blocked waiting to complete, the call was interrupted by a signal "
"handler; see B<fcntl>(2)  and B<signal>(7)."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:143
msgid "The argument I<length> is negative or larger than the maximum file size."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:146
msgid "An I/O error occurred updating the inode."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:149
msgid "The named file is a directory."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:152
msgid "Too many symbolic links were encountered in translating the pathname."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:156
msgid ""
"A component of a pathname exceeded 255 characters, or an entire pathname "
"exceeded 1023 characters."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:159
msgid "The named file does not exist."
msgstr ""

#.  This happens for at least MSDOS and VFAT file systems
#.  on kernel 2.6.13
#. type: Plain text
#: build/C/man2/truncate.2:168
msgid ""
"The underlying file system does not support extending a file beyond its "
"current size."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:174
msgid "The file is a pure procedure (shared text) file that is being executed."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:181
msgid ""
"For B<ftruncate>()  the same errors apply, but instead of things that can be "
"wrong with I<path>, we now have things that can be wrong with the file "
"descriptor, I<fd>:"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:185
msgid "I<fd> is not a valid descriptor."
msgstr ""

#. type: TP
#: build/C/man2/truncate.2:185
#, no-wrap
msgid "B<EBADF> or B<EINVAL>"
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:189
msgid "I<fd> is not open for writing."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:193
msgid "I<fd> does not reference a regular file."
msgstr ""

#.  POSIX.1-1996 has
#.  .BR ftruncate ().
#.  POSIX.1-2001 also has
#.  .BR truncate (),
#.  as an XSI extension.
#.  .LP
#.  SVr4 documents additional
#.  .BR truncate ()
#.  error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK.  SVr4 documents for
#.  .BR ftruncate ()
#.  an additional EAGAIN error condition.
#. type: Plain text
#: build/C/man2/truncate.2:206
msgid "4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD)."
msgstr ""

#.  At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002
#. type: Plain text
#: build/C/man2/truncate.2:227
msgid ""
"The details in DESCRIPTION are for XSI-compliant systems.  For "
"non-XSI-compliant systems, the POSIX standard allows two behaviors for "
"B<ftruncate>()  when I<length> exceeds the file length (note that "
"B<truncate>()  is not specified at all in such an environment): either "
"returning an error, or extending the file.  Like most UNIX implementations, "
"Linux follows the XSI requirement when dealing with native file systems.  "
"However, some nonnative file systems do not permit B<truncate>()  and "
"B<ftruncate>()  to be used to extend a file beyond its current length: a "
"notable example on Linux is VFAT."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:241
msgid ""
"The original Linux B<truncate>()  and B<ftruncate>()  system calls were not "
"designed to handle large file offsets.  Consequently, Linux 2.4 added "
"B<truncate64>()  and B<ftruncate64>()  system calls that handle large "
"files.  However, these details can be ignored by applications using glibc, "
"whose wrapper functions transparently employ the more recent system calls "
"where they are available."
msgstr ""

#.  http://sourceware.org/bugzilla/show_bug.cgi?id=12037
#. type: Plain text
#: build/C/man2/truncate.2:249
msgid ""
"A header file bug in glibc 2.12 meant that the minimum value of "
"B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>()  was "
"200809L instead of 200112L.  This has been fixed in later glibc versions."
msgstr ""

#. type: Plain text
#: build/C/man2/truncate.2:253
msgid "B<open>(2), B<stat>(2), B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man3/ualarm.3:23
#, no-wrap
msgid "UALARM"
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:26
msgid "ualarm - schedule signal after given number of microseconds"
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:31
#, no-wrap
msgid "B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<interval>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:39
msgid "B<ualarm>():"
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:68
msgid ""
"The B<ualarm>()  function causes the signal B<SIGALRM> to be sent to the "
"invoking process after (not less than)  I<usecs> microseconds.  The delay "
"may be lengthened slightly by any system activity or by the time spent "
"processing the call or by the granularity of system timers."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:72
msgid "Unless caught or ignored, the B<SIGALRM> signal will terminate the process."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:80
msgid ""
"If the I<interval> argument is nonzero, further B<SIGALRM> signals will be "
"sent every I<interval> microseconds after the first."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:83
msgid ""
"This function returns the number of microseconds remaining for any alarm "
"that was previously set, or 0 if no alarm was pending."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:87
msgid "Interrupted by a signal."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:91
msgid ""
"I<usecs> or I<interval> is not smaller than 1000000.  (On systems where that "
"is considered an error.)"
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:99
msgid ""
"4.3BSD, POSIX.1-2001.  POSIX.1-2001 marks B<ualarm>()  as obsolete.  "
"POSIX.1-2008 removes the specification of B<ualarm>().  4.3BSD, SUSv2, and "
"POSIX do not define any errors."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:112
msgid ""
"The type I<useconds_t> is an unsigned integer type capable of holding "
"integers in the range [0,1000000].  On the original BSD implementation, and "
"in glibc before version 2.1, the arguments to B<ualarm>()  were instead "
"typed as I<unsigned int>.  Programs will be more portable if they never "
"mention I<useconds_t> explicitly."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:126
msgid ""
"The interaction of this function with other timer functions such as "
"B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), "
"B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), "
"B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3)  is unspecified."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:134
msgid ""
"This function is obsolete.  Use B<setitimer>(2)  or POSIX interval timers "
"(B<timer_create>(2), etc.)  instead."
msgstr ""

#. type: Plain text
#: build/C/man3/ualarm.3:142
msgid ""
"B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
"B<setitimer>(2), B<usleep>(3), B<time>(7)"
msgstr ""

#. type: TH
#: build/C/man2/umask.2:34
#, no-wrap
msgid "UMASK"
msgstr ""

#. type: TH
#: build/C/man2/umask.2:34
#, no-wrap
msgid "2008-01-09"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:37
msgid "umask - set file mode creation mask"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:43
msgid "B<mode_t umask(mode_t >I<mask>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:50
msgid ""
"B<umask>()  sets the calling process's file mode creation mask (umask) to "
"I<mask> & 0777 (i.e., only the file permission bits of I<mask> are used), "
"and returns the previous value of the mask."
msgstr ""

#.  e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open()
#.  but NOT the System V IPC *get() calls
#. type: Plain text
#: build/C/man2/umask.2:63
msgid ""
"The umask is used by B<open>(2), B<mkdir>(2), and other system calls that "
"create files to modify the permissions placed on newly created files or "
"directories.  Specifically, permissions in the umask are turned off from the "
"I<mode> argument to B<open>(2)  and B<mkdir>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:68
msgid ""
"The constants that should be used to specify I<mask> are described under "
"B<stat>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:77
msgid ""
"The typical default value for the process umask is I<S_IWGRP\\ |\\ S_IWOTH> "
"(octal 022).  In the usual case where the I<mode> argument to B<open>(2)  is "
"specified as:"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:80
#, no-wrap
msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH\n"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:84
msgid ""
"(octal 0666) when creating a new file, the permissions on the resulting file "
"will be:"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:87
#, no-wrap
msgid "    S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n"
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:90
msgid "(because 0666 & ~022 = 0644; i.e., rw-r--r--)."
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:93
msgid ""
"This system call always succeeds and the previous value of the mask is "
"returned."
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:101
msgid ""
"A child process created via B<fork>(2)  inherits its parent's umask.  The "
"umask is left unchanged by B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/umask.2:116
msgid ""
"The umask setting also affects the permissions assigned to POSIX IPC objects "
"(B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and "
"UNIX domain sockets (B<unix>(7))  created by the process.  The umask does "
"not affect the permissions assigned to System V IPC objects created by the "
"process (using B<msgget>(2), B<semget>(2), B<shmget>(2))."
msgstr ""

#.  FIXME . eventually: .BR acl (5)
#. type: Plain text
#: build/C/man2/umask.2:122
msgid "B<chmod>(2), B<mkdir>(2), B<open>(2), B<stat>(2)"
msgstr ""

#. type: TH
#: build/C/man2/uname.2:25
#, no-wrap
msgid "UNAME"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:28
msgid "uname - get name and information about current kernel"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:30
msgid "B<#include E<lt>sys/utsname.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:32
msgid "B<int uname(struct utsname *>I<buf>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:40
msgid ""
"B<uname>()  returns system information in the structure pointed to by "
"I<buf>.  The I<utsname> struct is defined in I<E<lt>sys/utsname.hE<gt>>:"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:54
#, no-wrap
msgid ""
"struct utsname {\n"
"    char sysname[];    /* Operating system name (e.g., \"Linux\") */\n"
"    char nodename[];   /* Name within \"some implementation-defined\n"
"                          network\" */\n"
"    char release[];    /* OS release (e.g., \"2.6.28\") */\n"
"    char version[];    /* OS version */\n"
"    char machine[];    /* Hardware identifier */\n"
"#ifdef _GNU_SOURCE\n"
"    char domainname[]; /* NIS or YP domain name */\n"
"#endif\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:61
msgid ""
"The length of the arrays in a I<struct utsname> is unspecified (see NOTES); "
"the fields are terminated by a null byte (\\(aq\\e0\\(aq)."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:71
msgid "I<buf> is not valid."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:76
msgid "SVr4, POSIX.1-2001.  There is no B<uname>()  call in 4.3BSD."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:80
msgid "The I<domainname> member (the NIS or YP domain name) is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:92
msgid ""
"This is a system call, and the operating system presumably knows its name, "
"release and version.  It also knows what hardware it runs on.  So, four of "
"the fields of the struct are meaningful.  On the other hand, the field "
"I<nodename> is meaningless: it gives the name of the present machine in some "
"undefined network, but typically machines are in more than one network and "
"have several names.  Moreover, the kernel has no way of knowing about such "
"things, so it has to be told what to answer here.  The same holds for the "
"additional I<domainname> field."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:106
msgid ""
"To this end Linux uses the system calls B<sethostname>(2)  and "
"B<setdomainname>(2).  Note that there is no standard that says that the "
"hostname set by B<sethostname>(2)  is the same string as the I<nodename> "
"field of the struct returned by B<uname>()  (indeed, some systems allow a "
"256-byte hostname and an 8-byte nodename), but this is true on Linux.  The "
"same holds for B<setdomainname>(2)  and the I<domainname> field."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:121
msgid ""
"The length of the fields in the struct varies.  Some operating systems or "
"libraries use a hardcoded 9 or 33 or 65 or 257.  Other systems use "
"B<SYS_NMLN> or B<_SYS_NMLN> or B<UTSLEN> or B<_UTSNAME_LENGTH>.  Clearly, it "
"is a bad idea to use any of these constants; just use sizeof(...).  Often "
"257 is chosen in order to have room for an internet hostname."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:128
msgid ""
"Part of the utsname information is also accessible via "
"I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, "
"I<domainname>}."
msgstr ""

#. type: SS
#: build/C/man2/uname.2:128
#, no-wrap
msgid "Underlying kernel interface"
msgstr ""

#.  That was back before Linux 1.0
#.  That was also back before Linux 1.0
#. type: Plain text
#: build/C/man2/uname.2:155
msgid ""
"Over time, increases in the size of the I<utsname> structure have led to "
"three successive versions of B<uname>(): I<sys_olduname>()  (slot "
"I<__NR_oldolduname>), I<sys_uname>()  (slot I<__NR_olduname>), and "
"I<sys_newuname>()  (slot I<__NR_uname)>.  The first one used length 9 for "
"all fields; the second used 65; the third also uses 65 but adds the "
"I<domainname> field.  The glibc B<uname>()  wrapper function hides these "
"details from applications, invoking the most recent version of the system "
"call provided by the kernel."
msgstr ""

#. type: Plain text
#: build/C/man2/uname.2:159
msgid "B<uname>(1), B<getdomainname>(2), B<gethostname>(2)"
msgstr ""

#. type: TH
#: build/C/man2/uselib.2:31
#, no-wrap
msgid "USELIB"
msgstr ""

#. type: TH
#: build/C/man2/uselib.2:31
#, no-wrap
msgid "2005-01-09"
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:34
msgid "uselib - load shared library"
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:38
msgid "B<int uselib(const char *>I<library>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:48
msgid ""
"The system call B<uselib>()  serves to load a shared library to be used by "
"the calling process.  It is given a pathname.  The address where to load is "
"found in the library itself.  The library can have any recognized binary "
"format."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:59
msgid ""
"In addition to all of the error codes returned by B<open>(2)  and "
"B<mmap>(2), the following may also be returned:"
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:67
msgid ""
"The library specified by I<library> does not have read or execute "
"permission, or the caller does not have search permission for one of the "
"directories in the path prefix.  (See also B<path_resolution>(7).)"
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:76
msgid ""
"The file specified by I<library> is not an executable of known type, e.g., "
"does not have the correct magic numbers."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:80
msgid ""
"B<uselib>()  is Linux-specific, and should not be used in programs intended "
"to be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:85
msgid ""
"B<uselib>()  was used by early libc startup code to load the shared "
"libraries with names found in an array of names in the binary."
msgstr ""

#.  libc 4.3.1f - changelog 1993-03-02
#.  libc 4.3.4 - changelog 1993-04-21
#. type: Plain text
#: build/C/man2/uselib.2:95
msgid ""
"Since libc 4.3.2, startup code tries to prefix these names with "
"\"/usr/lib\", \"/lib\" and \"\" before giving up.  In libc 4.3.4 and later "
"these names are looked for in the directories found in B<LD_LIBRARY_PATH>, "
"and if not found there, prefixes \"/usr/lib\", \"/lib\" and \"/\" are tried."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:100
msgid ""
"From libc 4.4.4 on only the library \"/lib/ld.so\" is loaded, so that this "
"dynamic library can load the remaining libraries needed (again using this "
"call).  This is also the state of affairs in libc5."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:102
msgid "glibc2 does not use this call."
msgstr ""

#. type: Plain text
#: build/C/man2/uselib.2:112
msgid ""
"B<ar>(1), B<gcc>(1), B<ld>(1), B<ldd>(1), B<mmap>(2), B<open>(2), "
"B<dlopen>(3), B<capabilities>(7), B<ld.so>(8)"
msgstr ""

#. type: TH
#: build/C/man3/usleep.3:31
#, no-wrap
msgid "USLEEP"
msgstr ""

#. type: TH
#: build/C/man3/usleep.3:31
#, no-wrap
msgid "2010-12-03"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:34
msgid "usleep - suspend execution for microsecond intervals"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:39
#, no-wrap
msgid "B<int usleep(useconds_t >I<usec>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:47
msgid "B<usleep>():"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:73
msgid ""
"The B<usleep>()  function suspends execution of the calling thread for (at "
"least) I<usec> microseconds.  The sleep may be lengthened slightly by any "
"system activity or by the time spent processing the call or by the "
"granularity of system timers."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:75
msgid "0 on success, -1 on error."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:80
msgid "Interrupted by a signal; see B<signal>(7)."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:84
msgid ""
"I<usec> is not smaller than 1000000.  (On systems where that is considered "
"an error.)"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:91
msgid ""
"4.3BSD, POSIX.1-2001.  POSIX.1-2001 declares this function obsolete; use "
"B<nanosleep>(2)  instead.  POSIX.1-2008 removes the specification of "
"B<usleep>()."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:98
msgid ""
"On the original BSD implementation, and in glibc before version 2.2.2, the "
"return type of this function is I<void>.  The POSIX version returns I<int>, "
"and this is also the prototype used since glibc 2.2.2."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:102
msgid "Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:110
msgid ""
"The type I<useconds_t> is an unsigned integer type capable of holding "
"integers in the range [0,1000000].  Programs will be more portable if they "
"never mention this type explicitly.  Use"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:118
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
"\\&...\n"
"    unsigned int usecs;\n"
"\\&...\n"
"    usleep(usecs);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:135
msgid ""
"The interaction of this function with the B<SIGALRM> signal, and with other "
"timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), "
"B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), "
"B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), "
"B<ualarm>(3)  is unspecified."
msgstr ""

#. type: Plain text
#: build/C/man3/usleep.3:144
msgid ""
"B<alarm>(2), B<getitimer>(2), B<nanosleep>(2), B<select>(2), "
"B<setitimer>(2), B<sleep>(3), B<ualarm>(3), B<time>(7)"
msgstr ""

#. type: TH
#: build/C/man2/vfork.2:26
#, no-wrap
msgid "VFORK"
msgstr ""

#. type: TH
#: build/C/man2/vfork.2:26
#, no-wrap
msgid "2012-02-08"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:29
msgid "vfork - create a child process and block parent"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:35
msgid "B<pid_t vfork(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:42
msgid "B<vfork>():"
msgstr ""

#. type: SS
#: build/C/man2/vfork.2:61
#, no-wrap
msgid "Standard Description"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:80
msgid ""
"(From POSIX.1)  The B<vfork>()  function has the same effect as B<fork>(2), "
"except that the behavior is undefined if the process created by B<vfork>()  "
"either modifies any data other than a variable of type I<pid_t> used to "
"store the return value from B<vfork>(), or returns from the function in "
"which B<vfork>()  was called, or calls any other function before "
"successfully calling B<_exit>(2)  or one of the B<exec>(3)  family of "
"functions."
msgstr ""

#. type: SS
#: build/C/man2/vfork.2:80
#, no-wrap
msgid "Linux Description"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:87
msgid ""
"B<vfork>(), just like B<fork>(2), creates a child process of the calling "
"process.  For details and return value and errors, see B<fork>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:96
msgid ""
"B<vfork>()  is a special case of B<clone>(2).  It is used to create new "
"processes without copying the page tables of the parent process.  It may be "
"useful in performance-sensitive applications where a child is created which "
"then immediately issues an B<execve>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:113
msgid ""
"B<vfork>()  differs from B<fork>(2)  in that the calling thread is suspended "
"until the child terminates (either normally, by calling B<_exit>(2), or "
"abnormally, after delivery of a fatal signal), or it makes a call to "
"B<execve>(2).  Until that point, the child shares all memory with its "
"parent, including the stack.  The child must not return from the current "
"function or call B<exit>(3), but may call B<_exit>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:124
msgid ""
"As with B<fork>(2), the child process created by B<vfork>()  inherits copies "
"of various of the caller's process attributes (e.g., file descriptors, "
"signal dispositions, and current working directory); the B<vfork>()  call "
"differs only in the treatment of the virtual address space, as described "
"above."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:130
msgid ""
"Signals sent to the parent arrive after the child releases the parent's "
"memory (i.e., after the child terminates or calls B<execve>(2))."
msgstr ""

#. type: SS
#: build/C/man2/vfork.2:130
#, no-wrap
msgid "Historic Description"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:157
msgid ""
"Under Linux, B<fork>(2)  is implemented using copy-on-write pages, so the "
"only penalty incurred by B<fork>(2)  is the time and memory required to "
"duplicate the parent's page tables, and to create a unique task structure "
"for the child.  However, in the bad old days a B<fork>(2)  would require "
"making a complete copy of the caller's data space, often needlessly, since "
"usually immediately afterward an B<exec>(3)  is done.  Thus, for greater "
"efficiency, BSD introduced the B<vfork>()  system call, which did not fully "
"copy the address space of the parent process, but borrowed the parent's "
"memory and thread of control until a call to B<execve>(2)  or an exit "
"occurred.  The parent process was suspended while the child was using its "
"resources.  The use of B<vfork>()  was tricky: for example, not modifying "
"data in the parent process depended on knowing which variables were held in "
"a register."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:161
msgid ""
"4.3BSD; POSIX.1-2001 (but marked OBSOLETE).  POSIX.1-2008 removes the "
"specification of B<vfork>()."
msgstr ""

#.  In AIXv3.1 vfork is equivalent to fork.
#. type: Plain text
#: build/C/man2/vfork.2:172
msgid ""
"The requirements put on B<vfork>()  by the standards are weaker than those "
"put on B<fork>(2), so an implementation where the two are synonymous is "
"compliant.  In particular, the programmer cannot rely on the parent "
"remaining blocked until the child either terminates or calls B<execve>(2), "
"and cannot rely on any specific behavior with respect to shared memory."
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:191
msgid ""
"Some consider the semantics of B<vfork>()  to be an architectural blemish, "
"and the 4.2BSD man page stated: \"This system call will be eliminated when "
"proper system sharing mechanisms are implemented.  Users should not depend "
"on the memory sharing semantics of B<vfork>()  as it will, in that case, be "
"made synonymous to B<fork>(2).\" However, even though modern memory "
"management hardware has decreased the performance difference between "
"B<fork>(2)  and B<vfork>(), there are various reasons why Linux and other "
"systems have retained B<vfork>():"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:195
msgid ""
"Some performance-critical applications require the small performance "
"advantage conferred by B<vfork>()."
msgstr ""

#.  http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
#.  http://developers.sun.com/solaris/articles/subprocess/subprocess.html
#.  http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
#. type: Plain text
#: build/C/man2/vfork.2:211
msgid ""
"B<vfork>()  can be implemented on systems that lack a memory-management unit "
"(MMU), but B<fork>(2)  can't be implemented on such systems.  (POSIX.1-2008 "
"removed B<vfork>()  from the standard; the POSIX rationale for the "
"B<posix_spawn>(3)  function notes that that function, which provides "
"functionality equivalent to B<fork>(2)+B<exec>(3), is designed to be "
"implementable on systems that lack an MMU.)"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:222
msgid ""
"Fork handlers established using B<pthread_atfork>(3)  are not called when a "
"multithreaded program employing the NPTL threading library calls "
"B<vfork>().  Fork handlers are called in this case in a program using the "
"LinuxThreads threading library.  (See B<pthreads>(7)  for a description of "
"Linux threading libraries.)"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:230
msgid ""
"A call to B<vfork>()  is equivalent to calling B<clone>(2)  with I<flags> "
"specified as:"
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:232
#, no-wrap
msgid "     CLONE_VM | CLONE_VFORK | SIGCHLD\n"
msgstr ""

#.  In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
#.  present, but definitely on its way out'.
#. type: Plain text
#: build/C/man2/vfork.2:249
msgid ""
"The B<vfork>()  system call appeared in 3.0BSD.  In 4.4BSD it was made "
"synonymous to B<fork>(2)  but NetBSD introduced it again, "
"cf. http://www.netbsd.org/Documentation/kernel/vfork.html .  In Linux, it "
"has been equivalent to B<fork>(2)  until 2.2.0-pre6 or so.  Since 2.2.0-pre9 "
"(on i386, somewhat later on other architectures) it is an independent system "
"call.  Support was added in glibc 2.0.112."
msgstr ""

#
#.  As far as I can tell, the following is not true in 2.6.19:
#.  Currently (Linux 2.3.25),
#.  .BR strace (1)
#.  cannot follow
#.  .BR vfork ()
#.  and requires a kernel patch.
#. type: Plain text
#: build/C/man2/vfork.2:270
msgid ""
"Details of the signal handling are obscure and differ between systems.  The "
"BSD man page states: \"To avoid a possible deadlock situation, processes "
"that are children in the middle of a B<vfork>()  are never sent B<SIGTTOU> "
"or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input "
"attempts result in an end-of-file indication.\""
msgstr ""

#. type: Plain text
#: build/C/man2/vfork.2:276
msgid "B<clone>(2), B<execve>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
msgstr ""

#. type: TH
#: build/C/man2/vhangup.2:27
#, no-wrap
msgid "VHANGUP"
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:30
msgid "vhangup - virtually hangup the current tty"
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:34
msgid "B<int vhangup(void);>"
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:43
msgid "B<vhangup>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:49
msgid ""
"B<vhangup>()  simulates a hangup on the current terminal.  This call "
"arranges for other users to have a ``clean'' tty at login time."
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:62
msgid ""
"The calling process has insufficient privilege to call B<vhangup>(); the "
"B<CAP_SYS_TTY_CONFIG> capability is required."
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:65
msgid ""
"This call is Linux-specific, and should not be used in programs intended to "
"be portable."
msgstr ""

#. type: Plain text
#: build/C/man2/vhangup.2:68
msgid "B<capabilities>(7), B<init>(8)"
msgstr ""
