[问题] file descriptor 档案描述符的问题

楼主: gowrite (gowrite)   2021-04-21 15:51:22
大家好,想询问一下,一个观念问题,
看到书上说,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 不同?
有什么方法可以验证吗?
谢谢
还请各位前辈解惑了,
谢谢
作者: bitlife (BIT一生)   2021-04-21 16:26:00
你想成像是c的指标,各process有自己1份,默认都指向目前的tty/pty,输出(入)导向ofile(ifile)则会指到新开启的该档file descriptor或者更简单一点说,不要想成有什么特殊,就想成不同process都可以去开启同一个foobar档案,每一个process开启模式(读或写)各自不同,读取/写入的位置也各自不同

Links booklink

Contact Us: admin [ a t ] ucptt.com