ターミナルのセットアップ
これは、バッファリングの問題よりも、端末のセットアップ方法に関係があると考えています。出力をチェックしstty -a | grep intr、あなたが持っている必要があるintr = ^C;場合は、出力ラインにCtrl- Cで有効になっていますtty/ pty。stty intr ^C有効になっていない場合は、を使用して有効にすることができます。.tcshrcまたは.loginに行を追加して(または最初に変更する行を削除してください!)。
失敗Ctrl- C、あなたはまた、送信しようとすることができSIGQUITてCtrl- \。これが機能しない場合は、再度stty -a | grep quit正しく設定されているかどうかを確認してください。
ターミナルエミュレーターのセットアップ
また、(あなたがいずれかを使用している場合)端末エミュレータの設定を確認し、それが(多分コピーか何かのために)このレベルで設定したショートカットがあることをすることができ、Ctrl- C届かないptyレベル。ショートカットは、デスクトップ環境またはウィンドウシステムのどこかに設定することもできます。
(あなたは端末エミュレータを使用している場合は、Linux上で良いテストは、Linuxコンソールに切り替えることですCtrl- - Alt、F1そこにログインして、同じ現象が発生した場合を参照します)。表示されない場合は、Windowsシステムまたはターミナルエミュレータに問題があることを示しています。
peterphがpty示唆するように、データがデバイスから読み取られる間の遅延の問題である可能性があります。このような場合は、あなたが実際にデータを表示するために分を待つ必要がない場合でも、その後、確かに端末エミュレータをバッファリングしている途中、あまりにも多くのデータを(またはあなたのPCは非常に遅いです)。答えは、ターミナルエミュレーターの設定でそのバッファーサイズを減らすか、別のバッファーサイズを使用する方法を見つけることです。
追加のヒント
追加する価値のあるもの。バイナリファイルcatを誤っcatて使用した場合、通常は暴走状態になります。これのその他の効果は、ターミナル設定を台無しにすることです(バイナリデータがたまたまさまざまなターミナルエスケープコードと一致する場合)。tputがインストールされている場合(通常はデフォルトです)、次のコマンドを使用して再起動する必要がなくなります。
tput reset