答案1
你的命令没有任何问题htop
用问号替换控制字符:
(((unsigned char)data_c[j]) >= 32 ? ((unsigned char)data_c[j]) : '?')
(值小于 32 的字符是控制字符)。
答案2
htop 进程管理器显示$'\t'
为?
排序命令,因为它将 解释\t
为制表符,这不是有效的排序选项。
在排序命令中,\t
用作分隔符来指定命令排序所依据的字段。但是,在 htop 中,它不是有效的分隔符,因此显示为 ?在排序列中。
您可以尝试使用-k选项指定排序字段,使用-t选项指定分隔符。例如,htop -u -p -k 2,2 -t ' '
使用空格作为分隔符按第二个字段排序。