使用 C++ 将目录大小存储到整数变量中

storing directory size into integer variable using c++

本文关键字:存储 整数 变量 C++ 使用      更新时间:2023-10-16

下面是我C++代码,我试图在其中将目录的大小存储到整数变量中

char path[60];
char exec[180];
sprintf(path,"%s","/home/Directory");
sprintf(exec,"du %s",path);
int k;
k = system(exec);
printf("n Value = %dn",k);

输出为

556/首页/目录 值 = 0

它不存储在 K 中

在这里,我们可以使用以下任一方法将输出存储到文件中

sprintf(exec,"du %s" > file.txt,path);
sprintf(exec,"du %s >> file.txt",path);

但是我们必须再次打开该文件(file.txt)并将数据读取到变量中。

的问题是否有任何其他选择可以将目录的大小存储到整数变量中,请建议我是否有其他选择提前致谢

正如

Joachim & Mats所解释的那样,做这样的事情。

以下代码仅供参考!

#include <stdio.h>
const int MAX_BUFFER = 2048;
char path[60];
char cmd[180];
sprintf(path,"%s","/home/Directory");
sprintf(cmd,"du /home/Directory",path); 
char buffer[MAX_BUFFER];
FILE *stream = popen(cmd, "r");
if (stream)
{
   while (!feof(stream))
   {
        if (fgets(buffer, MAX_BUFFER, stream) != NULL)
        {
           //...
        }
   }
   pclose(stream);
}