Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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°æ


Ïà¹ØÎĵµ£º

C³ÌÐòÉè¼ÆµÄ³£ÓÃËã·¨


¡¡¡¡Ëã·¨£¨Algorithm£©£º¼ÆËã»ú½âÌâµÄ»ù±¾Ë¼Ïë·½·¨ºÍ²½Öè¡£Ëã·¨µÄÃèÊö£ºÊǶÔÒª½â¾öÒ»¸öÎÊÌâ»òÒªÍê³ÉÒ»ÏîÈÎÎñËù²ÉÈ¡µÄ·½·¨ºÍ²½ÖèµÄÃèÊö£¬°üÀ¨ÐèҪʲôÊý¾Ý£¨ÊäÈëʲôÊý¾Ý¡¢Êä³öʲô½á¹û£©¡¢²ÉÓÃʲô½á¹¹¡¢Ê¹ÓÃʲôÓï¾äÒÔ¼°ÈçºÎ°²ÅÅÕâЩÓï¾äµÈ¡£Í¨³£Ê¹ÓÃ×ÔÈ»ÓïÑÔ¡¢½á¹¹»¯Á÷³Ìͼ¡¢Î±´úÂëµÈÀ´ÃèÊöËã·¨¡£
¡¡¡¡Ò»¡¢¼ÆÊý¡¢ÇóºÍ¡ ......

CÖеĿÕ


1.   ʲôÊÇ¿ÕÖ¸Õë³£Á¿£¨null pointer constant£©?
[ 6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.
ÕâÀï¸æËßÎÒÃÇ£º0¡¢0L¡¢'\0'¡¢3 - 3¡¢0 * 17 £¨ËüÃǶ¼ÊÇ“integer constant expression”£©ÒÔ¼° ......

±ê×¼ C I/O

   ±ê×¼ C I/O
º¯ÊýÁÐ±í£º
clearerr() Çå³ý´íÎó
fclose() ¹Ø±ÕÒ»¸öÎļþ
feof() Èç¹ûµ½´ïÎļþβ(end-of-file)·µ»Ø"True"(Õæ)
ferror() ¼ì²éÒ»¸öÎļþ´íÎó
fflush() ÊéдÊä³ö»º´æµÄÄÚÈÝ
fgetc() ´ÓÁ÷»ñȡһ¸ö×Ö·û
fgetpos() »ñÈ¡ÎļþλÖÃÖ¸Õë
fgets() ´ÓÒ»¸öÁ÷»ñȡһ´®×Ö·û
fopen() ´ò¿ªÒ»¸öÎļþ ......

CÊä³ö¸ñʽ×ܽá

CÊä³ö¸ñʽ×ܽá
2007-07-08 12:09
1 Ò»°ã¸ñʽ
   printf(¸ñʽ¿ØÖÆ£¬Êä³ö±íÁУ©
   ÀýÈ磺printf("i=%d,ch=%c\n",i,ch);
   ˵Ã÷:
   (1)“¸ñʽ¿ØÖÆ”ÊÇÓÃ˫ƲºÅÀ¨ÆðÀ´µÄ×Ö·û´®£¬Ò²³Æ“ת»»¿ØÖÆ×Ö·û´®”£¬Ëü°üÀ¨Á½ÖÖÐÅÏ¢£º
    &nbs ......

cÏÝÚåÓëȱÏÝÔĶÁ±Ê¼Ç

¡¾1¡¿ “ = ”µÄÓÅÏȼ¶µÍÓÚ  “ || ” ÇÒ “ = ” ΪÓÒ½áºÏÐÔ£¬×¢ÒâһϴúÂëΪËÀÑ­»·£ºwhile(c=' '||c=='\t'||c=='\n')

³ÌÐò±¾ÒâÊÇÌø¹ý¿Õ¸ñ£¬ÖƱí·û£¬»»Ðзû£¬µ«ÓÉÓÚ²»Ð¡ÐĽ«c=='  'д³ÉÁËc= '  'µ¼Ö³ÌÐò½øÈëËÀÑ­»·
¡¾2¡¿a=-1 ÔÚºÜÀϵÄC°æ±¾ÀïÀí½âΪ a =-  1
¡¾3 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ