gpt4 book ai didi

linux - 如何使用命令 SIOCGIFFLAGS 和 SIOCSIFFLAGS 原子地调用 ioctl

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:16 26 4
gpt4 key购买 nike

有没有办法以原子方式使用命令 SIOCGIFFLAGSSIOCSIFFLAGS 调用 ioctl(该问题对所有系统调用也有效)?例如,如果我将 IFF_PROMISC 标志添加到接口(interface):

...
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)
...

我如何确保这两个调用是自动进行的?

谢谢大家!

最佳答案

简单的答案是你不能 - 没有办法保证另一个进程没有改变这些调用之间的标志。

关于linux - 如何使用命令 SIOCGIFFLAGS 和 SIOCSIFFLAGS 原子地调用 ioctl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com