正在处理一个项目,当我调用execl()时,它不工作。它是在fork之后调用的,并且应该重新执行当前文件。(之前在文件中声明了参数):
argument = argv[0];
int err =execl(argument, argument, left, "1", NULL);
if (err == -1) printf("never execled");我读过的所有东西都让我觉得这应该是可行的。第一个参数指定路径,第二个参数指定要执行的文件,第三个参数是字符串,第四个参数是占位符,因此当execl通过时,弧==为3,第四个参数为空终止符。
有人能帮上忙吗?
发布于 2013-10-16 01:44:40
按照execl的要求,argv[0]只保存文件名,而不保存完整的目录路径。
尝试像这样做某事:
char *cwd;
cwd=malloc(255);
getcwd(cwd,255);
strcat(cwd,"/");
strcat(cwd,argv[0]);并在execl中使用上述构造的cwd。
https://stackoverflow.com/questions/19387513
复制相似问题