免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1718 | 回复: 6

[其他] 请问$()底层的实现是怎样的? [复制链接]

论坛徽章:
5
双鱼座
日期:2013-11-26 17:56:26狮子座
日期:2013-11-29 15:41:32处女座
日期:2014-02-21 11:59:07技术图书徽章
日期:2014-03-06 15:33:53技术图书徽章
日期:2014-03-06 15:39:30
发表于 2013-07-03 11:16 |显示全部楼层
本菜鸟目前打算写一个程序,shell调用2个进程之间的通讯,然后这个不太清楚是不是应该直接把数据放到一个文件里去(开销是内核写入磁盘可能时间会长)或者是用c++写一个程序,开辟一块共享内存空间,然后用返回的数据放到另一个值当中去(共享内存直接在内存当中读入取出,速度应该还是很快的,但是也要加上调用另外一个进程的开销,和进程返回的值放入到另外的一个shell变量当中去的开销)。这2种方法究竟哪一种用时比较少呢?

方法一:
echo aaa> aa.txt

方法二:
local retVal=$(sharedMem)

感谢各位大侠。

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
发表于 2013-07-03 11:41 |显示全部楼层
文件在写入硬盘之前不是也在内存中吗?

论坛徽章:
5
双鱼座
日期:2013-11-26 17:56:26狮子座
日期:2013-11-29 15:41:32处女座
日期:2014-02-21 11:59:07技术图书徽章
日期:2014-03-06 15:33:53技术图书徽章
日期:2014-03-06 15:39:30
发表于 2013-07-03 11:58 |显示全部楼层
回复 2# cao627


    但是另外一个进程需要从文件当中读出数据啊,这个时间的开销应该是很大的。

论坛徽章:
5
双鱼座
日期:2013-11-26 17:56:26狮子座
日期:2013-11-29 15:41:32处女座
日期:2014-02-21 11:59:07技术图书徽章
日期:2014-03-06 15:33:53技术图书徽章
日期:2014-03-06 15:39:30
发表于 2013-07-03 12:24 |显示全部楼层
我好像感觉用$()使用管道,然后用echo aa| grep aa这种形式通讯的好像是用共享内存的方式。。

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
发表于 2013-07-03 12:32 |显示全部楼层
另外一个进程也许读取的不是硬盘中的文件,而是内存中的文件缓存呢?
对系统原理不是很了解?但系统因该不会为了区区几个字符在硬盘上来回奔波。但两个进程共用文件的话也许就是这么奔波的。不清楚。

论坛徽章:
5
双鱼座
日期:2013-11-26 17:56:26狮子座
日期:2013-11-29 15:41:32处女座
日期:2014-02-21 11:59:07技术图书徽章
日期:2014-03-06 15:33:53技术图书徽章
日期:2014-03-06 15:39:30
发表于 2013-07-03 13:20 |显示全部楼层
回复 5# cao627


    我这边只是举个例子,实际上数据大约有几千个字节这样的。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-03 16:04 |显示全部楼层
$(COMMAND) 跟 `COMMAND`是一样的效果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP