C 系统调用的 Linux 64 汇编等效项是什么?



(问题已编辑,感谢@fuz)

C 系统调用的 Linux 64 汇编等效项是什么?

我想编写本质上与在 C 中调用 CLI 具有相同功能的程序集,例如system("ls -l").

我要重现的代码与以下 C 具有基本相同的功能:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("ls -l");
exit(0);
}

libc 函数system不是内核系统调用。 这就是为什么它的手册页system(3)不是system(2)

它是在 fork(2) + execve(2) 和waitpid(2)系统调用之上实现的。 事实上,这是system(3)手册页说的第一件事! 去阅读它,就像你应该阅读 Linux 手册页来了解你想知道的任何实际的系统调用或库函数一样。

在调用它的程序上使用strace,或使用 GDB 单步进入它,或读取 glibc 源代码。

最新更新