Вы можете проверить состояние сетевого интерфейса из файла /sys/class/net/$interface/carrier
.(1
= подключен, 0
= отключен)
Чтобы получить отключенный сетевой интерфейс:
for i in $( ls /sys/class/net );do
if grep -q 0 /sys/class/net/$i/carrier; then
echo $i;
fi
done
Я не уверен, как это делается в современном C++, но вы можете заглянуть в mlock(2)
, чтобы отключить подкачку страниц памяти.
Мне также любопытно, что произойдет, если вы немедленно перезапустите его. Я ожидаю, что вызов резерва, который вы используете, на самом деле не касается всех страниц памяти (и, таким образом, не заставляет их фактически выделяться )-. на самом деле предоставьте память, которую вы запросили в первую очередь, не меняя ее местами (вы сможете опровергнуть это, посмотрев на размер резидента ).