LinuxでCで長時間実行されるプログラムがあります:
longrun.c
#include <stdio.h>
int main()
{
int mode=0;
int c=0;
while(1)
{
printf("\nrun @ mode %d value : %d ",mode,c );
if (c>100)
c=0;
if(mode==0)
c++;
else
c=c+2;
sleep(3);
}
return 0;
}
表示されます
run @ mode 0 value : 0
run @ mode 0 value : 1
run @ mode 0 value : 2
C で別のプログラム ( のようなものchangemode.c
) を作成して、 と通信し、longrun.c
mode の値を別の値に設定して、実行中のプログラムが 2 の増分順で値を表示するようにする必要があります。
つまり、x 分後にプログラムを実行すると、次のパターンで表示されます。
run @ mode 0 value : nnn
run @ mode 0 value : nnn+2
run @ mode 0 value : (nnn+2)+2
ファイルメソッドを使用してそれを行うことができます.changemode.cはmode = 2というファイルを作成し、longrun.cは毎回開いてチェックして続行します. プロセス間通信など、これを解決するための他の良い方法はありますか?
可能であれば、changemode.c のサンプルを書いてもらえますか?