2011-12-30 75 views
1
#include <netlink/socket.h> 
#include <netlink/netlink.h> 
struct nl_sock *sock; 

sock = nl_socket_alloc(); 

上述代碼總是失敗,錯誤如下進行編譯: /home/micah/Documents/C++/Socket_fun/Socket_fun/src/main.cpp|5|error:「襪子」沒有指定類型你如何使用libnl nl_sock?

我從libnl例子中得到了這個,因爲它不起作用,所以我想知道,這樣做的正確方法是什麼?

+0

我建議* libmnl *作爲一種替代方案,特別是在Netlink的學習階段更加簡單。 – 2011-12-30 05:53:18

+0

我可能會這樣做,但由於我正在嘗試使用inet_diag模塊,因此我已切換到舊的socket()方法,以便我可以從ss網絡實用程序複製,粘貼和調整 – 2012-01-02 20:15:09

回答

3

該代碼必須是在一個函數,你不能只是開始調用函數的上下文之外的功能:

int main() 
{ 
    struct nl_sock *sock; 
    sock = nl_socket_alloc(); 
} 

而且,你用編譯?我建議將它編譯爲C,而不是C++。

+0

是的,我只是想通了,這讓我感到兇狠。感謝你及時的答覆。至於C,它必須是C++,它是C++項目的一部分。 – 2011-12-30 02:36:56