![]() |
|
![]() ![]() ![]() |
|
null56 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Всем привет
С глибом начал работать недавно, но вот нарвался на непонятный для себя момент Задача: запустить внешнее приложение, передать ему какую - то команду (на его stdin), дождаться ответа (stdout) 1) запускаю внешнее приложение вот так
2) отправляю команду (она доходит)
3) пытаюсь прочитать stdout, начинаю висеть, пока приложение на другой стороне не завершит работу
в общем, вопрос, скорее из интереса, почему мы висим пытаясь прочитать из stdout дочернего процесса? при том запись в stdin проходит, проверил подскажите пожалуйста почему так происходит? и как надо правильно поступатЬ, если я допустил ошибку (интересует синхронный режим на блокируемых пайпах)... |
||||||
|
|||||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
мда.... ответ кеширование на другой стороне, поэтому и ждем, поэтому при завершении процесса ядро передает наконец мои данные.. обидно... ведь на пайпы мы повлиять никак не можем, задать что - то типа O_SYNC или O_DIRECT.... надо подумать
Добавлено через 6 минут и 20 секунд зараза и повлиять на него в данном контексте нельзя, ибо функция перед возвратом закрывает дескриптор, другую сторону пайпа отывок strace
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |