我被告知不要在c++程序中包括像c++这样的C头,而是使用<cstdio>
等。如何在不包括struct timeval
的情况下获得<sys/time.h>
替代问题,除了在POSIX系统上使用select/ C++11之外,还有其他选择吗?
发布于 2013-08-19 20:22:29
<cstdio>
和类似的是C标准库的C++变体。<sys/time.h>
根本不是C标准库的一部分(它是certan OS的POSIX接口的一部分),所以不存在C++特定的sys/ctime
,所以您只需要使用与C中相同的头文件。
拥有C样式和C++样式头的主要原因是将extern "C"
应用于头文件中声明的函数。在某些系统中,可能需要像这样包装函数:
extern "C" {
#include <sys/time.h>
}
但是在我的Linux系统中,它会在标准的<sys/time.h>
文件中这样做。
发布于 2013-08-19 20:28:27
<cstdio>
是C库<stdio.h>
的C++变体。区别在于C版本是在全局命名空间中定义的。
您可以在这里看到这些标题的列表:http://www.cplusplus.com/reference/clibrary/
<sys/time.h>
不是标准库的一部分,因此在C++中没有等效的部分。你只需要像在C中那样使用它。
https://stackoverflow.com/questions/18322408
复制相似问题