问:
我想在/proc/net/ip_conntrack文件下得到dport和bytes后面的数值,应该怎么做????
该文件内容格式如下:
(line1)tcp 6 0 CLOSE src= 192.168.0.3 dst=192.168.0.6 sport=32779 dport=80 packets=2 bytes=100 src=192.168.0.6 dst=192.168.0.3 sport=80 dport=32779 packets=2 bytes=84 [ASSURED] use=1
(line2)tcp 6 51 CLOSE_WAIT src=192.168.0.3 dst=192.168.0.7 sport=4777 dport=1123 packets=7 bytes=314 src=192.168.0.7 dst=192.168.0.3 sport=1123 dport=4777 packets=7 bytes=302 [ASSURED] use=1
(line3)tcp 6 112 SYN_SENT src=192.168.0.3 dst=192.168.0.8 sport=32785 dport=80 packets=3 bytes=180 [UNREPLIED] src=192.168.0.8 dst=192.168.0.3 sport=80 dport=32785 packets=0 bytes=0 use=1
答:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>int main()
{
FILE* fp = NULL
char cmd[512]
char dport[32]
int i=0
sprintf(cmd, "grep -o -E \"dport=[0-9]{1,}\" /proc/net/ip_conntrack | cut -d\"=\" -f2")
if ((fp = popen(cmd, "r")) != NULL)
{
while(!feof(fp)){
memset(dport,'\0',sizeof(dport))
fgets(dport, sizeof(dport), fp)
if(strlen(dport)>0) printf("dports is: %s", dport)
}
pclose(fp)
}
return0
}
PS:我试过了,可以,想找原文百度”关于从文件中读取特定值的问题“关键字,CSDN上那个是!
con=`cat profile|awk '{printf $0}' `profile是你的配置文件名,这个是把所有内容存到con中。如果要加分隔符号的话,在printf中加就行,不过要注意用双引号引起来
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程: #include#includevoid main(){ char a[100],b[100],c[100]int i=3,j=4,k=0/欢迎分享,转载请注明来源:内存溢出
评论列表(0条)