#include <sys/sem.h>
#include <sys/ipc.h>
#include <stdio.h>
union semun{
int val;
struct semid_ds *buf;
unsigned short *array;
}
main()
{
int semid;
semid=semget(IPC_PRIVATE,2,IPC_CREAT|0666);
union semun sem,sem2;
sem.val=1;
sem2.val=0;
semctl(semid,0,SETVAL,sem);
semctl(semid,1,SETVAL,sem2);
if(fork()==0)
{int i;
struct sembuf sops={0,+1,IPC_NOWAIT},sops2={1,-1,IPC_NOWAIT};
for(i=0;i <1000;i++)
{
semop(semid,&sops,1);
printf("a\n");
semop(semid,&sops2,1);
}
}
else
{
int j;
struct sembuf sops={0,-1,IPC_NOWAIT},sops2={1,+1,IPC_NOWAIT};
for(j=0;j <1000;j++)
{
semop(semid,&sops2,1);
printf("b\n");
semop(semid,&sops,1);
}
}
}
ÏëҪʵÏÖababababµÄÊä³ö£¬¿ÉÊǺÃÏñ²»ÐУ¬½á¹ûÊÇÏÈÊä³öa£¬ÔÚÊä³öb,ÄÄÀï²»¶ÔÂð£¬ÇëÎÊÒ»ÏÂ
²»¼Ó¿ØÖƾÍÊÇËæ»úµÄ
¿ÉÊÇÎÒÒѾÓÃÐźÅÁ¿¼¯À´¿ØÖÆÁ˰¡£¬ÊDz»ÊÇÄǼ¸¸öPVº¯ÊýÓôíÁ˰¡£¬ÎÒ²»´ó»áÓÃ
#include <sys/sem.h>
#include <sys/ipc.h>
#include <stdio.h>
union semun{
int val;
struct semid_ds *buf;
unsigned short *array;
}
main()
{
int semid;
semid=semget(IPC_PRIVATE,2,IPC_CREAT|0666);
union semun sem,sem2;
sem.val=0;
ÔÏȵÄGCC°æ±¾Îª4.1.2,ÎÒÖØÐ±àÒë°²×°ÁËGCC4.3.2£¬µ«ÊDZàÒëÍê³ÌÐòÔËÐгÌÐòʱ»á³öÏÖversion `GLIBCXX_3.4.9' not found Õâ¸öÎÊÌâ.ÔÚÍøÉÏÃæ²éÁËÒ»ÏÂÊÇÈíÁ¬½ÓµÄÎÊÌâ¡£µ«ÊDZ¾È˶ÔLinux²»Ì«ÊìϤ£¬¡°Ó¦¸ÃÖÆ×÷RPM°üÈ»ºó ......
¸Õ²Å·¢ÏÖÓÐ×îеÄlinux kernel·¢²¼ÁË£¬ÎÒÒ²ÊǸölinux°®ºÃÕߣ¬Ö»²»¹ýÊǸöÐÂÊÖ£¬Ê²Ã´¶¼²»¶®£¬ÎÒÏëÎÊһϣ¬Èç¹ûÎÒÓÐkernelµÄ»°£¬ÎÒÄܱàÒë³É×Ô¼ºµÄϵͳÂð£¿ÊDz»ÊÇÓÃkernelÔÙÅäÉϸö×ÀÃæ»·¾³¾Í¿ÉÒÔ×ö³É×Ô¼ºµÄ²Ù×÷ÏµÍ³ÄØ£¿Î ......