00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "defs.h"
00022 #include "statuspr.h"
00023
00024
00025 void display_status(pid_t pid, int status)
00026 {
00027 if (pid != 0)
00028 printf("Process %ld: ", (long)pid);
00029 if (WIFEXITED(status))
00030 printf("Exit value %d\n", WEXITSTATUS(status));
00031 else {
00032 char *desc;
00033 char *signame = get_macrostr("signal", WTERMSIG(status), &desc);
00034 if (desc[0] == '?')
00035 desc = signame;
00036 if (signame[0] == '?')
00037 printf("Signal #%d", WTERMSIG(status));
00038 else
00039 printf("%s", desc);
00040 if (WCOREDUMP(status))
00041 printf(" - core dumped");
00042 if (WIFSTOPPED(status))
00043 printf(" (stopped)");
00044 #if defined(_XOPEN_UNIX) && !defined(LINUX)
00045 else if (WIFCONTINUED(status))
00046 printf(" (continued)");
00047 #endif
00048 printf("\n");
00049 }
00050 }
00051