xref: /csrg-svn/lib/libc/stdio/perror.c (revision 13488)
1 /* @(#)perror.c	4.2 (Berkeley) 06/30/83 */
2 /*
3  * Print the error indicated
4  * in the cerror cell.
5  */
6 #include <sys/types.h>
7 #include <sys/uio.h>
8 
9 int	errno;
10 int	sys_nerr;
11 char	*sys_errlist[];
12 perror(s)
13 	char *s;
14 {
15 	struct iovec iov[4];
16 	register struct iovec *v = iov;
17 
18 	if (s && *s) {
19 		v->iov_base = s;
20 		v->iov_len = strlen(s);
21 		v++;
22 		v->iov_base = ": ";
23 		v->iov_len = 2;
24 		v++;
25 	}
26 	v->iov_base = errno < sys_nerr ? sys_errlist[errno] : "Unknown error";
27 	v->iov_len = strlen(v->iov_base);
28 	v++;
29 	v->iov_base = "\n";
30 	v->iov_len = 1;
31 	writev(2, iov, (v - iov) + 1);
32 }
33