我是 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
是的。 read() 的第一个参数是文件描述符。解释 strace 的最佳方式是将其称为 man 2 所需的调用。例如:
read(2) 系统调用 手动read(2)
姓名 read - 从文件描述符中读取
图书馆 标准 C 库(libc、-lc)
概要
#包括
ssize_t read(int fd, void buf[.count], size_t count);