|
|
1.1 ! root 1: /* @(#)perror.c 4.2 (Berkeley) 6/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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.