【发布时间】:2020-05-25 13:44:34
【问题描述】:
我正在尝试将内容从一个文件复制到另一个文件,使用 SIGINT 程序会中断以打印复制的字节数。我尝试在标志初始化、标志检查和标志清除时使用 sigprocmask 以避免竞争条件。但我不知道如何检查这个 sigprocmask 是否有效。我一直在努力找出这个问题。
void signal_handler(int num)
{
flag = 1;
}
int main()
{
signal(SIGINT, signal_handler);
ret = sigaddset(&set, SIGINT);
/* Code for
* copying the bytes from one file to another
*/
sigprocmask(SIG_BLOCK, &set, NULL);
if (flag == 1)
printf("The number of bytes copied are :%llu\n", bytes);
flag = 0;
sigprocmask(SIG_UNBLOCK, &set, NULL);
}
}
【问题讨论】: