【问题标题】:get wget file size in c program在c程序中获取wget文件大小
【发布时间】:2013-06-18 20:55:38
【问题描述】:

我想在不实际下载文件的情况下获取 wget 下载的文件大小。所以我用

wget --spider <url> 2>&1 | grep Length | awk '{print $2}' 

它有效。但是现在我的c程序通过

使用这个shell代码
int result = system("wget .....");

但是,系统返回退出状态代码,这意味着结果将为 0,而不是给我文件大小。如果我仍然想使用 wget --spider,如何在我的 c 编程代码中获得这个文件大小?提前致谢!

【问题讨论】:

标签: c shell command-line wget


【解决方案1】:

您将需要使用 popen() 命令,该命令分叉并打开通往外壳的管道。 这个函数接受一个指向你的命令的 char 指针和一个模式。然后它返回一个指向您的命令结果的指针。您的代码如下所示。

 #include <stdio.h>
 #include <stdlib.h>
       int main()
       {
              char *cmd = "wget --spider <url> 2>&1 | grep Length | awk '{print $2}'";
              char buf[128];
              FILE *ptr;

              if ((ptr = popen(cmd, "r")) != NULL){
                      while (fgets(buf, 128, ptr) != NULL)
                              printf("%s", buf);
                      }
                      pclose(ptr);
              }
              return 0;
       }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多