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

回答編集履歴

1

誤字脱字修正

2020/07/31 07:15

投稿

dodox86
dodox86

スコア9427

answer CHANGED
@@ -1,10 +1,9 @@
1
1
  > &rfdsに何が入るかがわかりません。
2
2
  > FD_SET(0, &rfds)で、ファイル名をキーボードから入力するのでしょうか?
3
3
 
4
- `rdfs`の内容は隠蔽されているので、基本、プログラマーが意識する必要はありません。`FD_SET(0, &rfds)`を実行すると、ファイルディスクリプターの`0`が`rdfs`の構造体にフラグ情報として収められ、`select`で監視対象として使えるようになります。
4
+ `rdfs`の内容は隠蔽されているので、基本、プログラマーが意識する必要はありません。`FD_SET(0, &rfds)`を実行すると、標準入力であるファイルディスクリプターの`0`が`rdfs`の構造体にフラグ情報として収められ、`select`で監視対象として使えるようになります。
5
5
 
6
- その後、`select`実行中にキーボードから入力(実際はENTERキーを押し、`\n`が入力)されるまで停まっています。入力がめば、ファイルディスクリプターの`0`番に変化があったことで`select`から抜けてきます。`FD_ISSET`で本当に正しく`0`番に変化があったことを検査してから`read`すれば、入力された
6
+ その後、`select`実行中にキーボードから入力(実際はENTERキーを押し、`\n`が入力)されるまで停まっています。入力がめば、ファイルディスクリプターの`0`番に変化があったことで`select`から抜けてきます。`FD_ISSET`で本当に正しく`0`番に変化があったことを検査してから`read`すれば、入力された値を読み出すことができる、というわけです。
7
- 値を読み出すことができる、というわけです。
8
7
 
9
8
  質問者さんのコードを少し修正して何が起こるのか分かるようにしてみましたので、読んでみてください
10
9
  ```C