我创建的文件名末尾的额外字符
Extra characters at the end of filenames I create
我正在尝试学习汇编程序,但遇到了本教程的问题http://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm
除了写出文件时,它工作得很好而且很漂亮。而不是 myfile.txt
,它被命名为 myfile.txtWelcome to Tutorials PointWritten to file?
.
我似乎无法找出原因。我从教程中删除了源代码,它做了同样的事情。
谁能告诉我为什么?
我正在使用 nasm 2.12.02。我也在 yasm 1.2.0 上尝试过,所以我很确定是汇编代码导致的。
我正在建设 运行 OpenSUSE Linux 3.16.7-35-default #1 SMP Sun Feb 7 17:32:21 UTC 2016 (832c776) x86_64 x86_64 x86_64 GNU/Linux
您可能遗漏了 , 0
(零字节)以终止 .rodata
部分中的字符串,您在该部分放置了用于文件名和文件数据的字符串常量。
Linux 采用 char*
args 的系统调用(如 open(2)
)接受零终止的 C 风格字符串,而不是接受字符串长度。
我正在尝试学习汇编程序,但遇到了本教程的问题http://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm
除了写出文件时,它工作得很好而且很漂亮。而不是 myfile.txt
,它被命名为 myfile.txtWelcome to Tutorials PointWritten to file?
.
我似乎无法找出原因。我从教程中删除了源代码,它做了同样的事情。
谁能告诉我为什么?
我正在使用 nasm 2.12.02。我也在 yasm 1.2.0 上尝试过,所以我很确定是汇编代码导致的。
我正在建设 运行 OpenSUSE Linux 3.16.7-35-default #1 SMP Sun Feb 7 17:32:21 UTC 2016 (832c776) x86_64 x86_64 x86_64 GNU/Linux
您可能遗漏了 , 0
(零字节)以终止 .rodata
部分中的字符串,您在该部分放置了用于文件名和文件数据的字符串常量。
Linux 采用 char*
args 的系统调用(如 open(2)
)接受零终止的 C 风格字符串,而不是接受字符串长度。