2012-05-08 38 views
0

我試圖通過sysctl接口Linux和KERN_PROC

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_PROC

發行:Centos的6.2

回答

2

它看起來像你試圖使用BSD/OS X特定的內核接口。

由於顯而易見的原因,這些原因在Linux上不起作用。

看一下include/linux/sysctl.h以找出支持的

+0

感謝您的回覆。是的,我檢查了這些標題並且它丟失了,我只是處於拒絕狀態。我真的想用最小的改變移植應用程序;/proc我必須去:( – Corvusoft