問題タブ [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.

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

c - regexec 使用時のグループ化

のような入力文字列があります051916.000051916およびを分離したいと思い000ます。私はregexecC言語でこのように使用しようとしています。

しかし、これはうまくいかないようです。以下はGDBの出力です

Pythonで正規表現を使用しました。私はCの正規表現が初めてなので、どこが間違っているのかわかりません。正規表現が検証され、正しく一致します。

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

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 の関連するメソッドはロックを取得できず、永久にブロックされます。私は何が間違っているのか分かりません。助けてもらえますか?

私のコード:

メインファイル:

プロセス ハンドラ:

誰かが私が間違っていることを説明してもらえますか?

私はもう試した:

  1. メインプロセスから sem_t ポインターを *sem_t **semaphore_p* としてprocesses_initメソッドに渡し、すべての子にセマフォへの実際のポインターを使用させます (子が COW メカニズムでポインターをコピーしたとしても、実際のアドレスを使用します ありがとう

  2. プロセス ハンドラで sem_t ポインタを extern として宣言する

  3. 各子プロセスを ( main_loopメソッドで) sem_open("/shsemaphore", O_RDWR)を使用して名前付きセマフォの「コピー」を開く

これらのどれも機能しませんでした。私はここで頭がおかしくなりそうです、助けてください:(

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

ios - iOS での配列の Swift メタル並列和計算

@Kametrixom の回答に基づいて、配列内の合計を並列計算するためのテスト アプリケーションをいくつか作成しました。

私のテストアプリケーションは次のようになります。

そして、私は次のようなシェーダーを持っています:

驚いたことに、関数sumParallel4は最速であり、そうあるべきではないと思っていました。sumParralel関数とを呼び出すとsumParallel3、関数の順序を変更しても、最初の関数は常に遅くなることに気付き ました。(したがって、最初に sumParralel を呼び出すと遅くなり、sumParallel3 を呼び出すと遅くなります。)

どうしてこれなの?sumParallel3 が sumParallel よりも速くないのはなぜですか? CPU で計算されているのに、なぜ sumParallel4 が最速なのですか?


GPU 関数を で更新するにはどうすればよいposix_memalignですか? GPUとCPUの間でメモリを共有するため、高速に動作する必要があることはわかっていますが、ウィッチ配列をこの方法(データまたは結果)に割り当てる必要があること、およびデータが関数で渡されるパラメーターである場合、posix_memalignでデータを割り当てる方法がわからない?

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

c++ - C++ を使用して、現在実行中のプロセスで X ディスプレイ変数を取得する

いくつかのプロセスがあり、それぞれが 3 つのモニターを制御しています。現在、現在実行中のプロセスの名前を取得するために、プログラムでPOSIX オペレーティング システム APIgethostname() リンクを使用しています。

また、スクリーン名を取得するなど、プロセスが実行されている X ディスプレイを特定できるようにしたいと考えていますが、できればディスプレイ変数 DISPLAY=0:0またはDISAPLY=0:1. POSIX API を検索しようとしましたが、私の問題に役立つものは何も見つからなかったようです。何か案は?

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

linux - Linux で POSIX API が呼び出したシステムコールを確認するにはどうすればよいですか?

Linux で POSIX API を実装するために 1 つ以上のシステムコールを呼び出す可能性があることは知っていますが、特定の POSIX APImemcpyやその他の POSIX API に対してどのシステムコールが呼び出されるかを調べる方法はありますか?