在C++中执行unix命令
Executing unix commands in C++
有没有办法在C++中使用unix"time"命令并将其每个输出存储在一个变量中?
编辑:如果没有办法,那么在bash脚本中调用time并以某种方式存储返回的值怎么样?
谢谢!
假设您在UNIX上,那么C++标准std::system
函数的行为将与POSIX中定义的一样,即执行与sh
一样的命令。在此之前,您可以将自己的stdin
和stdout
连接到本地管道,方法是首先使用dup
创建STDIN_FILENO
和STDOUT_FILENO
的别名,然后使用close
创建上述文件描述符,再使用pipe
在新释放的描述符上打开管道。
然后您可以与std::cin
和std::cout
进行交互。好吧,在开始之前刷新C++接口是个好主意。
不过,这并不是一个好主意。使用POSIXC接口直接获取相关数据应该更简单。
如果您可以使用Boost库,那么应该这样做http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/examples.html#date_time.examples.seconds_since_epoch
好的部分是它还处理时区转换:)
您可以使用system(3)
或popen(3)
,但几乎总是有一个更好、更可移植和本机的解决方案,这取决于您正在寻找什么。在您的特定情况下,它似乎是您真正想要的getrusage(2)
和ftime(3)
的组合。
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 在UNIX系统中使用DIR查找文件的字节大小
- 当套接字连接断开时检测C/C++Unix
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- unix命令带有C
- 具有读写功能的 UNIX 管道系统可执行"ls -la"命令
- 如何在Unix Shell中的后台执行命令
- qmake为win32-g++平台生成的Makefile包含unix命令
- Execlp()不接受参数列表,只接受命令.UNIX/LINUX编程
- Unix 命令行在编译后无法运行程序,没有错误消息
- 函数的多个声明使命令 UNIX
- 在C++中执行unix命令
- 在 C++ 文件上的 Windows 环境中运行 Unix 类似命令"./a.out <data.txt"
- 如何从Unix命令行安装c和c++编译器,然后与Eclipse一起使用
- 在unix平台上使用curses检测c++中的箭头键输入在调用系统命令后不起作用
- 如何创建任何定制的Unix命令
- 使用fork、execvp执行UNIX命令