- 论坛徽章:
- 0
|
原帖由 flw2 于 2008-2-2 10:29 发表 ![]()
那你看看手册吧,不知道它是不是也能得到更多的信息
我实验了SA_SIGINFO, 但取到的si_pid一直是0,在网上查到好像是FreeBSD实现上的问题
- #include <sys/types.h>
- #include <unistd.h>
- #include <signal.h>
- #include <stdio.h>
- static void sigaction_handler(int sig, siginfo_t *info, void *ctx)
- {
- printf("sig = %d, pid %d\n", sig, info->si_pid);
- }
- static void signal_init()
- {
- struct sigaction act;
- act.sa_flags = SA_SIGINFO;
- act.sa_sigaction = sigaction_handler;
- sigaction(SIGHUP, &act, NULL);
- }
- int main()
- {
- printf("my pid: %d\n", getpid());
- signal_init();
- while (1) sleep(5);
- return (0);
- }
复制代码
另外monitor不是C语言写的,具体是哪 个程序我都不清楚, |
|