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 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.