源代码例如以下:

//2015/7/2 10:30:35
//gino
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h> #define FLOW_RX_FILE "/sys/class/net/eth0/statistics/rx_bytes"
#define FLOW_TX_FILE "/sys/class/net/eth0/statistics/tx_bytes"
#define FLOW_STATISTICS "/tmp/statistics"
#define DATA_BUF_SIZE 1024 int main(int argc, char **argv){ int flowRx_fd, flowTx_fd, flowSt_fd, data_size ;
char RX_buf[DATA_BUF_SIZE] , TX_buf[DATA_BUF_SIZE];
FILE *flowSt_pin = NULL; if((flowRx_fd = open(FLOW_RX_FILE, O_RDONLY)) == -1){
fprintf(stderr, "RX_open: %s\n",strerror(errno));
exit(EXIT_FAILURE);
} if((flowTx_fd = open(FLOW_TX_FILE, O_RDONLY)) == -1){
fprintf(stderr, "TX_open: %s\n",strerror(errno));
exit(EXIT_FAILURE);
} if((flowSt_fd = open(FLOW_STATISTICS, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR)) == -1){
fprintf(stderr, "ST_open: %s\n",strerror(errno));
exit(EXIT_FAILURE);
} //将文件描写叙述符转换成文件指针
flowSt_pin = fdopen(flowSt_fd, "w+"); while(1){ bzero(RX_buf,sizeof(RX_buf));
bzero(TX_buf,sizeof(TX_buf)); if((data_size = read(flowRx_fd,RX_buf,sizeof(RX_buf))) == -1){
fprintf(stderr, "read_rx: %s\n",strerror(errno));
}
RX_buf[data_size -1 ] = '\0'; if((data_size = read(flowTx_fd,TX_buf,sizeof(TX_buf))) == -1){
fprintf(stderr, "read_tx: %s\n",strerror(errno));
}
TX_buf[data_size -1 ] = '\0'; //JOSN格式 {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
fprintf(flowSt_pin,"{\"up_flow\":\"%s\",\"down_flow\":\"%s\"}\n",RX_buf, TX_buf);
fflush(flowSt_pin); lseek(flowRx_fd, 0, SEEK_SET);
lseek(flowTx_fd, 0, SEEK_SET); sleep(2); //更改文件大小。保存向文件里写入的数据达到覆盖效果
ftruncate(flowSt_fd, 0);
} return 0;
}

linux 流量统计小程序的更多相关文章

  1. Linux C语言小程序

    Linux C语言小程序 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include & ...

  2. 采用pandas读取文件,进行自动化统计小程序

    自己完成的第二个自动化统计小程序,完成之后感觉:命名不够规范,造成可读性比较没那么好,幸好给自己很多地方都加了注释#coding:utf-8import os,sysimport reimport x ...

  3. 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起

    先瞎扯点别的.进入这个神圣的地方总需要些鞭策,阿西巴,我是被鞭策进来摆摊的程序猿.软件工程老师说,写程序,发博客,就来博客园.这是个号召力很强的口号.最近看网络营销 搜索引擎优化的书多一些,只能说王老 ...

  4. python--代码统计小程序

    有人说,大学生在校期间要码够10W行代码,也有人说,看的不是写代码的行数,而是修改代码的行数... 不管谁说,说的人都挺牛的 咳,首先给自己定个小目标吧,5W行代码!成天写代码,啥时候到5W呢?为了更 ...

  5. 词频统计小程序-WordCount.exe

    一. 背景 ​ 最近顶哥为了完成学历提升学业中的小作业,做了一个词频统计的.exe小程序.因为当时做的时候网上的比较少,因此顶哥决定把自己拙略的作品发出来给需要的人提供一种思路,希望各位看官不要dis ...

  6. linux 流量统计

    因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我截几 ...

  7. Linux中的小程序—— 进度条

    在说正事之前,首先科普一下在什么是回车什么是换行? 我们通常所说的回车就是从一行的末尾跳到另一行的开头,但事实上这却是由回车和换行两个动作所完成的,也就是键盘上<enter>所完成的工作. ...

  8. 对比学IT---路由器和linux流量统计的差别

    1. 路由器使用MQC来统计端口入出方向,特定特征的数据流. 显示policy 的统计信息 配置policy: #traffic classifier vlan5traffic operator an ...

  9. 【linux】——一个小程序

    利用工作之余为小伙伴写了份作业,关于进程间通信的.题目如下: 父进程从键盘上接受1000个数据,对其求和sum1,子进程对这1000个数平方和sum2,结果传给父进程,父进程将sum1+sum2后,打 ...

随机推荐

  1. CSS的引入方式和样式

    CSS的引入方式和样式 一.样式 行内样式 内接样式 外接样式(1.链接式 2.导入式) <!--行内样式--> <div> <p style="color: ...

  2. sql where条件子句

    where中可用的运算符: where 的执行 是从右到左: where的SQL优化:(where条件特别多的情况下,效果明显) 对于and,应该尽量把假的放到右边. 对于or,应该尽量把真的放到右边 ...

  3. Selenium:简单的尝试一下

    一.创建maven工程引入依赖 1)创建项目 创建一个简单的maven工程即可 这里我使用jar项目进行简单的演示 2)引入依赖 <dependencies> <dependency ...

  4. JS DOM 实例(5大常用实例)

    第1个实例:循环单击变色 <html lang="en"> <head> <meta charset="UTF-8"> &l ...

  5. java静态方法

    静态方法(全局方法)不能访问this(当前对象)它和类没有关系,会有逻辑错误,当调用静态方法的时候不需要创建对象 可以直接为boolean result = MyTest.isPrime();直接访问 ...

  6. 一个HTTP连接是包含两部分的,请求报文和响应报文这俩组合起来才是一次完整的HTTP请求,并不会单独显示请求报文或者响应报文

    一个HTTP连接是包含两部分的,请求报文和响应报文这俩组合起来才是一次完整的HTTP请求,并不会单独显示请求报文或者响应报文. 2.注意看,一次HTTP请求,是包括这两部分的

  7. UI_UIImagePickerController(读取图片)

    创建图片 #pragma mark - 创建 photoImageView - (void)createphotoImageView { self.photoImageView = [[UIImage ...

  8. 实现 jstl标签foreach 功能

    jsp 页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...

  9. h5缓存之数据库

    /*======================================================= 函数功能:保存日志到本地数据库 ========================== ...

  10. 升级Ubuntu18.04后遇到的坑

    升级过程:   直接do-release-update 就可以直接从16.04更新到18.04了. 中间会提升更新一些配置文件, 我大部分都选择了N. 然后就成功升级到18.04了, 显卡驱动什么的都 ...