我正在尝试使用x86_64 Linux汇编代码中的某些文件操作系统调用来创建文件,但我无法获得正确的权限。我要设置权限0777,即每个人都可以读取写入和执行权限,但我在文件上获得的权限对于所有者,组和其他人都是无。
我错过了什么?
我使用的汇编程序是nasm。
%macro print 2
mov rax,1
mov rdi,0
mov rsi,%1
mov rdx,%2
syscall
%endmacro
section .data
errmsg db "Incorrect argument count",10
errmsglen equ $-errmsg
section .bss
temp resb 8
sourcefile resb 8
global _start
section .text
_start:
pop rdx
cmp rdx, 03h
jne error
menu:
;------------Extract filename-------------
pop rdx
pop rdx
mov rsi, sourcefile
mov rax, [rdx]
mov [rsi], rax
;------------Open File---------
mov rax,85
mov rdi,sourcefile
mov rsi,2
mov rdx,0777
syscall
jmp exit
error:
print errmsg,errmsglen
jmp exit
exit:
mov rax,60
mov rdi,0
syscall
前导0不表示nasm中的八进制。使用0o777或777o。