Медленный системный вызов - что-то как чтение сокета TCP () - если у Вас нет O_ASYNC (или безотносительно) набором, это может ожидать навсегда.
Быстрый системный вызов - что-то как gettimeofday () или getpid (), оба из которых возвращают информацию процессу, который ядро сразу имеет доступный.
Чтение с диска падает в категории медленных системных вызовов. Если процесс делает чтение () на истинном дисковом файле, дескрипторе файла, ядру, вероятно, придется читать в одном или нескольких дисковых блоках для удовлетворения чтения. В зависимости от дисковой структуры базовой файловой системы это может означать читать on-disk-inode для получения количества дискового блока "косвенного блока", читая косвенный блок для получения блока данных и затем читая сам блок данных. Довольно трудоемкий, по крайней мере, с точки зрения циклов ЦП на доступ к диску, вероятно, хуже сегодня, чем он, был в Добрые старые времена.
Я не видел это в возрастах, но "нижняя половина" старого кода драйвера устройства дисковода Unix заблокировала бы сигналы/прерывания так, чтобы было легче поддержать дисковую целостность файловой системы. Иногда, ошибочный драйвер или сбойный диск никогда не обеспечивали бы дисковый блок, который попросил процесс, и процесс спал навсегда. Даже уничтожение-9 ничего не сделало к нему.
Можно использовать
iwlist <interface> scan
Например:
iwlist wlan0 scan
Кроме того, использование каналов и egrep
, и осуществление немного с iwlist scan
, можно извлечь информацию, которую Вы хотите:
iwlist wlan0 scan | egrep 'Address:|ESSID:'
Если Вы находитесь на Linux затем, можно обычно просто делать
ifconfig
или
iwconfig
получить информацию о Вашем NIC. Для сканирования Вас обычно делают
iwlist wlan0 scan
получить информацию о точках беспроводного доступа в диапазоне. В этом случае Ваш беспроводной интерфейс был уже определен с помощью ifconfig
(или iwconfig
) как wlan0
.