質問: linux/cで数千のファイルを高速に開く 私は各フォルダと画像ファイルをスキャンするSDCARDスキャナをやっています。 I am using C code & using opendir, readdir, fopen APIs to enumerate directory and file open. i have dirent, DIR variables. 問題はfopen()がディレクターのトラバースに25秒かかりますが、時間がかかりすぎる(10000ファイルでは300秒)。 私は、ディレクトリハンドルまたは同様のものを使用してファイルを開くことができるように、ハンドル、dir_inoまたは同様のものを使用して、ファイルのオープン操作をスピードアップできる任意のAPIはありますか? So far i have looked n tried to use dirent->dir_ino, DIR* but no luck. 私はfopenよりも時間がかからない低レベルAPIを求めています。 編集 ftsとftw apisは役に立ちますか?彼らはディレクトリをトラバースするだけに関連しているようです...他のハックや方法?
回答: 唯一の「低レベル」機能は `open` です ``` int fd = open(dirent->d_name, O_RDONLY); ``` しかし、 `fopen` はずっと遅くすべきではありません。