有没有办法在C ++中使用unix'time'命令并将其每个输出存储在一个变量中?
编辑:如果没有办法,那么在bash脚本中调用时间并以某种方式存储返回的值呢?
谢谢!
答案 0 :(得分:1)
假设您在UNIX上,那么C ++标准std::system
函数将表现为defined in POSIX,即执行与sh
一样的命令。在执行此操作之前,您可以首先使用stdin
创建stdout
和dup
的别名,然后{STDIN_FILENO
,将您自己的STDOUT_FILENO
和close
连接到本地管道{1}}前面提到的文件描述符,然后pipe
在新释放的描述符上打开一个管道。
然后,您可以与std::cin
和std::cout
进行互动。好吧,在开始之前刷新C ++接口是个好主意。
但这并不是一个好主意。使用POSIX C接口直接获取相关数据应该更简单。
答案 1 :(得分:1)
如果你可以使用Boost库,那么应该这样做http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/examples.html#date_time.examples.seconds_since_epoch
好的部分是它还处理时区转换:)
答案 2 :(得分:0)
您可以使用system(3)
或popen(3)
,但几乎总是有更好,更便携和原生的解决方案,具体取决于您正在寻找的内容。在您的具体情况下,您似乎正在寻找getrusage(2)
和ftime(3)
的组合。