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

LinuxÏÂÀûÓÃÐźÅÁ¿ÊµÏÖPV²Ù×÷





¼ÙÉèÁ½¸ö½ø³Ì£¨¸¸×Ó½ø³Ì£©¶ÔÒ»¸öÎļþ½øÐÐд²Ù×÷£¬µ«ÊÇÕâ¸öÎļþͬһʱ¼äÖ»ÄÜÓÐÒ»¸ö½ø³Ì½øÐÐд²Ù×÷¡£
//ÀûÓÃÐźÅÁ¿ÊµÏÖpv²Ù×÷
#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/types.h>
#include <fcntl.h>
struct sembuf sops;
static int sid;
//´´½¨Ò»¸öеÄÐźÅÁ¿¼¯
int createSemset(void)
{
char* pathname="semset";
if( access(pathname, F_OK)!=0 )
{
int fd=open(pathname, O_RDWR | O_CREAT, 0666);
if( fd<0 )
{
perror("open");
return -1;
}
}
key_t key=ftok(pathname, 'a');
if( -1==key )
{
perror("ftok");
return -1;
}
return semget(key, 1, IPC_CREAT | 0666) ;
}

//P²Ù×÷
int P(void)
{
sops.sem_num=0;
sops.sem_op=-1;
sops.sem_flg=0;
return semop(sid, &sops, 1);
}
//V²Ù×÷
int V(void)
{
sops.sem_num=0;
sops.sem_op=1;
sops.sem_flg=0;
return semop(sid, &sops, 1);
}
int main(int argc, char *argv[])
{
sid=createSemset();
if( -1==sid )
{
perror("createSemset");
exit(1);
}

if( -1==semctl(sid, 0, SETVAL, 1) )
{
perror("SETVAL");
exit(1);
}
pid_t pid=fork();
if( pid<0 )
{
perror("fork");
exit(1);
}
else if( 0==pid )
{
while(1)
{
if( -1==P() )
{
printf("P²Ù×÷ʧ°Ü£¡\n");
exit(1);
}
printf("×Ó½ø³ÌÕýÔÚ¶ÔÎļþ½øÐÐд²Ù×÷£¡\n");
sleep(1);
printf("×Ó½ø³Ìд²Ù×÷Íê±Ï£¬ÊÍ·Å×ÊÔ´£¡\n");
if( -1==V() )
{
printf("V²Ù×÷ʧ°Ü£¡");
exit(1);
}
}
}
else
{
while(1)
{
if( -1==P() )
{
printf("P²Ù×÷ʧ°Ü£¡\n");
exit(1);
}
printf("¸¸½ø³Ì½ø³ÌÕýÔÚ¶ÔÎļþ½øÐÐд²Ù×÷£¡\n");
sleep(1);
printf("¸¸½ø³Ìд²Ù×÷Íê±Ï£¬ÊÍ·Å×ÊÔ´£¡\n");
if( -1==V() )
{
printf("V²Ù×÷ʧ°Ü£¡");
exit(1);
}


Ïà¹ØÎĵµ£º

Linux »ã±àÓïÑÔ¿ª·¢Ö¸ÄÏ

http://blog.chinaunix.net/u2/62910/showart_1090856.html
Linux »ã±àÓïÑÔ¿ª·¢Ö¸ÄÏ
»ã±àÓïÑÔµÄÓŵãÊÇËٶȿ죬¿ÉÒÔÖ±½Ó¶ÔÓ²¼þ½øÐвÙ×÷£¬Õâ¶ÔÖîÈçͼÐδ¦ÀíµÈ¹Ø¼üÓ¦ÓÃÊǷdz£ÖØÒªµÄ¡£Linux ÊÇÒ»¸öÓà C ÓïÑÔ¿ª·¢µÄ²Ù×÷ϵͳ£¬ÕâʹµÃºÜ¶à³ÌÐòÔ±¿ªÊ¼Íü¼ÇÔÚ Linux Öл¹¿ÉÒÔÖ±½ÓʹÓûã±àÕâÒ»µ×²ãÓïÑÔÀ´ÓÅ»¯³ÌÐòµÄÐÔÄÜ¡£±¾ÎÄΪÄÇÐ©Ô ......

LinuxÉ豸Çý¶¯³ÌÐòѧϰ֮É豸ģÐÍÒ»

LinuxÉ豸Çý¶¯³ÌÐòѧϰ±Ê¼ÇϵÁÐÎÄÕÂÔ­×÷ÕßÊÇ£ºTekkaman Ninja£¬Ëû²©¿ÍµØÖ·£º
http://blog.chinaunix.net/u1/34474/showart_404278.html
ÔÚ´ËÏòTekkaman Ninja±íʾ¸Ðл£¬Ð´³öÕâôºÃµÄÎÄÕ£¬Ê¹ÎÒÉÙ×ßÁ˺ܶàÍä·¡£
ÒÔ¡¶LDD3¡·µÄ˵·¨£ºLinuxÉ豸ģÐÍÕⲿ·ÖÄÚÈÝ¿ÉÒÔÈÏΪÊǸ߼¶½Ì²Ä£¬¶ÔÓÚ¶àÊý³ÌÐò×÷ÕßÀ´ËµÊDz»±ØÒªµÄ¡£µ«ÊÇÎÒ¸ ......

LinuxÉ豸Çý¶¯³ÌÐòѧϰ֮É豸ģÐͶþ


LinuxÉ豸Çý¶¯³ÌÐòѧϰ±Ê¼ÇϵÁÐÎÄÕÂÔ­×÷ÕßÊÇ£ºTekkaman Ninja£¬Ëû²©¿ÍµØÖ·£º
http://blog.chinaunix.net/u1/34474/showart_404278.html
ÔÚ´ËÏòTekkaman Ninja±íʾ¸Ðл£¬Ð´³öÕâôºÃµÄÎÄÕ£¬Ê¹ÎÒÉÙ×ßÁ˺ܶàÍä·¡£
ͨ¹ýÒ»¸öÉ豸ÔÚÄÚºËÖÐÉúÃüÖÜÆڵĸ÷¸ö½×¶Î£¬¿ÉÒÔ¸üºÃµØÀí½âLinuxÉ豸ģÐÍ¡£ÎÒ½«Í¨¹ý·ÖÎölddbusºÍsculldµÄÔ ......

LinuxÀïÅÜÐéÄâXP

ÎҴ󲿷Öʱ¼äʹÓÃLinux²Ù×÷ϵͳ(Debian
Lenny)£¬²»¹ýºÜ¶àʱ¼ä»¹ÊÇÒªWindowsµÄ£¨±È·½ËµÍøÉÏÒøÐС¢¿´docÎĵµ¡¢¿´WindowsרÓõÄÍøÕ¾¡¢war3£©£¬Ë«ÏµÍ³ÊÇÒ»¸ö½â¾ö·½°¸£¬²»
¹ýÀÏÇÐÀ´ÇÐÈ¥ÕæÀÛ¡£½ñÌìÖÕÓÚ±¬·¢ÁË£¬Åܵ½Ì«Æ½Ñó2Â¥ÂòÁËÌõ2GµÄÄڴ棬¼ÓÉÏ×Ô¼ºµÄ1GÄڴ棬¿ªÊ¼ÕÛÌÚÐéÄâ»ú¡£Ò»¿ªÊ¼ÏÈÊÔÁËKVM£¬·¢ÏÖÎÒµÄCPU²»Ö§³Ö£¬
Ö»ÄÜ×÷°Õ ......

Windows server 2008 R2 µÄHyper V ¶ÔLINUXµÄÖ§³ÖÌ«ÀÃ

Ì«ÀõÄÔ­ÒòÓÐÒÔÏÂ4Ìõ£º
£±¡¢ÔÚWINDOWS SERVER 2008 SP2ÉϾͰ²×°¹ýubuntu 9.04£¬°²×°Ê±ÏÔʾËÙ¶ÈÆæÂý£¬¼òµ¥ÎÞ·¨ÈÌÊÜ£¬Îı¾Ä£Ê½£¬Ò»ÐÐÒ»ÐÐË¢£¬ÈÃÎÒÏëÆðµ±ÄêÔÚ£²£¸£¶ÉÏʹÓÃEGAÏÔ¿¨µÄÒ£Ô¶¹ýÈ¥£»
£²¡¢ÔÚWINDOWS SERVER 2008 R2ÉÏ°²×°ubutun 10.04£¬Çé¿öÒ»¸öÑù£¬ÔÙҲûÓÐÓÂÆø°²×°½øÐÐÏÂÈ¥£»
£³¡¢ÔÚWINDOWS SERVER 2008 SP2ÉϾͰ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ