日期:2014-05-16  浏览次数:20611 次

fork, execv后 timer 失效
程序中有
C/C++ code
setitimer(ITIMER_REAL, &timer, NULL);
act.sa_handler = handler;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGALRM, &act, 0);
while(1)
{
    pause();
}


程序按间隔时间调用 handler; 但是当我
C/C++ code
pid = fork();
if(pid == 0)
{
    execv(argv[0], argv);
    exit(0);
}
else if(pid > 0)
{
    exit(0);
}
else
{
    exit(-1);
}

后, fork, execv生成的进程, 一直处于 pause 状态, 定时器没有效果.
不知道是什么原因?

------解决方案--------------------
exec后,timer自然没有了。
------解决方案--------------------
exec 自己?会不会一直fork啊?