我无法通过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的文件。
我犯了什么错?

最佳答案

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

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

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

09-10 01:27