p buf
印刷不可能な文字を含むバッファに対してコマンドを発行するbuf
と、gdb が印刷不可能な文字を印刷しようとすると、通常は 8 進数の出力が得られます。
しかし、今回はこんな紐を手に入れました。
foobar\341\204\004\b\357\373\377\277
ここでとは\b
どういう意味ですか?
\b
はバックスペース文字です ( \010
ASCII を使用している場合)。
C 標準 (5.2.2 文字表示セマンティクス) で定義されている残りのエスケープ シーケンスを次に示します。
2 実行文字セットの非グラフィック文字を表すアルファベットのエスケープ シーケンスは、次のようにディスプレイ デバイスでアクションを生成することを目的としています。
\a
(アラート) アクティブな位置を変更せずに、可聴または可視のアラートを生成します。
\b
(バックスペース) アクティブな位置を現在の行の前の位置に移動します。アクティブな位置が行の最初の位置にある場合、表示デバイスの動作は指定されていません。
\f
(フォーム フィード) アクティブな位置を次の論理ページの先頭の初期位置に移動します。
\n
(改行) アクティブな位置を次の行の最初の位置に移動します。
\r
(改行) アクティブな位置を現在の行の最初の位置に移動します。
\t
(水平タブ) アクティブな位置を現在の行の次の水平タブ位置に移動します。アクティブな位置が、最後に定義された水平集計位置またはそれを過ぎた場合、表示デバイスの動作は指定されていません。
\v
(垂直タブ) アクティブな位置を次の垂直タブ位置の初期位置に移動します。アクティブな位置が、最後に定義された垂直集計位置またはそれを過ぎた場合、表示デバイスの動作は指定されていません。
は\b
、バックスペース ASCII 文字 (コードは 8 または\010
8 進数)を示します。