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

帮帮小女子吧T_T 一个编程作业--如何创建几个子进程让他们同时运行??

    来源: 互联网  发布时间:2016-05-07

    本文导语:  The purpose is to write a program  which will create N concurrent processes running the specifed command.  For example: $ ./PROGRAM -n 3 gcc -c % -- a.c b.c c.c This will create 3 gcc processes each compiling a.c, b.c and c.c concurrently.  ...

The purpose is to write a program  which will create N concurrent processes running the specifed command. 

For example:
$ ./PROGRAM -n 3 gcc -c % -- a.c b.c c.c

This will create 3 gcc processes each compiling a.c, b.c and c.c concurrently. 

The syntax of lab4ex3 is where the square brackets denotes an optional part which may
be possibly ommited:

PROGRAM [-n N] command arg1 arg2 : : : argm [-- replace1 replace2 : : : replacel]

The command to be run is command which can be the name of the file, e.g. gcc, or a
pathname to the executable and the remaining arguments if any for the program are given as
arg1 : : : argm. After the --" is an argument list, e.g. a.c b.c c.c". In the i-th command
run, a `%' is replaced with the corresponding replacei argument from the argument list.

For example, using the echo command (which simply prints its arguments) we have the following example and its output:
$ ./PROGRAM -n 3 echo Day % -- 1 2 3
Day 1
Day 2
Day 3

问题就是写一个程序 这个程序会用FORK()创建N个子进程, 但这几个子进程不是一个结束后再创建另一个, 而是不等一个结束就去创建另一个 这样他们就可以"同时"运行. 假设我写的这个程序叫PROGRAM然后我输入以下命令行
$ ./PROGRAM -n 3 gcc -c % -- a.c b.c c.c
这个PROGRAM就会创建3个子进程然后每个都去运行GCC 分别COMPILE a.c b.c c.c
请问能帮我解决让他们同时运行的难题么?

|
//定义全局变量
int g_child;


void sig_handler(int signo)
{
        if(signo == SIGCHLD) 
        {
                pid_t child_pid = 0;
                int status = 0;
 
                while( (child_pid = waitpid(-1,&status,WNOHANG))> 0) //循环回收所有的Zombie进程
                {
  g_child--;
                  printf("SIGCHILD --child_pid = %d , status = %dn",child_pid,status);
                }
        } 
}

 
main(){ 
 ... 
 g_child = 0;
 for(int i=0; i 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 【有谁能帮帮我】...Liunx上网的乱码问题,查了很多资料还是没有解决,帮帮我呀,好郁闷。
  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 非常感谢,快帮帮我
  • 有谁会Linux下的网络编程,请帮帮我,谢谢!
  • 关于安装ISDN的问题,大侠们帮帮我啊
  • 谁知teleport pto v1.29.1590的注册码,帮帮忙。马上结分
  • 哪里有Intel平台的Solaris 8 下载?? (很急,大家帮帮我!!!)
  • 各位大哥帮帮忙。谁知道怎么加可用分?
  • 请各位帮帮我,一个简单问题
  • 我的Redhat和Mandrake都装不了,帮帮我
  • jb中配置mysql的问题??急啊,帮帮我啊!
  • 一些奇怪的现象,帮帮我
  • 该死的中文显示问题,帮帮忙
  • 帮帮我!谁有jdk和jbuilder。现在急用
  • 如何获得string中某特定第二个字符,请帮帮忙!
  • 关于聊天室的问题,请大家帮帮忙,一定给分
  • 帮帮忙!!!!我的RH8装不进去!!!
  • 帮帮我!
  • 急!大家帮帮忙!有哪些视频点播系统能在在LINUX下安装以及怎样安装!
  • 急!大家帮帮忙!有什么视频点播系统能在LINUX下安装,以及怎样安装!!


  • 站内导航:


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

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

    浙ICP备11055608号-3