diff options
| author | Rical Jasan <ricaljasan@pacific.net> | 2017-06-15 21:12:39 -0700 |
|---|---|---|
| committer | Rical Jasan <ricaljasan@pacific.net> | 2017-06-15 21:26:20 -0700 |
| commit | d08a7e4cbe43d5e4e4b14dea950fea623d96c1a1 (patch) | |
| tree | 6f27987046ae0e8804f4d641c99ff1666652117a /manual/users.texi | |
| parent | 27691d5cec9b896ea0792151a27c6d7d7a4065ea (diff) | |
| download | glibc-d08a7e4cbe43d5e4e4b14dea950fea623d96c1a1.tar.xz glibc-d08a7e4cbe43d5e4e4b14dea950fea623d96c1a1.zip | |
manual: Replace summary.awk with summary.pl.
The Summary is now generated from @standards, and syntax-checking is
performed. If invalid @standards syntax is detected, summary.pl will
fail, reporting all errors. Failure and error reporting is disabled
for now, however, since much of the manual is still incomplete
wrt. header and standards annotations.
Note that the sorting order of the Summary has changed; summary.pl
respects the locale, like summary.awk did, but the use of LC_ALL=C is
introduced in the Makefile. Other notable deviations are improved
detection of the annotated elements' names, which are used for
sorting, and improved detection of the @node used to reference into
the manual. The most noticeable difference in the rendered Summary is
that entries may now contain multiple lines, one for each header and
standard combination.
summary.pl accepts a `--help' option, which details the expected
syntax of @standards. If errors are reported, the user is directed to
this feature for further information.
* manual/Makefile: Generate summary.texi with summary.pl.
Force use of the C locale. Update Perl dependency comment.
* manual/header.texi: Update reference to summary.awk.
* manual/macros.texi: Refer authors to `summary.pl --help'.
* manual/summary.awk: Remove file.
* manual/summary.pl: New file. Generate summary.texi, and
check for @standards-related syntax errors.
* manual/argp.texi: Convert header and standards @comments to
@standards.
* manual/arith.texi: Likewise.
* manual/charset.texi: Likewise.
* manual/conf.texi: Likewise.
* manual/creature.texi: Likewise.
* manual/crypt.texi: Likewise.
* manual/ctype.texi: Likewise.
* manual/debug.texi: Likewise.
* manual/errno.texi: Likewise.
* manual/filesys.texi: Likewise.
* manual/getopt.texi: Likewise.
* manual/job.texi: Likewise.
* manual/lang.texi: Likewise.
* manual/llio.texi: Likewise.
* manual/locale.texi: Likewise.
* manual/math.texi: Likewise.
* manual/memory.texi: Likewise.
* manual/message.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/pipe.texi: Likewise.
* manual/process.texi: Likewise.
* manual/resource.texi: Likewise.
* manual/search.texi: Likewise.
* manual/setjmp.texi: Likewise.
* manual/signal.texi: Likewise.
* manual/socket.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/string.texi: Likewise.
* manual/sysinfo.texi: Likewise.
* manual/syslog.texi: Likewise.
* manual/terminal.texi: Likewise.
* manual/threads.texi: Likewise.
* manual/time.texi: Likewise.
* manual/users.texi: Likewise.
Diffstat (limited to 'manual/users.texi')
| -rw-r--r-- | manual/users.texi | 281 |
1 files changed, 99 insertions, 182 deletions
diff --git a/manual/users.texi b/manual/users.texi index 47e28febdc..8690b65633 100644 --- a/manual/users.texi +++ b/manual/users.texi @@ -204,53 +204,46 @@ facilities, you must include the header files @file{sys/types.h} and @pindex unistd.h @pindex sys/types.h -@comment sys/types.h -@comment POSIX.1 @deftp {Data Type} uid_t +@standards{POSIX.1, sys/types.h} This is an integer data type used to represent user IDs. In @theglibc{}, this is an alias for @code{unsigned int}. @end deftp -@comment sys/types.h -@comment POSIX.1 @deftp {Data Type} gid_t +@standards{POSIX.1, sys/types.h} This is an integer data type used to represent group IDs. In @theglibc{}, this is an alias for @code{unsigned int}. @end deftp -@comment unistd.h -@comment POSIX.1 @deftypefun uid_t getuid (void) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @c Atomic syscall, except on hurd, where it takes a lock within a hurd @c critical section. The @code{getuid} function returns the real user ID of the process. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun gid_t getgid (void) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} The @code{getgid} function returns the real group ID of the process. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun uid_t geteuid (void) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} The @code{geteuid} function returns the effective user ID of the process. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun gid_t getegid (void) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} The @code{getegid} function returns the effective group ID of the process. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun int getgroups (int @var{count}, gid_t *@var{groups}) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} The @code{getgroups} function is used to inquire about the supplementary group IDs of the process. Up to @var{count} of these group IDs are @@ -295,9 +288,8 @@ include the header files @file{sys/types.h} and @file{unistd.h}. @pindex unistd.h @pindex sys/types.h -@comment unistd.h -@comment POSIX.1 @deftypefun int seteuid (uid_t @var{neweuid}) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c seteuid @asulock @aculock @c INLINE_SETXID_SYSCALL @asulock @aculock @@ -350,9 +342,8 @@ Older systems (those without the @code{_POSIX_SAVED_IDS} feature) do not have this function. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun int setuid (uid_t @var{newuid}) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setuid @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -369,9 +360,8 @@ If the process is not privileged, and the system supports the The return values and error conditions are the same as for @code{seteuid}. @end deftypefun -@comment unistd.h -@comment BSD @deftypefun int setreuid (uid_t @var{ruid}, uid_t @var{euid}) +@standards{BSD, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setreuid @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -407,9 +397,8 @@ the header files @file{sys/types.h} and @file{unistd.h}. @pindex unistd.h @pindex sys/types.h -@comment unistd.h -@comment POSIX.1 @deftypefun int setegid (gid_t @var{newgid}) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setegid @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -429,9 +418,8 @@ as those for @code{seteuid}. This function is only present if @code{_POSIX_SAVED_IDS} is defined. @end deftypefun -@comment unistd.h -@comment POSIX.1 @deftypefun int setgid (gid_t @var{newgid}) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setgid @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -446,9 +434,8 @@ The return values and error conditions for @code{setgid} are the same as those for @code{seteuid}. @end deftypefun -@comment unistd.h -@comment BSD @deftypefun int setregid (gid_t @var{rgid}, gid_t @var{egid}) +@standards{BSD, unistd.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setregid @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -485,9 +472,8 @@ group IDs. To use @code{setgroups} or @code{initgroups}, your programs should include the header file @file{grp.h}. @pindex grp.h -@comment grp.h -@comment BSD @deftypefun int setgroups (size_t @var{count}, const gid_t *@var{groups}) +@standards{BSD, grp.h} @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} @c setgroups @asulock @aculock @c INLINE_SETXID_SYSCALL dup @asulock @aculock @@ -505,9 +491,8 @@ The calling process is not privileged. @end table @end deftypefun -@comment grp.h -@comment BSD @deftypefun int initgroups (const char *@var{user}, gid_t @var{group}) +@standards{BSD, grp.h} @safety{@prelim{}@mtsafe{@mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @acsmem{} @acsfd{} @aculock{}}} @c initgroups @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem @c sysconf(_SC_NGROUPS_MAX) dup @acsfd @@ -556,9 +541,8 @@ not want to change the process's supplementary group IDs, you can use include the header file @file{grp.h}. @pindex grp.h -@comment grp.h -@comment BSD @deftypefun int getgrouplist (const char *@var{user}, gid_t @var{group}, gid_t *@var{groups}, int *@var{ngroups}) +@standards{BSD, grp.h} @safety{@prelim{}@mtsafe{@mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @acsmem{} @acsfd{} @aculock{}}} @c getgrouplist @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem @c MAX dup ok @@ -879,9 +863,8 @@ The @code{getlogin} function is declared in @file{unistd.h}, while @pindex stdio.h @pindex unistd.h -@comment unistd.h -@comment POSIX.1 @deftypefun {char *} getlogin (void) +@standards{POSIX.1, unistd.h} @safety{@prelim{}@mtunsafe{@mtasurace{:getlogin} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{} @mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @aculock{} @acsfd{} @acsmem{}}} @c getlogin (linux) @mtasurace:getlogin @mtasurace:utent @mtascusig:ALRM @mtascutimer @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem @c getlogin_r_loginuid dup @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem @@ -924,9 +907,8 @@ is statically allocated and might be overwritten on subsequent calls to this function or to @code{cuserid}. @end deftypefun -@comment stdio.h -@comment POSIX.1 @deftypefun {char *} cuserid (char *@var{string}) +@standards{POSIX.1, stdio.h} @safety{@prelim{}@mtunsafe{@mtasurace{:cuserid/!string} @mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @aculock{} @acsfd{} @acsmem{}}} @c cuserid @mtasurace:cuserid/!string @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem @c if string is NULL, cuserid will overwrite and return a static buffer @@ -946,9 +928,8 @@ withdrawn in XPG4.2 and has already been removed from newer revisions of POSIX.1. @end deftypefun -@comment stdio.h -@comment POSIX.1 @deftypevr Macro int L_cuserid +@standards{POSIX.1, stdio.h} An integer constant that indicates how long an array you might need to store a user name. @end deftypevr @@ -997,9 +978,8 @@ These functions and the corresponding data structures are declared in the header file @file{utmp.h}. @pindex utmp.h -@comment utmp.h -@comment SVID @deftp {Data Type} {struct exit_status} +@standards{SVID, utmp.h} The @code{exit_status} data structure is used to hold information about the exit status of processes marked as @code{DEAD_PROCESS} in the user accounting database. @@ -1070,55 +1050,45 @@ The following macros are defined for use as values for the integer constants. @vtable @code -@comment utmp.h -@comment SVID @item EMPTY +@standards{SVID, utmp.h} This macro is used to indicate that the entry contains no valid user accounting information. -@comment utmp.h -@comment SVID @item RUN_LVL +@standards{SVID, utmp.h} This macro is used to identify the system's runlevel. -@comment utmp.h -@comment SVID @item BOOT_TIME +@standards{SVID, utmp.h} This macro is used to identify the time of system boot. -@comment utmp.h -@comment SVID @item OLD_TIME +@standards{SVID, utmp.h} This macro is used to identify the time when the system clock changed. -@comment utmp.h -@comment SVID @item NEW_TIME +@standards{SVID, utmp.h} This macro is used to identify the time after the system clock changed. -@comment utmp.h -@comment SVID @item INIT_PROCESS +@standards{SVID, utmp.h} This macro is used to identify a process spawned by the init process. -@comment utmp.h -@comment SVID @item LOGIN_PROCESS +@standards{SVID, utmp.h} This macro is used to identify the session leader of a logged in user. -@comment utmp.h -@comment SVID @item USER_PROCESS +@standards{SVID, utmp.h} This macro is used to identify a user process. -@comment utmp.h -@comment SVID @item DEAD_PROCESS +@standards{SVID, utmp.h} This macro is used to identify a terminated process. -@comment utmp.h -@comment SVID @item ACCOUNTING +@standards{SVID, utmp.h} ??? @end vtable @@ -1131,9 +1101,8 @@ the time associated with the entry. Therefore, for backwards compatibility only, @file{utmp.h} defines @code{ut_time} as an alias for @code{ut_tv.tv_sec}. -@comment utmp.h -@comment SVID @deftypefun void setutent (void) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c Besides the static variables in utmp_file.c, there's the jump_table. @c They're both modified while holding a lock, but other threads may @@ -1158,9 +1127,8 @@ If the database is already open, it resets the input to the beginning of the database. @end deftypefun -@comment utmp.h -@comment SVID @deftypefun {struct utmp *} getutent (void) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtasurace{:utentbuf} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} @c The static buffer that holds results is allocated with malloc at @c the first call; the test is not thread-safe, so multiple concurrent @@ -1179,9 +1147,8 @@ function which stores the data in a user-provided buffer. A null pointer is returned in case no further entry is available. @end deftypefun -@comment utmp.h -@comment SVID @deftypefun void endutent (void) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c endutent @mtasurace:utent @asulock @aculock @acsfd @c libc_lock_lock dup @asulock @aculock @@ -1193,9 +1160,8 @@ A null pointer is returned in case no further entry is available. This function closes the user accounting database. @end deftypefun -@comment utmp.h -@comment SVID @deftypefun {struct utmp *} getutid (const struct utmp *@var{id}) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} @c Same caveats as getutline. @c @@ -1230,9 +1196,8 @@ is necessary to zero out the static data after each call. Otherwise over again. @end deftypefun -@comment utmp.h -@comment SVID @deftypefun {struct utmp *} getutline (const struct utmp *@var{line}) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} @c The static buffer that holds results is allocated with malloc at @c the first call; the test is not thread-safe, so multiple concurrent @@ -1260,9 +1225,8 @@ is necessary to zero out the static data after each call. Otherwise over again. @end deftypefun -@comment utmp.h -@comment SVID @deftypefun {struct utmp *} pututline (const struct utmp *@var{utmp}) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c pututline @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd @c libc_lock_lock dup @asulock @aculock @@ -1313,9 +1277,8 @@ return value data in another thread. Therefore @theglibc{} provides as extensions three more functions which return the data in a user-provided buffer. -@comment utmp.h -@comment GNU @deftypefun int getutent_r (struct utmp *@var{buffer}, struct utmp **@var{result}) +@standards{GNU, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c getutent_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd @c libc_lock_lock dup @asulock @aculock @@ -1351,9 +1314,8 @@ execution of @code{getutent_r} the function returns @code{-1}. This function is a GNU extension. @end deftypefun -@comment utmp.h -@comment GNU @deftypefun int getutid_r (const struct utmp *@var{id}, struct utmp *@var{buffer}, struct utmp **@var{result}) +@standards{GNU, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c getutid_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd @c libc_lock_lock dup @asulock @aculock @@ -1382,9 +1344,8 @@ successful the function return @code{-1}. This function is a GNU extension. @end deftypefun -@comment utmp.h -@comment GNU @deftypefun int getutline_r (const struct utmp *@var{line}, struct utmp *@var{buffer}, struct utmp **@var{result}) +@standards{GNU, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} @c getutline_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd @c libc_lock_lock dup @asulock @aculock @@ -1427,9 +1388,8 @@ previous logins (usually in @file{/etc/wtmp} or @file{/var/log/wtmp}). For specifying which database to examine, the following function should be used. -@comment utmp.h -@comment SVID @deftypefun int utmpname (const char *@var{file}) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsmem{}}} @c utmpname @mtasurace:utent @asulock @ascuheap @aculock @acsmem @c libc_lock_lock dup @asulock @aculock @@ -1463,9 +1423,8 @@ database can be successfully opened. Specially for maintaining log-like databases @theglibc{} provides the following function: -@comment utmp.h -@comment SVID @deftypefun void updwtmp (const char *@var{wtmp_file}, const struct utmp *@var{utmp}) +@standards{SVID, utmp.h} @safety{@prelim{}@mtunsafe{@mtascusig{:ALRM} @mtascutimer{}}@asunsafe{}@acunsafe{@acsfd{}}} @c updwtmp @mtascusig:ALRM @mtascutimer @acsfd @c TRANSFORM_UTMP_FILE_NAME dup ok @@ -1538,102 +1497,87 @@ integer constants and are, in @theglibc{}, identical to the definitions in @file{utmp.h}. @vtable @code -@comment utmpx.h -@comment XPG4.2 @item EMPTY +@standards{XPG4.2, utmpx.h} This macro is used to indicate that the entry contains no valid user accounting information. -@comment utmpx.h -@comment XPG4.2 @item RUN_LVL +@standards{XPG4.2, utmpx.h} This macro is used to identify the system's runlevel. -@comment utmpx.h -@comment XPG4.2 @item BOOT_TIME +@standards{XPG4.2, utmpx.h} This macro is used to identify the time of system boot. -@comment utmpx.h -@comment XPG4.2 @item OLD_TIME +@standards{XPG4.2, utmpx.h} This macro is used to identify the time when the system clock changed. -@comment utmpx.h -@comment XPG4.2 @item NEW_TIME +@standards{XPG4.2, utmpx.h} This macro is used to identify the time after the system clock changed. -@comment utmpx.h -@comment XPG4.2 @item INIT_PROCESS +@standards{XPG4.2, utmpx.h} This macro is used to identify a process spawned by the init process. -@comment utmpx.h -@comment XPG4.2 @item LOGIN_PROCESS +@standards{XPG4.2, utmpx.h} This macro is used to identify the session leader of a logged in user. -@comment utmpx.h -@comment XPG4.2 @item USER_PROCESS +@standards{XPG4.2, utmpx.h} This macro is used to identify a user process. -@comment utmpx.h -@comment XPG4.2 @item DEAD_PROCESS +@standards{XPG4.2, utmpx.h} This macro is used to identify a terminated process. @end vtable The size of the @code{ut_line}, @code{ut_id} and @code{ut_user} arrays can be found using the @code{sizeof} operator. -@comment utmpx.h -@comment XPG4.2 @deftypefun void setutxent (void) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} This function is similar to @code{setutent}. In @theglibc{} it is simply an alias for @code{setutent}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun {struct utmpx *} getutxent (void) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} The @code{getutxent} function is similar to @code{getutent}, but returns a pointer to a @code{struct utmpx} instead of @code{struct utmp}. In @theglibc{} it simply is an alias for @code{getutent}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun void endutxent (void) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} This function is similar to @code{endutent}. In @theglibc{} it is simply an alias for @code{endutent}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun {struct utmpx *} getutxid (const struct utmpx *@var{id}) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsmem{} @acsfd{}}} This function is similar to @code{getutid}, but uses @code{struct utmpx} instead of @code{struct utmp}. In @theglibc{} it is simply an alias for @code{getutid}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun {struct utmpx *} getutxline (const struct utmpx *@var{line}) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtuinit{} @mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} This function is similar to @code{getutid}, but uses @code{struct utmpx} instead of @code{struct utmp}. In @theglibc{} it is simply an alias for @code{getutline}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun {struct utmpx *} pututxline (const struct utmpx *@var{utmp}) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}} The @code{pututxline} function is functionally identical to @code{pututline}, but uses @code{struct utmpx} instead of @code{struct @@ -1641,9 +1585,8 @@ utmp}. In @theglibc{}, @code{pututxline} is simply an alias for @code{pututline}. @end deftypefun -@comment utmpx.h -@comment XPG4.2 @deftypefun int utmpxname (const char *@var{file}) +@standards{XPG4.2, utmpx.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsmem{}}} The @code{utmpxname} function is functionally identical to @code{utmpname}. In @theglibc{}, @code{utmpxname} is simply an @@ -1655,17 +1598,17 @@ You can translate between a traditional @code{struct utmp} and an XPG these functions are merely copies, since the two structures are identical. -@comment utmp.h utmpx.h -@comment GNU @deftypefun int getutmp (const struct utmpx *@var{utmpx}, struct utmp *@var{utmp}) +@standards{GNU, utmp.h} +@standards{GNU, utmpx.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @code{getutmp} copies the information, insofar as the structures are compatible, from @var{utmpx} to @var{utmp}. @end deftypefun -@comment utmp.h utmpx.h -@comment GNU @deftypefun int getutmpx (const struct utmp *@var{utmp}, struct utmpx *@var{utmpx}) +@standards{GNU, utmp.h} +@standards{GNU, utmpx.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} @code{getutmpx} copies the information, insofar as the structures are compatible, from @var{utmp} to @var{utmpx}. @@ -1683,9 +1626,8 @@ Note that the @code{ut_user} member of @code{struct utmp} is called @code{ut_name} in BSD. Therefore, @code{ut_name} is defined as an alias for @code{ut_user} in @file{utmp.h}. -@comment utmp.h -@comment BSD @deftypefun int login_tty (int @var{filedes}) +@standards{BSD, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:ttyname}}@asunsafe{@ascuheap{} @asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} @c If this function is canceled, it may have succeeded in redirecting @c only some of the standard streams to the newly opened terminal. @@ -1705,9 +1647,8 @@ This function returns @code{0} on successful completion, and @code{-1} on error. @end deftypefun -@comment utmp.h -@comment BSD @deftypefun void login (const struct utmp *@var{entry}) +@standards{BSD, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acucorrupt{} @acsfd{} @acsmem{}}} @c login @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @ascuheap @aculock @acucorrupt @acsfd @acsmem @c getpid dup ok @@ -1738,9 +1679,8 @@ process. The remaining entries are copied from @var{entry}. A copy of the entry is written to the user accounting log file. @end deftypefun -@comment utmp.h -@comment BSD @deftypefun int logout (const char *@var{ut_line}) +@standards{BSD, utmp.h} @safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} @c logout @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @ascuheap @aculock @acsfd @acsmem @c utmpname dup @mtasurace:utent @asulock @ascuheap @aculock @acsmem @@ -1759,9 +1699,8 @@ The @code{logout} function returns @code{1} if the entry was successfully written to the database, or @code{0} on error. @end deftypefun -@comment utmp.h -@comment BSD @deftypefun void logwtmp (const char *@var{ut_line}, const char *@var{ut_name}, const char *@var{ut_host}) +@standards{BSD, utmp.h} @safety{@prelim{}@mtunsafe{@mtascusig{:ALRM} @mtascutimer{}}@asunsafe{}@acunsafe{@acsfd{}}} @c logwtmp @mtascusig:ALRM @mtascutimer @acsfd @c memset dup ok @@ -1805,9 +1744,8 @@ The functions and data structures for acce |
