問題タブ [std-filesystem]

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 投票する
0 に答える
473 参照

c++ - std::filesystem とマルチスレッドを使用したファイルの検索

std::filesystem (std::filesystem::recursive_directory_iterator を使用した再帰検索) を使用して、システム上の名前でファイルを検索するプログラムを作成しました。Linux でルート ("/") ディレクトリから開始した場合、メイン スレッドを 1 つだけ使用し、実行時間は約 1 秒で、正常に動作します。問題: 複数のスレッドを使用してこのプログラムを実行しようとすると、Aborted (コア ダンプ) が発生し、ファイル システム エラー: recursive directory iterator cannot open directory: Not a directory が発生します。関数を実行したい

同時に8つのスレッドで、ただし異なるパラメーターを使用します(パスパラメーターは別のものになります)。この方法でマルチスレッドを実装しようとしました。システム上の既存のすべてのファイルの数を計算し、この数をスレッドの数で割り、各スレッドエントリディレクトリを指定して検索を開始します。また、SearchFile (sf) というファイルを操作するための独自のクラスもあります。以下にリストされているコード:

最初に1つのスレッドの方法(必要に応じて機能します):

私が使用するSearchFileのメソッド:

main.cpp

私の問題を解決する良い方法ではないかもしれませんが、私は初心者です。

0 投票する
0 に答える
174 参照

c++ - Mingw バグ?: ファイルが存在する場合、std::filesystem::copy がファイル システム エラーで失敗し、overwrite_existing への copy_option が定義されている場合でも

MINGW v. 8.0
-- C コンパイラの識別は GNU 10.2.0 です
-- CXX コンパイラの識別は GNU 10.2.0 です
-- C コンパイラの動作を確認します: P:/MSYS2/mingw64/bin/gcc.exe
-- を確認します動作する C コンパイラ: P:/MSYS2/mingw64/bin/gcc.exe - 動作します

実行しようとしています:

次の出力が得られます。

msvc の場合:

CMake の実行: P:\MSYS2\mingw64\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:[***]\test_fs

誰かがこれも再現できますか?