0

新しい接続された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);

ありがとうございました..

4

1 に答える 1

0

各行を1行ずつコピーしてbuff、既存のファイルから削除したい行と一致させることができます。一致しない場合は、一時ファイルにコピーします。eof() まで実行します。既存のファイルから削除したい行をコピーする必要はありません。

その後、一時ファイルの名前を以前と同じ名前に変更します。

于 2012-10-25T09:50:43.113 に答える