linux多线程中执行别的程序(非进程替换exec)?

超gogo 2012-04-12 08:41:12
在某一个执行了execvp后,就换替换原来的进程内容。
请问有什么方法可以在线程中执行另外的程序而不替换本进程?
谢谢
...全文
316 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-04-19
  • 打赏
  • 举报
回复
fork+exec本来就不会影响父进程任何事情,如果数据想要传回父进程,可以用管道,双向传就俩管道或者socketpair(unix-domain-socket),其他需求可以做共享内存+共享互斥量或者共享内存+信号量/管道做同步,方法太多了,消息队列,FIFO都可以选择,看你怎么写程序而已。
liuyang39 2012-04-19
  • 打赏
  • 举报
回复
int system(const char *string);
运行以字符串参数的形式传递给它的命令并且等待该命令的完成。
比如system(“ps”);当线程运行到该条指令时就去执行ps程序了 执行完之后就换回,不知道对不对
我也才学
超gogo 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

有很多种方法:
(1)system()啊
(2)popen()
(3)利用伪终端,telnetd实现技术....
[/Quote]
能具体点吗?
惬意 2012-04-13
  • 打赏
  • 举报
回复
进程就是一个程序执行的过程,你要想执行一个新的程序就只能创建一个进程然后再调用exec函数族,线程只是把串行的执行指令并行化,提高了指令的执行效率,用线程去执行一个新的程序是不行的...
wqkjj 2012-04-13
  • 打赏
  • 举报
回复
有很多种方法:
(1)system()啊
(2)popen()
(3)利用伪终端,telnetd实现技术....
昵称很不好取 2012-04-12
  • 打赏
  • 举报
回复
想不出什么好方法
超gogo 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

创建一个新的进程,然后exec
[/Quote]

除了这个,有没有在线程中直接执行的方法吗?
昵称很不好取 2012-04-12
  • 打赏
  • 举报
回复
创建一个新的进程,然后exec

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧