ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÈçºÎÔÚÏß³ÌÖÐʵÏÖÕâÑùÒ»¸öº¯Êý£¿

·¢²¼Ê±¼ä:2009-06-05 14:51:18À´Ô´:ºìÁª×÷Õß:sabirer
ÔÚÏß³ÌÖзÃÎÊÒ»¸öÏûÏ¢¶ÓÁÐÖеÄÏûÏ¢£¬´øÓг¬Ê±¹¦ÄÜ£¬µ«ÊDz»ÄÜÓÃÐźÅÀ´ÊµÏÖ£¬ÉùÃ÷´ó¸ÅÈçÏ£º

int RecvFromMsq(int Msq_id/*ÏûÏ¢¶ÓÁÐID*/, int msg_num/*ÏûÏ¢ID*/£¬ unsigned char * recv_buf,..., int timeout/*³¬Ê±Ê±¼ä*/);

¹¦ÄÜÊÇ´ÓÖ¸¶¨ÏûÏ¢¶ÓÁÐÖжÁȡһ¸öÖ¸¶¨ÏûÏ¢£¬Èç¹ûÔÚtimeoutʱ¼äÄÚûÓжÁµ½£¬ÄÇô¾Í³¬Ê±Í˳ö¡£

ÎÒÏëÁ˺ܾã¬Èç¹ûûÓÐÐźţ¬ÕæµÄ²»ÖªµÀÈçºÎʵÏÖ£¬Çë´ó¼Ò½ÌÎÒ£¬Ð»Ð»



ÎÒÃǿͻ§µÄ³ÌÐòÊÇÔËÐÐÔÚһ̨¹«¹²µÄunix»úÆ÷Éϵģ¬Ö®Ç°Ôø¾­·¢ÉúÐźŵ¼Ö½ø³Ì´íÂÒµÄÇé¿ö£¨¾ßÌåÇé¿ö²»Çå³þ£©£¬ÏÖÔÚÒªÇó²»ÄÜÓÃÐźÅ×ö³¬Ê±ÁË¡£

ÁíÍ⣬Çë½Ìһϣ¬Èç¹û×Ô¼ºÁíÍâ ¿ªÒ»¸öÏ̼߳ÆËãʱ¼ä£¬ÄÇôµ½ÁËÉ趨³¬Ê±Ê±¼ä£¬ÈçºÎÖжÏÎÒµÄÄǸöÒѾ­×èÈûÔÚÏûÏ¢¶ÓÁжÁÈ¡µÄº¯Êý msgrcv£¨¡£¡£¡££©£¿
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. ²ÌÍòîÈ ÓÚ 2009-06-05 18:24:14·¢±í:

    ʹÓ÷Ç×èÈûIO

    ʹÓà MSG_NONBLOCK ±êÖ¾µ÷ÓÃ

    ÇëÊ×ÏÈʹÓà poll()

    ¾ßÌå´úÂ룺

    pollfd pfd ;
    pfd.fd = ÏûÏ¢ÁжÓÃèÊö·û
    pfd.event = POLLIN;

    ret = poll(&pfd,1, ³¬Ê±µÄºÁÃëÊýÖµ ) ;

    if( ret == 0) //³¬Ê±
    £û
    //³¬Ê±µÄ°¡
    £ýelse if (ret ==1)
    {
    // ¿ÉÒÔ¶ÁÈ¡ÏûÏ¢ÁË
    ret = revcform( ....... . MSG_NONBLOC);
    Õâ¸ö MSG_NONBLOCºÜÖØÒªµÄŶ¡£Òì²½ IOµÄ»ù´¡¡£
    switch(ret)
    { //ÂýÂý case °É
    }
    }