在我的程序中,我想使用execlp()执行文件的代码,但是遇到了一些麻烦。
假装我有一个包含功能f()的文件test.c:
void f(void){
print("test");
}
在我的主程序中,我想调用execlp以执行文件测试中的功能f()
。
我尝试过
execlp("test", "test", NULL);
但这不起作用
答案 0 :(得分:0)
execlp()
用于执行二进制可执行文件,而不是源代码。如果要从另一个文件运行函数f()
,只需在编译过程中将其包括在源代码中即可。
答案 1 :(得分:0)
您需要在可执行文件中使用main()
函数。
void f(void){
print("test");
}
int main() {
f();
return 0;
}
运行可执行文件时,它总是从main()
函数开始。
此外,在调用execlp()
时,应使用可执行文件的完整路径名:
execlp("./test", "test", (char *)NULL);
开始时需要./
,因为.
变量通常不在$PATH
中。因此,它可能正在执行/bin/test
。