> あぁ、たしかに call out ですね。/dev/cuaU0 だと open()がブロックされな > くなりました。 > > read()から帰ってこなくなり、ttyin でブロックされています。
相手のデバイスがコマンド(BARH\r\n)を読めていないか、 コマンド/レスポンスがちぐはぐになっているような気が します。相手側のデータを読み出す方法があるとよいの ですが、それが非現実的でないとしたら、select() を使 わすに、 open(); // LF 終端の canonincal 入力 sleep(); // 1, 2 秒とか長めにして write(); // コマンド read(); を試して、それでもためなら、open() でデリミタ(LF)で なく 1 バイト単位の入力を指定して、バイト単位で読ん で見ると何かわかるかもしれません。 はるか昔の経験ですが、write() で文字列を一息に送る とダメで、1 文字づつ、ゆっくり送ると認識してくれた なんてこともあります。思い付くことを片端から試して 見るといったことも必要かもしれません。 平林 浩一