系统调用read的缓冲区使用的地址格式是什么?

系统调用read的缓冲区使用的地址格式是什么?

我正在使用 strace,并且出现以下行:

读(3,"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\3 \2\0\0\0\0\0@\0\0\0\0\0\00P\265\31\0\0\0\0\0\0\0\0\0@\0008 \0\n\0@\0G\0F\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\@\0\0\0 \0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\ 0\10\0\0\0\0\0\0"..., 832) = 832

第二个参数的格式是什么?那些 0、@ 和 \ 是什么?

我使用的是 Debian,采用 Intel i5 CPU x86_64。

答案1

该字符串使用 C 语法进行格式化。不可打印的字符使用八进制表示形式显示:空字节显示为\0,开头的 ELF 文件魔术显示为\177ELF。输出显示调用read完成后作为第二个参数给出的指针所指向的内容。= 832最后显示返回值。

相关内容