Friday, May 23, 2008

Signals, sending signal with payload

프로세스에 signal을 보낼 때 payload 를 줄 수 있다. kill(), raise()가 아닌 sigqueue()를 사용하는데, 아래와 같다.

#include <signal.h>

union sigval {
int sigval_int;
void *sigval_ptr;
}

int sigqueue (pid_t pid, int signo, const union sigval value);

그래서 아래와 같이 간단히 payload를 줄 수 있다.

sigval value;
int ret;

value.sigval_int = 404;

ret = sigqueue(4500, SIGUSR1, value);
if (ret)
perror("sigqueue");

No comments:

Post a Comment