diff options
-rw-r--r-- | include/unistd.h | 296 |
1 files changed, 201 insertions, 95 deletions
diff --git a/include/unistd.h b/include/unistd.h index 6ee8732dd..bb5cfd4bd 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1991-2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,34 +30,30 @@ __BEGIN_DECLS /* These may be used to determine what facilities are present at compile time. Their values can be obtained at run time from `sysconf'. */ -/* POSIX Standard approved as ISO/IEC 9945-1 as of August, 1988 and - extended by POSIX-1b (aka POSIX-4) and POSIX-1c (aka POSIX threads). */ -#define _POSIX_VERSION 199506L +/* POSIX Standard approved as ISO/IEC 9945-1 as of December 2001. */ +#define _POSIX_VERSION 200112L /* These are not #ifdef __USE_POSIX2 because they are in the theoretically application-owned namespace. */ -/* POSIX Standard approved as ISO/IEC 9945-2 as of December, 1993. */ -#define _POSIX2_C_VERSION 199209L - /* The utilities on GNU systems also correspond to this version. */ -#define _POSIX2_VERSION 199209L +#define _POSIX2_VERSION 200112L /* If defined, the implementation supports the C Language Bindings Option. */ -#define _POSIX2_C_BIND 1 +#define _POSIX2_C_BIND 200112L /* If defined, the implementation supports the C Language Development Utilities Option. */ -#define _POSIX2_C_DEV 1 +#define _POSIX2_C_DEV 200112L /* If defined, the implementation supports the Software Development Utilities Option. */ -#define _POSIX2_SW_DEV 1 +#define _POSIX2_SW_DEV 200112L /* If defined, the implementation supports the creation of locales with the localedef utility. */ -#define _POSIX2_LOCALEDEF 1 +#define _POSIX2_LOCALEDEF 200112L /* X/Open version number to which the library conforms. It is selectable. */ #ifdef __USE_UNIX98 @@ -198,7 +194,7 @@ typedef __ssize_t ssize_t; #define __need_NULL #include <stddef.h> -#ifdef __USE_XOPEN +#if defined __USE_XOPEN || defined __USE_XOPEN2K /* The Single Unix specification says that some more types are available here. */ # ifndef __gid_t_defined @@ -257,7 +253,14 @@ typedef __socklen_t socklen_t; #define F_OK 0 /* Test for existence. */ /* Test for access to NAME using the real UID and real GID. */ -extern int access (__const char *__name, int __type) __THROW; +extern int access (__const char *__name, int __type) __THROW __nonnull ((1)); + +#if 0 /* def __USE_GNU */ +/* Test for access to NAME using the effective UID and GID + (as normal file operations use). */ +extern int euidaccess (__const char *__name, int __type) + __THROW __nonnull ((1)); +#endif /* Values for the WHENCE argument to lseek. */ @@ -285,9 +288,8 @@ extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW; #else # ifdef __REDIRECT extern __off64_t __REDIRECT (lseek, - (int __fd, __off64_t __offset, int __whence) - __THROW, - lseek64); + (int __fd, __off64_t __offset, int __whence), + lseek64); # else # define lseek lseek64 # endif @@ -296,31 +298,51 @@ extern __off64_t __REDIRECT (lseek, extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) __THROW; #endif -/* Close the file descriptor FD. */ -extern int close (int __fd) __THROW; +/* Close the file descriptor FD. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int close (int __fd); /* Read NBYTES into BUF from FD. Return the - number read, -1 for errors or 0 for EOF. */ -extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __THROW; + number read, -1 for errors or 0 for EOF. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern ssize_t read (int __fd, void *__buf, size_t __nbytes); + +/* Write N bytes of BUF to FD. Return the number written, or -1. -/* Write N bytes of BUF to FD. Return the number written, or -1. */ -extern ssize_t write (int __fd, __const void *__buf, size_t __n) __THROW; + This function is a cancellation point and therefore not marked with + __THROW. */ +extern ssize_t write (int __fd, __const void *__buf, size_t __n); #ifdef __USE_UNIX98 # ifndef __USE_FILE_OFFSET64 -extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) - __THROW; +/* Read NBYTES into BUF from FD at the given position OFFSET without + changing the file pointer. Return the number read, -1 for errors + or 0 for EOF. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, + __off_t __offset); + +/* Write N bytes of BUF to FD at the given position OFFSET without + changing the file pointer. Return the number written, or -1. + + This function is a cancellation point and therefore not marked with + __THROW. */ extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, - __off_t __offset) __THROW; + __off_t __offset); # else # ifdef __REDIRECT extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, - __off64_t __offset) __THROW, + __off64_t __offset), pread64); extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, - size_t __nbytes, __off64_t __offset) - __THROW, - pwrite64); + size_t __nbytes, __off64_t __offset), + pwrite64); # else # define pread pread64 # define pwrite pwrite64 @@ -332,11 +354,11 @@ extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, changing the file pointer. Return the number read, -1 for errors or 0 for EOF. */ extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, - __off64_t __offset) __THROW; + __off64_t __offset); /* Write N bytes of BUF to FD at the given position OFFSET without changing the file pointer. Return the number written, or -1. */ extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, - __off64_t __offset) __THROW; + __off64_t __offset); # endif #endif @@ -361,8 +383,11 @@ extern unsigned int alarm (unsigned int __seconds) __THROW; If a signal handler does a `longjmp' or modifies the handling of the SIGALRM signal while inside `sleep' call, the handling of the SIGALRM signal afterwards is undefined. There is no return value to indicate - error, but if `sleep' returns SECONDS, it probably didn't work. */ -extern unsigned int sleep (unsigned int __seconds) __THROW; + error, but if `sleep' returns SECONDS, it probably didn't work. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern unsigned int sleep (unsigned int __seconds); #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Set an alarm to go off (generating a SIGALRM signal) in VALUE @@ -373,19 +398,25 @@ extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __THROW; /* Sleep USECONDS microseconds, or until a signal arrives that is not blocked - or ignored. */ -extern int usleep (__useconds_t __useconds) __THROW; + or ignored. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int usleep (__useconds_t __useconds); #endif /* Suspend the process until a signal arrives. - This always returns -1 and sets `errno' to EINTR. */ -extern int pause (void) __THROW; + This always returns -1 and sets `errno' to EINTR. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int pause (void); /* Change the owner and group of FILE. */ extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) - __THROW; + __THROW __nonnull ((1)); #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Change the owner and group of the file that FD is open on. */ @@ -395,12 +426,12 @@ extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW; /* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic link is changed. */ extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) - __THROW; + __THROW __nonnull ((1)); #endif /* Use BSD || X/Open Unix. */ /* Change the process's working directory to PATH. */ -extern int chdir (__const char *__path) __THROW; +extern int chdir (__const char *__path) __THROW __nonnull ((1)); #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Change the process's working directory to the one FD is open on. */ @@ -416,11 +447,19 @@ extern int fchdir (int __fd) __THROW; big as necessary. */ extern char *getcwd (char *__buf, size_t __size) __THROW; +#ifdef __USE_GNU /* Return a malloc'd string containing the current directory name. If the environment variable `PWD' is set, and its value is correct, that value is used. */ extern char *get_current_dir_name (void) __THROW; +#endif +#if 0 /* defined __USE_BSD || defined __USE_XOPEN_EXTENDED */ +/* Put the absolute pathname of the current working directory in BUF. + If successful, return BUF. If not, put an error message in + BUF and return NULL. BUF should be at least PATH_MAX bytes long. */ +extern char *getwd (char *__buf) __THROW __nonnull ((1)); +#endif /* Duplicate FD, returning a new file descriptor on the same file. */ @@ -439,27 +478,40 @@ extern char **environ; /* Replace the current process, executing PATH with arguments ARGV and environment ENVP. ARGV and ENVP are terminated by NULL pointers. */ extern int execve (__const char *__path, char *__const __argv[], - char *__const __envp[]) __THROW; + char *__const __envp[]) __THROW __nonnull ((1)); + +#if 0 /* def __USE_GNU */ +/* Execute the file FD refers to, overlaying the running program image. + ARGV and ENVP are passed to the new program, as for `execve'. */ +extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) + __THROW; +#endif + /* Execute PATH with arguments ARGV and environment from `environ'. */ -extern int execv (__const char *__path, char *__const __argv[]) __THROW; +extern int execv (__const char *__path, char *__const __argv[]) + __THROW __nonnull ((1)); /* Execute PATH with all arguments after PATH until a NULL pointer, and the argument after that for environment. */ -extern int execle (__const char *__path, __const char *__arg, ...) __THROW; +extern int execle (__const char *__path, __const char *__arg, ...) + __THROW __nonnull ((1)); /* Execute PATH with all arguments after PATH until a NULL pointer and environment from `environ'. */ -extern int execl (__const char *__path, __const char *__arg, ...) __THROW; +extern int execl (__const char *__path, __const char *__arg, ...) + __THROW __nonnull ((1)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ -extern int execvp (__const char *__file, char *__const __argv[]) __THROW; +extern int execvp (__const char *__file, char *__const __argv[]) + __THROW __nonnull ((1)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with all arguments after FILE until a NULL pointer and environment from `environ'. */ -extern int execlp (__const char *__file, __const char *__arg, ...) __THROW; +extern int execlp (__const char *__file, __const char *__arg, ...) + __THROW __nonnull ((1)); #if defined __USE_MISC || defined __USE_XOPEN @@ -478,7 +530,8 @@ extern void _exit (int __status) __attribute__ ((__noreturn__)); #include <bits/confname.h> /* Get file-specific configuration information about PATH. */ -extern long int pathconf (__const char *__path, int __name) __THROW; +extern long int pathconf (__const char *__path, int __name) + __THROW __nonnull ((1)); /* Get file-specific configuration about descriptor FD. */ extern long int fpathconf (int __fd, int __name) __THROW; @@ -504,7 +557,7 @@ extern __pid_t getppid (void) __THROW; extern __pid_t getpgrp (void) __THROW; #else # ifdef __REDIRECT -extern __pid_t __REDIRECT (getpgrp, (__pid_t __pid) __THROW, __getpgid); +extern __pid_t __REDIRECT (getpgrp, (__pid_t __pid), __getpgid); # else # define getpgrp __getpgid # endif @@ -543,8 +596,7 @@ extern int setpgrp (void) __THROW; /* Another name for `setpgid' (above). */ # ifdef __REDIRECT -extern int __REDIRECT (setpgrp, (__pid_t __pid, __pid_t __pgrp) __THROW, - setpgid); +extern int __REDIRECT (setpgrp, (__pid_t __pid, __pid_t __pgrp), setpgid); # else # define setpgrp setpgid # endif @@ -579,6 +631,11 @@ extern __gid_t getegid (void) __THROW; of its supplementary groups in LIST and return the number written. */ extern int getgroups (int __size, __gid_t __list[]) __THROW; +#if 0 /* def __USE_GNU */ +/* Return nonzero iff the calling process is in group GID. */ +extern int group_member (__gid_t __gid) __THROW; +#endif + /* Set the user ID of the calling process to UID. If the calling process is the super-user, set the real and effective user IDs, and the saved set-user-ID to UID; @@ -654,33 +711,42 @@ extern char *ttyname (int __fd) __THROW; /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ -extern int ttyname_r (int __fd, char *__buf, size_t __buflen) __THROW; +extern int ttyname_r (int __fd, char *__buf, size_t __buflen) + __THROW __nonnull ((2)); /* Return 1 if FD is a valid descriptor associated with a terminal, zero if not. */ extern int isatty (int __fd) __THROW; +#if 0 /* defined __USE_BSD \ + || (defined __USE_XOPEN_EXTENDED && !defined __USE_UNIX98) */ +/* Return the index into the active-logins file (utmp) for + the controlling terminal. */ +extern int ttyslot (void) __THROW; +#endif /* Make a link to FROM named TO. */ -extern int link (__const char *__from, __const char *__to) __THROW; +extern int link (__const char *__from, __const char *__to) + __THROW __nonnull ((1, 2)); -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K /* Make a symbolic link to FROM named TO. */ -extern int symlink (__const char *__from, __const char *__to) __THROW; +extern int symlink (__const char *__from, __const char *__to) + __THROW __nonnull ((1, 2)); /* Read the contents of the symbolic link PATH into no more than LEN bytes of BUF. The contents are not null-terminated. Returns the number of characters read, or -1 for errors. */ extern int readlink (__const char *__restrict __path, char *__restrict __buf, - size_t __len) __THROW; + size_t __len) __THROW __nonnull ((1, 2)); #endif /* Use BSD. */ /* Remove the link NAME. */ -extern int unlink (__const char *__name) __THROW; +extern int unlink (__const char *__name) __THROW __nonnull ((1)); /* Remove the directory PATH. */ -extern int rmdir (__const char *__path) __THROW; +extern int rmdir (__const char *__path) __THROW __nonnull ((1)); /* Return the foreground process group ID of FD. */ @@ -690,15 +756,25 @@ extern __pid_t tcgetpgrp (int __fd) __THROW; extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __THROW; -/* Return the login name of the user. */ -extern char *getlogin (void) __THROW; +/* Return the login name of the user. + + This function is a possible cancellation points and therefore not + marked with __THROW. */ +extern char *getlogin (void); #if defined __USE_REENTRANT || defined __USE_UNIX98 /* Return at most NAME_LEN characters of the login name of the user in NAME. If it cannot be determined or some other error occurred, return the error - code. Otherwise return 0. */ -extern int getlogin_r (char *__name, size_t __name_len) __THROW; + code. Otherwise return 0. + + This function is a possible cancellation points and therefore not + marked with __THROW. */ +extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1)); #endif +#if 0 /* def __USE_BSD */ +/* Set the login name returned by `getlogin'. */ +extern int setlogin (__const char *__name) __THROW __nonnull ((1)); +#endif #ifdef __USE_POSIX2 @@ -706,7 +782,7 @@ extern int getlogin_r (char *__name, size_t __name_len) __THROW; arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. */ # define __need_getopt -# include <bits/getopt.h> +# include <getopt.h> #endif @@ -714,14 +790,15 @@ extern int getlogin_r (char *__name, size_t __name_len) __THROW; /* Put the name of the current host in no more than LEN bytes of NAME. The result is null-terminated if LEN is large enough for the full name and the terminator. */ -extern int gethostname (char *__name, size_t __len) __THROW; +extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)); #endif #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98) /* Set the name of the current host to NAME, which is LEN bytes long. This call is restricted to the super-user. */ -extern int sethostname (__const char *__name, size_t __len) __THROW; +extern int sethostname (__const char *__name, size_t __len) + __THROW __nonnull ((1)); /* Set the current machine's Internet number to ID. This call is restricted to the super-user. */ @@ -731,8 +808,10 @@ extern int sethostid (long int __id) __THROW; /* Get and set the NIS (aka YP) domain name, if any. Called just like `gethostname' and `sethostname'. The NIS domain name is usually the empty string when not using NIS. */ -extern int getdomainname (char *__name, size_t __len) __THROW; -extern int setdomainname (__const char *__name, size_t __len) __THROW; +extern int getdomainname (char *__name, size_t __len) + __THROW __nonnull ((1)); +extern int setdomainname (__const char *__name, size_t __len) + __THROW __nonnull ((1)); /* Revoke access permissions to all processes currently communicating @@ -740,12 +819,26 @@ extern int setdomainname (__const char *__name, size_t __len) __THROW; group of the control terminal. */ extern int vhangup (void) __THROW; +#if 0 +/* Revoke the access of all descriptors currently open on FILE. */ +extern int revoke (__const char *__file) __THROW __nonnull ((1)); + + +/* Enable statistical profiling, writing samples of the PC into at most + SIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling + is enabled, the system examines the user PC and increments + SAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero, + disable profiling. Returns zero on success, -1 on error. */ +extern int profil (unsigned short int *__sample_buffer, size_t __size, + size_t __offset, unsigned int __scale) + __THROW __nonnull ((1)); +#endif /* Turn accounting on if NAME is an existing file. The system will then write a record for each process as it terminates, to this file. If NAME is NULL, turn accounting off. This call is restricted to the super-user. */ -extern int acct (__const char *__name) __THROW; +extern int acct (__const char *__name) __THROW __nonnull ((1)); /* Successive calls return the shells listed in `/etc/shells'. */ @@ -754,7 +847,7 @@ extern void endusershell (void) __THROW; /* Discard cached info. */ extern void setusershell (void) __THROW; /* Rewind and re-read the file. */ -#if defined __ARCH_HAS_MMU__ +#ifdef __ARCH_HAS_MMU__ /* Put the program in the background, and dissociate from the controlling terminal. If NOCHDIR is zero, do `chdir ("/")'. If NOCLOSE is zero, redirects stdin, stdout, and stderr to /dev/null. */ @@ -766,24 +859,27 @@ extern int daemon (int __nochdir, int __noclose) __THROW; #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_XOPEN2K) /* Make PATH be the root directory (the starting point for absolute paths). This call is restricted to the super-user. */ -extern int chroot (__const char *__path) __THROW; +extern int chroot (__const char *__path) __THROW __nonnull ((1)); /* Prompt with PROMPT and read a string from the terminal without echoing. Uses /dev/tty if possible; otherwise stderr and stdin. */ -extern char *getpass (__const char *__prompt) __THROW; +extern char *getpass (__const char *__prompt) __nonnull ((1)); #endif /* Use BSD || X/Open. */ #if defined __USE_BSD || defined __USE_XOPEN -/* Make all changes done to FD actually appear on disk. */ -extern int fsync (int __fd) __THROW; +/* Make all changes done to FD actually appear on disk. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int fsync (int __fd); #endif /* Use BSD || X/Open. */ #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED -/* Return the current machine's Internet number. */ -extern long int gethostid (void) __THROW; +/* Return identifier for the current host. */ +extern long int gethostid (void); /* Make all changes done to all files actually appear on disk. */ extern void sync (void) __THROW; @@ -794,29 +890,40 @@ extern void sync (void) __THROW; extern int getpagesize (void) __THROW __attribute__ ((__const__)); +/* Return the maximum number of file descriptors + the current process could possibly have. */ +extern int getdtablesize (void) __THROW; + + /* Truncate FILE to LENGTH bytes. */ # ifndef __USE_FILE_OFFSET64 -extern int truncate (__const char *__file, __off_t __length) __THROW; +extern int truncate (__const char *__file, __off_t __length) + __THROW __nonnull ((1)); # else # ifdef __REDIRECT extern int __REDIRECT (truncate, - (__const char *__file, __off64_t __length) __THROW, - truncate64); + (__const char *__file, __off64_t __length), + truncate64) __nonnull ((1)); # else # define truncate truncate64 # endif # endif # ifdef __USE_LARGEFILE64 -extern int truncate64 (__const char *__file, __off64_t __length) __THROW; +extern int truncate64 (__const char *__file, __off64_t __length) + __THROW __nonnull ((1)); # endif +#endif /* Use BSD || X/Open Unix. */ + +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K + /* Truncate the file FD is open on to LENGTH bytes. */ # ifndef __USE_FILE_OFFSET64 extern int ftruncate (int __fd, __off_t __length) __THROW; # else # ifdef __REDIRECT -extern int __REDIRECT (ftruncate, (int __fd, __off64_t __length) __THROW, - ftruncate64); +extern int __REDIRECT (ftruncate, (int __fd, __off64_t __length), + ftruncate64); # else # define ftruncate ftruncate64 # endif @@ -825,12 +932,7 @@ extern int __REDIRECT (ftruncate, (int __fd, __off64_t __length) __THROW, extern int ftruncate64 (int __fd, __off64_t __length) __THROW; # endif - -/* Return the maximum number of file descriptors - the current process could possibly have. */ -extern int getdtablesize (void) __THROW; - -#endif /* Use BSD || X/Open Unix. */ +#endif /* Use BSD || X/Open Unix || POSIX 2003. */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED @@ -870,7 +972,10 @@ extern long int syscall (long int __sysno, ...) __THROW; /* `lockf' is a simpler interface to the locking facilities of `fcntl'. LEN is always relative to the current file position. - The CMD argument is one of the following. */ + The CMD argument is one of the following. + + This function is a cancellation point and therefore not marked with + __THROW. */ # define F_ULOCK 0 /* Unlock a previously locked region. */ # define F_LOCK 1 /* Lock a region for exclusive use. */ @@ -878,17 +983,17 @@ extern long int syscall (long int __sysno, ...) __THROW; # define F_TEST 3 /* Test a region for other processes locks. */ # ifndef __USE_FILE_OFFSET64 -extern int lockf (int __fd, int __cmd, __off_t __len) __THROW; +extern int lockf (int __fd, int __cmd, __off_t __len); # else # ifdef __REDIRECT -extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len) __THROW, +extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len), lockf64); # else # define lockf lockf64 # endif # endif # ifdef __USE_LARGEFILE64 -extern int lockf64 (int __fd, int __cmd, __off64_t __len) __THROW; +extern int lockf64 (int __fd, int __cmd, __off64_t __len); # endif #endif /* Use misc and F_LOCK not already defined. */ @@ -917,11 +1022,12 @@ extern int fdatasync (int __fildes) __THROW; be defined here. */ #ifdef __USE_XOPEN /* Encrypt at most 8 characters from KEY using salt to perturb DES. */ -extern char *crypt (__const char *__key, __const char *__salt) __THROW; +extern char *crypt (__const char *__key, __const char *__salt) + __THROW __nonnull ((1, 2)); /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt block in place. */ -extern void encrypt (char *__block, int __edflag) __THROW; +extern void encrypt (char *__block, int __edflag) __THROW __nonnull ((1)); /* Swab pairs bytes in the first N bytes of the area pointed to by @@ -929,7 +1035,7 @@ extern void encrypt (char *__block, int __edflag) __THROW; range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM is without partner. */ extern void swab (__const void *__restrict __from, void *__restrict __to, - ssize_t __n) __THROW; + ssize_t __n) __THROW __nonnull ((1, 2)); #endif @@ -937,7 +1043,7 @@ extern void swab (__const void *__restrict __from, void *__restrict __to, It is also found in <stdio.h>. */ #ifdef __USE_XOPEN /* Return the name of the controlling terminal. */ -extern char *ctermid (char *__s) __THROW; +extern char *ctermid (char *__s) __THROW __nonnull ((1)); #endif __END_DECLS |