【发布时间】:2020-05-09 09:29:45
【问题描述】:
我一直在尝试使用 NASM 中的 stat 来获取文件大小。但是,st_size 返回 0。谁能解释为什么会发生这种情况?
这是我的代码:
global _main
extern _printf
section .bss
stat resb 144
section .text
filename:
db "test.asm", 0 ; The name of this NASM file
format:
db "%lld", 10, 0
_main:
mov rax, 0x20000bc ; system call for stat
mov rdi, filename
mov rsi, stat
syscall ; returns 0
push rax
mov rdi, format
mov rsi, stat
mov rsi, [rsi + 96] ; the offset of st_size in __DARWIN_STRUCT_STAT64 as defined in <sys/stat.h> is 96
call _printf
pop rax
ret
【问题讨论】:
标签: macos system-calls stat