| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Именованные пайпы |
| Автор: Mephisto 18.6.2011, 15:24 | ||||
| Добрый день. Заметил вот http://habrahabr.ru/blogs/programming/122108/ статью. В ней есть простейший пример работы с именованными пайпами. У меня возник некоторый вопрос по работе этого кода:
После выполнения этого
строка выводится в консоль. Судя по выводу, после открытия пайпа у процесса забирается управления до появления данных в пайпе? Потому как строка "%s is opened\n" появляется только после появления данных. |
| Автор: Mephisto 19.6.2011, 00:15 |
| ChihPih, понятно. А есть возможность после получения данных снова перейти в блокирующий режим? |
| Автор: svlary 19.6.2011, 06:44 | ||||
Никуда ПЕРЕХОДИТЬ не нужно. Если Вы открыли файп в блокирующем режиме, он так и будет дальше работать, пока Вы его не закроете. Поскольку в операторе
Вы НЕ задали флаг работы в неблокирующем режиме, то это означает (по умолчанию). что системные вызовы на этот файловый дескриптор будут работать в блокирующем режиме. Наверное, Вы не обратили внимание на то, что у Вас ДВА системных вызова работают с этим файловым дескриптором :
то у Вас эти обе блокировки практически совпали по времени. А если бы Вы запустили любую диалоговую программу на этот файловый дескриптор, то увидели бы четкие моменты всех блокировок. Добавлено через 4 минуты и 24 секунды В этой статье почему-то не упоминаются два IPC механизма :
Причем последние бывают POSIX и System-V типов. |
| Автор: Mephisto 25.6.2011, 11:24 |
| svlary, понял. Спасибо ) |