Я использую FriendlyARM с linux 2.6.29 и компилирую с ARM-Linux GCC
4.3.2
При попытке открыть сокет с помощью PF_PACKET происходит сбой с помощью errno 97, Address
семья не поддерживается протоколом.
Это пример программы, которая иллюстрирует проблему -
#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");
}
Есть идеи, почему это происходит?
Заранее спасибо
Oren
редактировать:
Вещи, которые я пробовал -
Убедитесь, что я работаю с правами root
Компиляция под Linux 2.6.27.7-9-pae и машина intel, под которой он работает нормально (gcc 4.4.1)
Пост ниже предполагает, что это как-то связано с версией для Linux, но, исходя из вышеизложенного, я думаю, что это может быть что-то еще.
текст ссылки