繁体   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