当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [solved]新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-20 11:33 
头像

注册: 2013-02-06 21:17
帖子: 45
系统: Fedora newest
送出感谢: 0 次
接收感谢: 0 次
老实说我这种习惯c++面向对象方法的人读 advanced programming Unix environment 真的很吃力,对stdlib 和unistd 一点都不熟悉。我在用系统调用的时候很疑惑,感觉不管是exec 系列还是system()函数都是用shell去调用一个新程序,但我却始终不太明白shell在unix和类unix中的地位究竟如何。难道它与内核深度整合,但是人们又说shell高级语言的效率当然低于低级语言的效率,既然如此那不是exec系统调用对shell的依赖很强,效率也不高?那么,是否存在不通过shell来运行一个程序的方法呢?


_________________
Like a fool,I'm foolish enough.


最后由 ifoolb 编辑于 2013-02-21 16:33,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-21 1:47 

注册: 2010-10-12 23:52
帖子: 70
送出感谢: 1
接收感谢: 0 次
shall是供用户(人)来操作系统用的。

在shall中启动一个新程序时,首先会fork()一个新进程,然后通过exec()系统调用执行相应的ELF文件。

在程序中直接fork的话,不就是不通过shall来运行一个程序了么。
同上,shall本身也是个程序,这就是由一个程序来启动另一个程序。


_________________
Use Vim or Emacs? It's a problem!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-21 9:17 
头像

注册: 2009-03-28 16:10
帖子: 1849
系统: Arch debian win7
送出感谢: 10
接收感谢: 70
引用:
感觉不管是exec 系列还是system()函数都是用shell去调用一个新程序

把感觉当事实,这就是你纠结的原因所在。为什么我搜索的结果是exec在shell里面执行程序,system()不需要通过shell调用呢?


_________________
为什么我的问题总是没有人回答?

金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-21 9:54 

注册: 2012-08-21 18:17
帖子: 116
送出感谢: 0 次
接收感谢: 8
exec不是通过shell执行的,system才是用shell执行的。APUE讲了exec函数族


_________________
我是一个程序员。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-21 16:31 
头像

注册: 2013-02-06 21:17
帖子: 45
系统: Fedora newest
送出感谢: 0 次
接收感谢: 0 次
buzzerrookie 写道:
exec不是通过shell执行的,system才是用shell执行的。APUE讲了exec函数族

非常感谢你的解答。
我的学的比较粗浅,advanced programming unix environment 我读起来很费力,已经放弃了。现在在读the linux programming interface,虽然我英语也不好,但是该书讲的很细致,可读性更强,就是篇幅非常的大,1500页左右,目前我只看了百多页。


_________________
Like a fool,I'm foolish enough.


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [solved]新手再请教一下,关于系统调用的问题。
帖子发表于 : 2013-02-21 20:32 

注册: 2012-08-21 18:17
帖子: 116
送出感谢: 0 次
接收感谢: 8
推荐先看看 《The UNIX Programming Environment》(中译本《UNIX编程环境》),然后再看APUE也不迟。


_________________
我是一个程序员。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译