LINUX.ORG.RU

Строка на ввод


0

0

В программе я в самом начале ввожу некоторые данные с клавиатуры, мне нужно, вызывая эту программу из другой программы по типу `exec ./$1` как-то передать ей строку на ввод, как это сделать?


Зато я всё понял. Ему нужно в ближайший книжный за книжкой по линуксу. Типа «учимся работать в линукс» или что-то типа того.

LamerOk ★★★★★
()
Ответ на: комментарий от lester_dev

при запуске первой программы из второй программы мне не нужно чтобы она ждала, что я введу с клавиатуры (так как gets), а каким-то образом вводила за меня в первую программу строку, указанную мной, на ввод

Sabik
() автор топика
Ответ на: комментарий от Sabik
ОБЗОР
       #include <unistd.h>

       int execve(const char *filename, char *const argv [], char *const envp[]);

ОПИСАНИЕ
       execve() выполняет программу, заданную параметром filename.  Программа должна быть или двоичным исполняемым файлом,
       или скриптом, начинающимся со строки вида "#! интерпретатор [аргументы]".  В последнем случае интерпретатор --  это
       правильный  путь  к  исполняемому  файлу,  который не является скриптом; этот файл будет выполнен как интерпретатор
       [arg] filename.

man 2 execve

lester_dev ★★★★★
()
Ответ на: комментарий от Sabik

Такое чувство, что русский язык у тебя к сожалению родной. Ничерта не понятно.

OxiD ★★★★
()

Как уже сказали expect, а лучше сделать возможность выбора режима работы - интерактивный или используя параметры программы/stdin. Запускаешь программу без ключей - интерактивнй режим, с ключом -b к примеру - считывай параметры настройки из argv.

DeKar
()
Ответ на: комментарий от DeKar

expect это очень специфическая вещь. Потребность в ней нужна, когда программа слишком завязана на фичи терминала. Обычный же код просто читает из stdin, а значит ничего сложнее пайпа не требуется.

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.