c - 在“select.h”中找不到“FD_SET”函数声明
问题描述
我正在学习unix网络编程。我包含#include <sys/select.h>
并调用FD_SET
函数。当我gcc
手动运行时,代码可以成功编译。
问题是我的 IDEClion
无法识别FD_SET
,所以它不能帮助我在输入时自动完成其余代码FD_
。所以我检查了select.h
文件,我在文件中找不到FD_SET
声明。
这是select.h
我Mac上的源代码:
#ifndef _SYS_SELECT_H_
#define _SYS_SELECT_H_
#include <sys/appleapiopts.h>
#include <sys/cdefs.h>
#include <sys/_types.h>
/*
* [XSI] The <sys/select.h> header shall define the fd_set type as a structure.
* The timespec structure shall be defined as described in <time.h>
* The <sys/select.h> header shall define the timeval structure.
*/
#include <sys/_types/_fd_def.h>
#include <sys/_types/_timespec.h>
#include <sys/_types/_timeval.h>
/*
* The time_t and suseconds_t types shall be defined as described in
* <sys/types.h>
* The sigset_t type shall be defined as described in <signal.h>
*/
#include <sys/_types/_time_t.h>
#include <sys/_types/_suseconds_t.h>
#include <sys/_types/_sigset_t.h>
/*
* [XSI] FD_CLR, FD_ISSET, FD_SET, FD_ZERO may be declared as a function, or
* defined as a macro, or both
* [XSI] FD_SETSIZE shall be defined as a macro
*/
/*
* Select uses bit masks of file descriptors in longs. These macros
* manipulate such bit fields (the filesystem macros use chars). The
* extra protection here is to permit application redefinition above
* the default size.
*/
#include <sys/_types/_fd_setsize.h>
#include <sys/_types/_fd_set.h>
#include <sys/_types/_fd_clr.h>
#include <sys/_types/_fd_isset.h>
#include <sys/_types/_fd_zero.h>
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
#include <sys/_types/_fd_copy.h>
#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
__BEGIN_DECLS
#ifndef __MWERKS__
int pselect(int, fd_set * __restrict, fd_set * __restrict,
fd_set * __restrict, const struct timespec * __restrict,
const sigset_t * __restrict)
#if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT)
__DARWIN_EXTSN_C(pselect)
#else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */
# if defined(__LP64__) && !__DARWIN_NON_CANCELABLE
__DARWIN_1050(pselect)
# else /* !__LP64__ || __DARWIN_NON_CANCELABLE */
__DARWIN_ALIAS_C(pselect)
# endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */
#endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */
;
#endif /* __MWERKS__ */
#include <sys/_select.h> /* select() prototype */
__END_DECLS
#endif /* !_SYS_SELECT_H_ */
那么,我在哪里可以找到FD_SET
声明?我应该如何配置我的clion
以便它可以识别它?