ctrl+s と ctrl+q について疑問、ターミナル出力でビデオを停止するのはなぜですか?

ctrl+s と ctrl+q について疑問、ターミナル出力でビデオを停止するのはなぜですか?

多くの人がCtrl + sは、プログラムではなくターミナル出力のみを停止/一時停止すると言いました。しかし、今日はターミナルで映画を開きました。

mplayer mymovie.mkv

映画の停止を押した後に映画 の再生を開始し、押した後にctrl+S再開(マウスホイールを使う)ctrl+qctrl + s ctrlを使用してxmmsとffplayも試しました。 +q

ffplay file.mp3 # The video stop,the terminal output stop, the audio continue
xmms file.mp3   # The audio continue

ベストアンサー1

TTYのみを停止します。ただし、TTYで実行されているアプリケーションに伝播する副作用があります。

Ctrlデフォルトでは、+ を実行すると、STTY はプログラムが接続されているファイル記述子からのデータの読み取りを停止します。このファイル記述子は基本的にバッファ付きのパイプなので、あまり書かれていないプログラムは引き続き機能します。短期間にTTYが読み取らない間にバッファがいっぱいになると、ここに書き込もうとするすべてのアプリケーションがブロックされ、中断されます。

の詳細はわかりませんが、ffplayこれが何であるか疑われます。一種の進行状況バーまたはステータスを端末にレンダリングすると、そのバッファが非常に迅速に入力される可能性があります
。 TTYに書き込むスレッドのみをブロックできます。したがって、ビデオを処理するスレッドもTTYに書き込むスレッドであるか、他のスレッドが必要な場合は続行できます。 TTYに書き込んでいるスレッドが中断されます。

おすすめ記事