码迷,mamicode.com
首页 > 系统相关 > 详细

进程控制

时间:2015-04-18 15:51:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

1、进程标识

每个进程都有一个非负整型的唯一进程ID。

有某些专用的进程:

  进程id 0是调度进程,常常被称为交换进程,该进程并不执行任何磁盘上的程序-是内核的一部分,也被称为系统进程。

  进程id 1通常是init进程,在自举过程结束时由内核调用。init进程绝不会终止,它是一个普通的用户进程,但它以超级用户特权运行。

  某些UNIX的虚存实现中,进程id 2是页精灵进程,也是内核进程。

 2、fork函数

#include <sys/types.h>
#include <unistd.h>

pid_t fork(void);

  由fork创建的新进程被称为子进程,该函数被调用一次,但返回两次。两次返回的区别是:子进程返回的是0,而父进程返回的是新子进程的进程ID。

  子进程和父进程继续执行fork之后的指令。子进程是父进程的复制品。

 

#include "ourhdr.h"
#include <sys/types.h>
int glob = 6;
char buf[] = "a write to stdout\n";

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");
	if ((pid=fork())<0)
		err_sys("fork error");
	else if (pid == 0)
	{
		glob++;
		var++;
	}else
		sleep(2);
	printf("pid = %d, glob = %d, var = %d\n",getpid(),glob, var);
	exit(0);
}

  编译执行

gcc fork.c
./a.out a write to stdout pid = 20346, glob = 7, var = 89 pid = 20345, glob = 6, var = 88

  

进程控制

标签:

原文地址:http://www.cnblogs.com/huanhuanang/p/4437442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!