当前位置:  技术问答>linux和unix

如何在C程序中启动另一个进程?

    来源: 互联网  发布时间:2016-10-06

    本文导语:  如何在C程序中启动另一个进程?该进程启动后期望是一个独立的进程,当前进程不需要管理也不需要关心这个进程。 实际上,我是期望在一个程序中启动另一个程序,启动后,两者成为互不相关的程序。 ...

如何在C程序中启动另一个进程?该进程启动后期望是一个独立的进程,当前进程不需要管理也不需要关心这个进程。
实际上,我是期望在一个程序中启动另一个程序,启动后,两者成为互不相关的程序。

|


嗯,需要注意的是system()是需要返回结果的,也就是父进程会一直阻塞,直到子进程结束。
当然,可以在system()参数的最后,加个&,以让子进程后台运行。

|
system或者exec函數可不可以?

|
system, popen, fork+exec

|
就用system或者exec族的函数调用一下吧

|
先fork,然后再用exec调用下就好了。个人感觉是这样,具体你可以试试

|
#include
#include
#include
#include
#include
#include

int main()
{
pid_t childpid;
int status;
if((childpid=fork())==-1) //fork( )命令
{
perror("fork:");
}
else if(childpid==0) // This is child process!
{
char *args[]={"/home/sk/code/GNU/pripds",NULL};
puts("in child:n");
if(execve("pripds",args,NULL)==-1) // pripds 是我自己的一个程序。。
{
perror("execve:");
}
exit(EXIT_SUCCESS);
}
else //This is  parent process! 
{
waitpid(childpid,&status,0);  //这里也可以用非阻塞wait,这样两个进程就不会相干扰了
puts("in parent:n");
printf("tparent pid=%dn",getpid());
}
}


看看是否有用。。^^

    
 
 

您可能感兴趣的文章:

  • 如何解决程序自己调用自已后结束进程,并且父进程能真的退出不成为僵尸进程?
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • 通过c程序写代码怎么查看进程是不是存在了?怎么查看该进程占用的内存是多少?
  • 应用程序chinput开机自动启动, 但状态为Defunct的进程(“僵尸”进程), 如何删除?
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • 这个socket程序的服务进程开始服务后,为什么总是两个进程? iis7站长之家
  • 如何在程序中执行另外一个程序,并且当前进程依然执行?
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • 这个socket程序的服务进程开始服务后,为什么总是两个进程?
  • 怎样编写一段程序,要求调用fork并在子进程中建立一个新的对话期。验证子进程变成了进程组长而且不再有控制终端。
  • 为什么这个程序没有输出?父进程中止后子进程也跟着中止吗?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • linux shell关掉后java程序(进程名abc)仍能运行,用ps -ef|grep abc能查到进程名
  • 在程序中如何得到一个进程的状态?(不用ps命令),如何检查一个进程处于D状态(uninterruptible sleep)
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 请问在 linux 下如何使用 execl() 调用另一个多进程的程序?
  • 请问gdb怎么处理带有启动参数的程序和多进程程序?
  • 为什么程序异常后,这个程序监听的端口被转移到其它进程里
  • 关于sco下的多进程程序的问题?
  • help help busy!!! 知道进程的ID号,在程序里如何检查这个进程还在不在?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 关于系统变量,开机启动程序,和定时启动程序
  • 请问Linux如何象Windows 那样把我的程序放到启动里面,登录后启动我的程序
  • 怎么在HP11.00平台启动时运行一个程序,就是让该程序随系统启动,麻烦各位教我,谢谢了!
  • 请问Linux如何象Windows 那样把我的程序放到启动里面,登录后启动我的程序
  • 紧急问题:我启动一个java程序之后用ps一看,为和显示我启动了多个程序?然后我kill-9第一个pid之后,又全部没了
  • 板卡程序自启动和在用户模式下启动反差比较大
  • 怎样设置应用程序随linux启动而启动!
  • 为什么我的Linux系统拔掉网线后启动程序启动的非常慢?
  • 如何让自己做的一个程序在虚拟机启动时也自动启动
  • 使用了QWidget的程序,如何使用后台程序启动它?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • c语言判断某一年是否为闰年的各种实现程序代码
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • 在docker容器中通过apt-get安装新的程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • linux下通过crond实现自动执行程序
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • http协议介绍,文件上传分析及程序举例
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员赚钱致富的6种方法
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • HASH查找的程序实现及性能分析
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3