問題タブ [closedir]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - closedir () がコア ダンプを引き起こす
UNIXプラットフォームでCで書かれたコードに以下の行があります。closeir() 関数でコア ダンプが発生する理由を教えてください。パスで指定されたディレクトリを正常に開くことができました。
c - opendir()、readdir()、closedir()を使用してディレクトリツリーを効率的にトラバースする
Cルーチンopendir()、readdir()、closedir()は、ディレクトリ構造をトラバースする方法を提供します。ただし、readdir()によって返される各dirent構造体は、ディレクトリサブディレクトリに再帰する必要があるDIRへのポインタのセットを取得するための便利な方法を提供していないようです。
もちろん、ファイルの名前が表示されるので、その名前をディレクトリパスに追加してstat()とopendir()を実行するか、chdir()を使用してプロセスの現在の作業ディレクトリを変更してロールすることができます。 chdir( "..")を介して戻ります。
最初のアプローチの問題は、ディレクトリパスの長さが十分に長い場合、それを含む文字列をopendir()に渡すコストが、ディレクトリを開くコストを過大評価することです。もう少し理論的であれば、複雑さが線形時間を超えて増加する可能性があると言えます(ディレクトリツリー内の(相対的な)ファイル名の合計文字数)。
また、2番目のアプローチには問題があります。各プロセスには現在の作業ディレクトリが1つあるため、マルチスレッドアプリケーションでは1つを除くすべてのスレッドをブロックする必要があります。また、現在の作業ディレクトリが単なる便宜であるかどうかもわかりません(つまり、ファイルシステムクエリの前に相対パスが追加されます)。もしそうなら、このアプローチも非効率的です。
私はこれらの機能の代替を受け入れています。では、UNIXディレクトリツリーを効率的にトラバースするにはどうすればよいでしょうか(その下にあるファイルの合計文字数の線形時間)。
php - コンテンツをリストしていないディレクトリ内のすべての画像をリストする
私は以下を使用してディレクトリ内のすべてのjpg画像を一覧表示していますが、何らかの理由で機能していません。私の'と.sの一部が間違った場所にある可能性があり、少し混乱していると思います。 -S。
c - Ubuntu で Closedir() がコアをダンプする
ここにあるコードを使用して、ディレクトリが空かどうかを確認しました。ただし、closedir() は Ubuntu でコア ダンプを引き起こすようです。理由はありますか?
ディレクトリが存在します。Opendir はハンドルを返し、readdir はそのハンドルを使用してディレクトリにアクセスでき、関数は本来の処理を実行します。ただし、ディレクトリを閉じようとすると、プログラムがエラーでクラッシュします
現時点での私の回避策は、ディレクトリを開いたままにしておくことです. 実行され、suid 部分を実行して終了します。開けたままにしておくのはちょっと嫌…