低水準入出力関数と高水準入出力関数について勉強していて疑問に思ったことがあるので教えていただきたいです。
各関数が呼び出すシステムコールの回数について
C言語で低水準入出力関数で作ったプログラム(open、read、writeを使用)と高水準入出力関数で作ったプログラム(fopen、fread、fwriteを使用)のシステムコール呼び出し回数を調べようと思いました。どちらも同じ動作をします。この二つの関数について調べると、C言語では低水準入出力関数はopen、read、writeなどのシステムコールというものであり高水準入出力関数はシステムコールなどをラップしたライブラリ関数と出てくるので、感覚的にシステムコールそのものである低水準入出力関数のプログラムがシステムコールを呼び出す回数は少ないと思いました。しかしLinuxのstrace -cコマンドで各プログラムのシステムコール呼び出し回数を調べたところ以下のような結果になりました。
calls列を比べるとシステムコール呼び出し回数は低水準入出力関数の方は500回、高水準入出力の方は233回となりました。なぜ高水準入出力の方がシステムコール呼び出し回数が少ないのでしょうか?
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/29 08:51
2020/10/29 08:53
2020/10/29 08:56