178121e79SPeter Wemm /* 278121e79SPeter Wemm * Copyright (c) 1988, 1993 378121e79SPeter Wemm * The Regents of the University of California. All rights reserved. 478121e79SPeter Wemm * 578121e79SPeter Wemm * Redistribution and use in source and binary forms, with or without 678121e79SPeter Wemm * modification, are permitted provided that the following conditions 778121e79SPeter Wemm * are met: 878121e79SPeter Wemm * 1. Redistributions of source code must retain the above copyright 978121e79SPeter Wemm * notice, this list of conditions and the following disclaimer. 1078121e79SPeter Wemm * 2. Redistributions in binary form must reproduce the above copyright 1178121e79SPeter Wemm * notice, this list of conditions and the following disclaimer in the 1278121e79SPeter Wemm * documentation and/or other materials provided with the distribution. 1378121e79SPeter Wemm * 3. All advertising materials mentioning features or use of this software 1478121e79SPeter Wemm * must display the following acknowledgement: 1578121e79SPeter Wemm * This product includes software developed by the University of 1678121e79SPeter Wemm * California, Berkeley and its contributors. 1778121e79SPeter Wemm * 4. Neither the name of the University nor the names of its contributors 1878121e79SPeter Wemm * may be used to endorse or promote products derived from this software 1978121e79SPeter Wemm * without specific prior written permission. 2078121e79SPeter Wemm * 2178121e79SPeter Wemm * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2278121e79SPeter Wemm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2378121e79SPeter Wemm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2478121e79SPeter Wemm * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2578121e79SPeter Wemm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2678121e79SPeter Wemm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2778121e79SPeter Wemm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2878121e79SPeter Wemm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2978121e79SPeter Wemm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3078121e79SPeter Wemm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3178121e79SPeter Wemm * SUCH DAMAGE. 3278121e79SPeter Wemm */ 3378121e79SPeter Wemm 3478121e79SPeter Wemm #if defined(LIBC_SCCS) && !defined(lint) 3578121e79SPeter Wemm static char sccsid[] = "@(#)strerror.c 8.1 (Berkeley) 6/4/93"; 3678121e79SPeter Wemm #endif /* LIBC_SCCS and not lint */ 3778121e79SPeter Wemm 3878121e79SPeter Wemm #include <stdio.h> 3978121e79SPeter Wemm #include <string.h> 4078121e79SPeter Wemm #include <signal.h> 4178121e79SPeter Wemm 4278121e79SPeter Wemm char * 4378121e79SPeter Wemm strsignal(num) 4478121e79SPeter Wemm int num; 4578121e79SPeter Wemm { 4678121e79SPeter Wemm #define UPREFIX "Unknown signal: " 4778121e79SPeter Wemm static char ebuf[40] = UPREFIX; /* 64-bit number + slop */ 4878121e79SPeter Wemm register unsigned int signum; 4978121e79SPeter Wemm register char *p, *t; 5078121e79SPeter Wemm char tmp[40]; 5178121e79SPeter Wemm 5278121e79SPeter Wemm signum = num; /* convert to unsigned */ 5378121e79SPeter Wemm if (signum < sys_nsig) 5478121e79SPeter Wemm return ((char *)sys_siglist[signum]); 5578121e79SPeter Wemm 5678121e79SPeter Wemm /* Do this by hand, so we don't link to stdio(3). */ 5778121e79SPeter Wemm t = tmp; 5878121e79SPeter Wemm if (num < 0) 5978121e79SPeter Wemm signum = -signum; 6078121e79SPeter Wemm do { 6178121e79SPeter Wemm *t++ = "0123456789"[signum % 10]; 6278121e79SPeter Wemm } while (signum /= 10); 6378121e79SPeter Wemm if (num < 0) 6478121e79SPeter Wemm *t++ = '-'; 6578121e79SPeter Wemm for (p = ebuf + sizeof(UPREFIX) - 1;;) { 6678121e79SPeter Wemm *p++ = *--t; 6778121e79SPeter Wemm if (t <= tmp) 6878121e79SPeter Wemm break; 6978121e79SPeter Wemm } 7078121e79SPeter Wemm *p = '\0'; 7178121e79SPeter Wemm return (ebuf); 7278121e79SPeter Wemm } 73