putty を使用して C プログラムを実行しています (理由は聞かないでください)。問題なく動作していますが、特定の関数を実行すると、末尾に "PuTTy" という文字列が表示されます。これはあまり影響を与えていないようですが、なぜこれが起こっているのか、これがどのようなエラーを示しているのかを誰かが知っているかどうか知りたいです.
注: Linux ターミナルでコードを実行すると、エラーはまったく発生しません。
これは、プログラムが Control-E 文字を発行することによって引き起こされる PuTTY の問題です。PuTTY FAQから:
A.7.12 バイナリ ファイルを cat すると、コマンド ラインに 'PuTTYPuTTYPuTTY' が表示されます。
そんなことしないで。
これは設計された動作です。PuTTY がリモート サーバーから文字 Control-E を受信すると、それを自分自身を識別するための要求として解釈し、文字列 'PuTTY' を、その文字列がキーボードから入力されたかのように送り返します。Control-E は、応答を処理する準備ができているプログラムによってのみ送信されます。ターミナルにバイナリ ファイルを書き込むと、多くの Control-E 文字が出力され、この動作が発生する可能性があります。やらないでください。悪い計画だ。
影響を軽減するために、回答文字列を空に設定できます (セクション 4.3.7を参照)。しかし、バイナリ ファイルを端末に書き込むと、他のさまざまな不快な動作が発生する可能性が高いため、これは小さな解決策にすぎません。
関数は Control-E などのバイナリ文字を出力していますか?