- 论坛徽章:
- 0
|
回复 #2 xinglp 的帖子
初学菜鸟……不会使用strace……
在本论坛精华区里找到个很早以前例程:
#include <sys/ioctl.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <net/route.h>
#define E_ERR 1
int main()
{
struct rtentry rt;
struct sockaddr_in * my_addr;
int sock_fd;
char devi[] = "eth0";
if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror("socket");
close(sock_fd);
return E_ERR;
}
rt.rt_flags = (RTF_UP | RTF_GATEWAY | RTF_DEFAULT | RTF_HOST);
my_addr->sin_family = AF_INET;
inet_aton("3.3.3.3",&my_addr->sin_addr);
memcpy(&rt.rt_dst,my_addr, sizeof(struct sockaddr));
inet_aton("172.16.1.100",&my_addr->sin_addr);
memcpy(&rt.rt_gateway, my_addr, sizeof(struct sockaddr));
inet_aton("255.255.255.255",&my_addr->sin_addr);
memcpy(&rt.rt_genmask, my_addr, sizeof(struct sockaddr));
rt.rt_dev = devi;
if (ioctl(sock_fd, SIOCADDRT, &rt) < 0)
{
perror("SIOCADDRT");
close(sock_fd);
return E_ERR;
}
return 0;
}
用gcc -o ip ip.c -Wall编译时出现警告:
ip.c:29: warning: large integer implicitly truncated to unsigned type
./ip 时出现Segmentation fault (core dumped)
麻烦帮忙看看~不胜感激 |
|