gpt4 book ai didi

c - 如何用汇编程序将二进制数据写入文件?

转载 作者:行者123 更新时间:2023-11-30 18:09:29 27 4
gpt4 key购买 nike

我尝试通过 sys_write 系统调用(到标准输出或文件)进行二进制写入,但我只能有文本文件。如何也有无文本(二进制)字节?

"mov   %eax,    %ebx;" 
"mov $4, %eax;"
"mov -0x40(%rbp), %ecx;"
"mov $14, %edx;"
"int $0x80;"

尝试使用此示例,如果它们不是文本字节,则无法写入 14 个字节(非文本字节的文件长度为 0!)。

最佳答案

我不确定你的问题是什么。只要您在 %edx 中传递正确的长度,sys_write 就会将缓冲区中的任何值写入 %ebx 中的文件描述符。这包括 0 到 255 范围内的任何值(即完整字节范围)。

也许您也应该发布用于打开文件的代码。但即使您以文本模式打开文件,向其中写入仍然可以使用任何值。

更多的想法可以看看:你刷新输出了吗?你关闭文件吗?如果不这样做,那么该字符串可能仍卡在缓冲区中等待刷新。

关于c - 如何用汇编程序将二进制数据写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2005004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com