file - 使用 write() 写入文件时的奇怪行为
问题描述
我正在尝试使用系统调用创建文件,使用creat
系统调用将data
字符串写入文件,使用write
系统调用关闭文件并在环境中close
使用系统调用退出。exit
Ubuntu 20
section .text
global _start
_start:
mov ecx, 0777
mov ebx, file_name
mov eax, 8
int 0x80
mov [fd], eax
mov edx, data_len
mov ecx, data
mov ebx, [fd]
mov eax, 4
int 0x80
mov ebx, [fd]
mov eax, 6
mov eax, 1
int 0x80
section .data
file_name db 'test.txt'
data db 'write me please!'
data_len equ $-data
section .bss
fd resb 1
编译和运行上述代码时:
nasm -f elf32 -g test.asm && ld -melf_i386 test.o -o test
它创建了一个文件,名为'test.txtwrite me please!'
What is I doing wrong 导致这样的数据溢出到write
系统调用中?
解决方案
推荐阅读
- reactjs - VS Code 任务:在创建文件夹上运行
- regex - Ansible:在变量周围加上引号,但前提是引号不存在
- javascript - 正则表达式映射我的所有单词(即使重复)
- c# - 迁移 - 实体框架数据库优先方法
- windows-store - 如何从 Windows 应用商店/Microsoft 合作伙伴中心删除应用程序?
- android - 错误未来
_loadAsync 我的项目 - powershell - 远程设置打印机选项
- google-apps-script - 两个相等的变量不触发 if() 语句
- testing - 错误:“未定义”的参数数量无效。得到 0 预期 1
- r - 将 geom_smooth 绑定到特定模型