Android 我在哪里可以找到ioctl?
在android sdk路径sdk/bionic/libc/bionic/中有C API资源代码,如fork.C、ioctl.C等。。打开ioctl.c时:Android 我在哪里可以找到ioctl?,android,c,linux,Android,C,Linux,在android sdk路径sdk/bionic/libc/bionic/中有C API资源代码,如fork.C、ioctl.C等。。打开ioctl.c时: #include <stdarg.h> extern int __ioctl(int, int, void *); int ioctl(int fd, int request, ...) { va_list ap; void * arg; enter code here va_start(ap
#include <stdarg.h>
extern int __ioctl(int, int, void *);
int ioctl(int fd, int request, ...)
{
va_list ap;
void * arg;
enter code here
va_start(ap, request);
arg = va_arg(ap, void *);
va_end(ap);
return __ioctl(fd, request, arg);
}
#包括
外部输入(输入,输入,无效*);
int ioctl(int fd,int请求,…)
{
va_列表ap;
void*arg;
在这里输入代码
va_启动(ap,请求);
arg=va_arg(ap,void*);
va_端(ap);
返回ioctl(fd、请求、参数);
}
外部输入(输入,输入,无效*);这意味着uu ioctl(int,int,void*)已在某处定义。所以我想知道最初定义的地方在哪里。非常感谢 它可能在仿生树的其他地方(grep是你的朋友),或者作为构建过程的一部分自动生成,但无论如何,它都是完全无趣的。它只是一个系统调用包装器。所有有趣的工作都在内核中。它可能在仿生树的其他地方(grep是你的朋友),或者作为构建过程的一部分自动生成,但无论如何,它都是完全无趣的。它只是一个系统调用包装器。所有有趣的工作都在内核中。如前所述,\u ioctl只是系统调用的包装,在asm中实现。 在AOSP代码中,可以在bionic/libc/arch-XXX/syscalls/_ioctl.S中找到它,其中arch-XXX是arch-arm、arch-x86或arch-mips,具体取决于您的目标体系结构。如前所述,_ioctl只是在asm中实现的系统调用的包装。 在AOSP代码中,可以在bionic/libc/arch-XXX/syscalls/_ioctl.S中找到它,其中arch-XXX是arch-arm、arch-x86或arch-mips,具体取决于您的目标体系结构