/* * Copyright (C) 2002 Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <features.h> #include <stdio.h> #include <string.h> #include <signal.h> libc_hidden_proto(fprintf) libc_hidden_proto(strsignal) /* TODO: make this threadsafe with a reentrant version of strsignal? */ void psignal(int signum, register const char *message) { /* If the program is calling psignal, it's a safe bet that printf and * friends are used as well. It is also possible that the calling * program could buffer stderr, or reassign it. */ register const char *sep; sep = ": "; if (!(message && *message)) { /* Caller did not supply a prefix message */ message = (sep += 2); /* or passed an empty string. */ } fprintf(stderr, "%s%s%s\n", message, sep, strsignal(signum)); }