[英]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.