Можно ли передать файл конфигурации по конвейеру на hostapd?

Фраза « Все есть файл » определяет архитектуру операционной системы. Это означает, что все в системе - от процессов, файлов, каталогов, сокетов, каналов и т. Д. - представлено файловым дескриптором, абстрагированным на уровне виртуальной файловой системы в ядре. Виртуальная файловая система - это интерфейс, предоставляемый ядром. Поэтому фраза была исправлена ​​на " Все является файловым дескриптором ". Сам Линус Торвальдс еще раз поправил его немного точнее: « Все является потоком байтов ».

Однако у каждого «файла» также есть владелец и разрешения, о которых вы можете узнать из обычных файлов и каталогов. Поэтому классические инструменты Unix, такие как cat, ls, ps, ... могут запрашивать все эти «файлы», и нет необходимости изобретать другие специальные механизмы, кроме простых старых инструментов, которые все используют read () системный вызов. Например, в семействе ОС Microsoft есть несколько различных системных вызовов read () (я слышал около 15) для любых типов файлов, и каждый из них немного отличается. Когда все в виде файла, это вам не нужно.

На ваш вопрос : Конечно, существуют разные типы файлов . В Linux существует 7 типов файлов . Каталог - один из них. Но утилиты могут отличить их друг от друга. Например, полная функция команды cd (при нажатии TAB ) перечисляет только каталоги, поскольку системный вызов stat () (см. man 2 stat ) возвращает структуру с полем с именем st_mode . Стандарт POSIX определяет, что может содержать это поле:

       S_ISREG(m)  is it a regular file?
       S_ISDIR(m)  directory?
       S_ISCHR(m)  character device?
       S_ISBLK(m)  block device?
       S_ISFIFO(m) FIFO (named pipe)?
       S_ISLNK(m)  symbolic link? (Not in POSIX.1-1996.)
       S_ISSOCK(m) socket? (Not in POSIX.1-1996.)

Функция завершения команды cd просто отображает «файлы», в которых установлен флаг S_ISDIR .

1
19.12.2017, 20:19
0 ответов

Теги

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