Unix wc コマンドの文字数

Unix wc コマンドの文字数

以下を含むファイルに対してwcコマンドを実行すると、30個の文字数が表示されます。ファイル終了文字が含まれていますか?スペースと改行を含めると、29文字だけが可能です。

Hello World
Again Hello World

出力は次のとおりです

2  5 30 test

ベストアンサー1

Unix または Linux ファイルシステムにはファイルの終わり文字はありません。使用されたファイル記述子が通常のファイルを参照すると、システムread()コールはファイル終了条件で0を返します。 read()ソケットとパイプでは異なる動作をします。ファイルの終わりを示す特殊文字はありません。

wc最初の行には行末(ASCII改行、数字は0x0a)を数える12文字があり、2行目には改行(別名改行)を数える18文字があるため、文字またはバイト数で30を提供します。

この場合、改行文字の0x0a値を表示する16進印刷出力がls -lあるか、または取得できる場合はhexdump文字数を再確認するために使用できます。xxd

C標準ライブラリ関数はfgetc()ファイルの終わりに-1を返しますが、これはUnix(またはLinux)やシステムコールをread()介さずにライブラリコードで実行されます。

おすすめ記事