N個の引数をとり、最初の子プロセスから最後のプロセスに送信するプログラムを作成しました。 2番目の子は、受け取った値に20%を追加し、3番目の子は30%を追加します。
問題は、最初の子が常に最初の引数のみを送信することです。私はバグを見つけることができない。誰かが私にこの問題を解決するのを手助けできますかここでは出力の例です:4つの子プロセス間のパイプ通信は初めてのみ動作します
./prodajnaVerigaAnon 200 100 50
312 312 312
それは次のようになります。312 156 78
ここでは、コードは次のとおりです。
for(int i=1;i<argc;i++) {
char init_price[size];
const int len = sprintf(init_price,"%d",atoi(argv[i]));
write(fd1[1], init_price, (size_t) len + 1);
}
close(fd1[1]);
_exit(0);
EDIT:それがあったので、私は、コードの大部分を削除しました学校の割り当て。