カスタムスクリプト言語用のLinuxシェルを作成していますが、ユーザーが1つのステートメントを入力する各フォローアップ行の前に「...」を出力します。最初の行には「>>>」が出力されます。 、入力を待ちます。次に例を示します。
>>> void f() {
... "this is a test"
... }
>>>
で行をfgets
読んでいて、完全に読んだ後、「...」を出力し、。への別の呼び出しを使用して繰り返しますfgets
。これは、適度に高速なインタラクティブ入力で問題なく機能します。しかし、改行を含むコードをターミナルに貼り付けると、次のようになります。
>>> void f() {
"this is a test"
}
... ... >>>
fflush
「...」は、に印刷した後に呼び出しを送信しても、印刷が遅すぎますstdout
。この仕事をするために何か特別なことをする必要があるかどうか誰かが知っていますか?