【问题标题】:What does "\b" mean in gdb string print output?gdb 字符串打印输出中的“\b”是什么意思?
【发布时间】:2013-04-17 05:47:38
【问题描述】:

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

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

foobar\341\204\004\b\357\373\377\277

\b 在这里是什么意思?

【问题讨论】:

    标签: c gdb


    【解决方案1】:

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

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

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

    \a(警报)在不改变活动位置的情况下产生声音或可见警报。

    \b(退格)将活动位置移动到当前行的前一个位置。如果 活动位置是在一行的初始位置,显示的行为 设备未指定。

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      \b 表示退格 ASCII 字符(其代码为 8 或八进制的\010)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 2011-09-10
        • 2013-02-26
        • 2015-12-01
        • 2011-02-05
        相关资源
        最近更新 更多