[ProgClub list] Memory management in C

John Elliot jj5 at progclub.org
Sun Oct 2 04:38:21 AEDT 2011


On 2/10/2011 4:28 AM, Asher Glynn wrote:
> The real condemnation (for me) is around using libraries in C - even if you
> are a good C developer, you'll get a hell of a shock when you go to look at
> some APIs...

I'm just starting to discover that myself. For instance, the other day I 
learned how to set socket options and it's with an API call like this:

   struct linger linger;
   linger.l_onoff = 1;
   linger.l_linger = 5;
   if ( setsockopt( conn_s, SOL_SOCKET, SO_LINGER, &linger, sizeof( 
linger ) ) < 0 ) {
     fprintf( stderr, "Error setting socket option.\n" );
     exit( EXIT_FAILURE );
   }

How nasty is that!?

The setsockopt function takes a few parameters and then a void pointer 
to its option-specific argument the content of which it must interpret 
based on what other parameters you've specified.

Nasty!

I have no doubt that some APIs are even worse than this.



More information about the list mailing list