C言語に関する質問です。main関数をそれぞれ使用する2つのプログラムがあります。この2つのプログラム間で何とかしてデータのやり取りを行いたいのですが良い方法はないでしょうか。

HDDのような遅いデバイスを使用するのではなく、出来れば動画を転送できるくらいのパフォーマンスがあるのが良いです。
OSは、LinuxとWINDOWSの両方で使用できることが希望です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/02 14:45:19
  • 終了:--

回答(6件)

id:masahikokimoto No.1

masahikokimoto回答回数241ベストアンサー獲得回数102005/06/02 14:59:34

ポイント20pt

http://www.mars.dti.ne.jp/~torao/program/socket/

Hey! Java Programming! //C �����\�P�b�g//

2つのプロセス間での通信方法についての質問だと推測しますが、正しいでしょうか。

プロセス間通信は言語だけでなくOSによって実装されている方法が異なります。LinuxとWindowsの両方で同じように使える方法でしたら、socketを使ってTCP/IPで通信してしまうのが一番汎用性があるのではないかと思います。

一応URLを挙げますが、おそらくそれぞれのOSのネットワークプログラミングの本を買うのが正確だと思います。

id:zaurus04

プロセス間通信というものをはじめて知りました。ネットワークプログラミングの本を買ってみます。アドバイスありがとうございました。

2005/06/02 21:31:50
id:turinavi No.2

turinavi回答回数30ベストアンサー獲得回数02005/06/02 15:08:25

ポイント20pt

http://www.turi-navi.com/

釣り情報サイト つりなび

↑URLはダミーです。


通常UNIXですと2つのプロセスがデータを共有しようとした場合、共有メモリを使用しますが、Windowsでも動作することを考えるとTCP/IPかUDPで通信するのが最も簡単じゃないでしょうか?

id:zaurus04

情報ありがとうございます。プロセス間通信以外にも共有メモリを使う方法もあるのですね。アドバイスありがとうございました。

2005/06/02 21:33:33
id:typista No.3

typista回答回数359ベストアンサー獲得回数72005/06/02 15:13:45

ポイント20pt

プロセス間でデータの受け渡しをするには、Win32ではファイルマッピング(ディスクは使用しません)という手法があるようです。

Linuxのほうは、このURLの「プロセス制御」が参考になるかと。

system()やexec()はWinのCでも使用できるはずなので、

こちらを参考にすれば、比較的可搬性の高いコーディングが可能かと思います。

いずれにしても、#ifdefは必要かと思いますし、プロセス間の状態(遷移)を確認したり制御したりというのは設計にコツ(苦労?)があり、そこそこの難易度になります。


http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-6.html

The Linux Kernel: プロセス間通信の仕組み

プロセス間通信の仕組みについて。

id:zaurus04

詳細な情報をありがとうございます。非常に助かります。教えていただいたURLを見て見ましたが奥が深そうです。しかしがんばって理解したいと思います。アドバイスありがとうございました。

2005/06/02 21:36:37
id:fruitage No.4

fruitage回答回数77ベストアンサー獲得回数02005/06/02 15:19:57

ポイント20pt

URLはダミーです。


パイプを使うしかないのでは?

id:zaurus04

プロセス間通信の実現方法の1つにパイプを使用する方法があるとのこと検討したいと思います。アドバイスありがとうございました。

2005/06/02 21:37:48
id:karla No.5

karla回答回数130ベストアンサー獲得回数42005/06/02 20:38:49

ポイント20pt

2つのプログラムが別々のマシンの場合はソケットでの通信で行うのが一般的だと思います。

コードはURLのサンプルを参考にして下さい。

転送速度は回線速度に依存することになると思います。

一般的なLANだと100Mbpsでしょうか。


他には共有メモリを使う手もありますが、LinuxとWindowsでは実装が異なるため両方で同じプログラムを使うことはできません。

http://www.geocities.jp/osaru3220/DMA.htm

IDEハードディスクの転送モード

HDDの転送速度です。

参考にどぞ。

id:zaurus04

アドバイスありがとうございます。

参考なります。

2005/06/02 21:40:26
id:butaman75 No.6

butaman75回答回数280ベストアンサー獲得回数02005/06/02 21:06:05

ポイント20pt

http://e-words.jp/w/E5908DE5898DE4BB98E3818DE38391E382A4E38397.h...

名前付きパイプとは 【named pipe】 ─ 意味・解説 : IT用語辞典 e-Words

http://www.ncad.co.jp/~komata/c-kouza12.htm

�R���s���[�^�[�FC�����u���FFIFO�i���O�t���p�C�v�j�ɂ‚���

パイプを使ってはどうでしょうか。

id:zaurus04

共有メモリが名前つきパイプであることが分かりました。貴重な情報ありがとうございました。

2005/06/02 21:46:39

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません