当前位置: 首页 > news >正文

园区网站建设服务公司wordpress shard

园区网站建设服务公司,wordpress shard,专业做胶粘剂招聘网站,网页广告关不掉怎么办cat /proc/net/dev Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。…

cat /proc/net/dev
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

/proc文件系统中包含了很多目录,其中/proc/net/dev就是提供给用户读取或更改网络适配器及统计信息的途径。
注意:因为proc是伪文件系统,只存在内存中,所以这里统计的数据的时间起止时间是:系统启动到命令执行,如果此时系统发生重启,数据将会清零。
在这里插入图片描述

参数说明:
bytes: 接口发送或接收的数据的总字节数
packets: 接口发送或接收的数据包总数
errs: 由设备驱动程序检测到的发送或接收错误的总数
drop: 设备驱动程序丢弃的数据包总数
fifo: FIFO缓冲区错误的数量
frame: 分组帧错误的数量
colls: 接口上检测到的冲突数
compressed: 设备驱动程序发送或接收的压缩数据包数
carrier: 由设备驱动程序检测到的载波损耗的数量
multicast: 设备驱动程序发送或接收的多播帧数
其实,我们平时经常用的很多查看网卡实时流量的命令,都是通过读取该目录下的实时流量,并通过简单计算得到的。


#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>// 更改为你要监测的网卡名称,可以通过ifconfig获得
#define INTERFACE_NAME "ens33"unsigned long long ticBytes;
unsigned long long tocBytes;// 读取指定网卡的统计信息
int readInterfaceStats(const char *interfaceName, bool isTic) {FILE *file = fopen("/proc/net/dev", "r");if (file == NULL) {printf("Failed to open /proc/net/dev");return -1;}char line[256];while (fgets(line, sizeof(line), file)) {if (strstr(line, interfaceName) != NULL) {if (isTic) {// 读取bytes的相关信息,用%*s跳过无用字符串sscanf(line, "%*s %llu", &ticBytes);}else {sscanf(line, "%*s %llu", &tocBytes);}fclose(file);return 0;}}fclose(file);return -1;
}long *myIfconfig(char *interfaceName)
{int fd = open("/proc/net/dev", O_RDONLY | O_EXCL);if (-1 == fd){printf("/proc/net/dev not exists!\n");return NULL;}char buf[1024*2];lseek(fd, 0, SEEK_SET);int nBytes = read(fd, buf, sizeof(buf)-1);if (-1 == nBytes){printf("read error");close(fd);return NULL;}buf[nBytes] = '\0';close(fd);
//返回第一次指向netCard位置的指针char* pDev = strstr(buf, interfaceName);if (NULL == pDev){printf("don't find dev %s\n", interfaceName);return NULL;}char *p;char *ifconfigValue;int i = 0;static long rx2Tx10[2];
/*去除空格,制表符,换行符等不需要的字段*/for (p = strtok(pDev, " \t\r\n"); p; p = strtok(NULL, " \t\r\n")){i++;ifconfigValue = (char*)malloc(20);strcpy(ifconfigValue, p);
/*得到的字符串中的第二个字段是接收流量*/if(i == 2){rx2Tx10[0] = atol(ifconfigValue);}
/*得到的字符串中的第十个字段是发送流量*/if(i == 10){rx2Tx10[1] = atol(ifconfigValue);break;}free(ifconfigValue);}return rx2Tx10;
}int main()
{double interval = 1.0; // 采样间隔,单位为秒while (1) {if (readInterfaceStats(INTERFACE_NAME, true) == -1) {printf("Failed to read interface stats\n");return -1;}sleep((unsigned int)interval);if (readInterfaceStats(INTERFACE_NAME, false) == -1) {printf("Failed to read interface stats\n");return -1;}double kbps = (tocBytes - ticBytes) / interval / 1024;printf("receive speed is Kb/s: %.2f\n", kbps);long *ifconfigResult;double reKb;ifconfigResult = myIfconfig(INTERFACE_NAME);reKb = (double)ifconfigResult[0] / (1024);printf("Receive total: %0.2f KB\n", reKb);reKb = (double)ifconfigResult[1] / (1024);printf("Send total: %0.2f KB\n", reKb);}return 0;
}
http://www.yayakq.cn/news/439998/

相关文章:

  • 外贸一般上什么网站广州市研发网站建设平台
  • 中国建设银行招聘网站通知微信开发小程序开发工具下载
  • 直播app下载汅api免费下载上海专业seo
  • wap网站分享代码企业网站源码 非织梦
  • 做网页的网站叫什么软件ps 做ui比较好的网站有哪些
  • 兼职做海报网站网络营销推广部做什么
  • 杯子电子商务网站的建设wordpress数据库容量
  • 怎样创建网站详细步骤游戏外包公司
  • 天津 网站设计wordpress目录详解
  • 服装厂网站模板西安高端模板建站
  • 北京建站优化公司35互联网站建设怎么样
  • 网站设计制作的服务商个人网站建设安全
  • 企业网站带手机源码网站服务器排名
  • 做魔方网站用什么背景最好百度做网站推广电话
  • 网站建设后续的费用深圳有做网站最近价格?
  • 深圳宝安住房和建设局网站宿迁做网站需要多少钱
  • 官方做任务网站网站建设推广接单语
  • 设计师采集网站给个网站急急急202
  • 做3个网站需要多大的服务器建立一个网站平台需要多少钱
  • 最牛的网站建山西网站制作方案
  • 专业做网站建设公司怎么样网页设计主题内容
  • 杭州富阳网站建设公司国产十大erp软件
  • 常见的制作网站的工具wap站开发
  • 上海网站备案信息dw网站建设的数据库
  • 酒类公司网站模板做网站地图的步骤
  • 漯河哪里做网站自己做的网页发布
  • 北京企业建站哪家好seo营销技巧
  • 做电子相册的网站亳州电子商务网站建设公司
  • 用做网站使用的图片app下载汅api免费安卓
  • 番禺区网站设计聊城网站空间公司