linux wait£¨£©²»Ìî²ÎÊý µÈ´ý×ÓÏß³Ì
#include <semaphore.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
void print(pid_t pid);
sem_t *sem;/*¶¨ÒåposixÓÐÃûÐźŵÆ*/
int val;/*¶¨ÒåÐźŵƵ±Ç°Öµ*/
int main(int argc,char *argv[])
{
int n=0;
if(argc!=2)
{
printf("please input a sem name!\n");
exit(1);
}
sem=sem_open(argv[1],O_CREAT,0644,2);/*´ò¿ªÒ»¸öÐźŵƣ¬³õÖµÉèΪ2*/
while(n++ <5)/*Ñ»·´´½¨5¸ö×Ó½ø³Ì£¬Ê¹ËûÃÇͬ²½ÔËÐÐ*/
{
if(fork()==0)
{
sem_wait(sem);/*ÉêÇëÐźŵÆ*/
print(getpid());/*µ÷Óù²Ïí´úÂë¶Î*/
sleep(1);
sem_post(sem);/*ÊÍ·ÅÐźŵÆ*/
printf("I'm finished,my pid is %d\n",getpid());
exit(0);//return 0;
}
}
wait();/*µÈ´ýËùÓÐ×Ó½ø³Ì½áÊø*/-----ÕâÀïwait¿ÉÒÔ²»Ìî²ÎÊýµÈ´ýËùÓÐ×Ó½ø³ÌÂð£¿
//while(wait(NULL)!= -1)
// ;
sem_close(sem);
sem_unlink(argv[1]);
printf("---reach here---\n");
exit(0);
}
void print(pid_t pid)
{
printf("I get it,my pid is %d\n",pid);
sem_getvalue(sem,&val);
printf("Now the semvalue is %d\n",val);
}
³ÌÐòÔËÐнá¹û£º
[ken@localhost 3]$ ./sem_in_mprocess test &
Ïà¹ØÎÊ´ð£º
ÎÒûÓа²×°²Ù×÷ϵͳµÄ¾Ñ飬¼´Ê¹ÊÇWINDOWS¡£ÏÖÔÚÏëÔÚLINUX²Ù×÷ϵͳ´ó»·¾³ÏÂѧCÓïÑÔ£¬ÓÖÒªÂò±¾±¾£¬ÇëÎÊÈç¹û²Ù×÷ϵͳ°²×°²»µ±£¬»á²»»á¶ÔµçÄÔÔì³Éʲô´óµÄÆÆ»µ£¿ÓÐûÓбØÒªÏÈÂòÒ»¸ö¶þÊÖµçÄÔÁ·Ò»ÏÂLINUXµÄ ......
Linux²»Õý³£¹Ø»úµ¼ÖÂϵͳ»µ£¬ÇëÎÊÔõô¼ì²éºÍÐÞ¸´ÏµÍ³£¿
ÔÚ¸ÕÆô¶¯µÄʱºò»áÓÐÌáʾµÄ¡£
ÐÞ¸´¿ÉÒÔ¿¿livecd
»òÕß°Ñ»ù±¾ÏµÍ³²¿·ÖÖØÐ°²×°¼´¿É
ÊDz»ÊÇϵͳ±à³ÌÁËread-onlyµÄÀ²£¿ÎÞ·¨ÍùϵͳдÈëÊý¾Ý°¡£¿
ÓеÄÇé ......
СµÜ×î½üÐèÒªÒ»¸öÓÃsocket»ñÈ¡htmlÎĵµµÄ´úÂ룬µ«ÊÇÀÏÊDz»ÄÜ»ñÈ¡ÍêÕûµÄhtmlÔ´Âë¡£ÔÒò²»Ã÷£¬Íû¸ßÊÖÖ¸µã£¡
C/C++ code:
char *Http_GET(char *host,int port,char *data) //·¢ËÍGETÇëÇó
{
char response[2 ......
linux vsftpd Äܲ»Äܸü¸ÄĬÈϵÄFTPÉÏ´«Ä¿Â¼?
ʹÓÃftpµÇ¼£¬»áµÇ¼µ½/home/ftp Õâ¸öĿ¼£¬ÎÒÏë¸ü¸Äµ½ÆäËûµÄĿ¼£¬ÔõôÅäÖÃÄØ
Çë¸ßÊִͽÌß¹£¬¼±¼±¼±£¡
ÓÐЩftp¹¤¾ß¿ÉÒÔÖ±½Ó×Ô¼ºÐ´Ä¿Â¼µÄ°É£¬Õâ¸öĿ¼Ӧ¸Ã¾ÍÊ ......
¸Õ²Å·¢ÏÖÓÐ×îеÄlinux kernel·¢²¼ÁË£¬ÎÒÒ²ÊǸölinux°®ºÃÕߣ¬Ö»²»¹ýÊǸöÐÂÊÖ£¬Ê²Ã´¶¼²»¶®£¬ÎÒÏëÎÊһϣ¬Èç¹ûÎÒÓÐkernelµÄ»°£¬ÎÒÄܱàÒë³É×Ô¼ºµÄϵͳÂð£¿ÊDz»ÊÇÓÃkernelÔÙÅäÉϸö×ÀÃæ»·¾³¾Í¿ÉÒÔ×ö³É×Ô¼ºµÄ²Ù×÷ÏµÍ³ÄØ£¿Î ......