LINUX.ORG.RU

В как ввод переназначить?


0

0
Вопрос может быть наивный, но все же: требуется из моей программы запустить (EXECL) другую, которая читает свой стандартный ввод и что-то с ним делает... Нужно заставить ее читать из указанного файла вместо ст. ввода. Изменить самую программу возможным не представляется, а аргументы типа "< file" воспринимаются именно как аргументы. Спасибо откликнувшимся, Костя
anonymous
Значит так: close(0); open("name_of_read_file", O_RDONLY); execve("name_of_exec_program", argv, envp); Екзекнутый процесс наследует сигналы и файловые дескрипторы у которых не установлен флаг close on exec Для более подробной справки man execve man open man fcntl
fire
()
Попробовал через popen - он сам отработад нормально, но при попытке записать выскакивает "Pipe broken". Спрашивается, кто сломал трубу???
anonymous
()
нечто такое я видел в двух случаях: если неправильно открыл пайп (вместо записи сделал открытие на чтение) и если прога не поддерживает (или не указал какой-нить ключ) ввод с инпута
hoopoe ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.