strace 输出,系统调用参数

问题描述 投票:0回答:1

我是 Linux 内部的新手 - read 系统调用后的不同整数值意味着什么? 我见过 read(0, read(5, read(6, read(12 .

)

它们是文件描述符吗?

3342  read(6, "\n# This file controls the state of SELinux on the system.\n# SELI"..., 4096) = 548
3342  read(6, "", 4096)                 = 0
3342  read(6, "privsep_preauth=sshd_net_t\n", 4096) = 27
3342  read(6, "", 4096)                 = 0
3342  read(6, "system_u:system_r:sshd_t:s0-s0:c0.c1023\0", 4095) = 40
3342  read(4, "\0\0\5\344\n\248\\\371\240\212\20j\204,\272\253-\332\326\351\303\0\0\0\361curve25519-sha256,curve25519-sha256@li"..., 8192) = 1512
3341  read(6, "\0\0\0a", 4)             = 4
3342  read(5,  <unfinished ...>
3341  read(6, "x\0\0\0\0\0\0\0\35chacha20-    [email protected]\0\0\0\n<implicit>\0\0\0\4none\0\0\0\21"..., 97) = 97
3342  <... read resumed>"\0\0\0\1", 4)  = 4
3342  read(5, "y", 1)                   = 1
linux-kernel system-calls strace
1个回答
0
投票

是的。 read() 的第一个参数是文件描述符。解释 strace 的最佳方式是将其称为 man 2 所需的调用。例如:

read(2) 系统调用 手动read(2)

姓名 read - 从文件描述符中读取

图书馆 标准 C 库(libc、-lc)

概要 #包括

   ssize_t read(int fd, void buf[.count], size_t count);
© www.soinside.com 2019 - 2024. All rights reserved.