From owner-freebsd-hackers@FreeBSD.ORG Sun May 8 19:18:49 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D865A16A4E6 for ; Sun, 8 May 2005 19:18:49 +0000 (GMT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 744C043D8F for ; Sun, 8 May 2005 19:18:49 +0000 (GMT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.13.1/8.13.3) id j48JIlVd087404; Sun, 8 May 2005 14:18:47 -0500 (CDT) (envelope-from dan) Date: Sun, 8 May 2005 14:18:47 -0500 From: Dan Nelson To: ChenMing Message-ID: <20050508191846.GA38839@dan.emsphone.com> References: <0IG400A5VLW94V@szxml01-in.huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0IG400A5VLW94V@szxml01-in.huawei.com> X-OS: FreeBSD 5.4-STABLE X-message-flag: Outlook Error User-Agent: Mutt/1.5.8i cc: freebsd-hackers@freebsd.org Subject: Re: doubt: msgrcv not return EAGAIN? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 May 2005 19:18:50 -0000 In the last episode (May 07), ChenMing said: > 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? I think the manpage is incorrect. -- Dan Nelson dnelson@allantgroup.com