X-Spam-Check-By: sourceware.org Date: Fri, 21 Apr 2006 14:17:13 +0200 From: Samuel Thibault To: cygwin AT cygwin DOT com Subject: Re: htonl, htons, ntohl and ntohs types Message-ID: <20060421121713.GB4189@implementation> Mail-Followup-To: cygwin AT cygwin DOT com References: <20060421092508 DOT GA15855 AT tuxedo DOT skovlyporten DOT dk> <20060421100000 DOT GC12661 AT calimero DOT vinschen DOT de> <20060421121151 DOT GA16022 AT tuxedo DOT skovlyporten DOT dk> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20060421121151.GA16022@tuxedo.skovlyporten.dk> User-Agent: Mutt/1.5.11 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Lars Munch, le Fri 21 Apr 2006 14:11:51 +0200, a écrit : > On Fri, Apr 21, 2006 at 12:00:00PM +0200, Corinna Vinschen wrote: > > On Apr 21 11:25, Lars Munch wrote: > > > Hello > > > > > > I have noticed that the types of the functions htonl, htons, ntohs and > > > ntohl differs from standard (and linux): > > > > > > http://www.opengroup.org/onlinepubs/000095399/functions/htonl.html > > > > > > Cygwin uses: > > > > > > unsigned long int ntohl(unsigned long int); > > > unsigned short int ntohs(unsigned short int); > > > unsigned long int htonl(unsigned long int); > > > unsigned short int htons(unsigned short int); > > > > > > The standard (and Linux) has: > > > > > > uint32_t htonl(uint32_t hostlong); > > > uint16_t htons(uint16_t hostshort); > > > uint32_t ntohl(uint32_t netlong); > > > uint16_t ntohs(uint16_t netshort); > > > > > > Is there any reason for this difference? > > > > Nobody had a problem so far? > > > > Fixed in CVS. > > Wow, that was fast. Thanks! > > My code still gives me warnings due to a problem with stdint.h. > > The Xint32_t typedef's uses long instead of int: That's on purpose: on windows, ints are 16bits. If you need something like printing uint32_t-s, use "%"PRIx32 for instance. Regards, Samuel -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/