希望一切顺利... 我正在尝试编写在 C 语言的 execl 中使用 execl 的代码,但是当我放置文件目录时它不起作用。 代码是:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/wait.h>
int main(int argc,char* argv[]){
int n,m,x;
n=fork();
if(n==0){
execl("/bin/rm","rm /home/mazenas/Desktop/folder/","f.txt",NULL);
}
else{
wait(&m);
printf("end of Programm\n");
}
return 0;
}
请帮帮我!
答案 0 :(得分:5)
execl()
的参数指定要执行的程序的命令行参数。
execl("/bin/rm","rm /home/mazenas/Desktop/folder/","f.txt",NULL);
表示执行这个:
"rm /home/mazenas/Desktop/folder/" "f.txt"
如果要执行这个命令:
rm "/home/mazenas/Desktop/folder/f.txt"
你应该写:
execl("/bin/rm", "rm", "/home/mazenas/Desktop/folder/f.txt", NULL);
答案 1 :(得分:3)
我很确定你的意思
execl("/bin/rm","rm", "/home/mazenas/Desktop/folder/f.txt",NULL);
如果 rm
检查它的调用名称,那么 f.txt
没有意义并且它会抱怨;否则它将尝试在当前目录而不是给定路径中 rm f.txt
。