close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": /usr/lib/python2.7/dist-packages/libsvn/_fs.so: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Jan 10, 2009, 5:37:26 PM (17 years ago)
- Author:
-
wade
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v4
|
v5
|
|
| 37 | 37 | |
| 38 | 38 | == Pipe == |
| 39 | | * FD[0] 負責 read pipe。FD[1] 負責 write pipe。 |
| | 39 | * FD[0] 負責 read pipe。FD[1] 負責 write pipe。 |
| | 40 | FD[1] → [PIPE] → FD[0]。 |
| 40 | 41 | * read() 會被 block 住,所以不用擔心 parent 會比 child 先結束,而導致 child 也跟著結束 (因為 child process 是依附著 parent process 而存在,依存關係可透過 pstree 查詢)。 |
| 41 | | * FD 也是分開,child 跟 parent 有各自的 FD[0]、FD[1]。 |
| | 42 | * 先使用 pipe(FD[2]),再使用 fork() 時,FD[2] 也會同時複製兩份,child 跟 parent 有各自的 FD[0]、FD[1],所以要記得關掉不必要的 FD ,兩個 processes 各自與 pipe 相接。 |
| 42 | 43 | |
| 43 | 44 | == Reference == |