Commit | Line | Data |
---|---|---|
0f4556f1 | 1 | /* @(#)perror.c 4.2 (Berkeley) 6/30/83 */ |
716337de BJ |
2 | /* |
3 | * Print the error indicated | |
4 | * in the cerror cell. | |
5 | */ | |
df5b5637 SL |
6 | #include <sys/types.h> |
7 | #include <sys/uio.h> | |
716337de BJ |
8 | |
9 | int errno; | |
10 | int sys_nerr; | |
11 | char *sys_errlist[]; | |
12 | perror(s) | |
df5b5637 | 13 | char *s; |
716337de | 14 | { |
df5b5637 SL |
15 | struct iovec iov[4]; |
16 | register struct iovec *v = iov; | |
716337de | 17 | |
df5b5637 SL |
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++; | |
716337de | 25 | } |
df5b5637 SL |
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); | |
716337de | 32 | } |