首页 > 系统服务 > 详细

进程控制

时间:2015-04-18 15:51:02      阅读:135      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!