在程序中设置ip问题
struct sockaddr_in sin;
struct ifreq ifr;
int fd;
gchar *ptr;
bzero(&ifr,sizeof(struct ifreq));
fd=socket(AF_INET,SOCK_DGRAM,0);
strcpy(ifr.ifr_name, "etho ");
memset(&sin,0,sizeof(sin));
sin.sin_family=AF_INET;
ptr=gtk_entry_get_text(GTK_ENTRY(entry_ip)); //从文本框中得到用户输入的ip
sin.sin_addr.s_addr=inet_addr(ptr);
memcpy(&ifr.ifr_addr,&sin,sizeof(sin));
if(ioctl(fd,SIOCSIFADDR,&ifr) <0)
{
g_print( "Not setup interface\n ");
return;
}
为什么我的程序在执行 ioctl(fd,SIOCSIFADDR,&ifr)的时候,返回值小于0,程序就返回了,设置ip就失败了,这是为什么,求达人指点,急,本人在线等待
------解决方案--------------------是不是你ioctl的问题