0

我们在 Linux 中使用 api int getrusage(int who, struct rusage *usage);来计算代码中的时间。

我们在这个 api 中使用常量 RUSAGE_THREAD 作为调用线程的参数。如手册页所述,自 Linux 2.6.26 以来引入了 RUSAGE_THREAD。

我们还在 cygwin 环境中使用 cywin64 gcc4.8.2 编译我们的代码。我检查了 C:/cygwin64/ 中的头文件 /usr/include/sys/resource.h ,我似乎找不到在那里定义的 RUSAGE_THREAD ,它只定义了 RUSAGE_SELF 和 RUSAGE_CHILDREN 。我正在使用 cygwin64 (CYGWIN_NT-6.2 1.7.29(0.272/5/3) 2014-04-07 13:46 x86_64 Cygwin)。我还尝试查看最新的 cygwin 版本,但似乎也无法在那里找到它。所以我的问题是,cygwin 是否支持 RUSAGE_THREAD ?如果没有,那么是否有计划添加此支持?

提前致谢。

4

1 回答 1

1

它不是,主要是因为它不是 POSIX 标准的一部分

https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_resource.h.html

<sys/resource.h> 头文件应定义以下符号常量作为 getrusage() 的 who 参数的可能值:

RUSAGE_SELF
返回有关当前进程的信息。
RUSAGE_CHILDREN
返回有关当前进程子进程的信息。

一般来说,要向 Cygwin 添加任何功能,需要遵循两个基本原则:

https://cygwin.com/acronyms/#SHTDI
https://cygwin.com/acronyms/#PTC

cygwin 和 cygwin-developers 邮件列表是询问您是否打算贡献
https://cygwin.com/lists.html的好地方

于 2021-05-27T05:18:52.420 回答