想设置网卡为混杂模式,代码如下: struct strioctl siotcl; siotcl.ic_cmd = MACIOC(11); siotcl.ic_timout = 0; siotcl.ic_len = 0; siotcl.ic_dp = NULL; // siotcl.ic_cmd = mibufed; fd = open("/dev/mdi/e3A0",O_RDWR); res = ioctl(fd,I_STR,&siotcl); if(res == -1) { perror("ioctl failed"); } else { printf("ioctl success\n"); } 但是运行后总出现错误,错误如下: ioctl failed...
by sufei7099 - 其他UNIX - 2008-06-18 11:38:02 阅读(2263) 回复(5)
想设置网卡为混杂模式,代码如下: struct strioctl siotcl; siotcl.ic_cmd = MACIOC(11); siotcl.ic_timout = 0; siotcl.ic_len = 0; siotcl.ic_dp = NULL; // siotcl.ic_cmd = mibufed; fd = open("/dev/mdi/e3A0",O_RDWR); res = ioctl(fd,I_STR,&siotcl); if(res == -1) { perror("ioctl failed"); } else { printf("ioctl success\n"); } 但是运行后总出现错误,错误如下:...
想设置网卡为混杂模式,代码如下:\r\n\r\nstruct strioctl siotcl;\r\nsiotcl.ic_cmd = MACIOC(11);\r\n siotcl.ic_timout = 0;\r\n siotcl.ic_len = 0;\r\n siotcl.ic_dp = NULL;\r\n// siotcl.ic_cmd = mibufed;\r\n \r\n fd = open(\"/dev/mdi/e3A0\",O_RDWR); \r\n res = ioctl(fd,I_STR,&siotcl);\r\n if(res == -1)\r\n {\r\n perror(\"ioctl failed\");\r\n }\r\n else\r\n {\r\n printf(\"...
自己写的通过ioctl()来修改IP地址的程序,结果在运行(root)的时候报错, 不知道是memcpy(&ifr->ifr_addr,(struct sockaddr *)&addr, sizeof(addr));的问题,还是ioctl()调用的时候需要额外的参数, [code] int set_ipaddr(int sockfd, struct ifreq *ifr, char *ifname, char *ip) { struct sockaddr_in addr; bzero(&addr, sizeof(addr)); addr.sin_family = PF_INET; addr.sin_addr.s_addr ...
我希望显示RGB555格式的图像,然后通过ioctl设置,设置后返回值为-1,设置总是不成功 网上看说是内核不能激活新的设置 求各位指点 vinfo.red.offset = 0; vinfo.red.length = 5; vinfo.green.offset = 5; vinfo.green.length = 5; vinfo.blue.offset = 10; vinfo.blue.length = 5; vinfo.transp.offset = 15; vinfo.transp.length = 1; /* Se...
我在写ioctl驱动时采用了_IOR _IOW等宏来生成了命令码(是不是直接设置为0xFFFFFFF0 、0xFFFFFFF1等也行呢??) 但是我在应用程序中如何引用这些命令码呢?? 因为我不知道具体的值是多少,所以在应用程序中无法define 这个问题应该怎么解决呢??
参考:Distribution Guide Device drivers Inter-IC (i2c) http://www.stlinux.com/docs/manual/distribution/distribution_guide6.php http://www.kernel.org/doc/htmldocs/kernel-api/re1209.html /* In ./include/linux/i2c.h */ struct i2c_msg { /* slave address */ __u16 addr; /* flags == 0 means write operations flags == 1 means read operations */ __u16 f...
现在我遇到一个棘手的问题,我发现我的程序里的poll需要很长时间才会返回,大概10ms左右。我查了一下,怀疑是下面一段代码的问题: struct timeval t; t.tv_sec = 0; t.tv_usec = 10000; if (tstrioctl( SBIOCSTIME, -1, (int) sizeof(struct timeval), (char *)&t) < 0 ) { 。。。 } 还有一个条件是chunk=64k。 我想把这个时间间隔设小一点,但是我改成1000,5000, poll就不再返回了。 各位高人知道...
现在我遇到一个棘手的问题,我发现我的程序里的poll需要很长时间才会返回,大概10ms左右。我查了一下,怀疑是下面一段代码的问题:\r\n struct timeval t;\r\n t.tv_sec = 0;\r\n t.tv_usec = 10000; \r\n\r\n if (tstrioctl( SBIOCSTIME, -1, (int) sizeof(struct timeval), (char *)&t) < 0 )\r\n {\r\n。。。 \r\n }\r\n还有一个条件是chunk=64k。\r\n\r\n我想把这个时间间隔设小一点,但是我改成1000,5000,...