簡體   English   中英

Syscalls for x86-64 Linux NASM(YASM)詳細說明

[英]Syscalls for x86-64 Linux NASM(YASM) detailed description

我找到了x86-64模式的syscalls列表(帶參數): http//filippo.io/linux-syscall-table/但是我在哪里可以得到這個系統調用的詳細描述?

例如下面,除了0102o(rw,create)之外,哪些標志可以用於'open'syscall,在其他情況下:只讀,只寫等。

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如何理解它,哪個(所有打開的列表) )標志可以用嗎?

系統調用的文檔位於手冊頁的第2部分和/或源代碼的注釋中。

手冊頁以:

   #include <sys/types.h>
   #include <sys/stat.h>
   #include <fcntl.h>

   int open(const char *pathname, int flags);
   int open(const char *pathname, int flags, mode_t mode);

參數標志必須包括以下訪問模式之一: O_RDONLYO_WRONLYO_RDWR 這些請求分別打開文件只讀,只寫或讀/寫。

此外,零或更多文件創建標志和文件狀態標志可以在標志中按位或按鈕。 文件創建標志是O_CREATO_EXCLO_NOCTTYO_TRUNC

在系統頭文件中可以輕松查找這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM