社区
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 流的 操作 更好用些。
...全文
340
7
打赏
收藏
C++ 中有没有类似的 popen
popen 是C的函数,返回 FILE* 指针, 实现执行一个命令 并 把 该命令的输出结果从定向到 FILE* 指向的文件里。 那 C++ 有没有相应类似的函数 ,实现 执行一个 linux 命令,并把输出结果 重定向到 一个 I/O 流。。就像 ifstream 打开文件 得到 I/O 流?而不是得到FILE*, 我觉得 对 C++ 中I/O 流的 操作 更好用些。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
恳请 各位大虾指教
跨平台实现异步执行命令,
类似
popen
,可同时读写
跨平台实现异步执行命令,
类似
popen
,可同时读写
重新实现
popen
和system函数
重写系统提供的system和
popen
函数,在fork之后关闭所有的从3到最大的文件描述符
popen
:一个
类似
于 DSL 前端的 shell,用于 subprocess.
Popen
弹出 它是什么?
popen
包在 python
中
提供了一个简单的
类似
shell 的语法来运行外部命令。 特征: 链接(又名管道)为Sh('ls') | 'sort' Sh('ls') | 'sort' 将标准错误重定向到标准输出作为Sh('make').include_stderr | 'wc' Sh('make').include_stderr | 'wc' 将输出重定向到文件Sh('ls') > '~/listing.txt' 对输出行for line in Sh('ls'):迭代,如for line in Sh('ls'): 将输入流式传输到链
中
的命令
中
作为Sh.pipe('~/listing.txt').Sh('grep', '-q', 'code').returncode 扩展特殊字符 ( ~*!? ) 将 env vars ( $HOME ) 扩展为pri
关于读取
popen
输出结果时未截断字符串导致的命令行注入详解
主要给大家介绍了关于读取
popen
输出结果时未截断字符串导致的命令行注入的相关资料,文
中
通过图文及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
获取命令行输出内容
C++
写的代码 关于获取命令行输出内容的 希望对大家有所帮助
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章