Linux kernel Linux和内核进程

Linux kernel Linux和内核进程,linux-kernel,centos,sysctl,Linux Kernel,Centos,Sysctl,我试图通过sysctl接口获取另一个进程的信息 int mib[4] = {0}; size_t len = sizeof( mib ) / sizeof( int ); struct kinfo_proc kp; mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = 3027; sysctl(mib, 4, &kp, &len, NULL

我试图通过sysctl接口获取另一个进程的信息

   int mib[4] = {0};
   size_t len = sizeof( mib ) / sizeof( int );
   struct kinfo_proc kp;

   mib[0] = CTL_KERN;
   mib[1] = KERN_PROC;
   mib[2] = KERN_PROC_PID;
   mib[3] = 3027;

   sysctl(mib, 4, &kp, &len, NULL, 0);

 Error:
test.cpp: In function ‘int main(int, char**)’:
test.cpp:13:22: error: aggregate ‘main(int, char**)::kinfo_proc kp’ has incomplete type and cannot be defined
test.cpp:16:13: error: ‘KERN_PROC’ was not declared in this scope
看得很清楚,但没有确定的答案。linux是否通过
sysctl
系统调用支持
KERN\u PROC


发行版:Centos 6.2

看起来您正在尝试使用特定于BSD/OS X的内核接口

显然,这在Linux上不起作用


请查看include/linux/sysctl.h以了解支持的是什么。

感谢您的回复。是的,我检查了标题,但它不见了,我只是处于否认状态。我真的希望以最小的更改移植应用程序/我必须走了:(