5
A
答えて
5
共有するすべてのデータは、共有セグメントにある必要があります。これは、ポインタと文字列の両方が共用メモリ内になければならないことを意味する。
ポインタを含むものを共有するのは面倒な作業です。これは、mmapが所与のマッピングが必要なアドレスに終わることを保証しないためです。
2つの方法でこれを行うこともできます。まず、あなたはmmapであなたの運を試すことができ、動的リンカーがあなたの好みのアドレスに何かをロードしないことを願っています。
第2の方法は、相対ポインタを使用することです。ポインタの内部では、文字列へのポインタを格納する代わりに、ポインタのアドレスと文字列のアドレスの差を格納します。そのような:あなたが他のプロセスからの文字列にアクセスしたいときは、逆の操作を行う
char **keys= mmap(NULL, ...);
char *keydata= (char*) keys + npointers * sizeof(char*);
strcpy(keydata, firstring);
keys[0]= (char*) (keydata - (char*) &keys[0]);
keydata+= strlen(firststring)+1;
:
char **keys= mmap(NULL, ...);
char *str= (char*) (&keys[0]) + (ptrdiff_t) keys[0];
それは少し面倒ですが、それは何のmmapリターンに関係なく動作します。
関連する問題
- 1. </p> <p>私は共有している場合、リンクを添付Facebookなどの.NET
- 2. 私は<code>std::valarray<double></code>の共有ポインタを初期化しようとしていたvalarray
- 3. どのように共有メモリは異なるメモリアドレスを使用してデータを共有しますか?
- 4. Hololens共有:クライアントHololens回転と私は</p> <p>
- 5. 共有は私がのWhatsAppするコンテンツを共有していたときに、
- 6. は、私はアンドロイドで上場アプリを構築しようとしている、と私は、彼らが</p> <p>例1を望んでいた場合、別のデバイスが相互にデータを共有したい、異なるデバイスから
- 7. アンドロイド、共有ライブラリの依存関係、私は私が私の「共有ライブラリ」はlibswscale.so使用している</li> <li>ネイティブコードと対話するためにJNIを使用していますアンドロイド</li> <li>上のLibav/ffmpegのを使用しているアプリケーションを実装しています
- 8. のFacebook SDKシェアはシェアが、私はこのようなFBの共有]ダイアログでのFacebookに共有してい
- 9. 新しいパスワードが有効な場合、私はちょうど</p> <p>新しいものに古い変更が、チェックしませ意味、
- 10. アンドロイド:私はGson</p> <p>を使用して、共有好みにカスタムモデルの私のArrayListを保存しています引数なし
- 11. jupiterノートブックを起動するたびにブラウザをエクスポートしなければならないのはなぜですか?私はちょうどターミナルで</p> <p>jupyterノート</p> <p>コマンドを使用している場合
- 12. :共有私はcronジョブでこのコードを使用していますが、これはオーバーラップのためにあまりにも多くのCPUリソースを使用している</p> <p>重なることなくホスティングでの作業:共有Laravelキューを実行するために、どのように
- 13. UIActivityViewControllerは...</p> <p>どのように私は、同じ情報のテキストをカスタマイズしたいが、私はFacebook上でそれを共有していたとき、私はTwitterのハッシュタグや@usernameスキームを使用したくない
- 14. が...私の場合は</p> <p>を私はCの初心者だし、私は右のポインタ/メモリの事をやろうとしているスタック
- 15. イオン2つのイベント、私はイオン-角度</p> <p>から<code>Publish</code>と<code>Subscribe</code>を使用しようとしている。しかし、私はどんなデータでもエラーを受信していない
- 16. は、私はこれらの画像を転送したい私はwatchOS 2.</p> <p>を使用して、アップルウォッチアプリにiOSアプリから10+写真を共有するための適切なアプローチを把握しようとしている
- 17. 私は私のページここ</p> <p>にFacebookの共有ボタンを追加しようとしている
- 18. 私はこれを行うことができますか? mysqlの値として(2 <a <8,1,0)なら?
- 19. が、私はdomainX</em><em>でホームサーバーを持つクロスオリジンリソース共有チェック
- 20. フラッシュ共有は私が</p> <p>ファイルブラウザからではなく、ファイルパスでそれを取得、つまり、私はローカル</p> <p>を実行するFlashアプリケーションを実行している場合は保管場所が時折
- 21. スキップと私はMySQLのDBから<code>Products</code>ページ付けしようとしていますが、私は<code>Skip()</code>か<code>Take()</code>を使用している場合、それはこの</p> <pre><code>[] </code></pre> <p>しかし、延長のような私のWeb APIレスポンスとして空のJSON配列を返しますMySQLのEntityFrameworkCore
- 22. 私たちはFacebookの中にリンクを共有する場合</p> <p>、それは自動的にそのページからサムネイル、タイトル、説明などをフェッチPHPやJavaScriptでFacebookの共有リンクに似た機能を作成したいFacebookの
- 23. C++:オブジェクトへの共有ポインタではなく、共有オブジェクトを作成する
- 24. Facebookのシェアは、私は我々がロードバランサは、問題はFacebookの共有が起こっているので、メインサーバへのすべての要求を転送する設定している</p> <p>アプリケーションにソーシャル共有機能を実装し
- 25. PHP Javascriptを:私は共有ボタンのグーグル+</p> <p>スクリプトを使用してWebのURLを共有するGoogle +
- 26. いつもインデックス0から配列を始めるべきですか?他にも立ち上げなければならない場合、どうすればいいですか?</p> <pre><code>for (i=min ; i<=max ; i++) b[i]=i; </code></pre> <p>しかし、私のコンパイラはエラーを示しています:私は私のCコードで書くべきかの問題については
- 27. は、これは私です</p> <pre><code>'[errors]' => [], </code></pre> <p>..私は、ユーザーテーブルを持っていると私は私が<code>$user</code>をデバッグする場合でも、それはnullを返し<code>save()</code>保存したいときにエラーがないCakePhp3
- 28. は私がのIntelliJ IDEAを使用してgithubのプロジェクトを共有しようとしていますが、私はそれが警告メッセージ以下与える<strong>レビュー</strong>をクリックしたときに、私は次のエラー
- 29. こんにちは、私は私のコンテンツを共有することができていますが、私は共有をクリックすると、それはシンボル</p> <p><a href="http://i.stack.imgur.com/kLUgr.png" rel="nofollow">Image shows that menuinflator has share button</a></p> <p>ないmenuinflatorから来て私のアプリ で次行っている私のアプリ
- 30. Gitは <p></p> ... <code>master</code>が壊れていたとして、私はちょうど、別のブランチで私のサーバー上で<code>master</code>枝を交換しようとしている、と私はエラーを解決していないようでした