在execl()函数ic C语言中使用rm linux命令

0 c linux rm execl

希望一切顺利...我正在尝试编写在 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;
  }
Run Code Online (Sandbox Code Playgroud)

帮帮我吧!

Mik*_*CAT 5

的参数execl()指定要执行的程序的命令行参数。

execl("/bin/rm","rm /home/mazenas/Desktop/folder/","f.txt",NULL);
Run Code Online (Sandbox Code Playgroud)

意味着执行这个:

"rm /home/mazenas/Desktop/folder/" "f.txt"
Run Code Online (Sandbox Code Playgroud)

如果要执行此命令:

rm "/home/mazenas/Desktop/folder/f.txt"
Run Code Online (Sandbox Code Playgroud)

你应该写:

execl("/bin/rm", "rm", "/home/mazenas/Desktop/folder/f.txt", NULL);
Run Code Online (Sandbox Code Playgroud)