問題タブ [nftw]
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 - nftw BSD では違うのですか?
nftw
次のコードを使用して、ディレクトリ ツリー内のすべての .c ファイルを取得しようとしています。
Linux と Solaris では動作しますが、PC-BSD では単にファイルを取得しないために失敗します。私は何が欠けていますか?
c - nftw を使用するときにグローバル変数を使用しないようにする方法
nftw を使用して、C のディレクトリ構造をトラバースしたいと考えています。
ただし、私がやりたいことを考えると、グローバル変数を使用する方法がわかりません。
(n)ftw を使用する教科書の例はすべて、ファイル名を出力するようなことを伴います。代わりに、パス名とファイルのチェックサムを取得して、それらをデータ構造に配置したいと考えています。しかし、nftw に渡すことができるものに制限があるため、これを行う良い方法がわかりません。
私が使用しているソリューションには、グローバル変数が含まれています。nftw によって呼び出される関数は、その変数にアクセスして、必要なデータを追加できます。
グローバル変数を使用せずにこれを行う合理的な方法はありますか?
これは、フォローアップとしてこれを投稿することを誰かが提案した、stackoverflow に関する以前の投稿の交換です。
c - nftwスレッドセーフ
C / C ++でのnftw()のスレッドセーフな実装はありますか?ドキュメントにはそれが書かれています
「nftw()関数はスレッドセーフである必要はありません。」
マルチスレッドアプリケーションのディレクトリ構造をウォークスルーする再帰削除関数にnftwを使用します。
c - nftw 未定義の値で tflag を渡す
このように nftw を使用してディレクトリをトラバースしながら、
nftw は、ディレクトリに遭遇したときに rm 関数の tflag パラメータに値 5 を渡しています。ftw.h ヘッダーは、tflag パラメーターの 4 つの値 (0 ~ 3) を持つ列挙型のみを指定します。このうち、FTW_D または 1 がディレクトリの適切な値です。fpath 値は、すべてのインスタンスで正しいようです。
だから私の質問はこれです。tflag に 1 ではなく 5 を渡すのはなぜですか? また、tflag の 5 はどういう意味ですか?
編集:
値は実際にはFTW_DP(ディレクトリ、すべてのサブディレクトリがアクセスされました)であり、これは私が気付かなかった環境依存部分で以下に定義されていました。
flags - nftw フラグの指定方法
これは私のnftw
関数です。フラグFTW_DEPTH
とを指定する前に正しく動作しFTW_PHYS
ます:
また、訪問を次のように定義しました。
しかし、コンパイル後にエラーが発生します:
'FTW_DEPTH' が宣言されていません (この関数で最初に使用)
c - C: nftw を使用して検索の最大深度を指定する
C で、nftw が検索するベース ディレクトリからの最大深度を指定する方法はありますか? たとえば、dir
検索したいディレクトリにサブサブディレクトリがあるとしますが、 nftw だけを検索し、 、またはその下を検索したくsubdir
ないとします。sub-subdir