Jelajahi Sumber

add NFDBITS in sys/select.h with appropriate feature tests

the main use for this macro seems to be knowing the correct allocation
granularity for dynamic-sized fd_set objects. such usage is
non-conforming and results in undefined behavior, but it is widespread
in applications.
Rich Felker 11 tahun lalu
induk
melakukan
ca9aff6a16
1 mengubah file dengan 3 tambahan dan 0 penghapusan
  1. 3 0
      include/sys/select.h

+ 3 - 0
include/sys/select.h

@@ -32,6 +32,9 @@ typedef struct
 int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict);
 int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict);
 
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define NFDBITS (8*(int)sizeof(long))
+#endif
 
 #ifdef __cplusplus
 }