我有以下内容sigaction
处理函数
void signal_term_handler(int sig)
{
printf("EXIT :TERM signal Received!\n");
int rc = flock(pid_file, LOCK_UN | LOCK_NB);
if(rc) {
char *piderr = "PID file unlock failed!";
fprintf(stderr, "%s\n", piderr);
printf(piderr);
}
abort();
}
有人告诉我flock
and printf
不是异步信号安全的。我找不到替代的异步信号安全函数flock
in this list.
并根据上面的链接:
当信号中断不安全功能并且信号捕获时
函数调用不安全函数,行为未定义
有没有办法制作flock
异步信号安全?或者还有其他解决方案可以执行flock
当我收到TERM
signal?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)