我创建的文件名末尾的额外字符

时间:2016-07-31 23:43:15

标签: linux assembly x86 nasm yasm

我正在尝试学习汇编程序并且遇到本教程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

上构建并运行

1 个答案:

答案 0 :(得分:3)

您可能省略, 0(零字节)来终止.rodata部分中的字符串,在该部分中放置您用于文件名和文件数据的字符串常量。

采用open(2) args的Linux系统调用(如char*)接受零终止的C样式字符串,而不是接受字符串长度。