zoukankan      html  css  js  c++  java
  • 创建子进程

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<fcntl.h>
    #include<sys/types.h>
    #include<unistd.h>
    #include<sys/wait.h>
    #include<signal.h>
    #define err_sys(info)	
    	{		
    		fprintf(stderr,"%s:
    ",info);	
    		exit(EXIT_FAILURE);	
    	}
    
    int glob=6;
    char buf[]="a write to stdout
    ";
    int main(void )
    {
    	int var;
    	pid_t pid;
    	var=88;
    	if(write(STDOUT_FILENO,buf,sizeof(buf)-1)!=sizeof(buf)-1)
    		err_sys("write error");
    	printf("before fork
    ");
    	
    	if((pid=fork())<0)
    	{
    		err_sys("fork error");
    	}
    	else if(pid==0)
    	{
    		glob++;
    		var++;
    	}
    	else
    	{
    		sleep(2);
    	}
    	printf("pid=%d,glob=%d,var=%d
    ",getpid(),glob,var);
    	exit(0);
    }
    /*
    fork产生一个子进程,子进程会继承父进程很多的内容,
    比如变量,和代码段。glob就是继承的变量。printf()那个语句就是继承的代码段。
    fork这个函数返回两次,一次是子进程返回0,一次是父进程
    返回的自进程的id,所及pid肯地你大于0
    通过上面的函数,我们可以知道,子进程对变量的修改不影响福进程的变量。
    就好像自进程复制了一份父进程一样。
    */
    
  • 相关阅读:
    async源码学习
    js 数组去重
    node通过http.request向其他服务器上传文件
    学习CSS布局
    学习CSS布局
    学习CSS布局
    学习CSS布局
    学习CSS布局
    学习CSS布局
    学习CSS布局
  • 原文地址:https://www.cnblogs.com/yufenghou/p/3314571.html
Copyright © 2011-2022 走看看