我无法通过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脚本。