반응형
void perror(const char *s)
#include <sys/types.h> #include <sys/uio.h> #include <unistd.h> #include <errno.h> #include <stdio.h> #include <string.h> #include <limits.h> void perror(const char *s) { struct iovec *v; struct iovec iov[4]; char buf[NL_TEXTMAX]; v = iov; if (s && *s) { v->iov_base = (char *)s; v->iov_len = strlen(s); v++; v->iov_base = ": "; v->iov_len = 2; v++; } (void)strerror_r(errno, buf, sizeof(buf)); v->iov_base = buf; v->iov_len = strlen(v->iov_base); v++; v->iov_base = "\n"; v->iov_len = 1; (void)writev(STDERR_FILENO, iov, (v - iov) + 1); }
반응형