社区
Linux/Unix社区
帖子详情
Linux创建进程的问题,请高手帮忙解答一下?
guoxuqu
2010-09-13 08:27:02
我们知道,linux中创建进程的方法有fork和exec;
其中fork时,通过复制调用进程来创建新的进程;
exec则是用一个新的程序覆盖原进程的内存空间,来实现进程的转变。
那能不能覆盖原进程,创建一个跟原进程不一样的进程,类似Windows的CreateProcess?
...全文
95
15
打赏
收藏
Linux创建进程的问题,请高手帮忙解答一下?
我们知道,linux中创建进程的方法有fork和exec; 其中fork时,通过复制调用进程来创建新的进程; exec则是用一个新的程序覆盖原进程的内存空间,来实现进程的转变。 那能不能覆盖原进程,创建一个跟原进程不一样的进程,类似Windows的CreateProcess?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guoxuqu
2010-09-13
打赏
举报
回复
system我知道,但他要调用Shell,我觉得效率不好。问题我搞懂了,谢谢各位帮忙。
wwwunix
2010-09-13
打赏
举报
回复
我看了一下Windows下对CreateProcess的解释。其实就是fork+exec,功能是一样的。
如果你一定要求用一条语句实现的话,可以试试system()函数。
yuehong3
2010-09-13
打赏
举报
回复
fork fork!
guoxuqu
2010-09-13
打赏
举报
回复
那就是没有办法直接创建一个跟原进程不一样的进程喽。
wwwunix
2010-09-13
打赏
举报
回复
[Quote=引用 9 楼 guoxuqu 的回复:]
不好意思,我发错了,我是说不要覆盖原进程,创建一个跟原进程不一样的进程
[/Quote]
那么这个新进程中运行什么?
如果运行的是可执行程序,那么用fork+exec可以实现。
如果运行的是函数(源代码),可以用pthread_create(线程)实现。
mymtom
2010-09-13
打赏
举报
回复
linux中创建进程的唯一方法是fork
exec不会创建新进程。
[Quote=引用楼主 guoxuqu 的回复:]
我们知道,linux中创建进程的方法有fork和exec;
其中fork时,通过复制调用进程来创建新的进程;
exec则是用一个新的程序覆盖原进程的内存空间,来实现进程的转变。
那能不能覆盖原进程,创建一个跟原进程不一样的进程,类似Windows的CreateProcess?
[/Quote]
guoxuqu
2010-09-13
打赏
举报
回复
不好意思,我发错了,我是说不要覆盖原进程,创建一个跟原进程不一样的进程
wwwunix
2010-09-13
打赏
举报
回复
fork+exec
不就是:“覆盖原进程,创建一个跟原进程不一样的进程”了吗?
不解楼主的意图是什么?
guoxuqu
2010-09-13
打赏
举报
回复
创建进程要一个可执行文件。 fork创建的进程跟父进程用的是同一个可执行文件。我想问的是能不能创建一个进程,运行的可执行文件跟父进程不同。
谭海燕
2010-09-13
打赏
举报
回复
[Quote=引用 5 楼 guoxuqu 的回复:]
楼上的各位看来看清楚我的意思。
[/Quote]
你创建一模一样的进程没多大意义.
guoxuqu
2010-09-13
打赏
举报
回复
楼上的各位看来看清楚我的意思。
Wind_Runner
2010-09-13
打赏
举报
回复
可以fork之后把父进程kill掉,不过没多大意义
谭海燕
2010-09-13
打赏
举报
回复
参考
http://blog.csdn.net/feiyinzilgd/archive/2010/07/20/5750853.aspx
进程fork()之后遵循(COW)写时复制原则.
justkk
2010-09-13
打赏
举报
回复
[Quote=引用楼主 guoxuqu 的回复:]
那能不能覆盖原进程,创建一个跟原进程不一样的进程,类似Windows的CreateProcess?
[/Quote]
你是说进程名字吗?
louyong0571
2010-09-13
打赏
举报
回复
帮顶,关注
Linux
常见
问题
解答
特别感谢网易社区的ecloud,adungaos,小松鼠(试用期).....sorry i cant remember1.q:如何以Xwindows从2000终端登陆
LINUX
7.2服务器a:装一个putty,用ssh登陆a:需要找个Xserver,最好的是exceed 2.q:在WINDOWS下,我可以在我的局域网内搜索到好多东东,我用的是校园网内的一个
帮忙
framebuffer扫盲
这两天看了一些关于
Linux
下Gui的介绍,但是对Framebuffer有一些疑问,
请
高人
帮忙
解答
一下
: 1.framebuffer在操作系统中处于什么位置呢?驱动和应用中间?和framebuffer一级的还有什么技术? 也就是说在开发一个系统的时候除了framebuffer还有什么别的选择? 2.我们在开发一个新系统的时候如果想要用framebuffer的话,是否还需要...
C 语言面试题大汇总
C语言面试题大汇总,个人觉得还是比较全地!!! 发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有
问题
解答
(尤其是代码)只是参考,不保证正确。 先发基本
问题
,再发编程
问题
… 4. static有什么用途?(
请
至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 引用必须被初始化,指针不必。 引用初始化以后不能被改变,指针可以改变所指的对象。 不存在指向空值的引用,但是存在指向空值的指针。 描述实时系统的基本特性
C/C++笔试题
1.
进程
和线程的差别。 线程是指
进程
内的一个执行单元,也是
进程
内的可调度实体. 与
进程
的区别: (1)调度:线程作为调度和分配的基本单位,
进程
作为拥有资源的基本单位 (2)并发性:不仅
进程
之间可以并发执行,同一个
进程
的多个线程之间也可并发执行 (3)拥有资源:
进程
是拥有资源的独立单位,线程不拥有系统资源,但可以访问隶属于
进程
的资源. (4)系统开销:在
创建
或撤消
进程
时,由于系
C++笔试题汇总(6)
1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分 析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题
解答
也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的
解答
。企业要求面试者写一个最 简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个 strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10 分中的2 分。 读者可从本文看到strcpy 函数从2 分到1
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章