我有一个非常简单的c程序,我想用gcc编译,从linux内核头文件导入。
#include <stdio.h>
#include <stdlib.h>
#include <linux/random.h>
int main(){
int rand;
get_random_bytes(&rand,sizeof(rand));
printf("%d",rand);
return 0;
}
我尝试使用以下命令编译此程序:
gcc rand.c -D__KERNEL__ -isystem /lib/modules/`uname -r`/build/include
但是我得到了一堆错误(下面)。我错过了什么?:
/usr/src/kernels/4.9.8-201.fc25.x86_64/include/linux/linkage.h:7:25: fatal error: asm/linkage.h: No such file or directory
#include <asm/linkage.h>
答案 0 :(得分:1)
从一些快速的Google搜索中,似乎get_random_bytes
可能是只能在内核中使用的私有函数。
您尝试使用getrandom
怎么样?以下是getrandom
的文档: