Windowsには、Posixメッセージキューに相当するものは存在するのでしょうか?

Linuxで稼動中のシステムを、Windowsに移植する作業をしている時に、生じた疑問です。可能ならばサンプルプログラムの紹介をお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/06/29 14:32:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ma-kanoh No.3

回答回数155ベストアンサー獲得回数4

ポイント20pt

どれにしようかな。。。

メッセージキューに対応するOS機能は見かけ上たくさんあります。

使い勝手は代わり映えありませんが。

http://www7a.biglobe.ne.jp/~tsuneoka/win32sub/3.html

が昔のやつで。

http://www.kumei.ne.jp/c_lang/sdk3/sdk_247.htm

名前つきパイプだそうです。これがmsg系に近いかな?

http://www.vbstation.net/spec/S4.htm

メールスロットだそうです。

id:lichten

どれもクライアント-サーバー間の通信で、キューを使える機能を見つけられませんでした。

Windowsでメッセージ"キュー"を使うには、自作するしかないのでしょうか。

2006/06/27 13:15:58

その他の回答4件)

id:kurukuru-neko No.1

回答回数1844ベストアンサー獲得回数155

ポイント20pt

=============================================

何種類か方法があります。

MailSlotが一番単純です。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...


MSDN JAPAN

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

一般的な資料ですが

SDCの会員限定ですが(無料)

Windows NTからSunへの移行ガイドがあります。

http://sdc.sun.co.jp/solaris/migration/ntmigration/index.html

id:kurukuru-neko No.2

回答回数1844ベストアンサー獲得回数155

ポイント20pt

イタリア語でですが。

サンプルソース有り

http://ftp.dis.uniroma1.it/pub/quaglia/scambiomessaggi.pdf

ロシア語ですが

サンプロソース有り

http://cs.pub.ro/~so/Laboratoare/lab05/ipc2.pdf

猫にでもわかるシリーズ

http://www.kumei.ne.jp/c_lang/sdk3/sdk_250.htm

http://www.kumei.ne.jp/c_lang/index_sdk3.html

id:lichten

メールスロットはネットワーク通信のためのもので、信頼性がなく、Windowsの設定によっては2回受信される「使えない」機能だと思っていたのですが、プロセス間通信にも使われるのですね。再考してみます……

質問が悪かったと思うのですが、Posixメッセージキューに相当するWindowsのサンプルソースだと嬉しいです。もしご存知でしたらお願いします。

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

2006/06/27 13:06:13
id:ma-kanoh No.3

回答回数155ベストアンサー獲得回数4ここでベストアンサー

ポイント20pt

どれにしようかな。。。

メッセージキューに対応するOS機能は見かけ上たくさんあります。

使い勝手は代わり映えありませんが。

http://www7a.biglobe.ne.jp/~tsuneoka/win32sub/3.html

が昔のやつで。

http://www.kumei.ne.jp/c_lang/sdk3/sdk_247.htm

名前つきパイプだそうです。これがmsg系に近いかな?

http://www.vbstation.net/spec/S4.htm

メールスロットだそうです。

id:lichten

どれもクライアント-サーバー間の通信で、キューを使える機能を見つけられませんでした。

Windowsでメッセージ"キュー"を使うには、自作するしかないのでしょうか。

2006/06/27 13:15:58
id:kurukuru-neko No.4

回答回数1844ベストアンサー獲得回数155

ポイント20pt

>メールスロットはネットワーク通信のためのもので、

>信頼性がなく、

>Windowsの設定によっては2回受信される「使えない」

>機能だと思っていたのですが、

>プロセス間通信にも使われるのですね。

ネットワーク上で使えば確かにそうなります。

ローカルで試しに実験してみると面白いですよ。


>Posixメッセージキュー

単に動作させていなら WIndows用

http://www.sixnine.net/cygwin/cygwin-doc/

を使えばどうですか。

ソースには、エミュレーションライブラリーも

あります。

 http://www.jaist.ac.jp/~fujieda/cygwin/

 http://cygwin-je.sourceforge.jp/cygwin_je/


id:lichten

>ローカルで試しに実験してみると面白いですよ。

なるほど…… MSDNで確認しつつ、検討します。

Posixメッセージキューは、Cygwinで実装されたのでしょうか? もし実装された時のリリースノート、もしくはAPIリファレンスへのリンクがありましたら、お願いします。

2006/06/27 21:24:40
id:kurukuru-neko No.5

回答回数1844ベストアンサー獲得回数155

ポイント20pt

>Posixメッセージキュー

Posixは曖昧なのでメッセージキューは2種類

実装があります。

http://www.unix.org/

mq_xxxx : Message RealTime Extention

msgxxx: SYSTEM V IPC MESSAGE

mq_xxxxであればCygwinにはありません。

xsi SYSTEM V IPC(msgxxx)です。

>Cygwinで実装されたのでしょうか

CygWin用ヘッダー上あります。(SYSTEM V IPC)

ドキュメントはどうもメンテされていないようです。

http://www.cygwin.com/cygwin-ug-net/using-cygserver.html

http://www.sixnine.net/cygwin/translation/cygwin-ug-net/using-cy...

ほかの方法もありました。

===========================================

WindowsのPOSIXサブシステムを使う

Microsoftが提供する Service for Unix

(無料、ユーザ登録のみ)を利用する方法です。

http://www.microsoft.com/technet/interopmigration/unix/sfu/porta...

http://www.microsoft.com/technet/interopmigration/unix/sfu/pthre...

http://www.interopsystems.com/tools/default.aspx

http://www.forest.impress.co.jp/article/2004/01/16/servicesforun...

http://www.microsoft.com/technet/interopmigration/unix/sfu/defau...


===========================================

NuTCRACKER/MKS Toolkit を使う方法

http://www.nextcom.co.jp/products/manufacture/mks/product.htm

http://www.nextcom.co.jp/products/manufacture/mks/files/MKS_Tool...

http://www.nextcom.co.jp/products/manufacture/mks/product/comman...

id:lichten

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

しかし後から検索する人のために、私の考えを書いておきます。Posixは曖昧ではないし、SystemV メッセージキューは、Posix メッセージキューとは違うものです。

2006/06/29 14:29:50
  • id:kurukuru-neko

    >Posixは曖昧ではないし、

    FIPS 151-2 (Withdrawn )
    http://www.itl.nist.gov/div897/ctg/suites/CVR.pdf

    http://standards.ieee.org/regauth/posix/posix2.html

    各メーカもPosix認定は取ってはいるが
    個人的に互換性でかなり痛い目にあっている事から
    Posixは曖昧と思っている。

    >SystemV メッセージキューは、
    >Posix メッセージキューとは違うものです。

    それはその通りなのですが。
    無視してれば誤解もないですが
    xsi といわれれても、SYSTEM Vユーザ
    からはそう見えない。

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

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

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

回答リクエストを送信したユーザーはいません