was added in Linux 3.15; library support was added in glibc 2.28.
.SH STANDARDS
.BR rename ():
-4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008.
+4.3BSD, C99, POSIX.1-2001, POSIX.1-2008.
.PP
.BR renameat ():
POSIX.1-2008.
.I signum
is invalid.
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
The effects of
.BR signal ()
.B SIGSEGV
signal.
.SH STANDARDS
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
+SVr4, 4.3BSD, C99, POSIX.1-2001.
.\" Under 4.3BSD, this call is obsoleted by
.\" .BR gettimeofday (2).
POSIX does not specify any error conditions.
.ad
.sp 1
.SH STANDARDS
-SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C89, C99.
+SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C99.
.SH NOTES
Up until glibc 2.26,
if the
.sp 1
.SH STANDARDS
POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
-.\" POSIX.1 (1996 edition) requires only the
-.\" .BR abs ()
-.\" function.
-C89 only
-includes the
-.BR abs ()
-and
-.BR labs ()
-functions; the functions
-.BR llabs ()
-and
-.BR imaxabs ()
-were added in C99.
.SH NOTES
Trying to take the absolute value of the most negative integer
is not defined.
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR asin (3),
.BR atan (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR acos (3),
.BR atan (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
-In C89,
-.I expression
-is required to be of type
-.I int
-and undefined behavior results if it is not, but in C99
-it may have any scalar type.
-.\" See Defect Report 107 for more details.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH BUGS
.BR assert ()
is implemented as a macro; if the expression tested has side-effects,
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR acos (3),
.BR asin (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR acos (3),
.BR asin (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
Functions registered using
.BR atexit ()
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR atoi (3),
.BR atol (3),
.sp 1
.SH STANDARDS
POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
-C89 and
-POSIX.1-1996 include the functions
-.BR atoi ()
-and
-.BR atol ()
-only.
.\" .SH NOTES
.\" Linux libc provided
.\" .BR atoq ()
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH EXAMPLES
The example below first sorts an array of structures using
.BR qsort (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH NOTES
SUSv2 and POSIX.1-2001 contain text about overflow (which might set
.I errno
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
XSI requires that
.B CLOCKS_PER_SEC
equals 1000000 independent
.sp 1
.SH STANDARDS
POSIX.1-2001.
-C89 and C99 specify
+C99 specifies
.BR asctime (),
.BR ctime (),
.BR gmtime (),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
On a POSIX system,
.I time_t
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
The functions
.BR lldiv ()
and
function uses a global variable that is not protected,
so it is not thread-safe.
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
The behavior is undefined if one of the functions registered using
.BR atexit (3)
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR cbrt (3),
.BR cexp (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR abs (3),
.BR cabs (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
Note that
.BR fclose ()
.BR feof (),
and
.BR ferror ()
-conform to C89, C99, POSIX.1-2001, and POSIX.1-2008.
+conform to C99, POSIX.1-2001, and POSIX.1-2008.
.SH NOTES
POSIX.1-2008 specifies
.\"https://www.austingroupbugs.net/view.php?id=401
.ad
.sp 1
.SH STANDARDS
-C89, C99, POSIX.1-2001, POSIX.1-2008.
+C99, POSIX.1-2001, POSIX.1-2008.
.PP
POSIX.1-2001 did not specify the behavior for flushing of input streams,
but the behavior is specified in POSIX.1-2008.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
It is not advisable to mix calls to input functions from the
.I stdio
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH NOTES
SUSv2 and POSIX.1-2001 contain text about overflow (which might set
.I errno
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH BUGS
Before glibc 2.10, the glibc implementation did not set
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6784
string can also include the letter \(aqb\(aq either as a last character or as
a character between the characters in any of the two-character strings
described above.
-This is strictly for compatibility with C89
+This is strictly for compatibility with ISO C
and has no effect; the \(aqb\(aq is ignored on all POSIX
conforming systems, including Linux.
(Other systems may treat text files and binary files differently,
.SH STANDARDS
.BR fopen (),
.BR freopen ():
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
.BR fdopen ():
POSIX.1-2001, POSIX.1-2008.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH EXAMPLES
The program below demonstrates the use of
.BR fread ()
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH EXAMPLES
The program below produces results such as the following:
.PP
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH SEE ALSO
.BR lseek (2),
.BR fseeko (3)
.sp 1
.SH STANDARDS
.BR getenv ():
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.PP
.BR secure_getenv ()
is a GNU extension.
.ad
.sp 1
.SH STANDARDS
-C89, C99, POSIX.1-2001.
+C99, POSIX.1-2001.
.PP
LSB deprecates
.BR gets ().
.sp 1
.\" FIXME: need a thread-safety statement about the *_l functions
.SH STANDARDS
-C89 specifies
+POSIX.1-2001 specifies
.BR isalnum (),
.BR isalpha (),
+.BR isblank (),
.BR iscntrl (),
.BR isdigit (),
.BR isgraph (),
.BR isupper (),
and
.BR isxdigit (),
-but not
-.BR isascii ()
-and
-.BR isblank ().
-POSIX.1-2001
-also specifies those functions, and also
+and also
.BR isascii ()
-(as an XSI extension)
-and
-.BR isblank ().
+(as an XSI extension).
C99 specifies all of the preceding functions, except
.BR isascii ().
.PP
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR frexp (3),
.BR modf (3),
.ad
.sp 1
.SH STANDARDS
-C89, C99.
+C99.
.SH BUGS
The
.BR printf (3)
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH BUGS
In glibc 2.5 and earlier,
taking the
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR cbrt (3),
.BR clog10 (3),
.BR free (),
.BR calloc (),
.BR realloc ():
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
.BR reallocarray ()
is a nonstandard extension that first appeared in OpenBSD 5.6 and FreeBSD 11.0.
.sp 1
.SH STANDARDS
.BR memchr ():
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.PP
The
.BR memrchr ()
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
Do not use
.BR memcmp ()
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
Failure to observe the requirement that the memory areas
do not overlap has been the source of significant bugs.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR bcopy (3),
.BR bstring (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR bstring (3),
.BR bzero (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR frexp (3),
.BR ldexp (3)
.IR type ,
in units of bytes.
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH EXAMPLES
On a Linux/i386 system, when compiled using the default
.BR gcc (1)
.SH STANDARDS
.BR perror (),
.IR errno :
-POSIX.1-2001, POSIX.1-2008, C89, C99, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, 4.3BSD.
.PP
The externals
.I sys_nerr
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH BUGS
.SS Historical bugs (now fixed)
Before glibc 2.28,
.BR fprintf (),
.BR printf (),
.BR sprintf (),
+.BR snprintf (),
.BR vprintf (),
.BR vfprintf (),
-.BR vsprintf ():
-POSIX.1-2001, POSIX.1-2008, C89, C99.
-.PP
-.BR snprintf (),
+.BR vsprintf (),
.BR vsnprintf ():
POSIX.1-2001, POSIX.1-2008, C99.
.PP
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH BUGS
It is not advisable to mix calls to output functions from the
.I stdio
.sp 1
.SH STANDARDS
.BR qsort ():
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
To compare C strings, the comparison function can call
.BR strcmp (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
Since glibc 2.3.3,
.BR raise ()
.BR rand ()
and
.BR srand ()
-conform to SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
+conform to SVr4, 4.3BSD, C99, POSIX.1-2001.
The function
.BR rand_r ()
is from POSIX.1-2001.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, 4.3BSD.
.\" .SH NOTES
.\" Under libc4 and libc5,
.\" .BR remove ()
.BR setbuf ()
and
.BR setvbuf ()
-functions conform to C89 and C99.
+functions conform to C99.
.SH NOTES
POSIX notes
.\" https://www.austingroupbugs.net/view.php?id=397#c799
.SH STANDARDS
.BR setjmp (),
.BR longjmp ():
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
.BR sigsetjmp (),
.BR siglongjmp ():
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
The C standards specify only the categories
.BR LC_ALL ,
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH BUGS
Before glibc 2.10, the glibc implementation did not set
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6781
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR acosh (3),
.BR asinh (3),
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR cbrt (3),
.BR csqrt (3),
.ad
.sp 1
.SH STANDARDS
-The
-.BR va_start (),
-.BR va_arg (),
-and
-.BR va_end ()
-macros conform to C89.
-C99 defines the
-.BR va_copy ()
-macro.
+C99.
.SH BUGS
Unlike the historical
.B varargs
.IR stdout ,
and
.I stderr
-macros conform to C89
+macros conform to C99
and this standard also stipulates that these three
streams shall be open at program startup.
.SH NOTES
.SH STANDARDS
The
.I stdio
-library conforms to C89.
+library conforms to C99.
.SH SEE ALSO
.BR close (2),
.BR open (2),
.\" It first appeared in glibc 1.07 in 1993.
.TP
.BR strncpy ()
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH CAVEATS
The name of these functions is confusing.
These functions produce a null-padded character sequence,
.SH STANDARDS
.BR strchr (),
.BR strrchr ():
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.PP
.BR strchrnul ()
is a GNU extension.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
POSIX.1 specifies only that:
.RS
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH NOTES
In the
.I "POSIX"
.BR strcpy ()
.TQ
.BR strcat ()
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH CAVEATS
The strings
.I src
.sp 1
.SH STANDARDS
.BR strerror ()
-is specified by POSIX.1-2001, POSIX.1-2008, C89, and C99.
+is specified by POSIX.1-2001, POSIX.1-2008, and C99.
.BR strerror_r ()
is specified by POSIX.1-2001 and POSIX.1-2008.
.\" FIXME . for later review when Issue 8 is one day released...
.sp 1
.SH STANDARDS
.BR strftime ():
-SVr4, C89, C99.
+SVr4, C99.
.PD 0
.PP
.PD
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, C11, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, C11, SVr4, 4.3BSD.
.SH NOTES
In cases where the input buffer may not contain
a terminating null byte,
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH CAVEATS
The name of this function is confusing.
This function has no relation to
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR index (3),
.BR memchr (3),
since the latter cannot handle empty fields.
However,
.BR strtok (3)
-conforms to C89/C99 and hence is more portable.
+conforms to C99 and hence is more portable.
.SH BUGS
Be cautious when using this function.
If you do use it, note that:
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR index (3),
.BR memchr (3),
.sp 1
.SH STANDARDS
.BR strstr ():
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.PP
The
.BR strcasestr ()
.sp 1
.SH STANDARDS
POSIX.1-2001, POSIX.1-2008, C99.
-.PP
-.BR strtod ()
-was also described in C89.
.SH NOTES
Since
0 can legitimately be returned
.SH STANDARDS
.TP
.BR strtok ()
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.TP
.BR strtok_r ()
POSIX.1-2001, POSIX.1-2008.
.sp 1
.SH STANDARDS
.BR strtol ():
-POSIX.1-2001, POSIX.1-2008, C89, C99 SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.PP
.BR strtoll ():
POSIX.1-2001, POSIX.1-2008, C99.
.sp 1
.SH STANDARDS
.BR strtoul ():
-POSIX.1-2001, POSIX.1-2008, C89, C99 SVr4.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4.
.PP
.BR strtoull ():
POSIX.1-2001, POSIX.1-2008, C99.
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
.SH SEE ALSO
.BR bcmp (3),
.BR memcmp (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99.
+POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
.BR system ()
provides simplicity and convenience:
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH BUGS
Before glibc 2.10, the glibc implementation did not set
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=6782
The variant returning
.I double
also conforms to
-SVr4, 4.3BSD, C89.
+SVr4, 4.3BSD.
.SH SEE ALSO
.BR acosh (3),
.BR asinh (3),
.ad
.sp 1
.SH STANDARDS
-POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD, SUSv2.
+POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD, SUSv2.
.SH NOTES
POSIX.1-2001 specifies:
an error message may be written to
.sp 1
.SH STANDARDS
.BR tmpnam ():
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
+SVr4, 4.3BSD, C99, POSIX.1-2001.
POSIX.1-2008 marks
.BR tmpnam ()
as obsolete.
.SH STANDARDS
.BR toupper (),
.BR tolower ():
-C89, C99, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
+C99, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
.PP
.BR toupper_l (),
.BR tolower_l ():