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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
複数ファイルの同時読み込みの方法と脱初心者向け参考書
C言語・C++・C#
-
C言語でフォルダを開く
C言語・C++・C#
-
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
-
4
ファイル出力の場所を指定
C言語・C++・C#
-
5
ファイル内のデータを1行削除する方法
C言語・C++・C#
-
6
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
7
特定の文字列が一致する行から、文字列を抽出する方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1行がやたら長いテキストをバッ...
-
VBでファイル分割の方法
-
fopenでディレクトリ内の全ファ...
-
awkスクリプトでダブルクォーテ...
-
ListBoxのデータを高速でファイ...
-
ExcelをCSV書き出す場合のシー...
-
C言語で特定の行を抽出する方法...
-
window.open でのファイル指定方法
-
パスから最後のディレクトリだ...
-
fgets で値が取得できない
-
ReadLineでの読み出し行を指定する
-
CSVデータの編集の際の重複チェ...
-
ファイル出力の改行コードをLFに
-
ifstream を利用した1行分のテ...
-
vba dir の相対パス
-
配列の中に重複文字列があるか...
-
オープンしたファイルで行の連結
-
perlで、後ろの行を読んで、前...
-
VBAのFileFormatで悩んでいるこ...
-
全角と半角文字が混在している...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fopenでディレクトリ内の全ファ...
-
unixでのファイルロックの方法...
-
BASICからC言語に変換
-
ファイルがオープンできない
-
file_exists関数について
-
ファイルロックの解除方法
-
[perl] perlで書き込み中に、PC...
-
bashシェルについて
-
1行がやたら長いテキストをバッ...
-
【PHP】アクセス過多でファ...
-
CGI のモジュールをつかってフ...
-
flockについて
-
Cookieが保存できない。
-
ファイルディスクリプタとは?
-
HTMLの中にCGIファイルリンク
-
CGI二重起動防止ロック処理
-
Pythonでegrep機能をつかいたい
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
おすすめ情報