所以,正確的方法是使用unistd.h
用於x64
和/或unistd_32.h
爲x86
和ia32
。這些文件位於你的linux發行版的頭文件中。但請記住,路徑是發行版之間的變化(甚至內核之間),所以最好的辦法,找出其中正是這些文件是:
uni_hack.h
#if defined(CONFIG_X86) <---- replace with whatever you want, #ifdef CONFIG_IA32_EMULATION for example
# include <asm/unistd_32.h>
#endif
-
Kbuild file
obj-m += kernel_module_example.o
$(obj)/kernel_module_example.o: $(obj)/real_unistd.h
$(obj)/real_unistd.h: $(src)/uni_hack.h FORCE
cpp $(c_flags) -E -dM <$< >[email protected] <---- this will generate "real_unistd.h" in the directory of your kernel module, and it will contain the content of unistd_32.h
使用unistd.h
對於x64
只是在#include
上的事情 - 在你的源代碼中。