Chinaunix

标题: 在一个进程中执行另一个进程后立刻返回,不等待新进程退出后返回,怎么做? [打印本页]

作者: 新用户_请注册    时间: 2015-06-18 16:30
标题: 在一个进程中执行另一个进程后立刻返回,不等待新进程退出后返回,怎么做?
在一个进程中执行另一个进程后立刻返回,不等待新进程退出后返回,怎么做?

比如在/test目录下有a和b两个可执行程序:
/test/a
/test/b

在a程序中调用system函数执行b程序,如下:
system("/test/b");

运行后是成功执行b进程了,但是发现要等b进程退出后,system才返回。
如果想让执行b后立刻返回执行b是否成功的结果,而不是等待b进程退出后才返回,应该怎么做?使用哪个函数?
作者: remark    时间: 2015-06-18 17:04
fork() + exec()
作者: gotojyh    时间: 2015-06-18 17:36
在a程序里加
  1. pid_t id=fork();
  2. if(id==0)
  3. {
  4. system("/test/b");
  5. }
复制代码

作者: tansijie    时间: 2015-06-19 10:46
本帖最后由 tansijie 于 2015-06-19 10:47 编辑

  1. pid_t pid = fork();
  2. if(pid == 0 )
  3. {
  4.     // exec  system call
  5.     system("b");
  6. }else // fathur process
  7. {
  8.    // do fathur job
  9. }
复制代码

作者: yulihua49    时间: 2015-06-19 15:12
新用户_请注册 发表于 2015-06-18 16:30
在一个进程中执行另一个进程后立刻返回,不等待新进程退出后返回,怎么做?

比如在/test目录下有a和b两个 ...

system("/test/b &");




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2