簡體   English   中英

C 系統調用的 Linux 64 匯編等效項是什么?

[英]What is the Linux 64 Assembly Equivalent for C's system call?

(問題已編輯,感謝@fuz)

C 系統調用的 Linux 64 匯編等效項是什么?

我想編寫與在 C 中調用 CLI 基本具有相同 function 的程序集,例如system("ls -l")

我要重現的代碼與以下 C 具有基本相同的 function:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   system("ls -l");

    exit(0);
}

system libc function不是kernel 系統調用。 這就是為什么它的手冊頁是system(3)而不是system(2)

它是在 fork(2) + execve(2) 和waitpid(2)系統調用之上實現的。 事實上,這是system(3)手冊頁所說的第一件事,Go 閱讀了它。 就像您應該閱讀 Linux 手冊頁以了解您想了解的任何實際系統調用或庫 function。

在調用它的程序上使用strace ,或者使用 GDB 單步進入它,或者閱讀 glibc 源代碼。

暫無
暫無

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

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