|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 23 Jan 2003 10:02:18 To : Valentin Nechayev Subject : научный вопрос -------------------------------------------------------------------------------- 23 Jan 03 00:27, Valentin Nechayev wrote to Zahar Kiselev: ZK>> переназначение. Видел однажды исходник, там был трюк с _закрытием_ ZK>> stdout и открытием "трубы". В результате открываемый дескриптор ZK>> попадал на "первое свободное" место, то есть как раз на место ZK>> закрытого стандартного вывода и становился стандартным выводом. ZK>> Вот только не знаю, насколько подобные предположения правомерны - ZK>> всегда ли это сработает. VN> Правомерны. Использование первого свободного дескриптора гарантируется VN> Posix, поэтому если 0 занят, а 1 только что закрыли, то open() отдаст VN> или ошибку, или 1. Вот грабля тут есть - не всегда close() завершается VN> успешно с закрытием дескриптора, бывают (хотя крайне редко) и более VN> извратные позы. А почему просто не сделать open(труба); close(stdin); dup2(труба, stdin); close(труба) ? :-/ ZK>> Судя по моим экспериментам - похоже и десять раз в секунду ZK>> работать может если график простой! Hадо только озаботиться ZK>> синхронизацией, чтобы не "перекормить" гнуплот данными. VN> Во-во. Опять не понимаю чего-то -- буфер там же не бесконечный? Перекормится и первая программа заблокируется на записи. Можно в NON_BLOCKING открыть и смотреть сколько записалось. Или я в чём-то ошибаюсь? --- [ZX] * Origin: Дед Мороз must die! [ICQ:#148761304] (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/33313e2f8662.html, оценка из 5, голосов 10
|