MOH*_*MED 6 c c++ linux asynchronous signals
我有以下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();
}
Run Code Online (Sandbox Code Playgroud)
有人告诉我,flock而printf不是异步信号安全.我flock在这个列表中找不到备用的异步信号安全功能 .
并根据以上链接:
当信号中断不安全的函数并且信号捕获函数调用不安全的函数时,行为是不确定的
有没有办法使flock 异步信号安全?或者,flock当我收到TERM信号时,还有其他解决方案吗?
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |