1
有沒有辦法以命令SIOCGIFFLAGS
和SIOCSIFFLAGS
以原子方式調用ioctl(問題也適用於所有sys調用)?例如,如果我將在IFF_PROMISC
標誌添加到一個接口:如何通過命令SIOCGIFFLAGS和SIOCSIFFLAGS以原子方式調用ioctl
...
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, "eth0");
if (ioctl(sk, SIOCGIFFLAGS, &ifr) < 0)
...
ifr.ifr_flags |= IFF_PROMISC;
if (ioctl(sk, SIOCSIFFLAGS, &ifr) < 0)
...
我怎麼能保證這兩個調用原子製成?
謝謝大家!
我想到了這個:(謝謝湯姆。 – MirkoBanchi