我有一个程序可以检测新连接的ip并将它们记录在一个文本文件中......例如
Myconnectedip.txt
New Connection from IP: 192.168.5.20
New Connection from IP: 192.168.5.30
现在我的程序检测到ip 192.168.5.30已断开连接。它将更新文本文件并删除该行并更新我的文本文件。
New Connection from IP: 192.168.5.30
现在,当我打开文本文件时,我将看到的唯一一行是
New Connection from IP: 192.168.5.20
如何删除文本文件中的行字符串?
这是我怎么做的..
char buff[20];
File *fp
fp = fopen("/tmp/Myconnectedip.txt", w+);
while ( fgets( buff, sizeof(buff), fp ) != NULL ) {
if ( strstr( buff, "Connection Closed from IP: 192.168.5.20" ) != NULL ) {
//When found how can i remove that line and update my textfile?.
} else {
// nothing to do here..
}
}
close(fp);
谢谢..
答案 0 :(得分:0)
您可以像往常一样将每一行逐个复制到buff
,然后与要从现有文件中删除的行匹配。如果不匹配,则将其复制到一些临时文件。直到eof()。
您只需从现有文件中复制要删除的行即可。
之后只需重命名与之前名称相同的临时文件。