gpt4 book ai didi

c++ - 使用 ifstream::open "meminfo",fileLen 为 -1

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:13 27 4
gpt4 key购买 nike

代码如下:

#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <fstream>
#include <memory.h>


int main()
{
std::ifstream file;
file.open("/proc/meminfo");
if(file.fail())
return 0;

file.seekg(0, std::ios::end);
int fileLen = file.tellg();
file.seekg(0, std::ios::beg);

char buffer[fileLen + 1];
memset(buffer, 0, fileLen + 1);
file.read(buffer, fileLen + 1);
if(file.fail())
return 0;

unsigned long long total = 0;
unsigned long long free = 0;
sscanf(buffer, "%*s %llu%*s%llu", &total, &free);
file.close();
return 1;
}

代码中,fileLen为-1,不知道是什么原因。如果 ifstream 打开一个不同的文件,比如 1.txt,程序是正确的。最后,感谢您的帮助

最佳答案

/proc 的内容不是真正的文件,因此没有实际大小。不要试图获取它们的大小,而是简单地正常读取和解析它们。

关于c++ - 使用 ifstream::open "meminfo",fileLen 为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com