µ±Ç°Î»ÖãºÊ×Ò³ > ²Ù×÷ϵͳʵÑ鸴ϰÌ⣨´ø´ð°¸£©
{
while(1){} } 5.
/*forktree.c*/ #include
if (p>0) /*Èç¹ûÊǸ¸½ø³Ì*/ {
fork();
fork(); }
else{ /*Èç¹ûÊÇ×Ó½ø³Ì*/ fork(); fork(); } sleep(50); }
ÒªÇ󣺰ѳÌÐò±àÒ룬ºǫִ́ÐУ¬ÀûÓÃpsÃüÁî²é¿´½ø³ÌµÄIDºÅ£¬ÒÔ½ø³ÌµÄIDºÅΪ½ø³ÌÃû³Æ£¬»³ö³ÌÐòµÄÔËÐйý³ÌÖвúÉúµÄ½ø³ÌÊ÷¡£
6.
/*fork2.c */ #include
printf(\ else
printf(\ }
ÒªÇó£ºÐ´³ö³ÌÐòµÄÔËÐнá¹û£¬²¢¼òÒª·ÖÎöfork()ϵͳµ÷Óô´½¨×Ó½ø³Ìºó£¬¸¸½ø³ÌºÍ×Ó½ø³ÌÖ®¼äµÄ¹ØÏµ¡£
7. ±àд³ÌÐò´úÂ룬ҪÇó×Ó½ø³ÌÀûÓÃexecl()º¯Êýµ÷ÓÃÁíÒ»¸ö¿ÉÖ´ÐгÌÐòµÄ´úÂë¡££¨ÒªÇó£º °Ñ´úÂë¡¢³ÌÐò±àÒëºÍÔËÐнá¹û½ØÍ¼£©
8. ·ÖÎö³ÌÐòÖ´ÐÐÁ÷³Ì£¬ÔËÐнá¹ûÒÔ¼°kill()ºÍsignal()µÄ¹¦ÄÜ¡£
/*signal1.c*/ #include
i=0; } main( ) {
int k,j,pid; j=1;
while((pid=fork( ))==-1); if (pid>0) {
for(k=1;k<3;k++) {
printf(\sleep(1); }
kill(pid,17); /*·¢ËÍÈíÖжÏÐźŸø×Ó½ø³Ì*/ wait(0); /*µÈ´ý×Ó½ø³ÌÖÕÖ¹*/ printf(\exit(0); } else {
signal(17,intfun); /*Ô¤ÖÃÈíÖжÏÐźÅ17*/ i=1;
while(i==1) /*Ñ»·ÏÔʾ²¢µÈ´ý¸¸½ø³Ì·¢ÈíÖжÏÐźÅ*/ {
printf(\ sleep(1); }
printf(\exit(0);
} }
9. ±àд³ÌÐòʵÏÖ¸¸½ø³ÌºÍ×Ó½ø³Ì»ùÓÚÎÞÃû¹ÜµÀ½øÐÐͨÐÅ¡£ÓÃϵͳµ÷ÓÃpipe()½¨Á¢Ò»ÎÞÃû¹ÜµÀ£¬¸¸½ø³ÌÏò¹ÜµÀдÈëÒ»¾ä»°£¬×Ó½ø³Ì´ÓÎÞÃû¹ÜµÀÖжÁ³öÁ½¸öÀ´×Ô×Ó½ø³ÌµÄÐÅÏ¢²¢ÏÔʾ¡£
£¨ÒªÇó£º °Ñ´úÂë¡¢³ÌÐò±àÒëºÍÔËÐнá¹û½ØÍ¼£©
10. °ÑÏÂÃæ³ÌÐò¿ÕȱµÄÓï¾äÌîдÍêÕû£¬Í¨¹ýÕâ¸ö³ÌÐò·ÖÎö¹²Ïí´æ´¢ÇøÍ¨ÐÅ»úÖÆµÄÓÅȱµã¡£
#include
#define SHMKEY 75 //¶¨Òå·ûºÅ±äÁ¿£¬Ã¿¸öÓû§È¡²»Í¬µÄ¹²ÏíÄÚ´æ¹Ø¼ü×ÖÖµ int shmid,i; int *addr; //¶¨ÒåÖ¸ÏòÕûÐÍ ±äÁ¿µÄÖ¸Õë±äÁ¿£¬ main( )
{ while ((i=fork( ))==-1); if (!i) server( );
system(¡°ipcs -m¡±); while ((i=fork( ))==-1); if (!i) client( );
wait(0); wait(0);} void server( ) { £¨ 1 £©;
£¨ 2 £©; do
{ *addr=-1; system(¡°ipcs -m¡±); while (*addr==-1);
printf(\ }while (*addr);
£¨ 3 £©;;
exit(0); }
void client( ) { int i; £¨ 4 £©;
£¨ 5£©; for (i=9;i>=0;i--)
¹²·ÖÏí92ƪÏà¹ØÎĵµ