doubt: msgrcv not return EAGAIN?

ChenMing chenm at huawei.com
Sat May 7 08:30:40 PDT 2005


hello, hackers.
I use following line to recive message from message queue:

int ret;
ret = msgrcv(msgid, &msg, sizeof(msg), 0, IPC_NOWAIT) if (ret == -1) {
    if (errno == EAGAIN){
        // no message in queue
    }
    else{
        // here is an error occur
    }
}

but it sounds not works as my expected. It never return errno=EAGAIN,
however it return errno=ENOMSG instead, but msgrcv manual say its should
return EAGAIN. what's wrong?

thanks in advanced.




More information about the freebsd-hackers mailing list