linux进程(一)
来源:互联网 发布:核工业湖州勘察院 知乎 编辑:程序博客网 时间:2024/06/05 07:58
通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。
#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <signal.h>#include <ctype.h>#define MAX_CHILD_NUMBER 10#define SLEEP_INTERVAL 2int proc_number=0;void do_something();int main(int argc,char *argv[]){ /* 子进程个数 */ int child_proc_number = MAX_CHILD_NUMBER; int i,ch; pid_t child_pid; pid_t pid[10]={0}; if(argc>1)/* 命令行参数第一个参数表示子进程个数*/ { child_proc_number = atoi(argv[1]); child_proc_number = (child_proc_number > 10)?10:child_proc_number; } for(i=0;i<child_proc_number;i++){ child_pid = fork(); if(child_pid == 0){ proc_number = i; do_something(); }else{ pid[i] = child_pid; } } /* 让用户选择杀死进程,数字表示杀死该进程,q退出 */ while((ch=getchar()) != 'q'){ if(isdigit(ch)){ kill(pid[ch-'0'],15); } } /* 在这里填写代码,杀死本组的所有进程 */ printf("\n我将要杀死所有的进程\n"); sleep(SLEEP_INTERVAL); for(i=0;i<child_proc_number;i++) kill(pid[i],15); return 0;}void do_something(){ for(;;){ printf("this is process No.%d and its pid is %d\n",proc_number,getpid()); sleep(SLEEP_INTERVAL); /* 主动阻塞两秒钟 */ }}
kill()函数用于删除执行中的程序或者任务。调用格式为: kill(int PID, int IID); 其中:PID是要被杀死的进程号,IID为向将被杀死的进程发送的中断号。
kill -l 可以查看信号对应的整数
1 0
- linux进程(一)
- Linux进程(一)
- Linux进程(一)
- Linux 进程管理(一)
- Linux进程基础(一)
- Linux 进程管理(一)
- Linux进程通信(一)
- Linux - 进程(一) 进程空间
- Linux环境进程间通信(一)
- Linux进程编程介绍(一)
- Linux内核之进程管理(一)
- Linux进程编程介绍(一)
- Linux进程编程介绍(一)
- Linux环境进程间通信(一)
- Linux环境进程间通信(一)
- Linux环境进程间通信(一)
- Linux环境进程间通信(一)
- Linux环境进程间通信(一)
- Objective-C--分类的使用
- DOM 概念和常用方法、属性
- 2015年11月 面试题总结
- DOM编程实践注意
- 动态创建标记
- linux进程(一)
- codevs 2597 团伙
- UIWindow & UIWindowLevel笔记
- Ajax初步
- 菜鸟学ubuntu 之 熟悉系统菜单及常用软件安装
- 安全世界观
- RequestDispatcher请求转发方法
- web安全的关键点
- The_connection_to_adb_is_down__and_a_severe_error_has_occured解决方案