我无法通过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
的文件。
我犯的错误是什么?
答案 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不可执行。