从c++中的exec命令中获取字符串输出
Getting the string(s) output from an exec command in C++
我的问题很简单,但我似乎找不到任何直接或具体到我想做的事情。我只是简单地使用execl来列出当前文件夹中遵循相同模式的文件(即execl("ls nameOfFile*.txt"))。我现在要做的是获取这些文件名,这样我就可以遍历并从中获取数据。有什么简单的方法吗?我用对执行官了吗?
谢谢你的帮助和提示。
execl
的签名为
int execl(const char *path, const char *arg, ...);
您应该将可执行文件的路径作为第一个参数传递,并将可执行文件的参数作为后续参数传递,因此您的调用语法是错误的。即使你解决了这个问题,它仍然不会像你想的那样。execl
和友元将控制权返回给调用程序的唯一方式是发生错误。这个答案很好地解释了execl
的作用。
您可能想到了std::system
,您可以向其传递任意字符串,并让操作系统执行该命令。虽然这将把文件名打印到stdout,但这仍然不是您想要的,因为system
返回执行您指定的命令行导致的错误代码,它无法捕获和返回命令可能写入stdout的任何内容。
不幸的是,c++标准库(目前)中没有任何东西允许您从文件系统中列出和迭代文件。首选的跨平台方法是使用Boost.Filesystem。除此之外,还有一些特定于平台的api可用,在本回答中列出了它们,以及一个Boost使用示例。
相关文章:
- 获取字符串的长度并将其分配给数组
- 调用CreateProcess()并获取字符串的返回值
- 你如何从 Boost Spirit X3 词法解析器中获取字符串?
- 使用 ReadProcessMemory 获取字符串值的访问冲突
- 如何从输入中获取字符串向量?
- 如何获取字符串输入n次?
- property_tree获取字符串形式的数组值
- 使用 ctypes 和 wchar_t 时如何从 C++ 获取字符串到 python?
- 获取字符串大小的各种方法之间的比较
- 方法获取字符串
- 在getline()之后获取字符串
- 为什么我的拆卸C 代码使用指令指针和偏移来获取字符串文字
- 无法使用 Poco 获取字符串的路径
- 如何在qtablewidget中获取字符串的行号
- 如何获取字符串和字节进行比较
- 恒定字符阵列的获取字符串长度函数(strlen)不是恒定表达式
- 我需要创建一个函数来获取字符串中的这些数字
- 如何从地址获取字符串?
- 为什么即使尚未初始化,获取字符串[0]也是有效的?
- 获取C++字符串的位