
UNIX上の/home/info/user/log内にある*.logファイルを一つずつfopenで開いて一行ずつ読み込み、用が済んだらfcloseで閉じていくようなプログラムを作りたいのですが、どうすれば良いのでしょうか?
最初はls -l /home/info/user/log/*.logをリダイレクトしたファイルリストを作り、それを読み込ませてfopen……という流れを考えていたのですが、対象となるファイルが万単位に登る為実現不可でした。
一行ずつ読み込ませる部分は既に出来ているので、fopen/fcloseに絞ってお教え下さい。
No.1ベストアンサー
- 回答日時:
お書きの方法でも別に万のファイルがあっても実現可能だと思いますが、リダイレクト先の一時ファイルを置く場所が足りないのでしょうか?
普通は、opendirして、
(readdirでディレクトリの内容を読み出してファイル名を調べfopen→処理→fclose) を繰り返します。
lsリダイレクト実行を大量のファイルがあるディレクトリに対して行うとCPUかメモリを圧迫してしまうようで、いつまでたっても帰ってきませんでした。
opendir→readdirでで出来ました。ありがとうございます。
No.3
- 回答日時:
ANo.1さんのおっしゃっている通りになるとおもいますよ。
ANo.1さんの回答には、参考URLが無かったので、載せておきます。
notnotさん、ごめんなさい。
参考URL:http://www.ncad.co.jp/~komata/c-kouza14.htm
No.2
- 回答日時:
fopen したいファイルの名前は系統立っていますか?
ファイル名が
file001,file002...file10000 のようにシーケンシャル
なネーミングになっているもしくはそのような
ネーミングにすることが可能ならば
カウンタを文字として扱い、fopen→処理→fcloseのループ内で
ファイル名を作成してしまうという方法がありますよ。
そうすればファイル名一覧をテーブルとして持ったりしなくても
よいのでプログラムは簡潔になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1行がやたら長いテキストをバッ...
-
エクセルVBA コードが同じでも...
-
fgets で値が取得できない
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
Edge スクレイピング
-
ExcelをCSV書き出す場合のシー...
-
2つのCSVファイルをマッチング
-
Perl エラーログを指定の場所...
-
無料配布の郵便番号自動入力cgi...
-
MATLABのm-fileについて
-
ファイルの存在の有無を確かめ...
-
Perl cgiの文字化けを直したい ...
-
巨大なテキストの最終行を取得...
-
Fortranで1行飛ばして読み込む方法
-
VB6でのデータの編集(ファイル...
-
csvファイルの横方向への改行に...
-
エクセルVBAで素数だけを出力す...
-
複数のCSVファイルを一つのCSV...
-
requireで同じライブラリを複数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fopenでディレクトリ内の全ファ...
-
1行がやたら長いテキストをバッ...
-
CGI二重起動防止ロック処理
-
perl の printでのファイルへの...
-
unixでのファイルロックの方法...
-
file_exists関数について
-
Cookieが保存できない。
-
配列をオプションメニューに書...
-
file操作について
-
ファイルロックの解除方法
-
FC2サーバーでのCGI設置方法に...
-
ファイル名の切捨てとリンクの...
-
printscreenについて。
-
VBでファイル分割の方法
-
perlをデスクトップのショート...
-
ワードファイルをHTMLに変換す...
-
画像アップロード機能を追加し...
-
flockについて
-
ファイルの結合
-
DBの環境変数について
おすすめ情報