[Armadillo:08721] msgsndでEINVALになることがある

Yamamoto email@hidden
2013年 4月 9日 (火) 10:02:17 JST


Yamamotoです。

Armadillo-460用にC言語で開発しています。

処理中でプロセンス間の通信用にメッセージキューを使用しようとしているのですが、時
々msgsndで-1エラーでerrno=EINVALになってしまうことがあります。

確認用の単独動作の確認もしているのですが、上手く動作する時はまったくエラー発生せ
ず。
エラーが発生すると以降、ずっとエラーになります。

以下、処理抜粋です。

slKeyはファイルからftokでipcキー生成により生成しています。

ulMsgId = msgget( slKey, 0666|IPC_CREAT ) );
//ulSize=74
//tpMsgBuff=char配列のデータ
if ( msgsnd( ulMsgId, &tpMsgBuff, ulSize, 0 ) == -1 )
{
  printf("errno=%d <0x%X | %ld> %lu", errno, ulMsgId, ulSize);
}

ulMsgId, ulSizeとも不審な値ではなかったです。

何かご存知の方居られましたら、調べるところとか教えていただけないでしょうか?





armadillo メーリングリストの案内