Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我在哪里可以找到ioctl?_Android_C_Linux - Fatal编程技术网

Android 我在哪里可以找到ioctl?

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

在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, 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,具体取决于您的目标体系结构