社区
Linux/Unix社区
帖子详情
C++ 中有没有类似的 popen
shouso888
2011-10-11 11:13:01
popen 是C的函数,返回 FILE* 指针, 实现执行一个命令 并 把 该命令的输出结果从定向到 FILE* 指向的文件里。
那 C++ 有没有相应类似的函数 ,实现 执行一个 linux 命令,并把输出结果 重定向到 一个 I/O 流。。就像 ifstream 打开文件
得到 I/O 流?而不是得到FILE*, 我觉得 对 C++ 中I/O 流的 操作 更好用些。
...全文
405
7
打赏
收藏
C++ 中有没有类似的 popen
popen 是C的函数,返回 FILE* 指针, 实现执行一个命令 并 把 该命令的输出结果从定向到 FILE* 指向的文件里。 那 C++ 有没有相应类似的函数 ,实现 执行一个 linux 命令,并把输出结果 重定向到 一个 I/O 流。。就像 ifstream 打开文件 得到 I/O 流?而不是得到FILE*, 我觉得 对 C++ 中I/O 流的 操作 更好用些。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
juliantec
2011-10-13
打赏
举报
回复
你需要用c++封装下 popen 之类的函数,可在 juliantec maillist 中提问。
shouso888
2011-10-13
打赏
举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]
在C板块回答你,你听不进去,真没办法。
[/Quote]
呵呵, 我很尴尬。。。我当时在两个板块同时发了这问题, 想想 要问就问到底吧,集思广益。。对你热情的
解答我很感谢的说。。恩,上次的答案我有 思考过, 已经很满意了。最近事多加上第一次发帖,没能及时结
贴, 再次感谢。。
qq120848369
2011-10-13
打赏
举报
回复
你非要用fstream做,办法如下:
步骤:
1,父进程open一个pid.txt文件,描述符n,直接Unlink pid.txt。
2,fork子进程,子进程dup2(n,STDOUT_FILENO),execl /bin/bash sh -c cmd .
3, 父进程wait子进程退出。
5,父进程fstream(pid.txt); 就可以读了。
6, 读完之后父进程close(n),父进程stream.close();
7,父进程退出,Unlink此时删除文件。
qq120848369
2011-10-13
打赏
举报
回复
在C板块回答你,你听不进去,真没办法。
shouso888
2011-10-12
打赏
举报
回复
[Quote=引用 2 楼 feiyinzilgd 的回复:]
引用楼主 shouso888 的回复:
popen 是C的函数,返回 FILE* 指针, 实现执行一个命令 并 把 该命令的输出结果从定向到 FILE* 指向的文件里。
那 C++ 有没有相应类似的函数 ,实现 执行一个 linux 命令,并把输出结果 重定向到 一个 I/O 流。。就像 ifstream 打开文件
得到 I/O 流?而不是得到FILE*, 我觉得 对 C++ 中I……
[/Quote]
嗯,谢谢你。现在我是希望在程序里 执行 linux 的 ps 命令,然后 获取 输出的信息。原打算用
popen,在用fgets 获取信息 ,并解析这行信息。。现在我希望 能 用 C++ 执行 ps 命令后 能 返回C++形
式的 I/O 流 取 得 ps 输出的信息? 如ifstream s(文件),获取到 s ,再对 流 s 进行解析。。该咋办较好?
谭海燕
2011-10-12
打赏
举报
回复
[Quote=引用楼主 shouso888 的回复:]
popen 是C的函数,返回 FILE* 指针, 实现执行一个命令 并 把 该命令的输出结果从定向到 FILE* 指向的文件里。
那 C++ 有没有相应类似的函数 ,实现 执行一个 linux 命令,并把输出结果 重定向到 一个 I/O 流。。就像 ifstream 打开文件
得到 I/O 流?而不是得到FILE*, 我觉得 对 C++ 中I/O 流的 操作 更好用些。
[/Quote]
Linux下 C++开发实际上就是C++ 结合 Linux C. 由于Linux系统api以及接口都是使用C语言实现的。
所以C++编程过程中一般都是遇到Linux特定的工作,比如你说的执行命令,都还是使用的C++内部封装C。
标准C++没有平台相关。
shouso888
2011-10-11
打赏
举报
回复
恳请 各位大虾指教
C++
popen
用法
本文介绍如何在
C++
中
使用
popen
函数来捕获并读取另一个
C++
可执行文件的输出结果。通过创建管道和子进程,
popen
能够执行shell命令并获取其输出,适用于需要根据子进程输出进行后续处理的情况。
c++
调用python程序(使用
popen
)
本文介绍了如何使用
C++
的
popen
函数调用Python程序,以解决Python程序打包慢、体积大的问题。通过
popen
,
C++
可以启动Python进程并进行数据交互,避免了使用文件作为
中
间媒介的复杂性和同步问题。文
中
给出了具体的函数定义和程序代码示例,并展示了在VS2015
中
的注意事项。
Linux
popen
跨进程调用
该博客围绕Linux
popen
跨进程调用展开,介绍了被调用代码sum.cpp和调用代码
popen
.cpp的编译命令,如g++ -o sum sum.cpp等。还进一步探讨了多线程与多进程情况,在编译
popen
.cpp时添加了 -lpthread选项。
linux
c++
popen
使用 多个命令,
c++
-
popen
()如何工作以及如何在Linux上将其实现为C ++代码? - 堆栈内存溢出...
本文介绍如何利用
popen
()函数从Linux子程序
中
捕获stdout到
C++
主程序,探讨了UNIX哲学原则及其对编程的影响,并通过实例展示了如何使用
popen
()与常用Linux工具交互。
c++
执行系统命令system 、
popen
本文详细介绍了如何在
C++
中
使用system()函数执行系统命令并讨论了非阻塞执行,以及
popen
函数的使用,包括保留换行符和去除换行符两种示例。,
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章