問題タブ [fstat]

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.

0 投票する
2 に答える
1931 参照

c - fopen() の後に stat() を使用して TOCTOU 問題を回避しますか?

タイトルはすべてを物語っています: Time of Check to Time of Use (TOCTOU) 競合状態を回避するためstat() に afterを使用できますか? fopen()

いくつかの詳細:

ファイルの読み取りのみを行う C プログラムを作成していますが、ディレクトリの読み取りを要求されたときに適切にエラーが発生する必要があります。現時点では、open()(with ) を使用してエラーを生成し、次のようにO_RDWRをチェックerrnoします。EISDIR

上記の解決策の問題は、このプログラムがファイルを読み取るだけでよいことです。そのため、でファイルを開くとO_RDWR、ユーザーが読み取り権限を持っているが書き込み権限を持っていない場合、誤って権限エラーが発生する可能性があります。

TOCTOU 競合状態を回避するために次のことを行うことは可能ですか?

それが不可能な場合、TOCTOU のバグや間違った許可エラーを防ぐ別の解決策はありますか?

0 投票する
1 に答える
405 参照

python - Pythonのos.statとos.fstatのinode番号の違い

Windows マシンでファイルの inode を取得したかったので、最初にos.stat('./filename.txt').st_ino REPL で試してみたところ、得られた出力は0L.

他のいくつかのファイルに対して同じことを試みたところ、同じ出力が得られました。

次に、試し os.fstat(open("filename.txt", "r").fileno()).st_inoてみたところ、出力に長整数が得られました。異なるファイルでは、整数が変更されていました。したがって、os.fstatはWindowsで機能しましたが、os.statは機能しなかったと思います。誰かがこの動作の理由と、両者のその他の違いを説明できますか?