【发布时间】:2020-08-17 22:17:20
【问题描述】:
(问题已编辑,感谢@fuz)
什么是 C 系统调用的 Linux 64 等效程序集?
我想编写与在 C 中调用 CLI 功能基本相同的程序集,例如 system("ls -l")。
我要复现的代码与下面的C:功能基本相同:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("ls -l");
exit(0);
}
【问题讨论】:
-
system函数不是系统调用。它是一个传统上以fork、execve和wait实现的库。 -
谢谢!我会相应地编辑我的问题!
-
现在您已经删除了关于使用原始系统调用执行此操作的部分问题,显而易见的答案是简单地使用 RDI 中的指针
call system。您不必重新实现 libc 函数,只需调用它们即可,假设您将程序与 libc 链接。
标签: c linux assembly x86-64 system-calls