Fork()??????Linux?е???????
???????????? ???????[ 2016/6/22 10:57:01 ] ?????????????? ????
	???????fork()????
	?????????????????????н??????????????У?????????????С??λ??????λ???????????????????У??????С??????λ??????Linux???д????????????????????????????????????????????????????????????????
	?????????ú???fork()?????????????????????vfork()???????????????????????仹???????fork()??????fork()??????Linux????????????????????????ε???????????????????????fork()????????????
	????#include <unistd.h>
	????// On success?? The PID of the process is returned in the parent?? and 0 is returned in the child. On failure??
	????// -1 is returned in the parent?? no child process is created?? and errno is set appropriately.
	????pid_t fork (void);
	?????????????fork()???????????????????????????????????fork()???????????????????????????????????????????????????????????????в??????Ρ????????????????????????????????????ο?????????????????????????????????????????????????????濼??????????????????????????????????????????????????д???????copy-on -write?????????????????fork()??????????????????????????????????????????????????CPU??????????????????????????Щ???????????л??????????????????????????????????д???????????????????????
	
??????Linux???У???????????????????????fork()????н????????????????ЩС?鷳???????????????????????????????????????????????????ζ?????????????????????????????????????Щ??????????????????dup()?????????????????????ж???????????????????????????????????????????????????????????????????????????????????????????д???????????????????????????????????????????????????????fork()???ú?????????????????????仯??
	
	???????????
	??????????????????thread??????????ó???????ж??????????????????????п??????????????????????е????????????????У???????????????????????а????????????Σ?initialized data????δ?????????Σ?uninitialized data????????????Σ?heap segment????????????????£??????????????У???????????????CPU?????????????????????????????????????????Щ??????????????????????????????????????
	?????????У???????????????????????????????????????????????????С?????????????????????????????ж??????????????CPU???????????г???????????????t???滮????????????????????CPU??????????ù?????????????????????????????????????????????????????????????????????????????????????????滮????????????????????????У???????????????????????????ж?????????????Щ????????????????????????main()?????????е?????????????????????????????????????????????main()???????????????????????????δ???????????
	????????fork()??????
	???????????fork()???????Э??????????POSIX??в???????????????????????????????????????fork()???????????20????90?????????????????fork()?????÷?Χ?????С???
	????????????е?????μ???fork()???????????????????????????????С?????????и?????ID???????з???fork()????????ID???????????????ID?????????????????????????????????????????????????????????????????????????????????????????????????????????????Щ?????????????????????????洢???????????????????????????Щ????:
	????1. ??????????fork()??????????????????У???????????????????е?pthreads?????綏?????????????????????????????е???????????????Σ?????檔???磺????????fork()??????????????????????????????????????????????????????fork()????????????????????????????????У??????????ж???????????????????????????????????????????????????????????????????????????????в??????????????????????????????????????μ??????????????μ???????????????????????????fork()?????????????????????????signal handler??У??????????????????????????????????????????????????????????????????????????????async-signal-safe?????????fork()???????????????
	????· malloc(3)?????malloc()??????????????????
	????· ?κο???????????????????????new??map::insert()??snprintf() ……
	????· ?κ?pthreads????????????pthread_cond_signal()??????????????????дpipe(2)???????
	????· printf()??к????????????????????ó???stdout/stderr??????
	????· ????man 7 signal??????г???“signal???”?????????κκ?????
	????2. ?????δ?????????????????????洢???????????????????????????????????????????й?????????????е??????????????????????У????????????????????????洢?????????????????????κ?????????????
	??????????Щ?????????????????е???fork()???????????????????exec()?????????????????????????????????????????μ??????????е???棬?????????е?????pthreads?????????
	??????????Щ???????fork()???????????exec()????????????????pthreads API???????????fork()????????????ú???pthread_atfork()??????fork()?????????pthread_atfork()???????£?
	????#include <pthread.h>
	????// Upon successful completion?? pthread_atfork() shall return a value of zero; otherwise?? an error number shall be returned to indicate the error.
	????// @prepare ????????????????
	????// @parent  ???????????????????????
	????// @child    ???????????????????????
	????int pthread_atfork (void (*prepare) (void)?? void (*parent) (void)?? void (*child) (void));
	?????ú??????????????????????????????????????????ε?????????????????????????????????????м????????????????????????????ε???pthread_atfork()??????prepare????????????б??У????????????????????????????????????иú????б??к?????parent??child???????????????б??У???fork()?????????????????????????У??????????????????????ο???http://blog.chinaunix.net/uid-26885237-id-3210394.html
	??????????
	????fork()????????????????????г??????????????????????????в?????????????????????????????????й????????????ж????????????????fork()??????????????????main?????????????????????????????????????????????????????????????????????л????????????????????????????????л??????????????????????????????δ?????????????м????????????????????????????????3?????????????С?
??????
					
					???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44
					
			
								
								
								
								
								
								
								
								
								
								
				
sales@spasvo.com