一个Unix关于进程同步的问题
比如close(0)后又dup(to_chil),是先把文件描述符0关闭了,又复制了一个to_chil,新的to_chil的副本使用最低可用的文件描述符,也就还是0。所以close(to_chil)后并没有关闭它的副本,0。
■网友
父进程先关闭了1,然后dup(fd)是将fd重定向到目前最小的文件描述符,也就是1.先占坑,吃完饭再来填
【一个Unix关于进程同步的问题】 wow我回来啦
这个主要是对dup的理解,如图:
父进程用dup分别将文件描述符1,0重定向到管道to_chil的写端和 to_par的读端,这样0, 1就不再是标准输入,标准输出了。同理,在子进程相反的操作。这样,就实现了父进程用文件描述符1向管道to_chil写,而子进程用文件描述符0从管道to_chil读,另一个同理。但是,在一个管道中没有用到的一端要先关闭,才可以向管道读写数据,否则会出错,具体原因我也不清楚。。。就这样,希望能帮到你,哈哈
推荐阅读
- 同比■同比增长7.1%!2021年的第一个节你花了多少钱?
- “他是我第一个会说普通话的老师”:一对师生折射青海山村蝶变
- 过节■江苏省委省政府办公厅下发关于做好2021年元旦春节期间有关工作的通知
- 有必要重新开个C店吗
- 大学再有三个月就结束了,没学到知识,参加一个软件测试培训机构好吗
- 汽车|长安UNI-K又将开创一个新的"引力"纪元?
- 神话|武汉传奇父亲:一个平行班孩子创造的高考神话(感动上万家长)
- 王者荣耀李白能不能出肉
- 直播会成为品牌传播的另一个途径么有哪些可行的方法感觉有戏又没头绪好捉急。
- 怎样成为一名合格的Python程序员?
