- 论坛徽章:
- 0
|
请教:- #include <stdio.h>
- #include <string.h>
- #include <fnmatch.h>
- #include <stdio.h>
- #include <sys/types.h>
- #include <dirent.h>
- #include <unistd.h>
- int rm_file(char *file)
- {
- if (remove(file) == 0)
- printf("Removed %s.\n",file);
- else
- perror("remove");
- return 0;
- }
- int run_cmd(char *exe, char *cmd_name)
- {
- FILE *in;
- extern FILE *popen();
- char buff[512];
- if(!(in = popen(exe, "r"))){
- return -1;
- }
- if(fgets(buff, sizeof(buff), in)!=NULL){
- sprintf(cmd_name,"%s", buff);
- rm_file(cmd_name);
- }
- pclose(in);
- }
- main (){
- char loop_cmd[1024]="cat /root/files";
- char str[1024];
- run_cmd(loop_cmd,str);
- printf("%s",str);
- }
复制代码 cat /root/files 存放着要删除文件的路径
remove: No such file or directory
/mnt/file/tmp.tmp
为何 printf 都可以打印出文件的绝对路径了,
函数 remove 还是删不了, 文件的路径正确,文件的权限也看过了可读可写
用system 调用 rm 命令可以删除,
请教在大家上面这些函数问题出在哪里?
谢谢 |
|