signals.c

来自「Linux下进程监控相关源代码」· C语言 代码 · 共 75 行

C
75
字号
/* signals.c - signal name handling *//***********************************************************************\*   Copyright (C) 1992-1998 by Michael K. Johnson, johnsonm@redhat.com **                                                                      **      This file is placed under the conditions of the GNU Library     **      General Public License, version 2, or any later version.        **      See file COPYING for information on distribution  conditions.   *\***********************************************************************/#include <stdlib.h>#include <stdio.h>#include <string.h>#include <ctype.h>#include "proc/signals.h"typedef struct {    int number;    char *name;} SIGNAME;static SIGNAME signals[] = {#include "signames.h" /* should be in same dir as this file */  { 0,NULL }};void list_signals(void){    SIGNAME *walk;    int col;    col = 0;    for (walk = signals; walk->name; walk++) {	if (col+strlen(walk->name)+1 > 80) {	    putchar('\n');	    col = 0;	}	printf("%s%s",col ? " " : "",walk->name);	col += strlen(walk->name)+1;    }    putchar('\n');}int get_signal(char *name,char *cmd){    SIGNAME *walk;    if (isdigit(*name))	return atoi(name);    for (walk = signals; walk->name; walk++)	if (!strcmp(walk->name,name)) break;    if (walk->name) return walk->number;    fprintf(stderr,"%s: unknown signal; %s -l lists signals.\n",name,cmd);    exit(1);}/* get_signal2 is by Michael Shields. 1994/04/25. */int get_signal2(char *name){    SIGNAME *walk;    if (!name)        return(-1);    if (isdigit(*name))	return atoi(name);    for (walk = signals; walk->name; walk++)        if (!strcmp(walk->name,name))            return(walk->number);    return(-1);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?