kim*_*yun 4 linux assembly system-calls null-character
在linux中,文件末尾没有空字符是正常的吗?
我做了一个空文件并用鼠标垫打开az.
保存.
当我用十六进制编辑器打开文件时,没有空字符但是0a就在那里.
我应该把什么空字符放在文件末尾?
当我用系统调用写文件.
是啊0?还是0?
谢谢
文件系统记录文件中的字节数,并且所有字节都可以自由地具有任何值 - 没有特定字符/字节值是保留的sentinel值,意味着文件结束.因此,您可以在文件中的任何位置放置NUL,但不需要标记结尾.
文本文件中的每一行都应该用换行符终止,ASCII 10 dec,0A十六进制(在Windows上它是一个回车符ASCII 13 dec后跟一个换行符).如果您创建一个空文件ala echo > filename它将有一个换行符,但只是因为echo默认情况下打印一个空行.如果你改为使用touch filename它将是完全空的.
当您cat > filename在终端/控制台窗口中键入内容时,最终会使用Control-D触发文件结束条件(对于DOS中的Linux/Control-Z),但该字符不会存储在文件本身中.