我们知道 unistd.h 是一个重要的头文件,但是我不确定它是来自内核源还是在我们安装 libc 之前安装?
问问题
2661 次
1 回答
2
在软呢帽
# rpm -qf /usr/include/unistd.h
eglibc-headers-2.13-2.21.i686
我们可以在头文件中看到这部分
this file is part of the GNU C Library.
在内核版本 2.6.32.21 中我们可以看到
/* kernel/include/linux/unistd.h */
#include <asm/unistd.h>
我们假设 X86
/* kernel/arch/x86/include/asm/unistd.h */
# ifdef CONFIG_X86_32
# include "unistd_32.h"
# else
# include "unistd_64.h"
# endif
并且在文件中有系统调用。不是我们通常使用 unistd.h
/*
* This file contains the system call numbers.
*/
#define __NR_restart_syscall 0
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
#define __NR_close 6
#define __NR_waitpid 7
#define __NR_creat 8
于 2013-05-30T02:24:05.950 回答