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);

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

于 2013-06-19T20:29:46.820 回答
0

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

cc foo.c

给出 ./a.out 作为二进制文件

cc foo.c -o foo

给出 ./foo 作为二进制文件

foo.c 不可执行。

于 2013-06-19T20:19:26.250 回答