【发布时间】:2017-12-15 10:50:42
【问题描述】:
我正在做一个学校项目(需要用 C 开发它),我需要它在程序执行开始后每 X 秒和 Y 秒执行一些代码,它必须结束。
所以我写了:
alarm(Y);
s=X;
while(!end){
s = sleep(s); //because it generates some children that send signal to him and in that case i need to do other stuffs
if(s == 0){
//code to do each X seconds
}
}
变量end是一个全局变量,初始化为0,当收到SIGALARM时,值变为1。
如果我有 X>Y,则不应执行每 X 秒执行一次的代码,但如果 X=Y+1 则执行一次。
你能告诉我为什么会这样吗?
【问题讨论】:
-
我不是很清楚,我知道你的英文有问题,但是,你能用图形的吗?比如操作的时间线?
-
如果连睡眠手册都说混合闹钟和睡眠是个坏主意,那你就别想这样做了。
-
@Pere 请问你是怎么得出结论的?