⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signal.c

📁 newos is new operation system
💻 C
字号:
/*** Copyright 2004, Travis Geiselbrecht. All rights reserved.** Distributed under the terms of the NewOS License.*/#include <signal.h>#include <errno.h>#include <sys/syscalls.h>static const char * const __sigstr[NSIG] = {	"NONE", "HUP", "INT", "QUIT", "ILL", "CHLD", "ABRT", "PIPE",	"FPE", "KILL", "STOP", "SEGV", "CONT", "TSTP", "ALRM", "TERM",	"TTIN", "TTOU", "USR1", "USR2", "WINCH", "KILLTHR", "TRAP"};const char *strsignal(int sig){	if(sig < 0 || sig >= NSIG)		return NULL;	return __sigstr[sig];}intsigemptyset(sigset_t *set){	*set = 0;	return 0;}intsigfillset(sigset_t *set){	*set = ~0;	return 0;}int sigaddset(sigset_t *set, int signo){	sigset_t mask = (((sigset_t) 1) << (( signo ) - 1));	return   ((*set |= mask), 0);}int sigdelset(sigset_t *set, int signo){	sigset_t mask = (((sigset_t) 1) << (( signo ) - 1));		return   ((*set &= ~mask), 0);}int sigismember(const sigset_t *set, int signo){	sigset_t mask = (((sigset_t) 1) << (( signo ) - 1));	return   (*set & mask) ? 1 : 0 ;}intsigaction(int sig, const struct sigaction *act, struct sigaction *oact){	return _kern_sigaction(sig, act, oact);}sig_func_t signal(int signal, sig_func_t signal_handler){	struct sigaction sig, oldsig;	int err;	sig.sa_handler = signal_handler;	sigemptyset(&sig.sa_mask);	sig.sa_flags = 0;	err = sigaction(signal, &sig, &oldsig);	if(err < 0)		return SIG_ERR;	return oldsig.sa_handler;}intsend_signal(pid_t pid, uint sig){	return _kern_send_proc_signal(pid, sig);}intsend_signal_thr(tid_t tid, uint sig){	return _kern_send_signal(tid, sig);}intkill(pid_t pid, int sig){	return _kern_send_proc_signal(pid, sig);}	intraise(int sig){	return _kern_send_proc_signal(_kern_get_current_proc_id(), sig);}

⌨️ 快捷键说明

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