別のプログラムをコンパイルする目的でプログラムを作成しようとしています。exec を使用して gcc を実行することを目的としています。私は execve を使用する必要があり、私が持っているものは次のとおりです。
#include <unistd.h>
#include <sys/types.h>
int main(int argc, char* argv[], char* envp[])
{
argv[0] = "gcc";
execve("/usr/bin/gcc" , argv, envp);
return 0;
}
することで
gcc -Wall p3p4.c -o run
問題なくコンパイルされますが、実行すると
./run p3p1.c
別のものをコンパイルしようとすると、次のようになります。
run: error trying to exec 'cc1': execvp: No such file or directory
編集:
アドバイスどおり、行を追加するとき:
argv[0] = "gcc";
プログラムはなんとか動作します。ご入力いただきありがとうございます。