2016-05-26 22 views
1

私は外部の純粋なデータプラグイン/を書いたが、APIはC であるので、私はC++でそれのほとんどを書きたいの代わりに(それは右、2016年ですか?)。CとC++の間のLinux共有メモリは実現可能ですか?

だから、私はC++でのメインコアを書いて、pluggnだけがコアプログラムから/に情報を送信/受信を持っていると考えていました。

まず、私はソケットに関するものの、実装が容易になるだろう

、しかし その後私はLinuxで共有メモリーについてお読みください。

しかし、CとC++の間でこれを実行することが可能ですか?

+4

トピックを外してください:Cは2016年のためC++に置き換える必要はありません。壊れていない場合は修正しないでください。 – owacoder

+0

はい、可能です。 –

+0

マイクロコントローラでさえ、最近ではC++が使われていますが、Cははっきり時代遅れになっています – fdsfdsfdsfds

答えて

2

C呼び出し規約は、C++から直接使用して提供することができます。あなた自身をだましてはいけません。あなたはCとC + +の主要なコアで任意の "プロキシ"プラグインを必要としません - あなたはC + +で互換性のあるC APIを公開してそのプラグインを書くことができます。

とにかく、あなたはC++内から共有メモリにアクセスするためにPOSIX/Linuxシステムの機能を使用することができます。これは実際には、C++で直接使用できる通常のC関数呼び出しで、「アダプタ」などを記述することなく使用できます。

3

Linuxプロセス間のメモリ共有はOSレベルで行われ、プログラムが書き込まれた元の言語とはまったく関係ありません。どちらもシステムコールを使用して共有メモリにアクセスします。 「生の」モードで使用する限り、どの言語が使用されても問題ありません。あなたが構造化されたデータ(すなわち、構造体やクラスではなく、「生の」バイト配列)のためのメモリを使用しようとすると

例外があります。その後、解決する必要のある言語固有のさまざまな癖(パディングルール、vtableポインタなど)があります。

関連する問題