4

Linuxでは、ファイルの終わりにヌル文字がないのは正常ですか?

空のファイルを作成し、マウスパッドで開いてazを書き込みます。

それを保存。

16進エディターでファイルを開くと、ヌル文字はありませんが、0aがあります。

ファイルの終わりにはどのヌル文字を入れる必要がありますか?

システムコールでファイルを書くとき。

0aですか?または0?

ありがとう

4

4 に答える 4

7

通常、Unixのファイルの終わりにはヌル文字はありません。空のテキストファイルのバイト数はゼロです。1つの空の行には、0x0A(LF、改行)文字が含まれます。Unixテキストファイルには、単一のLF行末があります。

于 2011-03-28T01:10:47.197 に答える
5

ファイルシステムはファイル内のバイト数を記録し、すべてのバイトは自由に任意の値を持つことができます。特定の文字/バイト値は、ファイルの終わりを意味する予約済みの番兵値ではありません。したがって、ファイル内のどこにでもNULを含めることができますが、終了をマークするためにNULは必要ありません。

テキストファイルの各行は、実際には改行、ASCII 10 dec、0A hexで終了する必要があります(Windowsでは、キャリッジリターンASCII 13 decの後に改行が続きます)。空のファイルを作成するecho > filenameと、改行が1つになりますが、これは、echoがデフォルトで空の行を出力するためです。代わりに使用touch filenameした場合は、完全に空になります。

cat > filenameターミナル/コンソールウィンドウに何かを入力すると、最終的にControl-Dを使用してファイルの終わりの状態をトリガーします(Linux / DOSのControl-Zの場合)が、その文字はファイル自体に保存されません。

于 2011-03-28T01:18:19.797 に答える
2

0aは改行、別名control-Jまたは\nです。Unixでは、テキストファイルは通常ヌル文字で終了しません。

于 2011-03-28T01:12:29.083 に答える
-1

誰がファイル形式を実装したかによります。

于 2011-03-28T01:07:36.903 に答える