Преглед на файлове

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 години
родител
ревизия
ca9aff6a16
променени са 1 файла, в които са добавени 3 реда и са изтрити 0 реда
  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
 }