重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんにちは。いつもお世話になっております。

C言語で、テキストファイルの「意図した場所」に文章を挿入することは可能でしょうか。
例えば、以下の内容のテキストファイル(file.txt)があったとして、

13:30:12.722533 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:35.722640 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:45.722816 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:55.722903 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:59.723006 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:31:01.723110 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96

このテキストファイル内に、

13:30:43.722729 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96

上のような文章を時間軸上に入れたい時は、

13:30:35.722640 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:45.722816 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96

上の2文の間に挿入して、

13:30:12.722533 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:35.722640 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:43.722729 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:45.722816 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:55.722903 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:30:59.723006 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96
13:31:01.723110 IP 10.1.4.12.ssh > 10.1.4.99.55703: tcp 96

となるようにしたいと考えています。
このような事は可能でしょうか。良い方法をご存知であれば是非ご教授頂きたく思います。
どうぞよろしくお願いします。

A 回答 (1件)

一般的には、ファイルの途中の部分を挿入・削除する方法は用意されていません。


OSによってはそういう命令が用意されているかも知れませんが、
C言語標準にはありません。

一般的な方法としては、

(1)元のファイルの内容を読み込み、
(2)別のファイルとして書き出し、挿入したい所は挿入し、
(3)書き出しが終了したら、元のファイルを削除し、
(4)新しいファイルの名前をもとのファイルの名前に変更する。

となります。
(ファイルが短くて、内容をメモリ上にすべて保存できる場合は、
単に読み出ししてから上書きをするという方法でもかまいません)

以下も参照ください。
http://www.kouno.jp/home/c_faq/c19.html#14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!