From 399644e47874bff147afb19c89228901ac39340e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 21:40:15 +0200 Subject: Adding upstream version 6.05.01. Signed-off-by: Daniel Baumann --- man3type/FILE.3type | 36 ++++++ man3type/aiocb.3type | 42 +++++++ man3type/blkcnt_t.3type | 30 +++++ man3type/blksize_t.3type | 30 +++++ man3type/cc_t.3type | 35 ++++++ man3type/clock_t.3type | 37 ++++++ man3type/clockid_t.3type | 28 +++++ man3type/dev_t.3type | 33 +++++ man3type/div_t.3type | 58 +++++++++ man3type/double_t.3type | 56 +++++++++ man3type/epoll_data.3type | 1 + man3type/epoll_data_t.3type | 1 + man3type/epoll_event.3type | 55 +++++++++ man3type/fenv_t.3type | 35 ++++++ man3type/fexcept_t.3type | 1 + man3type/float_t.3type | 1 + man3type/gid_t.3type | 1 + man3type/id_t.3type | 110 +++++++++++++++++ man3type/imaxdiv_t.3type | 1 + man3type/in6_addr.3type | 1 + man3type/in_addr.3type | 1 + man3type/in_addr_t.3type | 1 + man3type/in_port_t.3type | 1 + man3type/int16_t.3type | 1 + man3type/int32_t.3type | 1 + man3type/int64_t.3type | 1 + man3type/int8_t.3type | 1 + man3type/intN_t.3type | 177 +++++++++++++++++++++++++++ man3type/intmax_t.3type | 97 +++++++++++++++ man3type/intptr_t.3type | 107 ++++++++++++++++ man3type/iovec.3type | 49 ++++++++ man3type/itimerspec.3type | 33 +++++ man3type/lconv.3type | 56 +++++++++ man3type/ldiv_t.3type | 1 + man3type/lldiv_t.3type | 1 + man3type/loff_t.3type | 1 + man3type/mode_t.3type | 40 ++++++ man3type/off64_t.3type | 1 + man3type/off_t.3type | 92 ++++++++++++++ man3type/pid_t.3type | 1 + man3type/printf_arginfo_size_function.3type | 1 + man3type/printf_function.3type | 1 + man3type/printf_info.3type | 1 + man3type/printf_va_arg_function.3type | 1 + man3type/ptrdiff_t.3type | 47 ++++++++ man3type/regex_t.3type | 1 + man3type/regmatch_t.3type | 1 + man3type/regoff_t.3type | 1 + man3type/sa_family_t.3type | 1 + man3type/sigevent.3type | 1 + man3type/siginfo_t.3type | 1 + man3type/sigset_t.3type | 1 + man3type/sigval.3type | 1 + man3type/size_t.3type | 181 ++++++++++++++++++++++++++++ man3type/sockaddr.3type | 154 +++++++++++++++++++++++ man3type/sockaddr_in.3type | 1 + man3type/sockaddr_in6.3type | 1 + man3type/sockaddr_storage.3type | 1 + man3type/sockaddr_un.3type | 1 + man3type/socklen_t.3type | 1 + man3type/speed_t.3type | 1 + man3type/ssize_t.3type | 1 + man3type/stat.3type | 162 +++++++++++++++++++++++++ man3type/suseconds_t.3type | 1 + man3type/tcflag_t.3type | 1 + man3type/time_t.3type | 109 +++++++++++++++++ man3type/timer_t.3type | 34 ++++++ man3type/timespec.3type | 60 +++++++++ man3type/timeval.3type | 43 +++++++ man3type/tm.3type | 112 +++++++++++++++++ man3type/uid_t.3type | 1 + man3type/uint16_t.3type | 1 + man3type/uint32_t.3type | 1 + man3type/uint64_t.3type | 1 + man3type/uint8_t.3type | 1 + man3type/uintN_t.3type | 1 + man3type/uintmax_t.3type | 1 + man3type/uintptr_t.3type | 1 + man3type/useconds_t.3type | 1 + man3type/va_list.3type | 44 +++++++ man3type/void.3type | 76 ++++++++++++ 81 files changed, 2307 insertions(+) create mode 100644 man3type/FILE.3type create mode 100644 man3type/aiocb.3type create mode 100644 man3type/blkcnt_t.3type create mode 100644 man3type/blksize_t.3type create mode 100644 man3type/cc_t.3type create mode 100644 man3type/clock_t.3type create mode 100644 man3type/clockid_t.3type create mode 100644 man3type/dev_t.3type create mode 100644 man3type/div_t.3type create mode 100644 man3type/double_t.3type create mode 100644 man3type/epoll_data.3type create mode 100644 man3type/epoll_data_t.3type create mode 100644 man3type/epoll_event.3type create mode 100644 man3type/fenv_t.3type create mode 100644 man3type/fexcept_t.3type create mode 100644 man3type/float_t.3type create mode 100644 man3type/gid_t.3type create mode 100644 man3type/id_t.3type create mode 100644 man3type/imaxdiv_t.3type create mode 100644 man3type/in6_addr.3type create mode 100644 man3type/in_addr.3type create mode 100644 man3type/in_addr_t.3type create mode 100644 man3type/in_port_t.3type create mode 100644 man3type/int16_t.3type create mode 100644 man3type/int32_t.3type create mode 100644 man3type/int64_t.3type create mode 100644 man3type/int8_t.3type create mode 100644 man3type/intN_t.3type create mode 100644 man3type/intmax_t.3type create mode 100644 man3type/intptr_t.3type create mode 100644 man3type/iovec.3type create mode 100644 man3type/itimerspec.3type create mode 100644 man3type/lconv.3type create mode 100644 man3type/ldiv_t.3type create mode 100644 man3type/lldiv_t.3type create mode 100644 man3type/loff_t.3type create mode 100644 man3type/mode_t.3type create mode 100644 man3type/off64_t.3type create mode 100644 man3type/off_t.3type create mode 100644 man3type/pid_t.3type create mode 100644 man3type/printf_arginfo_size_function.3type create mode 100644 man3type/printf_function.3type create mode 100644 man3type/printf_info.3type create mode 100644 man3type/printf_va_arg_function.3type create mode 100644 man3type/ptrdiff_t.3type create mode 100644 man3type/regex_t.3type create mode 100644 man3type/regmatch_t.3type create mode 100644 man3type/regoff_t.3type create mode 100644 man3type/sa_family_t.3type create mode 100644 man3type/sigevent.3type create mode 100644 man3type/siginfo_t.3type create mode 100644 man3type/sigset_t.3type create mode 100644 man3type/sigval.3type create mode 100644 man3type/size_t.3type create mode 100644 man3type/sockaddr.3type create mode 100644 man3type/sockaddr_in.3type create mode 100644 man3type/sockaddr_in6.3type create mode 100644 man3type/sockaddr_storage.3type create mode 100644 man3type/sockaddr_un.3type create mode 100644 man3type/socklen_t.3type create mode 100644 man3type/speed_t.3type create mode 100644 man3type/ssize_t.3type create mode 100644 man3type/stat.3type create mode 100644 man3type/suseconds_t.3type create mode 100644 man3type/tcflag_t.3type create mode 100644 man3type/time_t.3type create mode 100644 man3type/timer_t.3type create mode 100644 man3type/timespec.3type create mode 100644 man3type/timeval.3type create mode 100644 man3type/tm.3type create mode 100644 man3type/uid_t.3type create mode 100644 man3type/uint16_t.3type create mode 100644 man3type/uint32_t.3type create mode 100644 man3type/uint64_t.3type create mode 100644 man3type/uint8_t.3type create mode 100644 man3type/uintN_t.3type create mode 100644 man3type/uintmax_t.3type create mode 100644 man3type/uintptr_t.3type create mode 100644 man3type/useconds_t.3type create mode 100644 man3type/va_list.3type create mode 100644 man3type/void.3type (limited to 'man3type') diff --git a/man3type/FILE.3type b/man3type/FILE.3type new file mode 100644 index 0000000..6edeeb4 --- /dev/null +++ b/man3type/FILE.3type @@ -0,0 +1,36 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH FILE 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +FILE \- input/output stream +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " FILE; +.fi +.SH DESCRIPTION +An object type used for streams. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR fclose (3), +.BR flockfile (3), +.BR fopen (3), +.BR fprintf (3), +.BR fread (3), +.BR fscanf (3), +.BR stdin (3), +.BR stdio (3) diff --git a/man3type/aiocb.3type b/man3type/aiocb.3type new file mode 100644 index 0000000..45739e2 --- /dev/null +++ b/man3type/aiocb.3type @@ -0,0 +1,42 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH aiocb 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +aiocb \- asynchronous I/O control block +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct aiocb { +.BR " int aio_fildes;" " /* File descriptor */" +.BR " off_t aio_offset;" " /* File offset */" +.BR " volatile void *aio_buf;" " /* Location of buffer */" +.BR " size_t aio_nbytes;" " /* Length of transfer */" +.BR " int aio_reqprio;" " /* Request priority offset */" +.BR " struct sigevent aio_sigevent;" " /* Signal number and value */" +.BR " int aio_lio_opcode;" " /* Operation to be performed */" +.B }; +.EE +.SH DESCRIPTION +For further information about this structure, see +.BR aio (7). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH SEE ALSO +.BR aio_cancel (3), +.BR aio_error (3), +.BR aio_fsync (3), +.BR aio_read (3), +.BR aio_return (3), +.BR aio_suspend (3), +.BR aio_write (3), +.BR lio_listio (3) diff --git a/man3type/blkcnt_t.3type b/man3type/blkcnt_t.3type new file mode 100644 index 0000000..5cdacdc --- /dev/null +++ b/man3type/blkcnt_t.3type @@ -0,0 +1,30 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH blkcnt_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +blkcnt_t \- file block counts +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " blkcnt_t; +.fi +.SH DESCRIPTION +Used for file block counts. +It is a signed integer type. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR stat (3type) diff --git a/man3type/blksize_t.3type b/man3type/blksize_t.3type new file mode 100644 index 0000000..5406a88 --- /dev/null +++ b/man3type/blksize_t.3type @@ -0,0 +1,30 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH blksize_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +blksize_t \- file block sizes +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " blksize_t; +.fi +.SH DESCRIPTION +Used for file block sizes. +It is a signed integer type. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR stat (3type) diff --git a/man3type/cc_t.3type b/man3type/cc_t.3type new file mode 100644 index 0000000..33d5829 --- /dev/null +++ b/man3type/cc_t.3type @@ -0,0 +1,35 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH cc_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +cc_t, speed_t, tcflag_t \- terminal special characters, baud rates, modes +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " cc_t; +.BR typedef " /* ... */ " speed_t; +.BR typedef " /* ... */ " tcflag_t; +.fi +.SH DESCRIPTION +.I cc_t +is used for terminal special characters, +.I speed_t +for baud rates, and +.I tcflag_t +for modes. +.PP +All are unsigned integer types. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH SEE ALSO +.BR termios (3) diff --git a/man3type/clock_t.3type b/man3type/clock_t.3type new file mode 100644 index 0000000..e1346e3 --- /dev/null +++ b/man3type/clock_t.3type @@ -0,0 +1,37 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH clock_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +clock_t \- system time +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " clock_t; +.fi +.SH DESCRIPTION +Used for system time in clock ticks or +.B CLOCKS_PER_SEC +(defined in +.IR ). +According to POSIX, +it is an integer type or a real-floating type. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.SH NOTES +The following headers also provide this type: +.I +and +.IR . +.SH SEE ALSO +.BR times (2), +.BR clock (3) diff --git a/man3type/clockid_t.3type b/man3type/clockid_t.3type new file mode 100644 index 0000000..bc9a3b8 --- /dev/null +++ b/man3type/clockid_t.3type @@ -0,0 +1,28 @@ +.TH clockid_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +clockid_t \- clock ID for the clock and timer functions +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " clockid_t; +.fi +.SH DESCRIPTION +Used for clock ID type in the clock and timer functions. +It is defined as an arithmetic type. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR clock_adjtime (2), +.BR clock_getres (2), +.BR clock_nanosleep (2), +.BR timer_create (2), +.BR clock_getcpuclockid (3) diff --git a/man3type/dev_t.3type b/man3type/dev_t.3type new file mode 100644 index 0000000..e4c4ae9 --- /dev/null +++ b/man3type/dev_t.3type @@ -0,0 +1,33 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH dev_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +dev_t \- device ID +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " dev_t; +.fi +.SH DESCRIPTION +Used for device IDs. +It is an integer type. +For further details of this type, see +.BR makedev (3). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR mknod (2), +.BR stat (3type) diff --git a/man3type/div_t.3type b/man3type/div_t.3type new file mode 100644 index 0000000..f0bce13 --- /dev/null +++ b/man3type/div_t.3type @@ -0,0 +1,58 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH div_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +div_t, ldiv_t, lldiv_t, imaxdiv_t \- +quotient and remainder of an integer division +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B typedef struct { +.BR " int quot;" " /* Quotient */" +.BR " int rem;" " /* Remainder */" +.B } div_t; +.PP +.B typedef struct { +.BR " long quot;" " /* Quotient */" +.BR " long rem;" " /* Remainder */" +.B } ldiv_t; +.PP +.B typedef struct { +.BR " long long quot;" " /* Quotient */" +.BR " long long rem;" " /* Remainder */" +.B } lldiv_t; +.PP +.B #include +.PP +.B typedef struct { +.BR " intmax_t quot;" " /* Quotient */" +.BR " intmax_t rem;" " /* Remainder */" +.B } imaxdiv_t; +.EE +.SH DESCRIPTION +.RI [[ l ] l ] div_t +is the type of the value returned by the +.RB [[ l ] l ] div (3) +function. +.PP +.I imaxdiv_t +is the type of the value returned by the +.BR imaxdiv (3) +function. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.SH SEE ALSO +.BR div (3), +.BR imaxdiv (3), +.BR ldiv (3), +.BR lldiv (3) diff --git a/man3type/double_t.3type b/man3type/double_t.3type new file mode 100644 index 0000000..ca200af --- /dev/null +++ b/man3type/double_t.3type @@ -0,0 +1,56 @@ +'\" t +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH double_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +float_t, double_t \- most efficient floating types +.SH LIBRARY +Math library +.RI ( libm ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " float_t; +.BR typedef " /* ... */ " double_t; +.fi +.SH DESCRIPTION +The implementation's most efficient floating types at least as wide as +.I float +and +.I double +respectively. +Their type depends on the value of the macro +.B FLT_EVAL_METHOD +(defined in +.IR ): +.PP +.TS +lB rI rI. +FLT_EVAL_METHOD float_t double_t +.T& +n rI rI. +_ +0 float double +1 double double +2 long double long double +.TE +.PP +For other values of +.BR FLT_EVAL_METHOD , +the types of +.I float_t +and +.I double_t +are implementation-defined. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.SH SEE ALSO +.BR float.h (0p), +.BR math.h (0p) diff --git a/man3type/epoll_data.3type b/man3type/epoll_data.3type new file mode 100644 index 0000000..033a55f --- /dev/null +++ b/man3type/epoll_data.3type @@ -0,0 +1 @@ +.so man3type/epoll_event.3type diff --git a/man3type/epoll_data_t.3type b/man3type/epoll_data_t.3type new file mode 100644 index 0000000..033a55f --- /dev/null +++ b/man3type/epoll_data_t.3type @@ -0,0 +1 @@ +.so man3type/epoll_event.3type diff --git a/man3type/epoll_event.3type b/man3type/epoll_event.3type new file mode 100644 index 0000000..0a9fa74 --- /dev/null +++ b/man3type/epoll_event.3type @@ -0,0 +1,55 @@ +.\" Copyright (c) 2022 by Alejandro Colomar +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH epoll_event 3type 2023-07-08 "Linux man-pages 6.05.01" +.SH NAME +epoll_event, epoll_data, epoll_data_t +\- epoll event +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct epoll_event { +.BR " uint32_t events;" " /* Epoll events */" +.BR " epoll_data_t data;" " /* User data variable */" +.B }; +.PP +.B union epoll_data { +.B " void *ptr;" +.B " int fd;" +.B " uint32_t u32;" +.B " uint64_t u64;" +.B }; +.PP +.B "typedef union epoll_data epoll_data_t;" +.EE +.SH DESCRIPTION +The +.I epoll_event +structure specifies data that the kernel should save and +return when the corresponding file descriptor becomes ready. +.SH VERSIONS +.SS C library/kernel differences +The Linux kernel headers also provide this type, +with a slightly different definition: +.PP +.in +4n +.EX +#include +\& +struct epoll_event { + __poll_t events; + __u64 data; +}; +.EE +.in +.SH STANDARDS +Linux. +.SH SEE ALSO +.BR epoll_wait (2), +.BR epoll_ctl (2) diff --git a/man3type/fenv_t.3type b/man3type/fenv_t.3type new file mode 100644 index 0000000..95e036e --- /dev/null +++ b/man3type/fenv_t.3type @@ -0,0 +1,35 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH fenv_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +fenv_t, fexcept_t \- floating-point environment +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " fenv_t; +.BR typedef " /* ... */ " fexcept_t; +.fi +.SH DESCRIPTION +.I fenv_t +represents the entire floating-point environment, +including control modes and status flags. +.PP +.I fexcept_t +represents the floating-point status flags collectively. +.PP +For further details see +.BR fenv (3). +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.SH SEE ALSO +.BR fenv (3) diff --git a/man3type/fexcept_t.3type b/man3type/fexcept_t.3type new file mode 100644 index 0000000..5bedba0 --- /dev/null +++ b/man3type/fexcept_t.3type @@ -0,0 +1 @@ +.so man3type/fenv_t.3type diff --git a/man3type/float_t.3type b/man3type/float_t.3type new file mode 100644 index 0000000..104734c --- /dev/null +++ b/man3type/float_t.3type @@ -0,0 +1 @@ +.so man3type/double_t.3type diff --git a/man3type/gid_t.3type b/man3type/gid_t.3type new file mode 100644 index 0000000..52bae74 --- /dev/null +++ b/man3type/gid_t.3type @@ -0,0 +1 @@ +.so man3type/id_t.3type diff --git a/man3type/id_t.3type b/man3type/id_t.3type new file mode 100644 index 0000000..9b30e47 --- /dev/null +++ b/man3type/id_t.3type @@ -0,0 +1,110 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH id_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +pid_t, uid_t, gid_t, id_t \- process/user/group identifier +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " pid_t; +.BR typedef " /* ... */ " uid_t; +.BR typedef " /* ... */ " gid_t; +.BR typedef " /* ... */ " id_t; +.fi +.SH DESCRIPTION +.I pid_t +is a type used for storing process IDs, process group IDs, and session IDs. +It is a signed integer type. +.PP +.I uid_t +is a type used to hold user IDs. +It is an integer type. +.PP +.I gid_t +is a type used to hold group IDs. +It is an integer type. +.PP +.I id_t +is a type used to hold a general identifier. +It is an integer type that can be used to contain a +.IR pid_t , +.IR uid_t , +or +.IR gid_t . +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following headers also provide +.IR pid_t : +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.PP +The following headers also provide +.IR uid_t : +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.PP +The following headers also provide +.IR gid_t : +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.PP +The following header also provides +.IR id_t : +.IR . +.SH SEE ALSO +.BR chown (2), +.BR fork (2), +.BR getegid (2), +.BR geteuid (2), +.BR getgid (2), +.BR getgroups (2), +.BR getpgid (2), +.BR getpid (2), +.BR getppid (2), +.BR getpriority (2), +.BR getpwnam (3), +.BR getresgid (2), +.BR getresuid (2), +.BR getsid (2), +.BR gettid (2), +.BR getuid (2), +.BR kill (2), +.BR pidfd_open (2), +.BR sched_setscheduler (2), +.BR waitid (2), +.BR getgrnam (3), +.BR sigqueue (3), +.BR credentials (7) diff --git a/man3type/imaxdiv_t.3type b/man3type/imaxdiv_t.3type new file mode 100644 index 0000000..3ab8f34 --- /dev/null +++ b/man3type/imaxdiv_t.3type @@ -0,0 +1 @@ +.so man3type/div_t.3type diff --git a/man3type/in6_addr.3type b/man3type/in6_addr.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/in6_addr.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/in_addr.3type b/man3type/in_addr.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/in_addr.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/in_addr_t.3type b/man3type/in_addr_t.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/in_addr_t.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/in_port_t.3type b/man3type/in_port_t.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/in_port_t.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/int16_t.3type b/man3type/int16_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/int16_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/int32_t.3type b/man3type/int32_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/int32_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/int64_t.3type b/man3type/int64_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/int64_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/int8_t.3type b/man3type/int8_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/int8_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/intN_t.3type b/man3type/intN_t.3type new file mode 100644 index 0000000..56cd445 --- /dev/null +++ b/man3type/intN_t.3type @@ -0,0 +1,177 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH intN_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +intN_t, int8_t, int16_t, int32_t, int64_t, +uintN_t, uint8_t, uint16_t, uint32_t, uint64_t +\- fixed-width basic integer types +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " int8_t; +.BR typedef " /* ... */ " int16_t; +.BR typedef " /* ... */ " int32_t; +.BR typedef " /* ... */ " int64_t; +.PP +.BR typedef " /* ... */ " uint8_t; +.BR typedef " /* ... */ " uint16_t; +.BR typedef " /* ... */ " uint32_t; +.BR typedef " /* ... */ " uint64_t; +.PP +.B "#define INT8_WIDTH 8" +.B "#define INT16_WIDTH 16" +.B "#define INT32_WIDTH 32" +.B "#define INT64_WIDTH 64" +.PP +.B "#define UINT8_WIDTH 8" +.B "#define UINT16_WIDTH 16" +.B "#define UINT32_WIDTH 32" +.B "#define UINT64_WIDTH 64" +.PP +.BR "#define INT8_MAX " "/* 2**(INT8_WIDTH - 1) - 1 */" +.BR "#define INT16_MAX " "/* 2**(INT16_WIDTH - 1) - 1 */" +.BR "#define INT32_MAX " "/* 2**(INT32_WIDTH - 1) - 1 */" +.BR "#define INT64_MAX " "/* 2**(INT64_WIDTH - 1) - 1 */" +.PP +.BR "#define INT8_MIN " "/* - 2**(INT8_WIDTH - 1) */" +.BR "#define INT16_MIN " "/* - 2**(INT16_WIDTH - 1) */" +.BR "#define INT32_MIN " "/* - 2**(INT32_WIDTH - 1) */" +.BR "#define INT64_MIN " "/* - 2**(INT64_WIDTH - 1) */" +.PP +.BR "#define UINT8_MAX " "/* 2**INT8_WIDTH - 1 */" +.BR "#define UINT16_MAX " "/* 2**INT16_WIDTH - 1 */" +.BR "#define UINT32_MAX " "/* 2**INT32_WIDTH - 1 */" +.BR "#define UINT64_MAX " "/* 2**INT64_WIDTH - 1 */" +.PP +.BI "#define INT8_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define INT16_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define INT32_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define INT64_C(" c ") " c " ## " "\fR/* ... */\fP" +.PP +.BI "#define UINT8_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define UINT16_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define UINT32_C(" c ") " c " ## " "\fR/* ... */\fP" +.BI "#define UINT64_C(" c ") " c " ## " "\fR/* ... */\fP" +.fi +.SH DESCRIPTION +.IR int N _t +are +signed integer types +of a fixed width of exactly N bits, +.I N +being the value specified in its type name. +They are be capable of storing values in the range +.RB [ INT \fIN\fP _MIN , +.BR INT \fIN\fP _MAX ], +substituting +.I N +by the appropriate number. +.PP +.IR uint N _t +are +unsigned integer types +of a fixed width of exactly N bits, +N being the value specified in its type name. +They are capable of storing values in the range +.RB [ 0 , +.BR UINT \fIN\fP _MAX ], +substituting +.I N +by the appropriate number. +.PP +According to POSIX, +.RI [ u ] int8_t , +.RI [ u ] int16_t , +and +.RI [ u ] int32_t +are required; +.RI [ u ] int64_t +are only required in implementations that provide integer types with width 64; +and all other types of this form are optional. +.PP +The macros +.RB [ U ] INT \fIN\fP _WIDTH +expand to the width in bits of these types +.RI ( N ). +.PP +The macros +.RB [ U ] INT \fIN\fP _MAX +expand to the maximum value that these types can hold. +.PP +The macros +.BI INT N _MIN +expand to the minimum value that these types can hold. +.PP +The macros +.RB [ U ] INT \fIN\fP _C () +expand their argument to an integer constant of type +.RI [ u ] int N _t . +.PP +The length modifiers for the +.RI [ u ] int N _t +types for the +.BR printf (3) +family of functions +are expanded by macros of the forms +.BR PRId \fIN\fP, +.BR PRIi \fIN\fP, +.BR PRIu \fIN\fP, +and +.BI PRIx N +(defined in +.IR ); +resulting for example in +.B %"PRId64" +or +.B %"PRIi64" +for printing +.I int64_t +values. +The length modifiers for the +.RI [ u ] int N _t +types for the +.BR scanf (3) +family of functions +are expanded by macros of the forms +.BR SCNd \fIN\fP, +.BR SCNi \fIN\fP, +.BR SCNu \fIN\fP, +and +.BI SCNx N, +(defined in +.IR ); +resulting for example in +.B %"SCNu8" +or +.B %"SCNx8" +for scanning +.I uint8_t +values. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.PP +The +.RB [ U ] INT \fIN\fP _WIDTH +macros were added in C23. +.SH NOTES +The following header also provides these types: +.IR . +.I +also provides +.I uint16_t +and +.IR uint32_t . +.SH SEE ALSO +.BR intmax_t (3type), +.BR intptr_t (3type), +.BR printf (3) diff --git a/man3type/intmax_t.3type b/man3type/intmax_t.3type new file mode 100644 index 0000000..9048e63 --- /dev/null +++ b/man3type/intmax_t.3type @@ -0,0 +1,97 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH intmax_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +intmax_t, uintmax_t \- greatest-width basic integer types +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " intmax_t; +.BR typedef " /* ... */ " uintmax_t; +.PP +.BR "#define INTMAX_WIDTH " "/* ... */" +.B "#define UINTMAX_WIDTH INTMAX_WIDTH" +.PP +.BR "#define INTMAX_MAX " "/* 2**(INTMAX_WIDTH - 1) - 1 */" +.BR "#define INTMAX_MIN " "/* - 2**(INTMAX_WIDTH - 1) */" +.BR "#define UINTMAX_MAX " "/* 2**UINTMAX_WIDTH - 1 */" +.PP +.BI "#define INTMAX_C(" c ) " c " ## " \fR/* ... */\fP" +.BI "#define UINTMAX_C(" c ) " c " ## " \fR/* ... */\fP" +.fi +.SH DESCRIPTION +.I intmax_t +is a signed integer type +capable of representing any value of any basic signed integer type +supported by the implementation. +It is capable of storing values in the range +.RB [ INTMAX_MIN , +.BR INTMAX_MAX ]. +.PP +.I uintmax_t +is an unsigned integer type +capable of representing any value of any basic unsigned integer type +supported by the implementation. +It is capable of storing values in the range +.RB [ 0 , +.BR UINTMAX_MAX ]. +.PP +The macros +.RB [ U ] INTMAX_WIDTH +expand to the width in bits of these types. +.PP +The macros +.RB [ U ] INTMAX_MAX +expand to the maximum value that these types can hold. +.PP +The macro +.B INTMAX_MIN +expands to the minimum value that +.I intmax_t +can hold. +.PP +The macros +.RB [ U ] INTMAX_C () +expand their argument to an integer constant of type +.RI [ u ] intmax_t . +.PP +The length modifier for +.RI [ u ] intmax_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR j ; +resulting commonly in +.BR %jd , +.BR %ji , +.BR %ju , +or +.B %jx +for printing +.RI [ u ] intmax_t +values. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.SH NOTES +The following header also provides these types: +.IR . +.SH BUGS +These types may not be as large as extended integer types, such as +.I __int128 +.SH SEE ALSO +.BR int64_t (3type), +.BR intptr_t (3type), +.BR printf (3), +.BR strtoimax (3) diff --git a/man3type/intptr_t.3type b/man3type/intptr_t.3type new file mode 100644 index 0000000..1bec12f --- /dev/null +++ b/man3type/intptr_t.3type @@ -0,0 +1,107 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH intptr_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +intptr_t, uintptr_t \- integer types wide enough to hold pointers +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " intptr_t; +.BR typedef " /* ... */ " uintptr_t; +.PP +.BR "#define INTPTR_WIDTH" " /* ... */" +.B #define UINTPTR_WIDTH INTPTR_WIDTH +.PP +.BR "#define INTPTR_MAX" " /* 2**(INTPTR_WIDTH \- 1) \- 1 */" +.BR "#define INTPTR_MIN" " /* \- 2**(INTPTR_WIDTH \- 1) */" +.BR "#define UINTPTR_MAX" " /* 2**UINTPTR_WIDTH \- 1 */" +.fi +.SH DESCRIPTION +.I intptr_t +is a signed integer type +such that any valid +.RI ( "void *" ) +value can be converted to this type and then converted back. +It is capable of storing values in the range +.RB [ INTPTR_MIN , +.BR INTPTR_MAX ]. +.PP +.I uintptr_t +is an unsigned integer type +such that any valid +.RI ( "void *" ) +value can be converted to this type and then converted back. +It is capable of storing values in the range +.RB [ 0 , +.BR INTPTR_MAX ]. +.PP +The macros +.RB [ U ] INTPTR_WIDTH +expand to the width in bits of these types. +.PP +The macros +.RB [ U ] INTPTR_MAX +expand to the maximum value that these types can hold. +.PP +The macro +.B INTPTR_MIN +expands to the minimum value that +.I intptr_t +can hold. +.PP +The length modifiers for the +.RI [ u ] intptr_t +types +for the +.BR printf (3) +family of functions +are expanded by the macros +.BR PRIdPTR , +.BR PRIiPTR , +and +.B PRIuPTR +(defined in +.IR ); +resulting commonly in +.B %"PRIdPTR" +or +.B %"PRIiPTR" +for printing +.I intptr_t +values. +The length modifiers for the +.IR [ u ] intptr_t +types +for the +.BR scanf (3) +family of functions +are expanded by the macros +.BR SCNdPTR , +.BR SCNiPTR , +and +.B SCNuPTR +(defined in +.IR ); +resulting commonly in +.B %"SCNuPTR" +for scanning +.I uintptr_t +values. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C99, POSIX.1-2001. +.SH NOTES +The following header also provides these types: +.IR . +.SH SEE ALSO +.BR intmax_t (3type), +.BR void (3) diff --git a/man3type/iovec.3type b/man3type/iovec.3type new file mode 100644 index 0000000..c2786f5 --- /dev/null +++ b/man3type/iovec.3type @@ -0,0 +1,49 @@ +.\" Copyright (c) 2022 by Alejandro Colomar +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH iovec 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +iovec \- Vector I/O data structure +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct iovec { +.BR " void *iov_base;" " /* Starting address */" +.BR " size_t iov_len;" " /* Size of the memory pointed to by "\c +.IR iov_base ". */" +.B }; +.EE +.SH DESCRIPTION +Describes a region of memory, beginning at +.I iov_base +address and with the size of +.I iov_len +bytes. +System calls use arrays of this structure, +where each element of the array represents a memory region, +and the whole array represents a vector of memory regions. +The maximum number of +.I iovec +structures in that array +is limited by +.B IOV_MAX +(defined in +.IR , +or accessible via the call +.IR sysconf(_SC_IOV_MAX) ). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR process_madvise (2), +.BR readv (2) diff --git a/man3type/itimerspec.3type b/man3type/itimerspec.3type new file mode 100644 index 0000000..7def422 --- /dev/null +++ b/man3type/itimerspec.3type @@ -0,0 +1,33 @@ +.\" Copyright (c) 2022 by Alejandro Colomar +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH itimerspec 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +timespec \- interval for a timer with nanosecond precision +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct itimerspec { +.BR " struct timespec it_interval;" " /* Interval for periodic timer */" +.BR " struct timespec it_value;" " /* Initial expiration */" +.B }; +.EE +.SH DESCRIPTION +Describes the initial expiration of a timer, +and its interval, +in seconds and nanoseconds. +.SH STANDARDS +Linux. +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR timerfd_create (2), +.BR timer_settime (2), +.BR timespec (3type) diff --git a/man3type/lconv.3type b/man3type/lconv.3type new file mode 100644 index 0000000..f36522c --- /dev/null +++ b/man3type/lconv.3type @@ -0,0 +1,56 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH lconv 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +lconv \- numeric formatting information +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.BR "struct lconv {" " /* Values in the \[dq]C\[dq] locale: */" +.BR " char *decimal_point;" " /* \[dq].\[dq] */" +.BR " char *thousands_sep;" " /* \[dq]\[dq] */" +.BR " char *grouping;" " /* \[dq]\[dq] */" +.BR " char *mon_decimal_point;" " /* \[dq]\[dq] */" +.BR " char *mon_thousands_sep;" " /* \[dq]\[dq] */" +.BR " char *mon_grouping;" " /* \[dq]\[dq] */" +.BR " char *positive_sign;" " /* \[dq]\[dq] */" +.BR " char *negative_sign;" " /* \[dq]\[dq] */" +.BR " char *currency_symbol;" " /* \[dq]\[dq] */" +.BR " char frac_digits;" " /* CHAR_MAX */" +.BR " char p_cs_precedes;" " /* CHAR_MAX */" +.BR " char n_cs_precedes;" " /* CHAR_MAX */" +.BR " char p_sep_by_space;" " /* CHAR_MAX */" +.BR " char n_sep_by_space;" " /* CHAR_MAX */" +.BR " char p_sign_posn;" " /* CHAR_MAX */" +.BR " char n_sign_posn;" " /* CHAR_MAX */" +.BR " char *int_curr_symbol;" " /* \[dq]\[dq] */" +.BR " char int_frac_digits;" " /* CHAR_MAX */" +.BR " char int_p_cs_precedes;" " /* CHAR_MAX */" +.BR " char int_n_cs_precedes;" " /* CHAR_MAX */" +.BR " char int_p_sep_by_space;" " /* CHAR_MAX */" +.BR " char int_n_sep_by_space;" " /* CHAR_MAX */" +.BR " char int_p_sign_posn;" " /* CHAR_MAX */" +.BR " char int_n_sign_posn;" " /* CHAR_MAX */" +.B }; +.EE +.SH DESCRIPTION +Contains members related to the formatting of numeric values. +In the "C" locale, its members have the values +shown in the comments above. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH SEE ALSO +.BR setlocale (3), +.BR localeconv (3), +.BR charsets (7), +.BR locale (7) diff --git a/man3type/ldiv_t.3type b/man3type/ldiv_t.3type new file mode 100644 index 0000000..3ab8f34 --- /dev/null +++ b/man3type/ldiv_t.3type @@ -0,0 +1 @@ +.so man3type/div_t.3type diff --git a/man3type/lldiv_t.3type b/man3type/lldiv_t.3type new file mode 100644 index 0000000..3ab8f34 --- /dev/null +++ b/man3type/lldiv_t.3type @@ -0,0 +1 @@ +.so man3type/div_t.3type diff --git a/man3type/loff_t.3type b/man3type/loff_t.3type new file mode 100644 index 0000000..e59af3f --- /dev/null +++ b/man3type/loff_t.3type @@ -0,0 +1 @@ +.so man3type/off_t.3type diff --git a/man3type/mode_t.3type b/man3type/mode_t.3type new file mode 100644 index 0000000..7d56100 --- /dev/null +++ b/man3type/mode_t.3type @@ -0,0 +1,40 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH mode_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +mode_t \- file attributes +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " mode_t; +.fi +.SH DESCRIPTION +Used for some file attributes (e.g., file mode). +It is an integer type. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following headers also provide this type: +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.SH SEE ALSO +.BR chmod (2), +.BR mkdir (2), +.BR open (2), +.BR umask (2), +.BR stat (3type) diff --git a/man3type/off64_t.3type b/man3type/off64_t.3type new file mode 100644 index 0000000..e59af3f --- /dev/null +++ b/man3type/off64_t.3type @@ -0,0 +1 @@ +.so man3type/off_t.3type diff --git a/man3type/off_t.3type b/man3type/off_t.3type new file mode 100644 index 0000000..b544f66 --- /dev/null +++ b/man3type/off_t.3type @@ -0,0 +1,92 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH off_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +off_t, off64_t, loff_t \- file sizes +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " off_t; +.PP +.B #define _LARGEFILE64_SOURCE +.B #include +.PP +.BR typedef " /* ... */ " off64_t; +.PP +.B #define _GNU_SOURCE +.B #include +.PP +.BR typedef " /* ... */ " loff_t; +.fi +.SH DESCRIPTION +.I off_t +is used for describing file sizes. +It is a signed integer type. +.PP +.I off64_t +is a 64-bit version of the type, +used in glibc. +.PP +.I loff_t +is a 64-bit version of the type, +introduced by the Linux kernel. +.SH STANDARDS +.TP +.I off_t +POSIX.1-2008. +.TP +.I off64_t +GNU and some BSDs. +.TP +.I loff_t +Linux. +.SH VERSIONS +.TP +.I off_t +POSIX.1-2001. +.PP +.I +and +.I +define +.I off_t +since POSIX.1-2008. +.SH NOTES +On some architectures, +the width of +.I off_t +can be controlled with the feature test macro +.BR _FILE_OFFSET_BITS . +.PP +The following headers also provide +.IR off_t : +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.SH SEE ALSO +.BR copy_file_range (2), +.BR llseek (2), +.BR lseek (2), +.BR mmap (2), +.BR posix_fadvise (2), +.BR pread (2), +.BR readahead (2), +.BR sync_file_range (2), +.BR truncate (2), +.BR fseeko (3), +.BR lockf (3), +.BR lseek64 (3), +.BR posix_fallocate (3), +.BR feature_test_macros (7) diff --git a/man3type/pid_t.3type b/man3type/pid_t.3type new file mode 100644 index 0000000..52bae74 --- /dev/null +++ b/man3type/pid_t.3type @@ -0,0 +1 @@ +.so man3type/id_t.3type diff --git a/man3type/printf_arginfo_size_function.3type b/man3type/printf_arginfo_size_function.3type new file mode 100644 index 0000000..ad10bad --- /dev/null +++ b/man3type/printf_arginfo_size_function.3type @@ -0,0 +1 @@ +.so man3head/printf.h.3head diff --git a/man3type/printf_function.3type b/man3type/printf_function.3type new file mode 100644 index 0000000..ad10bad --- /dev/null +++ b/man3type/printf_function.3type @@ -0,0 +1 @@ +.so man3head/printf.h.3head diff --git a/man3type/printf_info.3type b/man3type/printf_info.3type new file mode 100644 index 0000000..ad10bad --- /dev/null +++ b/man3type/printf_info.3type @@ -0,0 +1 @@ +.so man3head/printf.h.3head diff --git a/man3type/printf_va_arg_function.3type b/man3type/printf_va_arg_function.3type new file mode 100644 index 0000000..ad10bad --- /dev/null +++ b/man3type/printf_va_arg_function.3type @@ -0,0 +1 @@ +.so man3head/printf.h.3head diff --git a/man3type/ptrdiff_t.3type b/man3type/ptrdiff_t.3type new file mode 100644 index 0000000..bb6b404 --- /dev/null +++ b/man3type/ptrdiff_t.3type @@ -0,0 +1,47 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH ptrdiff_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +ptrdiff_t \- count of elements or array index +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " ptrdiff_t; +.fi +.SH DESCRIPTION +Used for a count of elements, or an array index. +It is the result of subtracting two pointers. +It is a signed integer type +capable of storing values in the range +.RB [ PTRDIFF_MAX , +.BR PTRDIFF_MAX ]. +.PP +The length modifier for +.I ptrdiff_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR t , +resulting commonly in +.B %td +or +.B %ti +for printing +.I ptrdiff_t +values. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.SH SEE ALSO +.BR size_t (3type) diff --git a/man3type/regex_t.3type b/man3type/regex_t.3type new file mode 100644 index 0000000..c0daaf0 --- /dev/null +++ b/man3type/regex_t.3type @@ -0,0 +1 @@ +.so man3/regex.3 diff --git a/man3type/regmatch_t.3type b/man3type/regmatch_t.3type new file mode 100644 index 0000000..c0daaf0 --- /dev/null +++ b/man3type/regmatch_t.3type @@ -0,0 +1 @@ +.so man3/regex.3 diff --git a/man3type/regoff_t.3type b/man3type/regoff_t.3type new file mode 100644 index 0000000..c0daaf0 --- /dev/null +++ b/man3type/regoff_t.3type @@ -0,0 +1 @@ +.so man3/regex.3 diff --git a/man3type/sa_family_t.3type b/man3type/sa_family_t.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/sa_family_t.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/sigevent.3type b/man3type/sigevent.3type new file mode 100644 index 0000000..db50c0f --- /dev/null +++ b/man3type/sigevent.3type @@ -0,0 +1 @@ +.so man7/system_data_types.7 diff --git a/man3type/siginfo_t.3type b/man3type/siginfo_t.3type new file mode 100644 index 0000000..db50c0f --- /dev/null +++ b/man3type/siginfo_t.3type @@ -0,0 +1 @@ +.so man7/system_data_types.7 diff --git a/man3type/sigset_t.3type b/man3type/sigset_t.3type new file mode 100644 index 0000000..db50c0f --- /dev/null +++ b/man3type/sigset_t.3type @@ -0,0 +1 @@ +.so man7/system_data_types.7 diff --git a/man3type/sigval.3type b/man3type/sigval.3type new file mode 100644 index 0000000..db50c0f --- /dev/null +++ b/man3type/sigval.3type @@ -0,0 +1 @@ +.so man7/system_data_types.7 diff --git a/man3type/size_t.3type b/man3type/size_t.3type new file mode 100644 index 0000000..9df433a --- /dev/null +++ b/man3type/size_t.3type @@ -0,0 +1,181 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH size_t 3type 2023-03-31 "Linux man-pages 6.05.01" +.SH NAME +size_t, ssize_t \- count of bytes +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " size_t; +.PP +.B #include +.PP +.BR typedef " /* ... */ " ssize_t; +.fi +.SH DESCRIPTION +.TP +.I size_t +Used for a count of bytes. +It is the result of the +.IR sizeof () +operator. +It is an unsigned integer type +capable of storing values in the range +.RB [ 0 , +.BR SIZE_MAX ]. +.TP +.I ssize_t +Used for a count of bytes or an error indication. +It is a signed integer type +capable of storing values at least in the range +.RB [ \-1 , +.BR SSIZE_MAX ]. +.SS Use with printf(3) and scanf(3) +.TP +.I size_t +The length modifier for +.I size_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR z , +resulting commonly in +.B %zu +or +.B %zx +for printing +.I size_t +values. +.TP +.I ssize_t +glibc and most other implementations provide a length modifier for +.I ssize_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions, +which is +.BR z ; +resulting commonly in +.B %zd +or +.B %zi +for printing +.I ssize_t +values. +Although +.B z +works for +.I ssize_t +on most implementations, +portable POSIX programs should avoid using it\[em]for example, +by converting the value to +.I intmax_t +and using its length modifier +.RB ( j ). +.SH STANDARDS +.TP +.I size_t +C11, POSIX.1-2008. +.TP +.I ssize_t +POSIX.1-2008. +.PD +.SH HISTORY +.TP +.I size_t +C89, POSIX.1-2001. +.TP +.I ssize_t +POSIX.1-2001. +.PP +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.I +define +.I size_t +since POSIX.1-2008. +.PP +.IR , +.IR , +and +.I +define +.I ssize_t +since POSIX.1-2008. +.SH NOTES +.TP +.I size_t +The following headers also provide +.IR size_t : +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.TP +.I ssize_t +The following headers also provide +.IR ssize_t : +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.SH SEE ALSO +.BR read (2), +.BR readlink (2), +.BR readv (2), +.BR recv (2), +.BR send (2), +.BR write (2), +.BR fread (3), +.BR fwrite (3), +.BR memcmp (3), +.BR memcpy (3), +.BR memset (3), +.BR offsetof (3), +.BR ptrdiff_t (3type) diff --git a/man3type/sockaddr.3type b/man3type/sockaddr.3type new file mode 100644 index 0000000..dacc9ad --- /dev/null +++ b/man3type/sockaddr.3type @@ -0,0 +1,154 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH sockaddr 3type 2023-04-22 "Linux man-pages 6.05.01" +.SH NAME +sockaddr, sockaddr_storage, sockaddr_in, sockaddr_in6, sockaddr_un, socklen_t, +in_addr, in6_addr, in_addr_t, in_port_t, +\- socket address +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct sockaddr { +.BR " sa_family_t sa_family;" " /* Address family */" +.BR " char sa_data[];" " /* Socket address */" +.B }; +.PP +.B struct sockaddr_storage { +.BR " sa_family_t ss_family;" " /* Address family */" +.B }; +.PP +.BR typedef " /* ... */ " socklen_t; +.BR typedef " /* ... */ " sa_family_t; +.PP +.EE +.SS Internet domain sockets +.EX +.B #include +.PP +.B struct sockaddr_in { +.BR " sa_family_t sin_family;" " /* " AF_INET " */" +.BR " in_port_t sin_port;" " /* Port number */" +.BR " struct in_addr sin_addr;" " /* IPv4 address */" +.B }; +.PP +.B struct sockaddr_in6 { +.BR " sa_family_t sin6_family;" " /* " AF_INET6 " */" +.BR " in_port_t sin6_port;" " /* Port number */" +.BR " uint32_t sin6_flowinfo;" " /* IPv6 flow info */" +.BR " struct in6_addr sin6_addr;" " /* IPv6 address */" +.BR " uint32_t sin6_scope_id;" " /* Set of interfaces for a scope */" +.B }; +.PP +.B struct in_addr { +.B " in_addr_t s_addr;" +.B }; +.PP +.B struct in6_addr { +.B " uint8_t s6_addr[16];" +.B }; +.PP +.B typedef uint32_t in_addr_t; +.B typedef uint16_t in_port_t; +.EE +.SS UNIX domain sockets +.EX +.B #include +.PP +.B struct sockaddr_un { +.BR " sa_family_t sun_family;" " /* Address family */" +.BR " char sun_path[];" " /* Socket pathname */" +.B }; +.EE +.SH DESCRIPTION +.TP +.I sockaddr +Describes a socket address. +.TP +.I sockaddr_storage +A structure at least as large as any other +.IR sockaddr_ * +address structures. +It's aligned so that a pointer to it can be cast +as a pointer to other +.IR sockaddr_ * +structures and used to access its fields. +.TP +.I socklen_t +Describes the length of a socket address. +This is an integer type of at least 32 bits. +.TP +.I sa_family_t +Describes a socket's protocol family. +This is an unsigned integer type. +.SS Internet domain sockets +.TP +.I sockaddr_in +Describes an IPv4 Internet domain socket address. +The +.I sin_port +and +.I sin_addr +members are stored in network byte order. +.TP +.I sockaddr_in6 +Describes an IPv6 Internet domain socket address. +The +.I sin6_addr.s6_addr +array is used to contain a 128-bit IPv6 address, +stored in network byte order. +.SS UNIX domain sockets +.TP +.I sockaddr_un +Describes a UNIX domain socket address. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.PP +.I socklen_t +was invented by POSIX. +See also +.BR accept (2). +.PP +These structures were invented before modern ISO C strict-aliasing rules. +If aliasing rules are applied strictly, +these structures would be extremely difficult to use +without invoking Undefined Behavior. +POSIX Issue 8 will fix this by requiring that implementations +make sure that these structures +can be safely used as they were designed. +.SH NOTES +.I socklen_t +is also defined in +.IR . +.PP +.I sa_family_t +is also defined in +.I +and +.IR . +.SH SEE ALSO +.BR accept (2), +.BR bind (2), +.BR connect (2), +.BR getpeername (2), +.BR getsockname (2), +.BR getsockopt (2), +.BR sendto (2), +.BR setsockopt (2), +.BR socket (2), +.BR socketpair (2), +.BR getaddrinfo (3), +.BR gethostbyaddr (3), +.BR getnameinfo (3), +.BR htonl (3), +.BR ipv6 (7), +.BR socket (7) diff --git a/man3type/sockaddr_in.3type b/man3type/sockaddr_in.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/sockaddr_in.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/sockaddr_in6.3type b/man3type/sockaddr_in6.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/sockaddr_in6.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/sockaddr_storage.3type b/man3type/sockaddr_storage.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/sockaddr_storage.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/sockaddr_un.3type b/man3type/sockaddr_un.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/sockaddr_un.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/socklen_t.3type b/man3type/socklen_t.3type new file mode 100644 index 0000000..39e914c --- /dev/null +++ b/man3type/socklen_t.3type @@ -0,0 +1 @@ +.so man3type/sockaddr.3type diff --git a/man3type/speed_t.3type b/man3type/speed_t.3type new file mode 100644 index 0000000..26cfd01 --- /dev/null +++ b/man3type/speed_t.3type @@ -0,0 +1 @@ +.so man3type/cc_t.3type diff --git a/man3type/ssize_t.3type b/man3type/ssize_t.3type new file mode 100644 index 0000000..c8d4408 --- /dev/null +++ b/man3type/ssize_t.3type @@ -0,0 +1 @@ +.so man3type/size_t.3type diff --git a/man3type/stat.3type b/man3type/stat.3type new file mode 100644 index 0000000..6630641 --- /dev/null +++ b/man3type/stat.3type @@ -0,0 +1,162 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH stat 3type 2023-05-03 "Linux man-pages 6.05.01" +.SH NAME +stat \- file status +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct stat { +.BR " dev_t st_dev;" " /* ID of device containing file */" +.BR " ino_t st_ino;" " /* Inode number */" +.BR " mode_t st_mode;" " /* File type and mode */" +.BR " nlink_t st_nlink;" " /* Number of hard links */" +.BR " uid_t st_uid;" " /* User ID of owner */" +.BR " gid_t st_gid;" " /* Group ID of owner */" +.BR " dev_t st_rdev;" " /* Device ID (if special file) */" +.BR " off_t st_size;" " /* Total size, in bytes */" +.BR " blksize_t st_blksize;" " /* Block size for filesystem I/O */" +.BR " blkcnt_t st_blocks;" " /* Number of 512 B blocks allocated */" +\& + /* Since POSIX.1-2008, this structure supports nanosecond + precision for the following timestamp fields. + For the details before POSIX.1-2008, see VERSIONS. */ +\& +.BR " struct timespec st_atim;" " /* Time of last access */" +.BR " struct timespec st_mtim;" " /* Time of last modification */" +.BR " struct timespec st_ctim;" " /* Time of last status change */" +\& +.BR "#define st_atime st_atim.tv_sec" " /* Backward compatibility */" +.B "#define st_mtime st_mtim.tv_sec" +.B "#define st_ctime st_ctim.tv_sec" +.B }; +.EE +.PP +.RS -4 +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.RE +.PP +.IR st_atim , +.IR st_mtim , +.IR st_ctim : +.nf + Since glibc 2.12: + _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700 + glibc 2.19 and earlier: + _BSD_SOURCE || _SVID_SOURCE +.fi +.SH DESCRIPTION +Describes information about a file. +.PP +The fields are as follows: +.TP +.I st_dev +This field describes the device on which this file resides. +(The +.BR major (3) +and +.BR minor (3) +macros may be useful to decompose the device ID in this field.) +.TP +.I st_ino +This field contains the file's inode number. +.TP +.I st_mode +This field contains the file type and mode. +See +.BR inode (7) +for further information. +.TP +.I st_nlink +This field contains the number of hard links to the file. +.TP +.I st_uid +This field contains the user ID of the owner of the file. +.TP +.I st_gid +This field contains the ID of the group owner of the file. +.TP +.I st_rdev +This field describes the device that this file (inode) represents. +.TP +.I st_size +This field gives the size of the file (if it is a regular +file or a symbolic link) in bytes. +The size of a symbolic link is the length of the pathname +it contains, without a terminating null byte. +.TP +.I st_blksize +This field gives the "preferred" block size for efficient filesystem I/O. +.TP +.I st_blocks +This field indicates the number of blocks allocated to the file, +in 512-byte units. +(This may be smaller than +.IR st_size /512 +when the file has holes.) +.TP +.I st_atime +This is the time of the last access of file data. +.TP +.I st_mtime +This is the time of last modification of file data. +.TP +.I st_ctime +This is the file's last status change timestamp +(time of last change to the inode). +.PP +For further information on the above fields, see +.BR inode (7). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.PP +Old kernels and old standards did not support nanosecond timestamp fields. +Instead, there were three timestamp +.RI fields\[em] st_atime , +.IR st_mtime , +and +.IR st_ctime \[em]typed +as +.I time_t +that recorded timestamps with one-second precision. +.PP +Since Linux 2.5.48, the +.I stat +structure supports nanosecond resolution for the three file timestamp fields. +The nanosecond components of each timestamp are available +via names of the form +.IR st_atim.tv_nsec , +if suitable test macros are defined. +Nanosecond timestamps were standardized in POSIX.1-2008, +and, starting with glibc 2.12, +glibc exposes the nanosecond component names if +.B _POSIX_C_SOURCE +is defined with the value 200809L or greater, or +.B _XOPEN_SOURCE +is defined with the value 700 or greater. +Up to and including glibc 2.19, +the definitions of the nanoseconds components are also defined if +.B _BSD_SOURCE +or +.B _SVID_SOURCE +is defined. +If none of the aforementioned macros are defined, +then the nanosecond values are exposed with names of the form +.IR st_atimensec . +.SH NOTES +The following header also provides this type: +.IR . +.SH SEE ALSO +.BR stat (2), +.BR inode (7) diff --git a/man3type/suseconds_t.3type b/man3type/suseconds_t.3type new file mode 100644 index 0000000..7f430e1 --- /dev/null +++ b/man3type/suseconds_t.3type @@ -0,0 +1 @@ +.so man3type/time_t.3type diff --git a/man3type/tcflag_t.3type b/man3type/tcflag_t.3type new file mode 100644 index 0000000..26cfd01 --- /dev/null +++ b/man3type/tcflag_t.3type @@ -0,0 +1 @@ +.so man3type/cc_t.3type diff --git a/man3type/time_t.3type b/man3type/time_t.3type new file mode 100644 index 0000000..2b087e5 --- /dev/null +++ b/man3type/time_t.3type @@ -0,0 +1,109 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH time_t 3type 2023-03-31 "Linux man-pages 6.05.01" +.SH NAME +time_t, suseconds_t, useconds_t \- integer time +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " time_t; +.PP +.B #include +.PP +.BR typedef " /* ... */ " suseconds_t; +.BR typedef " /* ... */ " useconds_t; +.fi +.SH DESCRIPTION +.TP +.I time_t +Used for time in seconds. +According to POSIX, +it is an integer type. +.\" In POSIX.1-2001, the type was specified as being either an integer +.\" type or a real-floating type. However, existing implementations +.\" used an integer type, and POSIX.1-2008 tightened the specification +.\" to reflect this. +.TP +.I suseconds_t +Used for time in microseconds. +It is a signed integer type +capable of storing values at least in the range +.RB [ \-1 , +.BR 1000000 ]. +.TP +.I useconds_t +Used for time in microseconds. +It is an unsigned integer type +capable of storing values at least in the range +.RB [ 0 , +.BR 1000000 ]. +.SH STANDARDS +.TP +.I time_t +C11, POSIX.1-2008. +.TP +.I suseconds_t +.TQ +.I useconds_t +POSIX.1-2008. +.PD +.SH HISTORY +.TP +.I time_t +C89, POSIX.1-2001. +.TP +.I suseconds_t +.TQ +.I useconds_t +POSIX.1-2001. +.PP +.I +defines +.I time_t +since POSIX.1-2008. +.PP +POSIX.1-2001 defined +.I useconds_t +in +.I +too. +.SH NOTES +On some architectures, +the width of +.I time_t +can be controlled with the feature test macro +.BR _TIME_BITS . +.PP +The following headers also provide +.IR time_t : +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.PP +The following headers also provide +.IR suseconds_t : +.I +and +.IR . +.SH SEE ALSO +.BR stime (2), +.BR time (2), +.BR ctime (3), +.BR difftime (3), +.BR usleep (3), +.BR timeval (3type) diff --git a/man3type/timer_t.3type b/man3type/timer_t.3type new file mode 100644 index 0000000..8341ec1 --- /dev/null +++ b/man3type/timer_t.3type @@ -0,0 +1,34 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH timer_t 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +timer_t \- timer ID +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " timer_t; +.fi +.SH DESCRIPTION +Used for timer ID returned by +.BR timer_create (2). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following header also provides +.IR timer_t : +.IR . +.SH SEE ALSO +.BR timer_create (2), +.BR timer_delete (2), +.BR timer_getoverrun (2), +.BR timer_settime (2) diff --git a/man3type/timespec.3type b/man3type/timespec.3type new file mode 100644 index 0000000..213c131 --- /dev/null +++ b/man3type/timespec.3type @@ -0,0 +1,60 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH timespec 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +timespec \- time in seconds and nanoseconds +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct timespec { +.BR " time_t tv_sec;" " /* Seconds */" +.RB " /* ... */" " tv_nsec;" \ +" /* Nanoseconds [" 0 ", " 999\[aq]999\[aq]999 "] */" +.B }; +.EE +.SH DESCRIPTION +Describes times in seconds and nanoseconds. +.PP +.I tv_nsec +is of an implementation-defined signed type +capable of holding the specified range. +Under glibc, this is usually +.IR long , +and +.I long long +on X32. +It can be safely down-cast to any concrete 32-bit integer type for processing. +.SH VERSIONS +Prior to C23, +.I tv_nsec +was +.IR long . +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following headers also provide this type: +.IR , +.IR , +.IR , +.IR , +.IR , +and +.IR . +.SH SEE ALSO +.BR clock_gettime (2), +.BR clock_nanosleep (2), +.BR nanosleep (2), +.BR timerfd_gettime (2), +.BR timer_gettime (2), +.BR time_t (3type), +.BR timeval (3type) diff --git a/man3type/timeval.3type b/man3type/timeval.3type new file mode 100644 index 0000000..97f450d --- /dev/null +++ b/man3type/timeval.3type @@ -0,0 +1,43 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH timeval 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +timeval \- time in seconds and microseconds +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct timeval { +.BR " time_t tv_sec;" " /* Seconds */" +.BR " suseconds_t tv_usec;" " /* Microseconds */" +.B }; +.EE +.SH DESCRIPTION +Describes times in seconds and microseconds. +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001. +.SH NOTES +The following headers also provide this type: +.IR , +.IR , +and +.IR . +.SH SEE ALSO +.BR gettimeofday (2), +.BR select (2), +.BR utimes (2), +.BR adjtime (3), +.BR futimes (3), +.BR timeradd (3), +.BR suseconds_t (3type), +.BR time_t (3type), +.BR timespec (3type) diff --git a/man3type/tm.3type b/man3type/tm.3type new file mode 100644 index 0000000..42cd1e3 --- /dev/null +++ b/man3type/tm.3type @@ -0,0 +1,112 @@ +.\" Copyright (c) 2022 by Alejandro Colomar +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH tm 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +tm \- broken-down time +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.EX +.B #include +.PP +.B struct tm { +.BR " int tm_sec;" " /* Seconds [" 0 ", " 60 "] */" +.BR " int tm_min;" " /* Minutes [" 0 ", " 59 "] */" +.BR " int tm_hour;" " /* Hour [" 0 ", " 23 "] */" +.BR " int tm_mday;" " /* Day of the month [" 1 ", " 31 "] */" +.BR " int tm_mon;" \ +" /* Month [" 0 ", " 11 "] (January = " 0 ") */" +.BR " int tm_year;" " /* Year minus " 1900 " */" +.BR " int tm_wday;" \ +" /* Day of the week [" 0 ", " 6 "] (Sunday = " 0 ") */" +.BR " int tm_yday;" \ +" /* Day of the year [" 0 ", " 365 "] (Jan/01 = " 0 ") */" +.BR " int tm_isdst;" " /* Daylight savings flag */" +.PP +.BR " long tm_gmtoff;" " /* Seconds East of UTC */" +.BR " const char *tm_zone;" " /* Timezone abbreviation */" +.B }; +.EE +.PP +.RS -4 +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.RE +.PP +.IR tm_gmtoff , +.IR tm_zone : +.nf +.\" Guarded with __USE_MISC: + Since glibc 2.20: + _DEFAULT_SOURCE + glibc 2.20 and earlier: + _BSD_SOURCE +.fi +.SH DESCRIPTION +Describes time, broken down into distinct components. +.PP +.I tm_isdst +describes whether daylight saving time is in effect at the time described. +The value is positive if daylight saving time is in effect, +zero if it is not, +and negative if the information is not available. +.PP +.I tm_gmtoff +is the difference, in seconds, +of the timezone represented by this broken-down time and UTC +(this is the additive inverse of +.BR timezone (3)). +.PP +.I tm_zone +is the equivalent of +.BR tzname (3) +for the timezone represented by this broken-down time. +.SH VERSIONS +In C90, +.I tm_sec +could represent values in the range +.RB [ 0 ", " 61 ], +which could represent a double leap second. +UTC doesn't permit double leap seconds, +so it was limited to +.B 60 +in C99. +.PP +.BR timezone (3), +as a variable, is an XSI extension: some systems provide the V7-compatible +.\" FreeBSD +.BR timezone (3) +function. +The +.I tm_gmtoff +field provides an alternative (with the opposite sign) for those systems. +.PP +.I tm_zone +points to static storage and may be overridden on subsequent calls to +.BR localtime (3) +and similar functions (however, this never happens under glibc). +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.PP +.I tm_gmtoff +and +.I tm_zone +originate from 4.3BSD-Tahoe (where +.I tm_zone +is a +.IR "char *" ). +.SH NOTES +.I tm_sec +can represent a leap second with the value +.BR 60 . +.SH SEE ALSO +.BR ctime (3), +.BR strftime (3), +.BR strptime (3), +.BR time (7) diff --git a/man3type/uid_t.3type b/man3type/uid_t.3type new file mode 100644 index 0000000..52bae74 --- /dev/null +++ b/man3type/uid_t.3type @@ -0,0 +1 @@ +.so man3type/id_t.3type diff --git a/man3type/uint16_t.3type b/man3type/uint16_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/uint16_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/uint32_t.3type b/man3type/uint32_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/uint32_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/uint64_t.3type b/man3type/uint64_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/uint64_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/uint8_t.3type b/man3type/uint8_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/uint8_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/uintN_t.3type b/man3type/uintN_t.3type new file mode 100644 index 0000000..a0d1a82 --- /dev/null +++ b/man3type/uintN_t.3type @@ -0,0 +1 @@ +.so man3type/intN_t.3type diff --git a/man3type/uintmax_t.3type b/man3type/uintmax_t.3type new file mode 100644 index 0000000..497d4ac --- /dev/null +++ b/man3type/uintmax_t.3type @@ -0,0 +1 @@ +.so man3type/intmax_t.3type diff --git a/man3type/uintptr_t.3type b/man3type/uintptr_t.3type new file mode 100644 index 0000000..6a55bc9 --- /dev/null +++ b/man3type/uintptr_t.3type @@ -0,0 +1 @@ +.so man3type/intptr_t.3type diff --git a/man3type/useconds_t.3type b/man3type/useconds_t.3type new file mode 100644 index 0000000..7f430e1 --- /dev/null +++ b/man3type/useconds_t.3type @@ -0,0 +1 @@ +.so man3type/time_t.3type diff --git a/man3type/va_list.3type b/man3type/va_list.3type new file mode 100644 index 0000000..3549829 --- /dev/null +++ b/man3type/va_list.3type @@ -0,0 +1,44 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH va_list 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +va_list \- variable argument list +.SH LIBRARY +Standard C library +.RI ( libc ) +.SH SYNOPSIS +.nf +.B #include +.PP +.BR typedef " /* ... */ " va_list; +.fi +.SH DESCRIPTION +Used by functions with a varying number of arguments of varying types. +The function must declare an object of type +.I va_list +which is used by the macros +.BR va_start (3), +.BR va_arg (3), +.BR va_copy (3), +and +.BR va_end (3) +to traverse the list of arguments. +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.SH NOTES +The following headers also provide +.IR va_list : +.I +and +.IR . +.SH SEE ALSO +.BR va_start (3), +.BR va_arg (3), +.BR va_copy (3), +.BR va_end (3) diff --git a/man3type/void.3type b/man3type/void.3type new file mode 100644 index 0000000..45907e9 --- /dev/null +++ b/man3type/void.3type @@ -0,0 +1,76 @@ +.\" Copyright (c) 2020-2022 by Alejandro Colomar +.\" and Copyright (c) 2020 by Michael Kerrisk +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" +.TH void 3type 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +void \- abstract type +.SH SYNOPSIS +.nf +.B void * +.fi +.SH DESCRIPTION +A pointer to any object type may be converted to a pointer to +.I void +and back. +POSIX further requires that any pointer, +including pointers to functions, +may be converted to a pointer to +.I void +and back. +.PP +Conversions from and to any other pointer type are done implicitly, +not requiring casts at all. +Note that this feature prevents any kind of type checking: +the programmer should be careful not to convert a +.I void * +value to a type incompatible to that of the underlying data, +because that would result in undefined behavior. +.PP +This type is useful in function parameters and return value +to allow passing values of any type. +The function will typically use some mechanism to know +the real type of the data being passed via a pointer to +.IR void . +.PP +A value of this type can't be dereferenced, +as it would give a value of type +.IR void , +which is not possible. +Likewise, pointer arithmetic is not possible with this type. +However, in GNU C, pointer arithmetic is allowed +as an extension to the standard; +this is done by treating the size of a +.I void +or of a function as 1. +A consequence of this is that +.I sizeof +is also allowed on +.I void +and on function types, and returns 1. +.SS Use with printf(3) and scanf(3) +The conversion specifier for +.I void * +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR p . +.SH VERSIONS +The POSIX requirement about compatibility between +.I void * +and function pointers was added in +POSIX.1-2008 Technical Corrigendum 1 (2013). +.SH STANDARDS +C11, POSIX.1-2008. +.SH HISTORY +C89, POSIX.1-2001. +.SH SEE ALSO +.BR malloc (3), +.BR memcmp (3), +.BR memcpy (3), +.BR memset (3), +.BR intptr_t (3type) -- cgit v1.2.3