C/C++Linux各NICのpackage送受信を実現


#include 
#include 
#include 
#include 

using namespace std;

int main(){

	int BUF_SIZE = 1024;
	string pkg_path = "/proc/net/dev";
	FILE *fp = fopen(pkg_path.c_str(), "r");
	if (!fp) {
		printf("open file failed");
		return false;
	}
	char* buf = (char*) malloc(BUF_SIZE);
	fgets(buf, BUF_SIZE, fp);	//            
	fgets(buf, BUF_SIZE, fp);
	int pkg_recv_t = 0;
	int pkg_send_t = 0;
	int pkg_err_t = 0;

	while(!feof(fp)){
		memset(buf, 0, BUF_SIZE);
		fgets(buf, BUF_SIZE, fp);
		int pkg_recv = 0;
		int pkg_send = 0;
		int pkg_err = 0;
		sscanf(buf,"%*s %*d%d%*d%*d%*d%*d%*d%d %*d%d%*d%*d%*d%*d%*d%*d
", &pkg_recv, &pkg_err, &pkg_send); pkg_recv_t += pkg_recv; pkg_send_t += pkg_send; pkg_err_t += pkg_err; } cout<