CLONE_VM未申报(首次在此function中使用)

我正在使用linux c中的克隆function。

但是,当我尝试编译我的代码时,遇到了CLONE_VM未声明(首次在此函数中使用)的错误。

我去谷歌的解决scheme和网站之一提到#include <sched.h>必须包括在代码中。 我已经在我的代码中包含了#include <sched.h> ,但编译错误仍然存​​在。

任何帮助? 🙂

 int c = clone(child,p+STACKSIZE-1,CLONE_VM|SIGCHLD,NULL) ; 

将以下行添加到您的代码的开头

  #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <sched.h> 

你可以找出需要哪个头文件和/或宏

  • man 2 syscall_name
  • man 3 library_function_name

顺便说一下, _GNU_SOURCE和更多的含义可以通过man 7 feature_test_macros找到。