• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のfork()とpipe()の使用方法についてのサンプルを作成し)

C言語のfork()とpipe()の使用方法についてのサンプルを作成し

このQ&Aのポイント
  • C言語のfork()とpipe()の使用方法についてのサンプルを作成していますが、期待通りの動作をさせる事ができないため、質問させて頂きます。
  • 現在は、aaa.txtの1行目(てすとだよ。)のみ出力されて2行目が出力されません。
  • 実行方法:a.out aaa.txt 期待動作:aaa.txt の内容を出力

質問者が選んだベストアンサー

  • ベストアンサー
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.2

write(pipefd[1], buff, strlen(buff) + 1); じゃなくて write(pipefd[1], buff, strlen(buff)); だね。 strlenで取った「文字列+改行コード」の長さ+1だと最後に0x00が入っちゃうから それが悪さしてる。

19820202
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • noyuo
  • ベストアンサー率39% (33/84)
回答No.3

標準出力を fflush してみる? パイプに書込む値:%s\nは、出てますか? 親側と子側の出力をstdoutとstderrに分けてみても 結果が変わって、おもしろいかも。 ところで、1024 は、1Kですよね。 メートルの洒落なら別にいいですけど。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

パイプへの書き込みが読み込みに追いついてないんじゃありませんか。

関連するQ&A