Я хочу использовать старый добрый FIFO для передачи данных в другую часть моего собственного приложения для iOS. Я посмотрел на dispatch_io_create_with_path, но я хочу, чтобы другая сторона могла читать данные с помощью обычного чтения(). Можно ли использовать файл FIFO? как?
Я попробовал следующий код в Xcode7 ObjC (путь указывает на каталог документов + имя файла):
res = mkfifo(path, 0x777);
int fd;
fd = open(path, O_WRONLY);
write(fd, "test", 5);
close(fd);
mkfifo() возвращает 0, но open() завершается с ошибкой -1. Интересно, что если я попытаюсь открыть() с 'O_RDONLY', программа будет ждать, значит, там что-то происходит..
However, it has to be open at both ends simultaneously before you can proceed to do any input or output operations on it. Opening a FIFO for reading normally blocks until some other process opens the same FIFO for writing, and vice versa.
- person Putz1103   schedule 06.07.2016