当我在包含不可打印字符的缓冲区p buf
上发出命令buf
时,当gdb尝试打印不可打印的字符时,我通常会得到八进制输出。
但是,这次我收到了这样的字符串。
foobar\341\204\004\b\357\373\377\277
\b
在这里意味着什么?
答案 0 :(得分:5)
\b
是退格符(\010
,如果您使用的是ASCII)。
以下是C标准定义的其余转义序列(5.2.2字符显示语义):
2个字母转义序列,表示执行中的非图形字符 字符集用于在显示设备上产生如下操作:
\a
(警报)在不更改活动位置的情况下生成声音或可见警报。
\b
(退格键)将活动位置移动到当前行的上一个位置。如果 活动位置位于一条线的初始位置,即显示的行为 设备未指定。
\f
(换页)将活动位置移动到下一个开头的初始位置 逻辑页面。
\n
(换行)将活动位置移动到下一行的初始位置。
\r
(回车)将活动位置移动到当前行的初始位置。
\t
(水平制表符)将活动位置移动到下一个水平制表位置 在当前的路线上。如果活动位置处于或超过最后定义的水平位置 制表位置,显示设备的行为未指定。
\v
(垂直制表符)将活动位置移动到下一个垂直位置的初始位置 制表位置。如果活动位置处于或超过最后定义的垂直位置 制表位置,显示设备的行为未指定。
答案 1 :(得分:2)
\b
表示退格ASCII字符(其代码为8或八进制\010
)