亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 請高手幫忙看看 [打印本頁]

作者: huxk    時間: 2009-09-05 15:13
標題: 請高手幫忙看看
最近碰到一個程序,基本框架如下

shmget();

shmat();//assign "0" to it


socket();

bind();

listenfd = listen();

for ( ; ; )
{
    sockaccepted = accept();
    
    sockconnected = connect_to_thirdparty();
    
    if ( (ret = fork()) == 0)
    {
        close(listenfd);
        rcvproc(sockconnected,sockaccepted);
        exit(0);
    }
    else if(ret >0)
    {
        close(sockaccepted);
        close(sockconnected);
    }
    else
    {
        exit(0);
    }
    
    if ( (ret = fork()) == 0)
    {
        close(listenfd);
        rcvproc(sockconnected,sockaccepted);
        exit(0);
    }
&nbsp;&nbsp;&nbsp;&nbsp;else if(ret < 0)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(0);
&nbsp;&nbsp;&nbsp;&nbsp;}
}


int rcvproc()
{
&nbsp;&nbsp;&nbsp;&nbsp;for ( ; ; )
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(sockaccepted);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send(sockconnected);
&nbsp;&nbsp;&nbsp;&nbsp;}
}



int sndproc()
{
&nbsp;&nbsp;&nbsp;&nbsp;for ( ; ; )
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shmat();//這里連接父進程建立的共享內(nèi)存并判斷其內(nèi)容是否為 "0"如果不是則循環(huán)判斷直到其值為 "0"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 共享內(nèi)存如果值 為 "0" 重新賦值為 "1"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(sockconnected);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send(sockaccepted);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//共享內(nèi)存重新賦值為 "0"

&nbsp;&nbsp;&nbsp;&nbsp;}
}


我想問的是,sndproc函數(shù)中使用共享內(nèi)存其實充當鎖的作用,但這有必要么?
作者: huxk    時間: 2009-09-05 15:22
搞錯了一個地方,第二個子進程執(zhí)行的是sndproc
作者: huxk    時間: 2009-09-06 23:28
怎么高手都不露面呢




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2