免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1403 | 回复: 7
打印 上一主题 下一主题

有什么好的方法吗 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-11 17:56 |只看该作者 |倒序浏览
大家有什么好的方法把system的输出(而不是返回值)保存到一个变量中呢?

论坛徽章:
0
2 [报告]
发表于 2007-06-11 18:02 |只看该作者
  1. system("ls / > /tmp/output");
复制代码

请注意,在 C 语言的上下文中讨论 “system() 的输出” 是没有意义的,system() 执行的是一组命令。更确切地说,system() 唯一的参数将被送往命令解释器 sh(1)

论坛徽章:
0
3 [报告]
发表于 2007-06-11 18:09 |只看该作者
其实我的目的是想测试某个目录下有没有特定的文件。
例如:检查/home/test 目录下有没有 *.tmp文件。
有什么简单的方法来检查吗。

如果把这个目录下的所有文件都一一取出来,再过滤的话比较麻烦。

看看版主有什么高见。

谢谢啊

论坛徽章:
0
4 [报告]
发表于 2007-06-11 18:11 |只看该作者
用 stat() 可以检查文件的存在性
如果有通配符,则应当对通配符进行解析。用 opendir() 打开所在目录,循环 readdir() 一次,看是否有匹配的目录项即可(此处需要解析通配符)。

[ 本帖最后由 langue 于 2007-6-11 18:19 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-06-11 18:16 |只看该作者
有兴趣可以试试用 glob() 生成一份适合通配符的路径名列表。

[ 本帖最后由 langue 于 2007-6-11 18:19 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-06-11 18:19 |只看该作者
注:需要对 “统配符” 进行修正。Wildcard character 正式的中文译名是 “通配符”

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2007-06-11 18:27 |只看该作者
原帖由 sx_boss 于 2007-6-11 17:56 发表
大家有什么好的方法把system的输出(而不是返回值)保存到一个变量中呢?

怎么对 system(3) 这么情有独钟?popen(3) 不好使么?

论坛徽章:
0
8 [报告]
发表于 2007-06-11 18:31 |只看该作者
原帖由 MMMIX 于 2007-6-11 18:27 发表

怎么对 system(3) 这么情有独钟?popen(3) 不好使么?


请别怀疑,很多人刚开始学的时候极有可能这样想。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP