This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Question about pselect interface



Hi,

I've found two different definitions for pselect:
We use in glibc 2.1:
extern int pselect __P ((int __nfds, __fd_set *__readfds,
                         __fd_set *__writefds, __fd_set *__exceptfds,
                         struct timespec *__timeout));

and Stevens has (Unix Network Programming, Volume 1, 2nd Ed., 1998, p. 168):

int pselect (int maxfdp1, fd_set *readset, fd_set *writeset, 
	     fd_set *exceptset, const struct *timespec, const sigset_t *sigmask);

Stevens states that this is "Posix.1g".  AFAIK Posix.1g is still not
released and therefore I'd like to know what the "right" interface is.

The differences between the definitions are:
- _const_ struct timespec * versus struct timespec *
- additional paramter *sigmask.  Stevens writes: "pselect adds a sixth 
  argument: a pointer to a signal mask.  This allows the program to
  disable the delivery of certain signals, test some global variables
  that are set by the handlers for these now-disabled signals, and
  then call pselect, telling it to reset the signal mask."

Has anybody access to the latest version of Posix.1g and can clarify
who's right?

Andreas

P.S. My `make; make check; make install' test of glibc 2.0.7 was
successful on Linux 2.1.113/i486 with egcs current.
-- 
 Andreas Jaeger   aj@arthur.rhein-neckar.de    jaeger@informatik.uni-kl.de
  for pgp-key finger ajaeger@alma.student.uni-kl.de


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]