C/C++ 获取文件大小

常用方法1:Linux用,很好用,简单实用

int GetFileSize(const std::string& file_name){
	struct stat info;
	stat(file_name.c_str(), &info);
	int size = info.st_size;
	return size; //单位是:byte
}

常用方法2:Windows 与Linux通用,需要头文件cstdio 和 string;

int GetFileSize(const std::string& file_name){
	FILE* fp = fopen(file_name.c_str(), "r");
	fseek(fp, 0, SEEK_END);
	int size = ftell(fp);
	fclose(fp);
	return size; //获取字节数
}

常用方法3:Windows用,需要头文件sys/stat.h 和 string


int GetFileSize(const std::string& file_name){
	struct _stat info;
	_stat(file_name.c_str(), &info);
	int size = info.st_size;
	return size; //获取文件字节数
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
获取网络实际使用率,可以使用系统提供的网络统计信息。在 C/C++ 中,可以通过调用系统 API 来获取这些信息。 在 Windows 操作系统中,可以使用 GetIfTable 和 GetIfEntry 函数来获取网络接口的流量统计信息。可以使用这些函数计算网络实际使用率。 在 Linux 操作系统中,可以使用 /proc/net/dev 文件来获取网络接口的流量统计信息。可以读取该文件并计算网络实际使用率。 以下是一个简单的 C++ 代码片段,用于获取 Windows 操作系统中网络接口的流量统计信息并计算网络实际使用率: ```cpp #include <Windows.h> #include <iphlpapi.h> #include <iostream> #pragma comment(lib, "iphlpapi.lib") int main() { MIB_IFTABLE* ifTable = nullptr; DWORD ifTableSize = 0; // 获取网络接口表格大小 GetIfTable(ifTable, &ifTableSize, false); // 分配缓冲区,获取网络接口表格 ifTable = (MIB_IFTABLE*) new char[ifTableSize]; GetIfTable(ifTable, &ifTableSize, false); // 遍历网络接口,输出实际使用率 for (DWORD i = 0; i < ifTable->dwNumEntries; ++i) { auto& ifEntry = ifTable->table[i]; // 计算网络实际使用率 ULONGLONG bytesSent = ifEntry.dwOutOctets; ULONGLONG bytesReceived = ifEntry.dwInOctets; ULONGLONG bytesTotal = bytesSent + bytesReceived; double utilization = bytesTotal / (double)ifEntry.dwSpeed; std::cout << "Interface: " << ifEntry.wszName << std::endl; std::cout << "Utilization: " << utilization << std::endl; } delete[] ifTable; return 0; } ``` 注意,上述代码仅适用于 Windows 操作系统。在 Linux 操作系统中,需要使用相应的 API 或文件来获取网络统计信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁为百夫长,胜作一书生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值