在系统调用C程序中循环

时间:2014-12-02 11:53:01

标签: c loops

我想在ubuntu的循环中调用函数wget,我该怎么办?这就是我所做的,但它没有用。

for (i = 1; i < 500; ++i)
{
    system("wget -O page%i 'http://www.asdf.com/?=%i'", i, i);
}

1 个答案:

答案 0 :(得分:2)

你不能那样使用它。你需要使用sprintf

char cmd[50]={0};
for (i = 1; i < 500; ++i)
{
    sprintf(cmd,"wget -O page%i 'http://www.asdf.com/?=%i'",i,i);
    system(cmd);
}

或者您可以使用snprintf,它还可以通过限制要复制的字符串的大小来防止缓冲区溢出。要使用它,只需使用

替换上面代码中的sprintf即可
snprintf(cmd,sizeof(cmd),"wget -O page%i 'http://www.asdf.com/?=%i'",i,i);