svn commit: r192486 - head/usr.bin/perror

[ Available lists | Index of svn-src-all | Month of May 2009 | Week of 20 May 2009 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
George V. Neville-Neil <gnn@FreeBSD.org>
Date
20 May 2009 22:19:22
Subject
svn commit: r192486 - head/usr.bin/perror
Message-ID
200905202219.n4KMJMT9045802@svn.freebsd.org


[ Hide this part ]
Author: gnn
Date: Wed May 20 22:19:22 2009
New Revision: 192486
URL: http://svn.freebsd.org/changeset/base/192486

Log:
A few more style changes as well as a more broad allowance for
errors to be given by the caller. Change output to be easier
for use in scripts.

Submitted by: bce

Modified:
head/usr.bin/perror/perror.c

Modified: head/usr.bin/perror/perror.c
==============================================================================
--- head/usr.bin/perror/perror.c Wed May 20 22:13:21 2009 (r192485)
+++ head/usr.bin/perror/perror.c Wed May 20 22:19:22 2009 (r192486)
@@ -31,48 +31,40 @@ __FBSDID("$FreeBSD$");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <err.h>
#include <sys/errno.h>

-#define MAX_ERR 256
-
-static void
-usage()
-{
-
- fprintf(stderr, "usage: perror number\n");
- fprintf(stderr, "number must be between 1 and %d\n", ELAST);
- exit(1);
-}
+static void usage();

int
main(int argc, char **argv)
{
-
- char errstr[MAX_ERR];
char *cp;
- int errnum;
+ char *errstr;
+ long errnum;

if (argc != 2)
usage();

+ errno = 0;
+
errnum = strtol(argv[1], &cp, 0);

- if (((errnum == 0) && (errno == EINVAL)) || (*cp != '\0')) {
- fprintf(stderr, "Argument %s not a number.\n", argv[1]);
- usage();
- }
+ if (errno != 0)
+ err(1, NULL);

- if ((errnum <=0) || (errnum > ELAST)) {
- fprintf(stderr, "Number %d out of range.\n", errnum);
- usage();
- }
-
- if (strerror_r(errnum, errstr, sizeof(errstr)) < 0) {
- fprintf(stderr, "Could not find error number %d.\n", errnum);
- usage();
- }
+ if ((errstr = strerror(errnum)) == NULL)
+ err(1, NULL);

- printf("Error %d is \"%s\"\n", errnum, errstr);
+ printf("%s\n", errstr);

exit(0);
}
+
+static void
+usage()
+{
+ fprintf(stderr, "usage: perror number\n");
+ exit(1);
+}
+


Elapsed time: 0.127 seconds