0

BuzzOff.c というプログラムを作成する必要があります。私のプログラムは、次のように 3 つの整数引数を受け取る必要があります。

$ バズオフ 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 に答える