На моем терминале Linux, когда я печатаю
pbmtextps cat | pamfile
и нажмите ввод.
Это дает мне следующий вывод,
stdin: PBM raw, 83 by 104
Однако я пытаюсь вызвать "pbmtextps", используя execve () в моей основной программе. Ниже приведен фрагмент программы:
char* haha[] = {"pbmtextps","cat","|", "pamfile", NULL};
if(execve("pbmtextps",haha, NULL) == -1){
fprintf(stderr, "%s\n", "NOT ok");
}
else{
fprintf(stdout, "%s\n", "OK");
}
После запуска программы программа выводит «Not ok». Я запускаю программу в том же каталоге на том же терминале.