Thread: arithmetic about inet

arithmetic about inet

From
fanng yuan
Date:
I got some point from others.I already red and debug network.c . Now I now the basic logic behind that. But still I'm confused by arithmetic. I find some comments on that , I need some one's help.

/*
 * int
 * bitncmp(l, r, n)
 * compare bit masks l and r, for n bits.
 * return:
 * -1, 1, or 0 in the libc tradition.
 * note:
 * network byte order assumed.  this means 192.5.5.240/28 has
 * 0x11110000 in its fourth octet.
 * author:
 * Paul Vixie (ISC), June 1996
 */

Why we finish it in this way. Can you help me?

Re: arithmetic about inet

From
tomas@tuxteam.de
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, Mar 08, 2010 at 09:47:00AM +0800, fanng yuan wrote:
> I got some point from others.I already red and debug network.c . Now I now
> the basic logic behind that. But still I'm confused by arithmetic. I find
> some comments on that , I need some one's help.
> 
> /*
>  * int
>  * bitncmp(l, r, n)
>  * compare bit masks l and r, for n bits.
>  * return:
>  * -1, 1, or 0 in the libc tradition.
>  * note:
>  * network byte order assumed.  this means 192.5.5.240/28 has
>  * 0x11110000 in its fourth octet.
>  * author:
>  * Paul Vixie (ISC), June 1996
>  */
> 
> Why we finish it in this way. Can you help me?

Sorry, I don't understand your question. Are you asking: why this return
value?

If that is your question then: Paul Vixie is referring to the function
strcmp() from libc: it returns an integer less than 0 if the first string
is "less" than the second, 0 if both are equal and an integer greater
than 0 if the second string is "greater" than the first.

This is a very handy convention, which you can see at work in Kerninghan
& Ritchie's classical "Programming in C".

Now I hope I understood your question right :-)

Regards
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFLlJYbBcgs9XrR2kYRAgebAJ9f9VtjwfYjBUtKvxG4iFQCqisnzACfdBe2
y+giKF0WENVEXgbhCPtYs2Q=
=uLJS
-----END PGP SIGNATURE-----