teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2021/07/20 15:51

投稿

otn
otn

スコア86328

answer CHANGED
@@ -1,4 +1,7 @@
1
1
  うまく説明できませんが、
2
2
  子プロセスが`exit`する際に、`exit`の内部で`fflush(stdin)`相当が行われますが、それによる影響のようです。
3
+ 親プロセス側で、`ftell(stdin)`を実行するとエラーが返ります。
3
4
 
4
- 子プロセスで`exit`する前に、`fclose(stdin);`等を実行すれば良いかと思います。
5
+ 子プロセスで`exit`する前に、`fclose(stdin);`等を実行すれば良いかと思います。
6
+ `fflush(stdin);fclose(stdin);exit(1);`で、現象が出る。
7
+ `fclose(stdin);exit(1);`で、現象が出ない。