LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1476|回复: 2

请问在shell提示符下执行脚本程序, 和在C程序中调用system()执行脚本程序有什么不同

[复制链接]
发表于 2009-9-10 16:48:16 | 显示全部楼层 |阅读模式
请问在shell提示符下执行脚本程序, 和在C程序中调用system()执行脚本程序有什么不同.
因为我的系统没有虚拟内存,在C程序中通过system()来执行脚本,系统会告知空间不够, 但在 shell提示符下执行脚本程序确是正常的.为什么?

是不是因为脚本程序是解释性程序, 每执行一条命令后,就释放空间.

而在system() 通过gcc 编译后脚本程序就不再是解释性程序?

请指教.. 谢谢
发表于 2009-9-11 13:24:11 | 显示全部楼层
“脚本程序”就是脚本,不管是用脚本(shell)来调用,还是用编译的程序(C语言)来调用。
“空间不够”可能依赖于C语言本身编译后使用多大的堆和栈空间。
回复 支持 反对

使用道具 举报

发表于 2009-9-11 21:14:51 | 显示全部楼层
system()会把参数指向的字符串传给sh(1)解释,不巧sh(1)又会fork一个子shell执行该脚本。

你可以数数,你用来执行该C程序所在的shell,它fork了几个子进程...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表