0

我必须编写一个名为 BuzzOff.c 的程序。我的程序必须接受 3 个整数参数,例如:

$ BuzzOff 10 99999 2

我的程序应该悄悄地从 0 计数到 0.001 增量,并保持和计数器的结果乘积的总和,即total += count * <arg1>;

我已经阅读了信号,但我仍然不确定它们是如何工作的。如何让我的程序在收到 SIGUSR1 时打印当前的运行总计?

这是我到目前为止所拥有的:

#include<stdio.h>
#include<signal.h>

float total;

void sig_handler(int signo)
{
    if (signo == SIGUSR1)
      printf("total: %f\n", total);
}

int main(int argc, char *argv[])
{
    if( argc!=4 ) {
        printf("need three arguments\n"); return(1);
    }
    float count;

    for (count = 0; count < argv[3]; count += 0.001)
      total += count*argv[2];

    return 0;

}
4

1 回答 1

0

您需要为 SIGUSR1 指定处理程序。

就像是..

信号(SIGUSR1,sig_handler);

并在 main() 中调用它

于 2013-11-06T00:02:40.983 回答