我使用FriendlyARM與Linux 2.6.29,並與ARM-Linux的GCC 4.3.2 ARM-linux4.3.2,無法打開插座與PF_PACKET型
編譯時試圖打開與PF_PACKET插座它與協議不支持的errno 97,地址 系列失敗。
這是說明問題的例子程序 -
#include <stdio.h>
#include <sys/socket.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
//#include <linux/if_packet.h>
//#include <linux/if_ether.h>
#include <errno.h>
int main() {
int sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETHER_TYPE));
if (sockfd < 0)
perror("Can't open socket");
}
任何想法,爲什麼發生這種情況?
在此先感謝
奧倫
編輯: 事情我已經試過 -
確保我以root身份運行
linux下的2.6編譯。 27.7-9-pae和一臺intel機器,在這臺機器下工作正常(gcc 4.4.1)
下面的帖子表明它與linux版本有關,但基於上述我認爲它可能是別的。 link text
你把這作爲具有root用戶權限的用戶? – ognian 2010-07-21 08:58:27
是的,我在設備上以root身份運行,euid爲0 – 2010-07-21 11:26:31
errno設置了什麼? – 2010-07-21 21:10:53