[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: question on select & FD_ISSET



Junior <ejr@inbox.com> wrote:
> True, but it seems to me that if I FD_SET them at the top of the loop
> without FD_CLR first, I will be expanding the set unnecessarily which
> would waste memory (eventually run out).
> Since FD_SET adds the set and FD_CLR clears it from the list, FD_SET
> without FD_CLR would duplicate fds in the set. Not so?

It's good that you look out for memory leaks, but in this case there's
nothing to worry about.

fd_set is a fixed-size array of bits, indexed by the file descriptor
number.  FD_SET and FD_CLR just modify the fd's bit in that array.

It's so simple that it can't leak memory.  After you've created an fd_set,
its size never changes.

You can see its defition in /usr/include/sys/select.h.

-- 
Sebastian Kuzminsky
The universal acid of the true knowledge had burned away a world of words,
and exposed a universe of things.  Things we could use.  -- Ken MacLeod



Reply to: