2011-12-08 14 views
1

私は、1.txt、2.txtという名前のディレクトリにファイルを持っています。私はこれらのファイルを次のように読んでいます:ディレクトリから1つずつファイルを読む

int counter=0; 

unsigned char buffer[212]={0}; 

while(1) 

{ 

sprintf(buffer,"path/%d.txt",++counter); 

FILE *fp = fopen(buffer,"rb"); 

// some operations.. 

fclose(fp); 

} 

私は800txt以上のファイルを(1.txt - 800.txt)のフォルダに持っています。しかし、約500のファイルが読み取られると、 すなわち1.txtから500.txtになります。このファイルは終了し、次のファイルは読み込まれません。

誰でもこの問題を修正できますか?あらかじめThanx。

+0

ようこそStackOverflow、あなたのコード部分を挿入するには '{}'ツールボックスボタンを使用してください。 –

+0

いつも同じファイルに存在しますか?処理するはずの次のファイルについて特別なことはありますか? – Dason

+0

@Dason他のディレクトリも読んでみましたが、この問題は解決しません。私はまた、 "int"カウンタの代わりにlong/unsigned intなどを試しました。しかし、7つの余分なファイルしか読み込めませんでした。 – Aizen

答えて

1

多分あなたはファイルディスクリプタを実行しているかもしれません(最大プロセス数は500プロセスあたりです)。 readdir関数を使用してみてください。

+0

彼は次のファイルを開く前に各ファイルを閉じているので、私が知っている限り、これは誤りではないはずです。 – ghik

+0

ありがとうございました。 @ baliman:提案のためのthnx。 – Aizen

関連する問題