Chinaunix
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
[打印本页]
作者:
dontknowall
时间:
2003-04-29 14:55
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
请问FD_SET,FD_ISSET这些函数是什么意思
作者:
蓝色键盘
时间:
2003-04-29 15:08
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
FD_SET 打开类型fd_set的某一位
FD_ZERO初始化fd_set
FD_ISSET测试结构fd_set中的描述字
作者:
1122331
时间:
2003-04-29 15:22
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
直接到vc98/include的文件中查找他们就可以找到代码。
作者:
dontknowall
时间:
2003-04-29 15:23
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
fd_set有是什么东西
作者:
1122331
时间:
2003-04-29 15:29
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif /* FD_SETSIZE */
typedef struct fd_set {
u_int fd_count; /* how many are SET? */
SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */
} fd_set;
extern int PASCAL FAR __WSAFDIsSet(SOCKET, fd_set FAR *);
#define FD_CLR(fd, set) do { \
u_int __i; \
for (__i = 0; __i < ((fd_set FAR *)(set))->;fd_count ; __i++) { \
if (((fd_set FAR *)(set))->;fd_array[__i] == fd) { \
while (__i < ((fd_set FAR *)(set))->;fd_count-1) { \
((fd_set FAR *)(set))->;fd_array[__i] = \
((fd_set FAR *)(set))->;fd_array[__i+1]; \
__i++; \
} \
((fd_set FAR *)(set))->;fd_count--; \
break; \
} \
} \
} while(0)
#define FD_SET(fd, set) do { \
u_int __i; \
for (__i = 0; __i < ((fd_set FAR *)(set))->;fd_count; __i++) { \
if (((fd_set FAR *)(set))->;fd_array[__i] == (fd)) { \
break; \
} \
} \
if (__i == ((fd_set FAR *)(set))->;fd_count) { \
if (((fd_set FAR *)(set))->;fd_count < FD_SETSIZE) { \
((fd_set FAR *)(set))->;fd_array[__i] = (fd); \
((fd_set FAR *)(set))->;fd_count++; \
} \
} \
} while(0)
#define FD_ZERO(set) (((fd_set FAR *)(set))->;fd_count=0)
#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR *)(set))
复制代码
作者:
蓝色键盘
时间:
2003-04-29 15:35
标题:
请问FD_SET,FD_ISSET这些函数是什么意思
typedef int32_t __fd_mask;
#define _NFDBITS (sizeof(__fd_mask) *
/* 8 bits per byte */
#define __howmany(x,y) (((x)+((y)-1))/(y))
#ifndef _FD_SET
# define _FD_SET
typedef struct __fd_set {
long fds_bits[__howmany(FD_SETSIZE, (sizeof(long) *
)];
} fd_set;
# ifndef _KERNEL
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
#ifdef _INCLUDE_HPUX_SOURCE
# define FD_SET(n,p) (((__fd_mask *)((p)->;fds_bits))[(n)/_NFDBITS] |= (1 <<
((n) % _NFDBITS)))
# define FD_CLR(n,p) (((__fd_mask *)((p)->;fds_bits))[(n)/_NFDBITS] &= ~(1 <<
((n) % _NFDBITS)))
# define FD_ISSET(n,p) (((__fd_mask *)((p)->;fds_bits))[(n)/_NFDBITS] & (1 <<
((n) % _NFDBITS)))
# define FD_ZERO(p) memset((void *)(p), (int) 0, sizeof(*(p)))
#else
# define FD_SET(n,p) (__fd_set1(n, p))
# define FD_CLR(n,p) (__fd_clr(n, p))
# define FD_ISSET(n,p) (__fd_isset(n, p))
# define FD_ZERO(p) memset((void *)(p), (int) 0, sizeof(fd_set))
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2