linux c读取文件中特定格式的内容

linux c读取文件中特定格式的内容,第1张

给你一个相近的问题+答案供您参考:

问:

我想在/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/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11900720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存