这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于linux下使用C写的修改IP的问题?

共2条 1/1 1 跳转至

关于linux下使用C写的修改IP的问题?

菜鸟
2005-04-06 23:36:22     打赏

现在,我想动态实现ATMEL9200上跑的linux的IP, 前两天在网上看到一段关于通过c程序修改ip的代码,如下: int main(int argc, char *argv[]) { int sockfd; struct ifreq ifr; struct sockaddr_in *sin; if (argc != 3) { fprintf(stderr, "Usage: chip <interface> <IP>\n"); return 1; } if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("socket error"); exit(2); } memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, argv[1], sizeof(ifr.ifr_name)-1); sin = (struct sockaddr_in *)&ifr.ifr_addr; sin->sin_family = AF_INET; if (inet_pton(AF_INET, argv[2], &sin->sin_addr) < 0) { perror("inet_pton error"); exit(3); } if (ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) { perror("ioctl SIOCSIFADDR error"); exit(4); } return 0; } 上面这段程序以Root身份确实可以更改IP,但是以other身份就不行了,不能正确执行。 我查了一边,发现是(ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) 的问题,就是ioctl的问题。

我想问一下,通过什么方法可以更改相关权限,也就是在一般用户下, 也可以实现在超级用户下所做的事情? 比如通过写一个什么样的函数等等。 请高人指点 ,先谢谢你。

[align=right][color=#000066][此贴子已经被作者于2005-4-6 15:38:01编辑过][/color][/align]



关键词: 关于     linux     使用     写的     修改     问题    

菜鸟
2005-04-09 20:40:00     打赏
2楼

请高手帮帮忙~~~~


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]