"\ b"在gdb字符串打印输出中的含义是什么?

mer*_*011 5 c gdb

当我p bufbuf包含不可打印字符的缓冲区上发出命令时,当gdb尝试打印不可打印的字符时,我通常会得到八进制输出.

但是,这次我得到了这样的字符串.

foobar\341\204\004\b\357\373\377\277
Run Code Online (Sandbox Code Playgroud)

\b意味着什么?

NPE*_*NPE 5

\b是退格字符(\010如果您使用的是ASCII).

以下是C标准定义的其余转义序列(5.2.2字符显示语义):

2表示执行字符集中的非图形字符的字母转义序列旨在在显示设备上产生如下操作:

\a (警报)在不更改活动位置的情况下生成声音或可见警报.

\b(退格键)将活动位置移动到当前行的上一个位置.如果活动位置位于线的初始位置,则显示设备的行为未指定.

\f (换页)将活动位置移动到下一个逻辑页面开头的初始位置.

\n (新行)将活动位置移动到下一行的初始位置.

\r (回车)将活动位置移动到当前行的初始位置.

\t(水平制表符)将活动位置移动到当前行的下一个水平制表位置.如果活动位置处于或超过最后定义的水平制表位置,则显示设备的行为未指定.

\v(垂直选项卡)将活动位置移动到下一个垂直制表位置的初始位置.如果活动位置处于或超过最后定义的垂直制表位置,则显示设备的行为未指定.