Я пытаюсь выполнить программу из C-программы (внутри UNIX).
Мне дали исполняемый файл (программа требует ввода строки во время выполнения и записывает этот ввод в другой файл с именем sample) с именем exec, и я хочу выполнить его в program.c, но передать ввод строки через косвенное обращение.
Для этого я создал файл следующим образом:
% vim input
Я написал следующее во входном файле
content
Сейчас в программе.c,
#include<unistd.h>
int main()
{
const char* command = "./exec < input";
execvp(command, NULL);
return 0;
}
Когда я запускаю программу, содержимое не вводится в файл примера.
Но когда я запускаю его без косвенного обращения, т.е.
const char* command = "./exec";
, затем он работает, и введенные данные сохраняются в файле примера.
Может кто-нибудь сказать, что я делаю неправильно в синтаксисе косвенного обращения.
Спасибо.