Именованные каналы в линукс

Именованные каналы в Linux ⁠ ⁠

Именованный канал — один из методов межпроцессного взаимодействия. Он позволяет различным процессам обмениваться данными, даже если программы, выполняющиеся в этих процессах, изначально не были написаны для взаимодействия с другими программами.

Именованный канал создаётся явно с помощью mknod или mkfifo, и два различных процесса могут обратиться к нему по имени.

Например, можно создать канал и настроить gzip на сжатие того, что туда попадает:

Что такое файлы именованных каналов?

Специальные файлы, которые могут быть расположены в любых точках файловой системы, предназначены для обмена данными между приложениями (или в рамках одного приложения) и представляют собой буферы в памяти, поддерживающие операции чтения и записи с блокировками.

Для создания файлов именованных каналов можно использовать утилиту mkfifo:

Что такое файлы устройств?

Тип файлов в UNIX-подобной ОС, содержат данные, необходимые операционной системе для взаимодействия с физическими устройствами, такими как диски и дисководы, принтеры и факсы и т. п.

Каждый из таких файлов идентифицируется с помощью двух идентификаторов: основного идентификатора (major number) и вспомогательного идентификатора (minor number).

Файлы устройств размещаются в каталоге /dev или в его подкаталогах. Примеры основных файлов:

/dev/sd[буква][номер] — раздел диска

/dev/eth[номер] — сетевые интерфейсы Ethernet

Узнать информацию о файле устройства можно с помощью команд file и ls.

Создание файла именованного канала

Для создания файла именованного канала достаточно использовать утилиту mknod с параметром p.

mknod -m 777 /home/name/fifo p

Чтобы проверить создание файла именнованного канала:

Читайте также:  Xampp для линукс на

Для прекращения работы с файлом именованного канала достаточно использовать команду rm:

Передаем данные через именованный канал

Для передачи данных через именованный канал, в первую очередь, создаем этот канал с помощью команды mkfifo:

Для проверки, что канал создан, воспользуйтесь:

Для обмена данными между приложениями следует открыть дополнительное окно эмулятора терминала и выполнить в нем команду:

Далее с помощью первого окна терминала выполнить:

Во втором окне, вы должны увидеть:

Прервать работу Ctrl+C. А после окончания использования файла программного канала следует удалить его:

154 поста 1.7K подписчиков

Правила сообщества

Просьба уважать друг друга.

Всегда создавал каналы с помощью |

В тексте не указано, когда имеет смысл использовать такие каналы.

Для обмена данными между приложениями следует открыть дополнительное окно эмулятора терминала и выполнить в нем команду:

tail -f /tmp/my.fifo

Далее с помощью первого окна терминала выполнить:

echo «Linux» >> /tmp/my.fifo

Чем это отличается от обычной записи в файл, например, txt?

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

Мой план-лист по бесплатным IT курсам и ресурсам⁠ ⁠

В посте про «наставление» накидали кучу годноты + в телегу.
По всему этому я пройдусь, буду иногда постить об успехах.

Некоторые глянул мельком. Поэтому если там есть продукт-плейсмент — отпишите и я удалю. На первый взгляд очень даже хорошо. Искал с нуля т.к. лучше повторить, чем вспоминать и ошибиться.

Первое я уже успел попробовать (находил сам), прохожу в текущий момент.
Stepik — python для начинающих

Мой план-лист по бесплатным IT курсам и ресурсам IT, Курсы программирования, Онлайн-курсы, Бесплатное обучение, Python, Программирование, Системное администрирование

Если что-то хотите предложить — пишите в комментарии.

UPD: даже в начале написал, что я не в курсе ни о какой рекламе на тех ресурсах. И первый же начал разводить вонь о том, что я продажный и сайт вообще мой. Ууух я конечно злой гений.

Читайте также:  Linux raw to img

Предлагайте ваши варианты, что сами пробовали. Обязательно попробую.

UPD2: я без понятия почему «это» вылетело в горячие. Не бейте блин тапком.

Ответ UehalVOmsk в «О собеседованиях на 700к/месяц»⁠ ⁠

Я одно время (около года) проводил тех собесы для расширения фронт команды, искали мидл+. Кандидаты были максимально разношерстые, ну и я сам попроходил очень много собесов за свою рабочую жизнь (каждая смена работы выходила в пару тройку недель по 2-3 собеса ежедневно)

Для тех, кто удивляется, почему вопросы одни и те же для джуна \ мидла \ сеньора и для разных уровней зп вот ответ:
1) Первичный отсев. Это базовые вопросы, 90% которых встречается в работе. Я принимал как технически верные ответы как по документации, так и в свободной форме верно описанные. Но и на этом валилось где то 40% кандидатов. Видимо из разряда «попробую пройти на шару». Технически не грамотные, с плавающими знаниями, некоторые и с подсказками не отвечали на вопрос

2) Проверка софт скилов, как общается кандидат, как быстро оперирует знаниями в голове, не валится ли от каверзных вопросов, выражается ли чисто по документации или объясняет более понятно своим языком. Тут отсевались люди, которые слабо могли коммуницировать (долго мямлили, на очень долгое время замолкали, сквернословили (были и такие, что было шоком для меня), всякие побратимушки тоже были, те, кто быстро начинал переходить на агресивный тон. На той работе были крупные созвоны, где были и менеджеры и бизнес представители, в корпоративную этику такие кандидаты бы не вписались

3) На части написания кода смотрелось на то, как быстро, насколько чисто пишется код, рассуждает ли кандидат вслух (Была просьба рассуждать вслух и описывать свои действия). Рефакторит ли свой код кандидат по ходу написания. Задачи я составил свои, связанные как с базовыми вопросами js и react, так и обезличенные рабочие задачи. Все это так же помогало в
выявлении степени подготовки кандидата.

Читайте также:  Linux operatsion tizimi haqida tushuncha

По итогам собеседования я писал короткое ревью о кандидате, минусах плюсах и передавал дальше HR’ам

По итогу за год было отобрано 4 кандидата, один из которых очень быстро слился в неизвестном направлении, бросив важную задачу, которую как оказалось он не сделал. До сих пор не понимаю, что это было, то ли как то за него рядом проходили задачи, то ли какие то жизненые проблемы случились.

Было это около 3х лет назад, позиция мидл+ реакт фронт, зп 3к$

Источник

Оцените статью
Adblock
detector