sigimp.c

来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· C语言 代码 · 共 126 行

C
126
字号
#include <unistd.h>#include <signal.h>#include <errno.h>#include <sys/wcebase.h>#include <sys/wcetrace.h>#if 0SIGHANDLER _sighandlers[NSIG];SIGHANDLERxcesignal(int sig, SIGHANDLER new){  SIGHANDLER old;  XCETRACE2(XCE_TRACE_SIGNALS, ("signal(%d, %x)", sig, new));  if(sig < 0 || sig >= NSIG)    return SIG_ERR;  old = _sighandlers[sig];  _sighandlers[sig] = new;  return old;}intxceraise(int sig){  XCETrace("raise(%d)", sig);  if(_sighandlers[sig] == SIG_IGN)    {      XCETrace("signal ignored");    }  else if(_sighandlers[sig] == SIG_DFL)    {      XCETrace("calling default handler");      if(sig == SIGINT)	exit(-1);    }  else    {      XCETrace("calling signal handler");      (_sighandlers[sig])(sig);      XCETrace("calling signal handler ok");    }  return 0;}#endifint sigaction(int sig, struct sigaction *act,	  struct sigaction *oldact){  return 0;}int sigprocmask(int how, const sigset_t *set,	    sigset_t *oldset){  return 0;}#if 0int sigaddset(sigset_t *mask, int sig){  *mask |= (1 << sig);  return 0;}int sigemptyset(sigset_t *mask){  *mask = 0;  return 0;}#endifint sigsuspend(const sigset_t *sigmask){  return 0;}int_kill_r(struct _reent *reent, pid_t pid, int sig){  HANDLE hnd;  int    retval, winerr;  if (sig == SIGKILL) {    hnd = OpenProcess(0, FALSE, (unsigned int)pid);    if (hnd == NULL) {      errno = _winerr2errno(GetLastError());      return(-1);    }    TerminateProcess(hnd, 0);    return(0);  }  errno = ENOTSUP;  return(-1);}    #if 0int xcekill(pid_t pid, int sig){  if(pid == xcegetpid())    {      xceraise(sig);    }  errno = EINVAL;  return -1;}#endif

⌨️ 快捷键说明

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