【发布时间】:2016-01-18 04:06:28
【问题描述】:
我目前正在尝试通过 C 中的内联汇编器在我的 Linux X64 上完成系统调用。由于我的方法都不起作用,我想弄清楚这是如何在 glibc 中完成的。我在 /misc/syscall.c 中发现以下内容
long int
syscall (callno)
long int callno;
{
__set_errno (ENOSYS);
return -1;
}
我不得不说我是 C 新手(我是一名 Java 开发人员),所以我不明白这里的语法。
我的问题如下:
-
我可以在括号中的参数列表之后写函数参数的声明是否正确:
void foo(bar) 长条形; { //功能代码 }
如何在 glibc 的系统调用的汇编程序中找到实际实现? (不需要是正确的位置,任何提示表示赞赏)
【问题讨论】:
-
1.是的,但这已被弃用。它用于 K&R 第 1 版。
-
请注意current glibc source 使用现代参数声明。
-
对于 Q.2 这可能有助于 oyu docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html
标签: c linux system-calls glibc libc