[ILUG] tough programming q's (was: Re: [ILUG] Re: off-topic.....)

Harry Moreau hmoreau at iona.com
Mon Apr 19 18:06:50 IST 1999


On Mon, 19 Apr 1999, kevin lyda wrote:

>programming question: i'm looking for a blocking read/recv call that
>times out.  it would be best if it didn't involve signals.  ideas?

select() is probably your only option.  Using signals is indeed a bad idea,
because you can't control the exact point at which your read() gets interrupted
by the timeout.

>also, i'm looking for this for efficiency reasons.  if i did it
>with a select and then a read it will involve more data copying
>under linux, yes?  

I don't think so.  select() doesn't actually read data.

>what about other unicies?  it would be nice if the
>solution was portable (possibly expressed using ACE).

select() is available on most modern UNIX systems.  However,
you may find slight differences in implementation, especially in error
conditions.  Read the man pages carefully.

--
-- Harry Moreau -------------




More information about the ILUG mailing list