4

我被告知不要像<stdio.h>在 c++ 程序中那样包含 C 头文件,而是使用<cstdio>etc. 代替。struct timeval不包括我如何获得<sys/time.h>

替代问题,是否有任何 C++11 替代使用 select/poll(在 POSIX 系统上)?

4

2 回答 2

9

<cstdio>和类似的是 C 标准库的 C++ 变体。<sys/time.h>根本不是 C 标准库的一部分(它是某些操作系统的 POSIX 接口的一部分),因此没有特定于 C++ 的东西sys/ctime,所以不,您只需要使用与 C 中相同的头文件.

拥有 C 风格和 C++ 风格标头的主要原因是将 应用于标头文件中extern "C"声明的函数。在某些系统中,可能需要像这样包装函数:

 extern "C" {
 #include <sys/time.h>
 }

但在我的 Linux 系统中,它在标准<sys/time.h>文件中执行此操作。

于 2013-08-19T20:22:29.390 回答
0

<cstdio>是 C 库的 C++ 变体<stdio.h>。不同之处在于 C 版本是在全局命名空间中定义的。

您可以在此处查看这些标题的列表:http ://www.cplusplus.com/reference/clibrary/

<sys/time.h>不是标准库的一部分,因此在 C++ 中没有等价物。你只需要像在 C 中一样使用它。

于 2013-08-19T20:28:27.153 回答