Я пытаюсь создать файл, используя системный вызов некоторых файловых операций в коде сборки Linux x86_64, но не могу получить правильные разрешения. Я пытаюсь установить разрешение 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