C Fork º¯Êý
Fork º¯Êý£º
#include <unistd.h>
pid_t fork(void);
ÓÉfork ´´½¨µÄнø³Ì±»³ÆÎª×Ó½ø³Ì¡£fork º¯Êý±»µ÷ÓÃÁ½´Î£¬µ«ÊÇ·µ»ØÁ½´Î¡£Á½´Î·µ»ØµÄÎ¨Ò»Çø±ðÊÇ×Ó½ø³ÌµÄ·µ»ØÖµÊÇ0£¬¶ø¸¸½ø³ÌµÄ·µ»ØÖµÔòÊÇÐÂ×Ó½ø³ÌµÄID¡£½«×Ó½ø³ÌµÄID ·µ»Ø¸ø¸¸½ø³ÌµÄÀíÓÉÊÇ£ºÒ»¸ö½ø³Ì¿ÉÒÔÓжà¸ö×Ó½ø³Ì£¬²¢ÇÒûÓк¯ÊýÊÇÒ»¸ö½ø³Ì»ñµÃÆä×Ó½ø³ÌµÄ½ø³ÌID¡£fork ÔÚ×Ó½ø³ÌÖзµ»Ø0µÄÀíÓÉÊÇ£ºÒ»¸ö½ø³ÌÖ»ÄÜÓÐÒ»¸ö¸¸½ø³Ì£¬²¢ÇÒ¿ÉÒÔͨ¹ýgetppid º¯Êý»ñµÃÆä¸¸½ø³ÌµÄID¡£
×Ó½ø³ÌºÍ¸¸½ø³Ì¼ÌÐøÖ´ÐÐfork µ÷ÓúóµÄÖ¸Áî¡£×Ó½ø³ÌÊǸ¸½ø³ÌµÄ¸±±¾¡£ÀýÈ磺×Ó½ø³Ì»ñµÃ¸¸½ø³ÌµÄÊý¾Ý¿Õ¼ä¡¢¶ÑºÍÕ»µÄ¸±±¾¡£×¢ÒâÕâÊÇ×Ó½ø³Ì×Ô¼ºµÄ¸±±¾£¬¸¸¡¢×Ó½ø³Ì²¢²»¹²ÏíÕâЩ´æ´¢¿Õ¼ä²¿·Ö¡£¸¸¡¢×Ó½ø³Ì¹²ÏíÕýÎĶΡ£(ÕâÀï¿ÉÒԲμûhttp://blog.csdn.net/lihe2008125/archive/2010/05/11/5580487.aspx)
Àý×Ó³ÌÐò£º(½ö¹©²Î¿¼)
#include "apue.h"
int glob= 6;
char buf[] = "a write to stdout\n";
int main(void){
int var;
pid_t pid;
var = 88;
if(write(STDOUT_FILENO,buf,sizeof(buf)-1) != sizeof(buf)-1)
err_sys("fork error");
printf("before fork\n");
if((pid = fork()) <0 ){
err_sys("fork error");
} else if(pid == 0){
glob++;
var++;
} else {
sleep(2);
}
printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);
exit(0);
}
Ò»°ãÀ´Ëµ£¬ÔÚfork Ö®ºóÊǸ¸½ø³ÌÏÈÖ´Ðл¹ÊÇ×Ó½ø³ÌÏÈÖ´ÐÐÊDz»È·¶¨µÄ¡£ÕâÈ¡¾öÓÚÄں˵ÄËã·¨¡£Èç¹ûÒªÇ󸸡¢×Ó½ø³ÌÖ®¼äÏ໥ͬ²½£¬ÔòÒªÇóijÖÖÐÎʽµÄ½ø³ÌͨÐÅ¡£
À´×Ô£ºUNIX »·¾³¸ß¼¶±à³Ì µÚ2°æ
Ïà¹ØÎĵµ£º
¼ì²éÄں˲ÎÊý
ÕýÔÚ¼ì²é semmsl=250; ÒÑ·¢ÏÖ semmsl=250¡£ ͨ¹ý
ÕýÔÚ¼ì²é semmns=32000; ÒÑ·¢ÏÖ semmns=32000¡£ ͨ¹ý
ÕýÔÚ¼ì²é semopm=100; ÒÑ·¢ÏÖ semopm=32¡£ ʧ°Ü <<<<
ÕýÔÚ¼ì²é semmni=128; ÒÑ·¢ÏÖ semmni=128¡£ ͨ¹ý
ÕýÔÚ¼ì²é shmmax=536870912; ÒÑ·¢ÏÖ shmmax=33554432¡£ ʧ°Ü <<<< ......
9.2 ¹²ÓÃÌå
CÓïÑÔ³ýÁËÌṩ½á¹¹ÌåÕâÖֿɰüº¬¶àÖÖÀàÐÍÊý¾ÝµÄ¹¹ÔìÀàÐÍÍ⣬»¹ÌṩÁËÒ»ÖÖ´ÓÐÎʽÉÏ¿´ºÍ½á¹¹Ìå¿°³Æ“ÂÏÉúÐֵܔµÄ¹¹ÔìÀàÐÍ——¹²ÓÃÌ壨union£©¡£
±¾½Ú´Ó¹²ÓÃÌåµÄ¸ÅÄîÈëÊÖ£¬´Ó¹²ÓÃÌåµÄ¸ÅÄî¡¢Óë½á¹¹ÌåµÄÒìͬ¡¢Ê¹Óõȷ½Ãæ½øÐÐÏêϸµÄ½éÉÜ¡£
9.2.1 ʲôÊǹ²ÓÃÌå
ÏÖʵÉú»îÖУ¬Ä³Ð©Ê ......
¡¡¡¡Ëã·¨£¨Algorithm£©£º¼ÆËã»ú½âÌâµÄ»ù±¾Ë¼Ïë·½·¨ºÍ²½Öè¡£Ëã·¨µÄÃèÊö£ºÊǶÔÒª½â¾öÒ»¸öÎÊÌâ»òÒªÍê³ÉÒ»ÏîÈÎÎñËù²ÉÈ¡µÄ·½·¨ºÍ²½ÖèµÄÃèÊö£¬°üÀ¨ÐèҪʲôÊý¾Ý£¨ÊäÈëʲôÊý¾Ý¡¢Êä³öʲô½á¹û£©¡¢²ÉÓÃʲô½á¹¹¡¢Ê¹ÓÃʲôÓï¾äÒÔ¼°ÈçºÎ°²ÅÅÕâЩÓï¾äµÈ¡£Í¨³£Ê¹ÓÃ×ÔÈ»ÓïÑÔ¡¢½á¹¹»¯Á÷³Ìͼ¡¢Î±´úÂëµÈÀ´ÃèÊöËã·¨¡£
¡¡¡¡Ò»¡¢¼ÆÊý¡¢ÇóºÍ¡ ......
ÎÒ´ÓÊý¾Ý¿â¶¯Ì¬¶ÁÈ¡2¸ö¸¸½Úµã£º
111
a
a1
b
b1
c
&n ......
Ò»¡¢ÆÁÄ»²Ù×÷º¯Êý
1. clrscr()Çå³ý×Ö·û´°¿Úº¯Êý
2. window()×Ö·û´°¿Úº¯Êý
3. gotoxy()¹â±ê¶¨Î»º¯Êý
4. clreol() Çå³ý¹â±êÐÐβ×Ö·ûº¯Êý
5. insline() ²åÈë¿ÕÐк¯Êý
6. delline() ɾ³ýÒ»Ðк¯Êý
7. gettext() ¿½½øÎÄ×Öº¯Êý
8. puttext() ¿½³öÎÄ×Öº¯Êý
9. movetext() ÒÆ¶¯ÎÄ×Öº¯Êý
¶þ¡¢×Ö·ûÊôÐÔº¯Êý
10. textmode( ......