- 论坛徽章:
- 0
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
void die(char *why, int n)
{
perror(why);
exit(n);
}
int main(void)
{
struct sockaddr_in *addr;
int sockfd;
struct ifreq ifr;
int i=0;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd==-1)
printf("socket fail\n");
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, "bge0",strlen("bge0")+1 );
i=ioctl(sockfd,SIOCGPRIVATE_0,&ifr);
if(i<0)
die("ioctl",1);
close(sockfd);
return 0;
}
一个简单的socket ioctl的程序,调用时总是出错,perror的结果是ioctl: Invalid argument
不知道参数错在了哪里
请各位大侠帮忙解决一下啊 |
|