19a3009b8SGeorge V. Neville-Neil /*- 2*179fa75eSJohn Baldwin * Copyright (c) 2009 Hudson River Trading LLC 39a3009b8SGeorge V. Neville-Neil * Written by: George V. Neville-Neil <gnn@FreeBSD.org> 49a3009b8SGeorge V. Neville-Neil * All rights reserved. 59a3009b8SGeorge V. Neville-Neil * 69a3009b8SGeorge V. Neville-Neil * Redistribution and use in source and binary forms, with or without 79a3009b8SGeorge V. Neville-Neil * modification, are permitted provided that the following conditions 89a3009b8SGeorge V. Neville-Neil * are met: 99a3009b8SGeorge V. Neville-Neil * 1. Redistributions of source code must retain the above copyright 109a3009b8SGeorge V. Neville-Neil * notice, this list of conditions and the following disclaimer. 119a3009b8SGeorge V. Neville-Neil * 2. Redistributions in binary form must reproduce the above copyright 129a3009b8SGeorge V. Neville-Neil * notice, this list of conditions and the following disclaimer in the 139a3009b8SGeorge V. Neville-Neil * documentation and/or other materials provided with the distribution. 149a3009b8SGeorge V. Neville-Neil * 159a3009b8SGeorge V. Neville-Neil * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 169a3009b8SGeorge V. Neville-Neil * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 179a3009b8SGeorge V. Neville-Neil * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 189a3009b8SGeorge V. Neville-Neil * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 199a3009b8SGeorge V. Neville-Neil * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 209a3009b8SGeorge V. Neville-Neil * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 219a3009b8SGeorge V. Neville-Neil * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 229a3009b8SGeorge V. Neville-Neil * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 239a3009b8SGeorge V. Neville-Neil * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 249a3009b8SGeorge V. Neville-Neil * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 259a3009b8SGeorge V. Neville-Neil * SUCH DAMAGE. 269a3009b8SGeorge V. Neville-Neil */ 279a3009b8SGeorge V. Neville-Neil 289a3009b8SGeorge V. Neville-Neil #include <sys/cdefs.h> 299a3009b8SGeorge V. Neville-Neil __FBSDID("$FreeBSD$"); 309a3009b8SGeorge V. Neville-Neil 319a3009b8SGeorge V. Neville-Neil #include <stdio.h> 329a3009b8SGeorge V. Neville-Neil #include <stdlib.h> 339a3009b8SGeorge V. Neville-Neil #include <string.h> 341fdc45cdSGeorge V. Neville-Neil #include <err.h> 35ec9f71c4SEdwin Groothuis #include <locale.h> 369a3009b8SGeorge V. Neville-Neil #include <sys/errno.h> 379a3009b8SGeorge V. Neville-Neil 38896406c9SXin LI static void usage(void); 399a3009b8SGeorge V. Neville-Neil 4099000ae1SGeorge V. Neville-Neil int 4199000ae1SGeorge V. Neville-Neil main(int argc, char **argv) 429a3009b8SGeorge V. Neville-Neil { 439a3009b8SGeorge V. Neville-Neil char *cp; 441fdc45cdSGeorge V. Neville-Neil char *errstr; 451fdc45cdSGeorge V. Neville-Neil long errnum; 469a3009b8SGeorge V. Neville-Neil 47ec9f71c4SEdwin Groothuis (void) setlocale(LC_MESSAGES, ""); 489a3009b8SGeorge V. Neville-Neil if (argc != 2) 499a3009b8SGeorge V. Neville-Neil usage(); 509a3009b8SGeorge V. Neville-Neil 511fdc45cdSGeorge V. Neville-Neil errno = 0; 521fdc45cdSGeorge V. Neville-Neil 539a3009b8SGeorge V. Neville-Neil errnum = strtol(argv[1], &cp, 0); 549a3009b8SGeorge V. Neville-Neil 551fdc45cdSGeorge V. Neville-Neil if (errno != 0) 561fdc45cdSGeorge V. Neville-Neil err(1, NULL); 579a3009b8SGeorge V. Neville-Neil 581fdc45cdSGeorge V. Neville-Neil if ((errstr = strerror(errnum)) == NULL) 591fdc45cdSGeorge V. Neville-Neil err(1, NULL); 609a3009b8SGeorge V. Neville-Neil 611fdc45cdSGeorge V. Neville-Neil printf("%s\n", errstr); 629a3009b8SGeorge V. Neville-Neil 639a3009b8SGeorge V. Neville-Neil exit(0); 649a3009b8SGeorge V. Neville-Neil } 651fdc45cdSGeorge V. Neville-Neil 661fdc45cdSGeorge V. Neville-Neil static void 67896406c9SXin LI usage(void) 681fdc45cdSGeorge V. Neville-Neil { 691fdc45cdSGeorge V. Neville-Neil fprintf(stderr, "usage: perror number\n"); 701fdc45cdSGeorge V. Neville-Neil exit(1); 711fdc45cdSGeorge V. Neville-Neil } 721fdc45cdSGeorge V. Neville-Neil 73