[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <locale.h>
int main(int argc, char **argv)
{
setlocale(LC_ALL, "");
if (argc != 2) {
printf ("usage: %s sig_num\n");
exit (EXIT_FAILURE);
}
int sig;
char s[1024];
strcpy (s, "Signal ");
strncat (s, argv[1], 4);
sig = atoi(argv[1]);
psignal(sig, (const char *)s);
return 0;
}
[C++] 纯文本查看 复制代码
#include <sys/signal.h>
#include <string.h>
#include <unistd.h>
extern const char *const sys_siglist[];
void
psignal(sig, s)
unsigned int sig;
const char *s;
{
register const char *c;
register int n;
if (sig < NSIG)
c = (char *)sys_siglist[sig];
else
c = "Unknown signal";
n = strlen(s);
if (n) {
(void)write(STDERR_FILENO, s, n);
(void)write(STDERR_FILENO, ": ", 2);
}
(void)write(STDERR_FILENO, c, strlen(c));
(void)write(STDERR_FILENO, "\n", 1);
}