HP-UX General
1758043 メンバー
2012 オンライン
108867 解決策
新規ポスト

疑似デバイスでデータ抜け

 
藤原昭宏
頻繁なビジター

疑似デバイスでデータ抜け

お世話になります。

 

現在、疑似デバイスを使用しして2プロセス間でデータのやりとりを行っていますが、

データ抜けが発生しており困っております。

 

<環境>

 HPUX11.31 rx2800i4

 

<状況>

 疑似デバイスを作成し、2つのプロセスそれぞれでOPEN

 プロセスA側からは、固定長(改行付)のデータを連続でwrite

 プロセスB側では、改行までをread後、1秒waitしてから続きよりread

 

上記を行うと、プロセスAではすべてのwriteが正常終了しているのに対し、

プロセスBではすべてのデータをreadできておらずデータ抜けしています。

 

デバイスに対してはプロセスAB両方ともOPEN時にソフトフロー(ixon/ixoff)を

設定しましたが現象は変わりませんでした。

 

以下、デバイスに対してioctlにて設定した内容です。

 

c_cflag = B9600 | CS8 | CREAD | CLOCAL

c_iflag |= IXON | IXOFF

c_lflag = 0

c_oflag = 0

c_cc[VMIN] = 1

c_cc[VTIME] = 1

 

データ抜けしないようにするためにはどのようにすればよいのか、

適切な方法をご教示いただけないでしょうか。

 

以上、よろしくお願いいたします。