как файл/proc/net/dev заполнен?

for i in *.mp3; do mv "$i" "$(echo $i | sed 's/^Dropkick Murphys - //')"; done

или, более общий, для удаления сначала 3 разграниченных пространством слов из имени файла

echo $i | cut -d' ' -f4-

5
18.06.2012, 22:34
2 ответа

Используя strace, Вы видите iwconfig выполнение чего-то вроде этого:

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIWNAME, 0xbfb02c7c)       = 0
ioctl(3, SIOCGIWNWID, 0xbfb02c7c)       = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIWFREQ, 0xbfb02c7c)       = -1 EINVAL (Invalid argument)
ioctl(3, SIOCGIWENCODE, 0xbfb02c7c)     = 0

И приблизительно дюжина другой ioctls следуют. Упорно ищите их ioctls в ядре и Вы найдете, где данные.

2
27.01.2020, 20:42
  • 1
    , там способ использовать ioctl от модуля ядра? есть ли другой способ получить значения такой как SIOCGIWNAME кроме использования ioctl? –  Varda Elentári 20.06.2012, 10:13
  • 2
    ioctls пересекают границу пользователя/ядра. Если нет никакого пространства ядра API для получения информации, Вам, вероятно, придется стать творческими (запишите демону пространства пользователя, например). Возьмите это с щепоткой соли. Я никогда не должен был делать чего-то вроде этого с ядром. Большая часть моего кодирования ядра была простыми драйверами, незначительные патчи и т.д. –  Alexios 20.06.2012, 11:04
  • 3
    далеко от этого, любая идея, как/кто записи на файле /proc/net/dev или /proc/net/wireless? –  Varda Elentári 20.06.2012, 13:57
  • 4
    A grep для proc внутри net/wireless предлагает net/wireless/wext.c (это то, где /proc/net/wireless 'создается'). Необходимо, вероятно, прочитать код в net/wireless, это, кажется, делает то, в чем Вы нуждаетесь. –  Alexios 20.06.2012, 14:51
  • 5
    я не. 'Файлы' под /proc создаются кодом C каждый раз, когда они читаются, таким образом, они не существуют как таковые. Я не ищу, 'кто/какой' пишет файл, я ищу знаки различного proc_* функции (например. grep proc *.c). В этом случае, с wext-proc.c довольно легко предположить, где файлы сгенерированы. ;) –  Alexios 20.06.2012, 18:54

Условие для препроцессора говорит ЕСЛИ НЕ ОПРЕДЕЛЕННЫЙ CONFIG_WIRELESS_EXT

Который означает, что Ваш код ТОЛЬКО включен, когда нет беспроводной поддержки карты... не это назад?

    #ifndef CONFIG_WIRELESS_EXT

Не был должен это быть:

    #ifdef CONFIG_WIRELESS_EXT
0
27.01.2020, 20:42
  • 1
    Гм, извините об этом, которое было опечаткой..., но так или иначе даже когда с помощью #ifdef CONFIG_WIRELESS_EXT тем не менее wireless_handlers является все еще пустым снова, мой вопрос состоит в том, Где ifconfig получает беспроводную статистику it от? –  Varda Elentári 19.06.2012, 13:41
  • 2
    Ваш лучший источник той информации был бы "Использованием Источник, Luke". Загрузите исходный код ifconfig/iwconfig и посмотрите, как он делает это. Никакой позор там. Я узнал вполне о немного из рассмотрения другого кода. Будьте осторожны, Вы сказали, что ifconfig, где я воображаю Вас, означал iwconfig. –  lornix 19.06.2012, 14:23
  • 3
    Ваш лучший источник той информации был бы "Использованием Источник, Luke". Загрузите исходный код ifconfig/iwconfig и посмотрите, как он делает это. Никакой позор там. Я узнал вполне о немного из рассмотрения другого кода. Будьте осторожны, Вы сказали, что ifconfig, где я воображаю Вас, означал iwconfig. –  lornix 19.06.2012, 14:23
  • 4
    I видит, что iwconfig использует вызовы ioctl.. действительно ли это возможно выполнить от пространства ядра в модуле ядра? –  Varda Elentári 20.06.2012, 10:26
  • 5
    Конечно, но убедитесь SYSCALL для ioctl (32 бита =#54, 64 бита =#16), а не libc версия, Вы не хотите звонить Из ядра. Иначе все - то же для использования. 32 бита и 64 бита syscall числа ОТЛИЧАЮТСЯ, убедиться использовать символ для call# для создания вещей легче... И 54 и 16 упомянуты SYS_ioctl (и __ NR_ioctl в более низком определении), Взглянули на/usr/include/syscall.h (который будет включать другого..., и другой... продолжает рыть, это там, глубоко в bits/syscall.h и asm/unistd _ (32|64) ч), –  lornix 20.06.2012, 11:11
  • 6
    Да. Рассмотрение, что пример находится в "Руководстве по программированию Модуля Ядра"... Я сказал бы да. –  lornix 20.06.2012, 18:31

Теги

Похожие вопросы