无法通过execlp执行二进制文件

时间:2013-06-19 20:16:27

标签: c linux

我无法通过execlp执行二进制文件。

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

foobarbaz是我的c文件,我收到以下错误:

./foobarbaz: cannot execute binary file

我尝试过chmod +x foobarbaz.c

以及test.c存在execlp的文件。

我犯的错误是什么?

2 个答案:

答案 0 :(得分:2)

您可以直接运行二进制文件:

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

shell用于执行shell脚本(至少当你说bash ./foobarbaz 1时);你的二进制文件不是shell脚本。

答案 1 :(得分:0)

编译C文件时 - 比如foo.c,你得到一个输出二进制文件

cc foo.c

将./a.out作为二进制文件

cc foo.c -o foo

将./foo作为二进制文件

foo.c不可执行。