C在shell命令中使用字符串

时间:2013-05-01 22:44:02

标签: c linux unix

您好我正在尝试执行此shell命令“rm -rf test”:

#include <stdio.h>
#include <stdlib.h>


char name[] = "test";
char buffer[64];
int main()
{
        snprintf(buffer,sizeof(buffer),"rm -rf s% s%", name);
        system(buffer);
        return 0;
}

它将编译并运行,但不会删除目录

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

不要使用system来运行外部进程,尤其是在您传递的命令行不是常量的情况下。它只会让你的生活变得悲惨。请参阅man forkman exec了解正确的方法。

答案 1 :(得分:-1)

#include <stdio.h>
#include <stdlib.h>

char name[] = "test";
char buffer[64];

int main()
{
        snprintf(buffer,sizeof(buffer),"rm -rf %s", name);
        system(buffer);
        return 0;
}

它对我有用。