ふつうのLinuxプログラミング 第6章 stdio版cat

6章は至ってふつう。5章のシステムコール版をstdioに直してスッキリした。

しかし、簡易版catでは、fgetcを使っているので、ディレクトリかどうかも判断せずにファイルを開く。

% ./cat ../
% ←正常終了
% cat ../
cat: ../: Is a directory

ソースを見比べないと・・・。

追記
解析完了。GNU catでのファイル読み込みは、safe_read(マクロ) -> safe_rw(read write共用) -> read(2)へと繋がっている。stdioは使ってない。マクロで、read、writeを共用しているあたりが凄い・・・GNUはヘンタイ集団かもしれない。