問題タブ [posix-api]
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 - regexec 使用時のグループ化
のような入力文字列があります051916.000
。05
、19
、16
およびを分離したいと思い000
ます。私はregexec
C言語でこのように使用しようとしています。
しかし、これはうまくいかないようです。以下はGDBの出力です
Pythonで正規表現を使用しました。私はCの正規表現が初めてなので、どこが間違っているのかわかりません。正規表現が検証され、正しく一致します。
c - 名前付きセマフォを使用したデッドロック
共有メモリと名前付きセマフォを使用して最初の実行を試みて、アクセスを同期しています。
私のプログラムには3つのプロセスがありました.1つは親で、2つは子で、すべて同じ共有メモリを使用する必要があります。それらの間で同期するために、名前付きのsempahoreを使用しています。それらが共有するリソースは、array[0] - exit flag locationの場合、3 つの整数配列であり、親プロセスが終了するかどうかを判断するために、子プロセスが動作する前に読み取ります。 array[1]、array[2] - 親プロセスとの通信に使用され、各プロセスはメッセージを独自の配列セルに配置し、親プロセスはそれを読み取り、応答にACKメッセージを配置します。
コードの基本的なワークフローを取得しようとしています。必要なすべてのリソースを作成し、親を 3 秒間スリープさせてから、exit_procedure を開始します。
私の問題は、exit_procedureに到達すると、メインプロセスがsem_wait() 操作で永久にブロックされることです-明らかにデッドロックです。私は問題を理解しようとしていますが、それを特定することはできません。私は同期を処理するのが初めてです-このコードまで、私はスレッドのみを同期しました。
更新: POSIX メモリ マッピングを使用して切り替えましたが、同じデッドロックの問題が発生しました。process_api.h の関連するメソッドはロックを取得できず、永久にブロックされます。私は何が間違っているのか分かりません。助けてもらえますか?
私のコード:
メインファイル:
プロセス ハンドラ:
誰かが私が間違っていることを説明してもらえますか?
私はもう試した:
メインプロセスから sem_t ポインターを *sem_t **semaphore_p* としてprocesses_initメソッドに渡し、すべての子にセマフォへの実際のポインターを使用させます (子が COW メカニズムでポインターをコピーしたとしても、実際のアドレスを使用します ありがとう
プロセス ハンドラで sem_t ポインタを extern として宣言する
各子プロセスを ( main_loopメソッドで) sem_open("/shsemaphore", O_RDWR)を使用して名前付きセマフォの「コピー」を開く
これらのどれも機能しませんでした。私はここで頭がおかしくなりそうです、助けてください:(
ios - iOS での配列の Swift メタル並列和計算
@Kametrixom の回答に基づいて、配列内の合計を並列計算するためのテスト アプリケーションをいくつか作成しました。
私のテストアプリケーションは次のようになります。
そして、私は次のようなシェーダーを持っています:
驚いたことに、関数sumParallel4
は最速であり、そうあるべきではないと思っていました。sumParralel
関数とを呼び出すとsumParallel3
、関数の順序を変更しても、最初の関数は常に遅くなることに気付き ました。(したがって、最初に sumParralel を呼び出すと遅くなり、sumParallel3 を呼び出すと遅くなります。)
どうしてこれなの?sumParallel3 が sumParallel よりも速くないのはなぜですか? CPU で計算されているのに、なぜ sumParallel4 が最速なのですか?
GPU 関数を で更新するにはどうすればよいposix_memalign
ですか? GPUとCPUの間でメモリを共有するため、高速に動作する必要があることはわかっていますが、ウィッチ配列をこの方法(データまたは結果)に割り当てる必要があること、およびデータが関数で渡されるパラメーターである場合、posix_memalignでデータを割り当てる方法がわからない?
c++ - C++ を使用して、現在実行中のプロセスで X ディスプレイ変数を取得する
いくつかのプロセスがあり、それぞれが 3 つのモニターを制御しています。現在、現在実行中のプロセスの名前を取得するために、プログラムでPOSIX オペレーティング システム APIgethostname()
リンクを使用しています。
また、スクリーン名を取得するなど、プロセスが実行されている X ディスプレイを特定できるようにしたいと考えていますが、できればディスプレイ変数 DISPLAY=0:0
またはDISAPLY=0:1
. POSIX API を検索しようとしましたが、私の問題に役立つものは何も見つからなかったようです。何か案は?
linux - Linux で POSIX API が呼び出したシステムコールを確認するにはどうすればよいですか?
Linux で POSIX API を実装するために 1 つ以上のシステムコールを呼び出す可能性があることは知っていますが、特定の POSIX APImemcpy
やその他の POSIX API に対してどのシステムコールが呼び出されるかを調べる方法はありますか?