do_kill.h

来自「linuxunix 下的c语言实现」· C头文件 代码 · 共 44 行

H
44
字号
#include <signal.h>
#include <sys/wait.h>


void do_kill(char* sig, char* pid){
	pid_t kpid;
	int   ksig;
	int   status;

	if(pid == NULL && sig == NULL){
		printf("usage:  kill [-1 | -9 | -15] [pid]\n  -1: sighup\n  -9: sigkill\n  -15: sigterm\n");
		return;
	}
	if(pid == NULL){
		ksig = 15;
		kpid = (pid_t)atol(sig);
		if(kill(kpid, ksig) == -1){
		perror("Error: ");
		}
		wait(&status);
		return;
	}


	else{
		if(!(strcmp(sig, "-1"))){
			ksig = 1;
		}
		if(!(strcmp(sig, "-9"))){
			ksig = 9;
		}
		else{
			ksig = 15;
		}
	}
	kpid = (pid_t)atol(pid);
	if(kill(kpid, ksig) == -1){
		perror("Error: ");
	}
	wait(&status);
	return;

}

⌨️ 快捷键说明

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