0

execlp経由でバイナリを実行できません。

chdir("/home/foo/bar/baz/MB/");
execlp("bash", "bash", "./foobarbaz 1", NULL);

foob​​arbaz は私のcファイルで、次のエラーが表示されます。

./foobarbaz: cannot execute binary file

やってみたchmod +x foobarbaz.c

また、存在test.cするファイルexeclp

私が犯している間違いは何ですか?

4

2 に答える 2

2

バイナリを直接実行できます。

execlp("./foobarbaz", "./foobarbaz", "1", (char *)0);

シェルは、シェルスクリプトを実行するために使用されます(少なくともあなたが言うときbash ./foobarbaz 1)。あなたのバイナリはシェルスクリプトではありません。

于 2013-06-19T20:29:46.820 に答える
0

foo.c のような C ファイルをコンパイルすると、出力バイナリが得られます。

cc foo.c

バイナリファイルとして ./a.out を与える

cc foo.c -o foo

バイナリファイルとして ./foo を与える

foo.c は実行可能ではありません。

于 2013-06-19T20:19:26.250 に答える