【发布时间】:2018-01-31 12:10:58
【问题描述】:
我正在创建一个文件,然后使用系统调用打开它。
创作:
mov rax, 85
mov rdi, path
mov rsi, 400
syscall
开幕式:
mov rax, 2
mov rdi, path
mov rsi, 2 ; I found somewhere that I should use 400 to append
syscall
mov r8, rax ; save the file handle
写作:
mov rax, 1
mov rdi, r8
mov rsi, output
mov rdx, length
syscall
完成这些步骤后,我自然地关闭了文件,但是我无法附加到它,每次执行这些操作时它只是重写文件的内容,但例如我计算了前 n 个素数并存储它们在一些内存中,现在我想在文件中写下这 n 个素数,但如果不附加更多行,我就无法这样做。
还有没有办法在rdx 中不为write 指定字符串的长度,而是用/0 终止字符串?
【问题讨论】:
-
您在一篇文章中提出了多个问题。请将每个帖子限制为一个问题。
标签: linux assembly x86-64 nasm system-calls