源代码例如以下:

//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. explicit的用法

    http://blog.csdn.net/chollima/article/details/3486230

  2. 使用Modernizr检测支持CSS3

    使用Modernizr检测支持CSS3 如果支持某个属性,会增加一个class,名字就是该属性: 不支持,名字是no-某属性 还提供了一个全局Modernizr对象,使用如下: <script ...

  3. Java String内存释放

    Java String内存释放 这是一个坑,Java对于String对象,不进行内存的回收: 处理大数据量的时候,少用String. 与JDK有关系:jdk1.6环境下,内存只占用10M,jdk1.8 ...

  4. ACdream 1127(Base Station-树状数组-2个约束条件)

    Base Station Time Limit: 20000/10000MS (Java/Others)Memory Limit: 512000/256000KB (Java/Others) Subm ...

  5. Oracle数据库经常使用经典查询

    本文收集了经常使用的数据库查询.须要数据库管理员权限: 1. 查询暂时表空间使用情况 SELECT TABLESPACE_NAME, TABLESPACE_SIZE / 1024 / 1024 TAB ...

  6. cmd 下命令

    tasklist 查看当前进程 taskkill /? 查看taskkill 的帮助信息 详情 cmd /?  查看cmd详情 color /? 查看颜色详情  比如 color 2 md d:\ji ...

  7. 输入password登录到主界面,录入学生编号,排序后输出

    n 题目:输入password登录到主界面,录入学生编号,排序后输出 n 1.  语言和环境 A.实现语言 C语言 B.环境要求 VC++ 6.0 n 2.  要求 请编写一个C语言程序.将若干学生编 ...

  8. dexposed框架Android在线热修复

    移动client应用相对于Webapp的最大一个问题每次出现bug,不能像web一样在server就完毕修复,不须要发版本号.紧急或者有安全漏洞的问题, 假设是Webapp你可能最多花个1,2个小时紧 ...

  9. @JsonIgnore忽略属性,返回的json中不包含字段

    @JsonIgnore的使用: 实体类中加@JsonIgnore注解 package com.baidu.entity; import com.fasterxml.jackson.annotation ...

  10. Andoid CustomCircleProgress 半圆

    package com.play.playgame.view; import android.content.Context; import android.graphics.Canvas; impo ...