[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <50052FFE.2060109@pu-pm.univ-fcomte.fr>
Date: Tue, 17 Jul 2012 11:27:26 +0200
From: Eugen Dedu <Eugen.Dedu@...pm.univ-fcomte.fr>
To: linux-kernel@...r.kernel.org
Subject: getsockopt/setsockopt with SO_RCVBUF and SO_SNDBUF "non-standard"
behaviour
Hi all,
I looked on Internet and at the old thread
http://lkml.indiana.edu/hypermail/linux/kernel/0108.0/0275.html, but the
issue is still not settled as far as I see.
I need to have the highest memory available for snd/rcv buffer and I
need to know/confirm how much it allocated for my process (how much I
can use).
So with Linux we need to do something like:
setsockopt (..., SO_RCVBUF, 256000, ...)
getsockopt (..., SO_RCVBUF, &i, ...)
i /= 2;
where i is the size I am looking for.
Now, to make this code work for other OSes it should be changed to:
setsockopt (..., SO_RCVBUF, 256000, ...)
getsockopt (..., SO_RCVBUF, &i, ...)
#ifdef LINUX
i /= 2;
#endif
First question, is this code correct? If not, what code gives the
amount of memory useable for my process?
Second, it seems to me that linux is definitely "non-standard" here.
Saying that linux uses twice as memory has nothing to do with that,
since getsockopt should return what the application can count on, not
what is the internal use. It is like a hypothetical malloc (10) would
return not 10, but 20 (including meta-information). Is that right?
Cheers,
--
Eugen Dedu
http://eugen.dedu.free.fr
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists