下面是我的C ++代码,其中我试图将Directory的大小存储为整数变量
char path[60];
char exec[180];
sprintf(path,"%s","/home/Directory");
sprintf(exec,"du %s",path);
int k;
k = system(exec);
printf("\n Value = %d\n",k);
,输出
556 /home/Directory Value = 0
它不存储在K
中这里我们可以使用
将输出存储到文件中sprintf(exec,"du %s" > file.txt,path);
sprintf(exec,"du %s >> file.txt",path);
但我们必须再次打开该文件(file.txt)并将数据读入变量。
我的问题是有任何其他替代方法将目录的大小存储到整数变量中请建议我有任何替代方案 在此先感谢
答案 0 :(得分:1)
以下代码仅供参考!
#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);
}