問題タブ [interprocess]

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

c - プロセスがshm_open()を使用する場合、Linuxカーネルはどのようにメモリポインタを割り当てますか?

Linux 2.6を使用していますが、奇妙な問題があります。プロセスごとに1つずつ、3つの異なる共有メモリセグメントを取得する必要がある3つの並行プロセス(同じプロセスからフォークされた)があります。各プロセスはこのコードを実行します(「メッセージ」タイプはユーザー定義であることに注意してください)

少し説明させてください。すべてのプロセスに、メッセージを含む共有メモリゾーンを割り当ててもらいたいのです。別のプロセス(メッセージ受信者)が同じshmにアクセスできるようにするために、shmファイルの名前を「message」からメッセージポインターにちなんで名付けられた文字列に変更します(これは、メッセージを受信するプロセスが既にポインターを知っているためです)。

しかし、プログラムを実行するときに、shm_openで取得したfdをmmapするときにすべてのプロセスが受け取ったポインターを(デバッグ目的で)出力しようとしましたが、すべてのプロセスが同じポインターを持っていることに気付きました。どうしてそれは可能ですか?他のプロセスが最初のプロセスの後でセグメントの名前を変更する前にshm_open()を実行したのではないかと思ったので、プロセス共有ミューテックスを使用してこれらのコード行をアトミック操作にしようとしましたが、問題は解決しません。

どんな種類の助けや提案も本当にありがたいです。

0 投票する
3 に答える
1254 参照

c# - C#-C プロセス間通信

さて、私はCで書かれた別のプログラムを実行するプロセスを起動するC#で書かれたプログラムを持っています。これで、CプログラムからstdoutをリダイレクトしてC#側でそれを取得することをすでに解決しました。 . しかし、C# プログラムが C プログラムに終了を伝える方法が必要です。私が最初に考えたのは、C プログラムはもともと conio.h から kbhit をテストすることで制御されていたので、stdin をリダイレクトして何かをストリームライトするだけで、キー ヒットを検出できるということでしたが、それは機能しませんでした (kbhit を推測しています)。リダイレクトには向いていません)、私は周りを検索しましたが、多くの人が PeekConsoleInput() を提案し続けました。そこで、kbhit の代わりに PeekConsoleInput を使用するように c プログラムを変更し、標準入力をリダイレクトしましたが、送信したものはまだ検出されませんでした。たとえば、Cで...

そしてC#コードからのスニペット...

C プログラムはそれ自体で実行されますが、C# プログラムが実行されると、「ヒット検出」に達することはありません。また、s.WriteLine("Q") を数秒遅らせて、タイミングの問題であり、それでも機能しないかどうかを確認しました。

理想的には、C プログラムを単独で実行できるようにするか、C# プログラムで実行できるようにしたかったのですが、C プログラムを単独で実行できなくても、それほど悪くはありません。

私が試みたものの1つは、C#プログラムにファイルを書き込むだけで、Cプログラムが正常に開くまでfopenでポーリングすることでしたが、このCプログラムの主な目的の1つは、データをディスクに書き込むことです非常に高速で、ディスクをポーリングすると速度が低下するのではないかと心配しています。

ちょっとうまくいったもう1つのことは、プロセスを閉じることでした。しかし、Cプログラムは閉じる前にいくつかのものをクリーンアップする必要があるため、面倒です(シャットダウンする前にCプログラムにコードを実行させる方法がない限り、それができるかどうかはわかりません)。

これを実現する他の方法は、ソケット、パイプなどですが、1 ビットの信号だけでは大変な作業のように思えます。また、それを行う方法について私が見つけたすべての例は、2 つの C# プログラムを通信させる方法、または 2 つの C プログラムを通信させる方法であり、2 つの異なる言語で 2 つの異なるプログラムを使用することはありませんでした。

まず、この stdin リダイレクトを機能させる方法はありますか? そうでない場合、Cプロセスに終了する必要があることを伝える最も簡単な解決策は何ですか?

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

c++ - named_semaphore の例を後押ししますか?

boost::interprocess:: named_semaphoreの使用方法を示す良い例を見つけることができませんでした (Boost Web サイトでも)。

私はinterprocess_semaphoreについて何かを見ることができましたが、それらはかなり異なっているようで、一方に示されていることが他方にも当てはまるかどうかはわかりません。

そのような例/tutorials/documentationへのリンクを誰か教えてもらえますか?

ありがとうございました。

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

.net - MS Word や Visual Studio などの他のアプリケーションからクリップボード データにアクセスして解析するにはどうすればよいですか?

サード パーティ製アプリの開発者は、クリップボード データ以外にアクセスすることを必ずしも望んでいないことを理解しています。それでも、基になるクリップボードの内容を取得して、自分にとって役立つものを抽出したいとします。どうすればいいですか?これには、他のプロセスのメモリをいじることが含まれますか? または、dotnet でリフレクションを使用してクリップボード オブジェクトからプロパティを検出して抽出しようとしていますか? または、これにどのようにアプローチしますか?

ETA: わかりました。抽象度が低い方のために、例を考えてみましょう。Visual Studio のフォーム デザイナーで、いくつかのウィジェットを選択してコピーします。ここで、クリップボードを解析して、コピーしたばかりのウィジェットの名前、場所、サイズを見つけたいと思います (ビジュアル スタジオなどのプラグインを書きたくないので、特にクリップボードから情報を取得したい)。Visual Studio プロセスの 2 つのインスタンス間でウィジェット (名前、場所、その他のプロパティを含む) をコピーして貼り付けることができるという理由だけで、これが理論的に可能であることはわかっています。

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

c++ - boostnamed_semaphoreを使用したコードのバグ

名前付きセマフォを使用してアクセスを管理し、一部のデータを共有メモリに保持します。

ただし、示された行で次のコンパイル時エラーが発生します。

これは私のシステムです:

MacOS X 10.6

i686-apple-darwin10-g ++-4.2.1(GCC)4.2.1(Apple Inc.ビルド5664)

ブースト1.44

ありがとうございました!

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

c# - BHOを使用せずにプログラムでIEウィンドウの現在のURLを決定する

誰かが、BHOなしでプログラムでIEの現在のURLを決定する方法の方向に私を導くことができますか?

この種の機能を実現するために私が考えることができた唯一の方法は、URLではなくウィンドウのタイトルを見ることですが、これはハッキーのようです。

一方、URLを格納するテキストボックスには、テキストを添付して読み取るハンドルがあると思います。私はこの仮定で正しいですか?

任意のガイダンスをいただければ幸いです。

PS:Firefoxでも機能する例/ガイダンスを提供できる場合はボーナスポイント。

編集:わかりました。それで、私が見る必要があるのはGetWindowTextとメッセージWM_GETTEXTであることが、さらなる調査で明らかになり始めています。私がこれを得るならば、すべてがうまくいくと答えを投稿します。

0 投票する
3 に答える
6951 参照

terminology - ハードウェア セマフォとは

ハードウェアセマフォだとソフトウェアからどうやって使えるの?実際にHWに実装されているソフトウェアAPIがあるということですか?

いくつかのハードウェアに接続するためにファームウェアを実装しているのでお願いします。ハードウェアとファームウェアの間で多くの情報交換が行われます。私はハードウェア セマフォについて頭上で話しましたが、それに関する詳細情報を知りたかっただけです。これに関するいくつかの文献が役立ちます

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

c++ - C ++/Qtで効率的なソケット通信を行うためのデータ形式

JVMの状態をリアルタイムで追跡するプロファイラーを実装したいと思います。JVMの状態の更新を受信する必要があるため、このタスクにどのデータ形式が適切かわかりません。

XMLは素晴らしいと思いましたが、変更を加えるたびにXMLデータ全体を送信するのは非常に偽物のようです。

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

c++ - C++ アプリケーション: 受け入れられた TCP 接続をあるプロセスから別のプロセスに渡すことは可能ですか?

だから私は疑問に思います-受け入れられたTCP接続(WindowsまたはOSのようなUnix上)をあるプロセスから別のプロセスに渡すことは可能ですか? ここでのポイントは、接続を渡すことです。プロキシ アプリのようにデータではありません。

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

c++ - 受け入れられた TCP 接続のプロセス間交換のためのクロスプラットフォーム ライブラリはありますか?

ブーストのようなものはありますか?または、確立されたTCP接続をあるプロセスから別のプロセスに渡すための他のWindows、Mac、Linuxライブラリはありますか?だから私は実際にそれが可能であることさえ知りませんでしたが、そうです! したがって、私は自分のサーバーでそのような機能を使用したいと思います!) そして、それを行うのに役立つクロスプラットフォームのライブラリを見たいと思っています. そのような図書館はありますか?