【发布时间】:2019-05-07 18:13:07
【问题描述】:
使用 strace 比较两个不同二进制文件的输出,我无法确定实际写入的值是什么。
write(3, "g\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
write(4, "g\377\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
从第一个到第二个的区别似乎是\377\377到\7\0,但是这些使用的是什么编码?这些应该是十进制值,但我不知道如何转换它们来比较它们。
【问题讨论】:
-
你为什么不试试 strace 的作用呢?也就是说,它可能类似于 C 代码,我相信它是八进制的。
-
这是
octal符号,\377等于十六进制的 0xff 或二进制的 11111111。而unix.stackexchange.com 将是这个问题的更好论坛。 StackOverflow 用于编程问题,而 UNIX 和 Linux StackExchange 涵盖一般问题。 -
谢谢@tk421。我应该认为它是八进制的,因为字符是字节。