我无法通过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 脚本。
当你编译一个 C 文件时——比如 foo.c 你会得到一个输出二进制文件
cc foo.c
给出 ./a.out 作为二进制文件
cc foo.c -o foo
给出 ./foo 作为二进制文件
foo.c 不可执行。