Я пытаюсь запустить скомпилированный код C с помощью функции execvpe()
в C. Мой файл кода находится в /code/Solution.c
.Я скомпилировал его с помощью команды gcc /code/Solution.c -o /code/Solution
.Я хочу запустить скомпилированный код, т. Е. Файл /code/Solution
, используя execvpe()
.Когда я запускаю его вручную, я использую команду ./code/Solution < /input/1.txt &> /stdout/1.txt
, и она отлично работает, но застревает (программа никогда не заканчивается), когда я пытаюсь сделать то же самое программно, используя execvpe()
.Вот мой код:
#define _GNU_SOURCE
#include<unistd.h>
#include<stdio.h>
int main(){
char *args[] = {"./Solution", "<", "/input/1.txt", "&>", "/stdout/1.txt", NULL};
char *env[] = {"PATH=/code", NULL};
int x = execvpe("Solution", args, env);
printf("%d\n", x);
return 0;
}