免费注册 查看新帖 |

Chinaunix

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

关于system的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-15 10:58 |只看该作者 |倒序浏览
在做嵌入式软件的应用层开发时候,如果我的一个部分频繁的使用system系统调用,以后程序运行到这里时候会怎么样?
我主要用系统调用进行 复制和移动文件(夹)。嵌入式的内存不多,30M内。

论坛徽章:
0
2 [报告]
发表于 2010-12-15 11:16 |只看该作者
没运行一次system命令,相当于fork一个shell出来,性能损失比较大。
在嵌入式设备里面不要频繁调用system命令。
移动文件可以用link unlink代替,复制文件的话自己可以写一个。
或者使用别的手段(如内部缓冲)降低调用次数。

论坛徽章:
0
3 [报告]
发表于 2010-12-15 14:42 |只看该作者
用popen代替

论坛徽章:
0
4 [报告]
发表于 2010-12-15 17:48 |只看该作者
link和unlink也是系统调用,如果涉及到文件的操作的话,避免不了去进行系统调用的

论坛徽章:
0
5 [报告]
发表于 2010-12-15 18:04 |只看该作者
系统调用不能避免,但可以避免fork exec带来的开销。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
6 [报告]
发表于 2010-12-15 20:54 |只看该作者
还是不要频繁调用system

论坛徽章:
0
7 [报告]
发表于 2010-12-15 21:05 |只看该作者
system不是系统调用 --!

论坛徽章:
0
8 [报告]
发表于 2010-12-16 00:01 |只看该作者
回复 7# davelv

不用system可以减少系统调用,也可以减少对资源的占用。

论坛徽章:
0
9 [报告]
发表于 2010-12-16 09:43 |只看该作者
回复 2# davelv


    system函数都做了哪些工作呀?能不能解释清楚点,谢谢。
   
   还有就是如果我想移动一个文件夹,文件夹内有内容,自己用哪些函数比较好?{:3_190:}

论坛徽章:
0
10 [报告]
发表于 2010-12-16 10:39 |只看该作者
回复 9# d19890104
system函数调用过程可以参考APUE2,8.13节。

移动文件夹的话,只需要把目录的节点link()到指定位置,然后把原位置unlink()掉即可。但是有的系统不支持对于目录的link操作,这时候只能遍历目录,然后mkdir+link。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP