Articles of fifo

c – Как проверить EOF при чтении () на FIFO

В клиент-серверной программе необходимо проверить EOF для read() на FIFO ? Вопросы: Возвращает ли EOF в FIFO 0 или -1 с набором errno? Соответствует ли это правило другим объектам МПК? @Обновить Я все еще нашел результат, поэтому нужно продолжать спрашивать об этом. Ниже приведен исходный код: cs_fifo.h: // fifo header #ifndef _CS_FIFO #define _CS_FIFO #define […]

C Именованная труба (fifo). Родительский процесс застревает

Я хочу сделать простую программу, эту вилку, и ребенок записывает в именованный канал, а родительский читает и отображает из именованного канала. Проблема в том, что он входит в родительский, делает первый printf, а затем становится странным, он ничего не делает, не попадает во второй printf, это просто способы ввода в консоль. #include #include #include #include […]

Напишите «сложные» структуры на FIFO

Я работаю над реализацией «ресторана» на C с клиент-сервером. Я пытаюсь отправить следующую структуру через FIFO: typedef struct { int numtable; //table number to send answer char timestamp[20]; //simple timestamp int order[MENUSZ]; //array of int with dish IDs } request; Об этой структуре я в основном посылаю серверу номер таблицы, «строит» имя FIFO клиента через […]

Как постоянно читать FIFO в C

Я хочу постоянно читать трубу fifo в C. Мой пример кода работает, но поскольку я использую while (1), один из моих процессорных ядер постоянно находится на 100%. Итак, мой вопрос: есть ли более плавный способ читать фило, не убивая CPU? #include #include #include #include #include #include bool suffix (char* base, char* str) { int blen […]

Когда я пытаюсь открыть fifo O_WRONLY, я получаю ошибку «Нет такого устройства или адреса»

В моем коде я создаю fifo с именем «my_fifo», если я открою его в O_WRONLY | O_NONBLOCK Режим O_WRONLY | O_NONBLOCK , open () возвращает -1 и номер ошибки «Нет такого устройства или адреса», с другой стороны, если я открою fifo в O_RDONLY | O_NONBLOCK O_RDONLY | O_NONBLOCK , он работает отлично. Почему это происходит? […]

Имея проблемы с открытием FIFO в C

У меня возникли проблемы с открытием FIFO в C .. Сначала я создал их с помощью функции mkfifo () с разрешением: 0777, и когда я попытался их открыть, ему удалось открыть только первый FIFO, тогда процесс застрянет в открытие второго FIFO, и это мой код: fd1 = open(“FIFO1_PATH”, O_WRONLY ); fd2 = open(“FIFO2_PATH”, O_WRONLY ); […]

Чтение из FIFO после unlink ()

Я создал FIFO, написал ему и отсоединил его. К моему удивлению, я смог прочитать данные из fifo после разговора, почему? #include #include #include #include #include #include #define MAX_BUF 256 int main() { int fd; char * myfifo = “/tmp/myfifo”; /* create the FIFO (named pipe) */ mkfifo(myfifo, 0666); int pid = fork(); if (pid != […]

Реализация очереди FIFO в C

Для встроенного приложения я пытаюсь реализовать очередь с первым входе (FIFO) для структур с использованием ANSI C. Самый простой способ сделать это, по-видимому, заключается в реализации связанного списка, так что каждая структура содержит указатель на следующий в очереди. Следовательно, я сам определяю структуру как: typedef enum { LED_on, LED_off, etc } Action; typedef struct Queued_Action […]

Лучший подход к реализации FIFO в ядре OpenCL

objective: выполнить приведенную ниже схему в OpenCL. Главное, что требуется от ядра OpenCl, – это умножить массив коэффициентов и массив temp, а затем накапливать все эти значения в одном в конце. (Это, вероятно, самая продолжительная операция, параллелизм здесь будет действительно полезен). Я использую вспомогательную функцию для ядра, которая выполняет умножение и добавление (я надеюсь, что […]

почему два процесса могут использовать FIFO для связи после того, как FIFO был удален?

Я сделал FIFO, используя команду mkfifo , и создал два процесса для использования FIFO для связи. Но я обнаружил, что, хотя процессы, использующие FIFO, я удалил FIFO, и эти два процесса могут даже использовать -existed FIFO для отправки данных, почему?