| 1234567891011121314151617181920212223242526 | #include <stdio.h>#include <errno.h>/* * Manuel Novoa III           Feb 2001 * * Replaced old version that did write(2,...)'s with a version using * stream functions.  If the program is calling perror, it's a safe * bet that printf and friends are used as well.  It is also possible * that the calling program could buffer stderr, or reassign it. * Also, the old version did not conform the standards when the  * passed char * was either NULL or pointed to an empty string. */void perror(__const char *str){	static const char perror_str[] = ": ";	const char *sep;	sep = perror_str;	if (!(str && *str)) {		/* Caller did not supply a prefix message */		sep += 2;				/* or passed an empty string. */		str = sep;	}	fprintf(stderr, "%s%s%s\n", str, sep, strerror(errno));}
 |