日期:2014-05-16  浏览次数:20633 次

system调用shell问题,急
在C中调用SYSTEM执行SHELL命令,SHELL命令里有N个参数(N不定)
而传递给SHELL的参数在一个字符串里,不同参数以空格隔开,
如何作?举个简单例子,第一次搞SHELL,很急

------解决方案--------------------
sprintf ( cmdstr , "%s " , shellcmd );
for ( i = 0 ; i < N ; i ++ )
{
strcat ( cmdstr , parameter[i] );
strcat ( cmdstr , " " );
}
system ( cmdstr );
------解决方案--------------------
int main(int argc,char **argv)
{
char buf[1024];
int i;
memset(buf,0,sizeof(buf));
strcpy(buf, "echo ");
for(i=1;i <argc;i++)
{
strcat(buf,argv[i]);
strcat(buf, " ");
}
system(buf);
}

------解决方案--------------------
我想楼主是这个意思。

int main()
{
system( "mkdir test1 ");
system( "ls -l ");

char strshell[] = "rm ";
char strarg[] = "-r test1 ";
char strcmd[255];

sprintf(strcmd, "%s %s ", strshell, strarg);

system(strcmd);
system( "ls -l ");
}

SYSTEM执行SHELL命令, //strshell[]里面存shell名
SHELL命令里有N个参数(N不定,
而传递给SHELL的参数在一个字符串里,不同参数以空格隔开, //存在strarg[]中。