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