|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: */ ! 6: ! 7: #if defined(LIBC_SCCS) && !defined(lint) ! 8: static char sccsid[] = "@(#)perror.c 5.2 (Berkeley) 3/9/86"; ! 9: #endif LIBC_SCCS and not lint ! 10: ! 11: /* ! 12: * Print the error indicated ! 13: * in the cerror cell. ! 14: */ ! 15: #include <sys/types.h> ! 16: #include <sys/uio.h> ! 17: ! 18: int errno; ! 19: int sys_nerr; ! 20: char *sys_errlist[]; ! 21: perror(s) ! 22: char *s; ! 23: { ! 24: struct iovec iov[4]; ! 25: register struct iovec *v = iov; ! 26: ! 27: if (s && *s) { ! 28: v->iov_base = s; ! 29: v->iov_len = strlen(s); ! 30: v++; ! 31: v->iov_base = ": "; ! 32: v->iov_len = 2; ! 33: v++; ! 34: } ! 35: v->iov_base = errno < sys_nerr ? sys_errlist[errno] : "Unknown error"; ! 36: v->iov_len = strlen(v->iov_base); ! 37: v++; ! 38: v->iov_base = "\n"; ! 39: v->iov_len = 1; ! 40: writev(2, iov, (v - iov) + 1); ! 41: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.