linux C forkº¯Êý
´´½¨Ð½ø³Ì£ºforkº¯Êý
1.1.1. forkº¯Êý¸Éʲô£¿
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
‘fork()’º¯ÊýÓÃÓÚ´ÓÒÑ´æÔÚ½ø³ÌÖд´½¨Ò»¸öнø³Ì¡£Ð½ø³Ì³ÆΪ×Ó½ø³Ì£¬¶øÔ½ø³Ì³ÆΪ¸¸½ø³Ì¡£Äã¿ÉÒÔͨ¹ý¼ì²é‘fork()’º¯ÊýµÄ·µ»ØÖµÖªµÀÄĸöÊǸ¸½ø³Ì£¬ÄĸöÊÇ×Ó½ø³Ì¡£¸¸½ø³ÌµÃµ½µÄ·µ»ØÖµÊÇ×Ó½ø³ÌµÄ½ø³ÌºÅ£¬¶ø×Ó½ø³ÌÔò·µ»Ø0¡£ÒÔÏÂÕâ¸ö·¶Àý³ÌÐò˵Ã÷ËüµÄ»ù±¾¹¦ÄÜ£º
pid_t pid;
switch (pid = fork())
{
case -1:
/* ÕâÀïpidΪ-1£¬forkº¯Êýʧ°Ü */
/* һЩ¿ÉÄܵÄÔÒòÊÇ */
/* ½ø³ÌÊý»òÐéÄâÄÚ´æÓþ¡ */
perror("The fork failed!");
break;
case 0:
/* pidΪ0£¬×Ó½ø³Ì */
/* ÕâÀÎÒÃÇÊǺ¢×Ó£¬Òª×öʲô£¿ */
/* ... */
/* µ«ÊÇ×öÍêºó, ÎÒÃÇÐèÒª×öÀàËÆÏÂÃ棺 */
_exit(0);
default:
/* pid´óÓÚ0£¬Îª¸¸½ø³ÌµÃµ½µÄ×Ó½ø³ÌºÅ */
printf("Child's pid is %d\n",pid);
}
µ±È»£¬ÓÐÈË¿ÉÒÔÓÑif() ... else ...’Óï¾äÈ¡´ú‘switch()’Óï¾ä£¬µ«ÊÇÉÏÃæµÄÐÎʽÊÇÒ»¸öÓÐÓõĹßÓ÷½·¨¡£
ÖªµÀ×Ó½ø³Ì×Ô¸¸½ø³Ì¼Ì³Ðʲô»òδ¼Ì³Ðʲô½«ÓÐÖúÓÚÎÒÃÇ¡£ÏÂÃæÕâ¸öÃûµ¥»áÒòΪ²»Í¬UnixµÄʵÏÖ¶ø·¢Éú±ä»¯£¬ËùÒÔ»òÐí׼ȷÐÔÓÐÁËË®·Ý¡£Çë×¢Òâ×Ó½ø³ÌµÃµ½µÄÊÇÕâЩ¶«Î÷µÄ *¿½±´*£¬²»ÊÇËüÃDZ¾Éí¡£
ÓÉ×Ó½ø³Ì×Ô¸¸½ø³Ì¼Ì³Ðµ½£º
½
Ïà¹ØÎĵµ£º
Äں˰汾£º
Linux XOK 2.6.18-128.1.6.el5.centos.plus #1 SMP Thu Apr 2 12:53:36 EDT 2009 i686 i686 i386 GNU/Linux
ÂíÉϲâÊÔ£º
×¢Òâ²âÊÔÖпÉÄܵ¼ÖÂËÀ»ú¡£Çë²»ÒªÔÚÉú²ú»·¾³ÖвâÊÔ¡£
Èç¹ûÄãÏ£ÍûÇ×ÊÖÑéÖ¤´Ë©¶´£¬Äã¿ÉÒÔÏÂÔØÏÂÁÐÁ½¸ö´úÂë°ü²âÊÔ£¨ÓпÉÄܵ¼ÖÂϵͳ²»Îȶ¨£¬µ±»úµÈÏÖÏ󣬺ó¹û×Ô¸º£©£º
¾ÍÏÂÔØÕâ¸ö¼´¿É£ºhttp ......
ÔÚ
linux
ϵͳÖУ¬
TCP/IP
ÍøÂçÊÇͨ¹ýÈô¸É¸öÎı¾Îļþ½øÐÐÅäÖõģ¬ÐèÒª±à¼ÕâЩÎļþÀ´Íê³ÉÁªÍø¹¤×÷¡£ÏµÍ³ÖÐÖØÒªµÄÓйØÍøÂçÅäÖÃÎļþΪ£º
¡ô
/etc/sysconfig/network
¡ô
/etc/HOSTNAME
¡ô
/etc/hosts
¡ô
/etc/services
¡ô
/etc/host.conf
¡ô
/etc/nsswitch.conf
¡ô
/etc/resolv.conf
¡ô
/etc/r ......
LinuxÎļþϵͳÉè¼ÆÁËÈýÀàµÄCacheÒÔÓÃÀ´Ö§³Ö¶àÀàÐ͵ÄÎļþϵͳ¡£
Ò»¡¢ VFSË÷Òý½Úµã»º´æ Inode Cache
VFSË÷Òý½ÚµãÊÇÒ»¸öHash±í£¬Ëü²»¶ÏµØ¶ÁÈ¡¡£VFSÌṩµÄË÷Òý½Úµã»º´æ¿ÉÒÔ¼Ó¿ì¶ÔÎļþϵͳµÄ´æÈ¡¡£Ã¿´Î´ÓË÷Òý½Úµã»º´æÖжÁÈ¡Ò»¸öVFSË÷Òý½Úµã£¬ÕâÑùϵͳ¾Í¿ÉÒÔ½ÚÊ¡¶ÁÈ¡ÎïÀíÉ豸µÄ´æÈ¡Ê ......
º¯ÊýÃû: abs ¹¦ ÄÜ: ÇóÕûÊýµÄ¾ø¶ÔÖµ
ÓÃ ·¨: int abs(int i);
³ÌÐòÀý:
#include <stdio.h>
#include <math.h>
int main(void)
{
int number = -1234;
printf("number: %d absolute value: %d\n", number, abs(number));
return 0;
}
º¯ÊýÃû: atof
¹¦ ......