在C中执行使用fgets作为shell命令输入的字符串

时间:2014-03-12 09:01:01

标签: c shell

我是C新手。我想使用fgets输入一个字符串,并将其作为shell命令执行。我知道可以做一些像

这样的事情
echo `ls`
Perl中的

我想在C里做类似的事情。我做错了什么?以下是我使用的一些代码:

printf("Enter a command: ");
fgets(buf, sizeof(buf), stdin);

if(prefix("ls", buf) || prefix("mv", buf) || prefix("pwd", buf) || prefix("mkdir", buf)){
    strip_newline(buf, sizeof(buf));
    printf("echo `%s`", buf);
}

2 个答案:

答案 0 :(得分:1)

尝试使用system命令。

  

C库函数int system(const char * command)传递   命令为主机指定的命令名或程序名   由命令处理器执行并在之后返回的环境   命令已经完成。

答案 1 :(得分:1)

替换

printf("echo `%s`", buf);

system(buf);

再试一次。