kill和raise
kill和raise用来发送信号。kill将信号发送到指定进程或进程组,raise向自身发送信号。 #include <sys/types.h>#include <signal.h>
int kill(pid_t pid, int sig);
int raise(int sig);raise可以用kill来实现raise (signo)等价于kill (getpid(), signo);
执行成功返回0,否则返回非0.
POSIX.1将编号为0的信号定义为空信号. 如果signo参数是0, 则kill仍执行正常的错误检查, 但不发送信号. 这被用来确定一个进程是否存在.#include <stdio.h>
#include <signal.h>
void func ();
int
main (int argc, char **argv)
{
charbuffer = {0};
if (SIG_ERR == signal (SIGINT, &func)) {
perror ("signal error!\n");
}
for (;;) {
fgets (buffer, sizeof (buffer), stdin);
if (strcmp (buffer, "sigint\n") == 0)
raise (SIGINT);
else
printf ("invalid input\n");
}
}
void
func ()
{
printf ("hello world!\n");
}
页:
[1]