2016-12-24 19 views
0

単純なメッセージをmqueueにエコーしようとしましたが、端末はエコーコマンドに関するエラーを常に返します。

例:
POSIXメッセージキューにエコーすることができません

int fd_queue; 
char queue_name[] = "/my_queue"; 
char message[4097]; 
struct mq_attr queue_parameters; 
queue_parameters.mq_maxmsg = 5; 
queue_parameters.mq_msgsize = 4096; 
fd_queue = mq_open(queue_name,O_RDWR|O_CREAT|O_EXCL,0664, &queue_parameters); 

:私は私のCプログラムでは、以下の方法をmqueueをを作成

total 0 
29823 -rw-rw-r-- 1 domen domen 80 dec 24 14:18 my_queue 

:フォルダは/ dev/mqueueをリターンの

/dev/mqueue$ echo domen >> my_queue 
bash: echo: write error: Invalid argument 

コマンドls -li問題は何ですか、私はキューに書き込むことができませんターミナルコマンド?

答えて

1

基本的な問題は、シェルがmq_open()でメッセージキューを開けず、echoがメッセージを書き込むためにmq_send()を使用しないということです。それらは必要なツールです。メッセージキューに書き込むためにはmqechoコマンドを、メッセージキューから読むにはmqreadコマンドを書く必要があります。

関連する問題