canceled upon
.BR _exit (),
is implementation-dependent.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
In glibc up to version 2.3, the
.BR _exit ()
wrapper function invoked the kernel system call of the same name.
Similar problems can occur to FUSE mounts.
.\"
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The raw
.BR faccessat ()
system call takes only the first three arguments.
.\" \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).
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The return value described above for
.BR brk ()
is the behavior provided by the glibc wrapper function for the Linux
.BR fchmodat ():
POSIX.1-2008.
.SH NOTES
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The GNU C library
.BR fchmodat ()
wrapper function implements the POSIX-specified
Memory writes or file mappings/unmappings performed by one of the
processes do not affect the other, as with
.BR fork (2).
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The raw
.BR clone ()
system call corresponds more closely to
.I HZ
value is 1000,
this means that timeouts greater than 35.79 minutes are treated as infinity.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The raw
.BR epoll_pwait ()
system call has a sixth argument,
.BR poll (2),
or
.BR epoll (7).)
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
There are two underlying Linux system calls:
.BR eventfd ()
and the more recent
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.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
Since version 2.3.3,
.\" nptl/sysdeps/unix/sysv/linux/fork.c
rather than invoking the kernel's
.BR getgroups ()
wrapper function transparently deals with the variation across kernel versions.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the kernel level, user IDs and group IDs are a per-thread attribute.
However, POSIX requires that all threads in a process
share the same credentials.
.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).
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The GNU C library does not employ the
.BR gethostname ()
system call; instead, it implements
.BR getppid ()
returns 0.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
Since glibc version 2.3.4,
the glibc wrapper function for
.BR getpid ()
defined in
.IR <sys/time.h> .)
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
Within the kernel, nice values are actually represented
using the range 40..1
(since negative numbers are error codes) and these are the values
while POSIX documents
.B EPERM
only when the permission check failed for all target processes.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux,
.BR killpg ()
is implemented as a library function that makes the call
and
.BR MAP_STACK .
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
This page describes the interface provided by the glibc
.BR mmap ()
wrapper function.
.BR poll ()
is closed in another thread, see
.BR select (2).
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The Linux
.BR ppoll ()
system call modifies its
or
.BR fdatasync (2)
first.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The name of the wrapper function in the C library is
.BR posix_fadvise ().
The underlying system call is called
They allow multiple threads to perform I/O on the same file descriptor
without being affected by changes to the file offset by other threads.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux, the underlying system calls were renamed
in kernel 2.6:
.BR pread ()
In any case, use of
.BR ptrace ()
is highly specific to the operating system and architecture.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the system call level, the
.BR PTRACE_PEEKTEXT ,
.BR PTRACE_PEEKDATA ,
Back in Linux 2.0 days, this limit was 16.
\"
\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The raw
.BR preadv ()
and
These arguments contain, respectively, the low order and high order 32 bits of
.IR offset .
-.SS Historical C library/kernel ABI differences
+.SS Historical C library/kernel differences
To deal with the fact that
.B IOV_MAX
was so low on early versions of Linux,
inherits its parent's CPU affinity mask.
The affinity mask is preserved across an
.BR execve (2).
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
This manual page describes the glibc interface for the CPU affinity calls.
The actual system call interface is slightly different, with the
.I mask
In summary, any application that relies on a particular behavior
in this scenario must be considered buggy.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The
.BR pselect ()
interface described in this page is implemented by glibc.
.RI ( egid )
to be the same value as the current effective user (group) ID,
and some implementations do not permit this.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux,
.BR seteuid ()
and
.BR setgid ()
wrapper function transparently deals with the variation across kernel versions.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the kernel level, user IDs and group IDs are a per-thread attribute.
However, POSIX requires that all threads in a process
share the same credentials.
.BR setresgid ()
wrapper functions transparently deal with the variations across kernel versions.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the kernel level, user IDs and group IDs are a per-thread attribute.
However, POSIX requires that all threads in a process
share the same credentials.
.BR setregid ()
wrapper functions transparently deal with the variations across kernel versions.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the kernel level, user IDs and group IDs are a per-thread attribute.
However, POSIX requires that all threads in a process
share the same credentials.
.BR setuid ()
wrapper function transparently deals with the variation across kernel versions.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
At the kernel level, user IDs and group IDs are a per-thread attribute.
However, POSIX requires that all threads in a process
share the same credentials.
for a list of the async-signal-safe functions that can be
safely called inside from inside a signal handler.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The glibc wrapper function for
.BR sigaction ()
gives an error
.I mask
of more than one of the file descriptors, then occurrences
of that signal can be read (once) from any one of the descriptors.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The underlying Linux system call requires an additional argument,
.IR "size_t sizemask" ,
which specifies the size of the
the pending signal set is preserved across an
.BR execve (2).
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The original Linux system call was named
.BR sigpending ().
However, with the addition of real-time signals in Linux 2.2,
.BR sigsetops (3)
for details on manipulating signal sets.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The glibc wrapper function for
.BR sigprocmask ()
silently ignores attempts to block the two real-time signals that
.BR sigreturn ()
once the handler returns).
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The original Linux system call was named
.BR sigreturn ().
However, with the addition of real-time signals in Linux 2.2,
.BR sigsetops (3)
for details on manipulating signal sets.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The original Linux system call was named
.BR sigsuspend ().
However, with the addition of real-time signals in Linux 2.2,
.BR sigwaitinfo (),
and indeed this is what is done on Linux.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux,
.BR sigwaitinfo ()
is a library function implemented on top of
Nanosecond timestamps are not supported in ext2, ext3, and Reiserfs.
On filesystems that do not support subsecond timestamps,
the nanosecond fields are returned with the value 0.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
Over time, increases in the size of the
.I stat
structure have led to three successive versions of
.BR proc (5)
for further information.
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
Part of the implementation of the POSIX timers API is provided by glibc.
.\" See nptl/sysdeps/unix/sysv/linux/timer_create.c
In particular:
.IR osrelease ,
.IR version ,
.IR domainname }.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
.LP
Over time, increases in the size of the
.I utsname
Do not wait for children of other threads in
the same thread group.
This was the default before Linux 2.4.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
.BR wait ()
is actually a library function that (in glibc) is implemented as a call to
.BR wait4 (2).
.I struct timeval
defined in
.IR <sys/time.h> .)
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux,
.BR wait3 ()
is a library function implemented on top of the
POSIX.1-2001.
.SH NOTES
.\"
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
In the glibc implementation, the
.BR mq_notify ()
library function is implemented on top of the system call of the same name.
.SH CONFORMING TO
POSIX.1-2001.
.SH NOTES
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
The
.BR mq_open ()
library function is implemented on top of a system call of the same name.
.BR sigwait (3)),
then at least some signal must be delivered to this thread before this
function returns.
-.SS C library/kernel ABI differences
+.SS C library/kernel differences
On Linux,
.BR sigqueue ()
is implemented using the
subsections (\fBSS\fP) named \fILinux Notes\fP and \fIGlibc Notes\fP.
In Section 2, use the heading
-.I "C library/kernel ABI differences"
+.I "C library/kernel differences"
to mark off notes that describe the differences (if any) between
the C library wrapper function for a system call and
the raw system call interface provided by the kernel.