現在、コマンド ラインから .c ファイルを自動コンパイルするプロジェクトに取り組んでいます。そのために、次のコードを使用します。
bool auto_compile(process_t *p) {
char* file_name = p->argv[0];
char* compile_args[] = {"gcc", "-o", "devil", file_name, NULL};
int status, pid;
switch(pid = fork()) {
case -1:
logger("fork", 1);
exit(EXIT_FAILURE);
case 0:
execvp("gcc", compile_args);
default:
waitpid(pid, &status, WUNTRACED);
if(WIFEXITED(status)) {
if(status != EXIT_SUCCESS) {
logger("Error, could not compile", 4);
return false;
}
}
}
return true;
}
gcc に無効なパラメータ (無効なファイル名) を入力すると、gcc エラー メッセージが端末に出力されます。代わりにこのエラーをファイルにリダイレクトしたい場合、どうすればキャッチできますか?