2017-04-06 11 views
0

、私が実行している場合は、私のプログラムはgetchar()ありgetchar()は内部的にどのように動作しますか?私の端末に

> tty 
/dev/tty0 
> ./myprogram.out 

、その後、/dev/tty0ファイルからの入力を待っているstdin(0)ファイルディスクリプタのをブロック。

このプロセスも、取得するタイムスライスに基づいてProcess mgmtによってスケジュールされます。私の質問がある

stdingetchar()待ちをしてどのように

? が内部で入力を待つために使用するシステムコールは、stdinとは何ですか?

+0

既にこれに触れるいくつかの質問。例えばhttp://stackoverflow.com/questions/9544151/how-getchar-is-implementedまたはhttp://stackoverflow.com/questions/32131873/equivalent-of-fgetc-with-unix-file-descriptors –

+0

'strace'を使って、プログラムが作るすべてのシステムコールを見ることができます。 – aschepler

+1

Matteo Italiaの答えは、おそらくあなたがこの質問に行きたいと思うほど、ウサギの穴から遠いです。それ以上あれば、あなたは[TTYを扱っています](https://i.stack.imgur.com/YRt4W.png)。 –

答えて

3

おそらく、読み込みバッファが空のときに実行されるCストリームstdinに関連するFDに対する平易なブロックreadです。

関連する問題