x86-64 모드 (인수 포함)에 대한 syscalls 목록을 찾았습니다 : http://filippo.io/linux-syscall-table/ 그러나이 syscalls에 대한 자세한 설명은 어디에서 확인할 수 있습니까? 플래그가 다른 경우에는, 0102o RW (생성)을 제외 '열기'콜을 사용할 수있다 예를 들어 후술x86-64 Linux NASM (YASM)에 대한 Syscalls 자세한 설명
: 읽기 전용, 쓰기 전용 등의 기준 자료
SECTION .data
message: db 'Hello, world!',0x0a
length: equ $-message
fname db "result"
fd dq 0
SECTION .text
global _start
_start:
mov rax, 2 ; 'open' syscall
mov rdi, fname ; file name
mov rsi, 0102o ; read and write mode, create if not
mov rdx, 0666o ; permissions set
syscall
mov [fd], rax
mov rax, 1 ; 'write' syscall
mov rdi, [fd] ; file descriptor
mov rsi, message ; message address
mov rdx, length ; message string length
syscall
mov rax, 3 ; 'close' syscall
mov rdi, [fd] ; file descriptor
syscall
mov rax, 60
mov rdi, 0
syscall
(이 될 수 있습니다 (열려있는 모든 목록) 플래그를 사용할 수있는 방법을 이해하려면 https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/fs/open.c어떻게 이해할 수 있을까요?
grep -i 0102 /usr/include/asm/unistd_64.h - 아무것도 없습니다. 복용 방법? – Alex0102o
@ Alex0102o : 이해가 안됩니다. 이 파일은 syscall 항목 번호 목록입니다. * flags * 인수와 아무 관련이 없습니다. 플래그는'/ usr/include/bits/fcntl.h'에 있습니다. 여기서 0102는 분명히'O_RDWR | O_CREAT' (적어도 Fedora 17-64에서는). – wallyk
wallyk, /usr/include/bits/fcntl.h에 있음 (Debian Lenny 64bit) 감사합니다! (미안, 내 나쁜 영어) 0102 나는 32 비트 흠집에서 가져 갔다. – Alex0102o