作者gowrite (gowrite)
看板Linux
标题[问题] file descriptor 档案描述符的问题
时间Wed Apr 21 15:51:22 2021
大家好,想询问一下,一个观念问题,
看到书上说,program 执行的时候,
shell 会帮忙开启 3 个档案描述符,分别是
stdio (0)
stdout (1)
stderr (2)
这个我了解,
我的问题在於,
请问这 3 个 fd 是 global 的吗?
意思就是 process A / process B / process C,
这 3 个 processes 在运行的时候,
所拿到 stdin, stdout, stderr 是同样的 fd 吗?
还是是分别在各自的 name space 里面?
意思就是,
process A 的 stdin ,与 process B 的 stdin 不同?
有什麽方法可以验证吗?
谢谢
还请各位前辈解惑了,
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.173.190.241 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1618991484.A.DC9.html
※ gowrite:转录至看板 LinuxDev 04/21 15:51
1F:→ bitlife: 你想成像是c的指标,各process有自己1份,预设都指向目前的 04/21 16:26
2F:→ bitlife: tty/pty,输出(入)导向ofile(ifile)则会指到新开启的该档 04/21 16:27
3F:→ bitlife: file descriptor 04/21 16:27
4F:→ bitlife: 或者更简单一点说,不要想成有什麽特殊,就想成不同process 04/21 16:28
5F:→ bitlife: 都可以去开启同一个foobar档案,每一个process开启模式(读 04/21 16:29
6F:→ bitlife: 或写)各自不同,读取/写入的位置也各自不同 04/21 16:29