linux用函数输出进程信息,Linux进程的管理 获取进程信息函数
进程又称任务,是一个动态的使用系统资源、处于活动状态的应用程序。
进程的管理由进程控制块PCB、进程调度、中断管理、任务队列等组成,它是linux文件系统、存储管理、设备管理和驱动程序的基础。
进程控制块PCB中包含了进程的所有信息,主要包括进程PID、进程所占有的内存区域、文件描述符和进程环境等信息。
他用task_struct的数据结构表示,存在于include/linux/sch.h
进程状态及转换
#define TASK_RUNNING 0 //运行状态
#define TASK_INTERRUPTIBLE 1 //等待状态(可被中断)
#define TASK_UNINTERRUPTIBLE 2 //等待状态(不可被中断)
#define TASK_STOPPED 4 //停止状态
#define TASK_ZOMBIE 8 //睡眠状态
#define TASK_DEAD 16 //僵死状态
进程的基本操作,六大类:
1.获取进程信息函数:主要通过读取进程控制块PCB中的信息。
(1)getpid()
功能:用来获取目前进程的进程标识。
定义函数:pid_t getpid(void)
返回值:返回当前进程的进程识别号。
头文件:#include
(2)getppid()
功能:用来获取目前进程的父进程标识。
定义函数:pid_t getppid(void)
返回值:返回当前进程的父进程识别号。
头文件:#include
(3)getpgid()
功能:用来获得参数pid指令进程所属于的组识别号,若参数为0,则返回当前进程的组识别码。
定义函数:pid_t getpgid(pid_t pid)
返回值:执行成功则返回正确的组识别码,若有错则返-1,错误原因存在于errno中。
头文件:#include
(4)getpgrp()
功能:用来获得目前进程所属于的组识别号,等价于getpgid(0)。定义函数:pid_t getpgrp(void)
返回值:执行成功则返回正确的组识别码。头文件:#include
(5)getpriotity(void)
功能:用来获得进程,进程组和用户的进程执行优先权。
定义函数:int getpriority(int which,int who)
参数含义:
which:PRIO_PROCESS who为进程的识别码
PRIO_PGRP who为进程的组识别码
PRIO_USER who为用户识别码返回值:执行成功则返回当前进程的优先级(-20--20),值越小优先级越高。若出错则返-1,原因在errno中。头文件:#include
简单实例:
[keven@localhost systemCall]$ cat -n get_process_information.c
1 #include 2 #include 3 #include 4
5 int main(/*int argc,char **argv*/)
6 {
7 printf("This process's pid is:%d",getpid());
8 printf("\nThis process's farther pid is:%d",getppid());
9 printf("\nThis process's group pid is:%d",getpgid(getpid()));
10 printf("\nThis process's group pid is:%d",getpgrp());
11 printf("\nThis process's priority is:%d\n",getpriority(PRIO_PROCESS,getpid()));
12 return 0;
13 }
[keven@localhost systemCall]$ ./get_process_information
This process's pid is:6172
This process's farther pid is:5681
This process's group pid is:6172
This process's group pid is:6172
This process's priority is:0
[keven@localhost systemCall]$
linux用函数输出进程信息,Linux进程的管理 获取进程信息函数相关推荐
- linux用函数输出进程信息,进程间通信之-消息队列(Message)--linux内核剖析(十一)...
消息队列 消息队列 (也叫做报文队列)是Unix系统V版本中3种进程间通信机制之一.另外两种是信号量和共享内存. 这些IPC机制使用共同的授权方法.只有通过系统调用将标志符传递给核心之后,进程才能存取 ...
- Linux第六周学习总结——进程额管理和进程的创建
Linux第六周学习总结--进程额管理和进程的创建 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/cour ...
- Linux登录的shell信息,Linux展示登录Shell信息
Linux显示登录Shell信息 Linux显示登录Shell信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -p Login Name T ...
- linux 怎样查看设备信息,Linux查看设备信息命令
系统 #查看内核/操作系统/CPU信息 uname -a #查看操作系统版本 head -n 1 /etc/issue #查看CPU信息 cat /proc/cpuinfo #查看计算机名 hostn ...
- linux查看本机信息,linux系统怎么查看本机配置?
linux如何查看系统的硬件配置 如何在linux系统下查看系统配置? 在图形模式下我们可以很方便的利用Linux的图形工具,点击几下就可以查看到Linux系统的的硬件信息.但是大部分生产服务器系统为 ...
- linux查看输出的信息,linux查看java的输出信息
linux查看java的输出信息 [2021-02-04 22:41:35] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...
- linux c 函数专挑,Linux C wait函数
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 我们先来看一段代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并作了分类,实例解说.html cpu lscpu命令,查看的是cpu的统计信息.linux blue@ ...
- linux查看网卡驱动信息,linux 查看网卡驱动信息
方法一: 1:ethtool -i ethx 如: linux:/mnt # ethtool -i eth1 driver: e1000e version: 1.0.2-k2 firmware-ver ...
最新文章
- Android AnimationUtils (动画)的使用
- 神经网络入门——14多层感知机
- 数据库大型应用解决方案总结(转)
- TCPIP,Http,Socket的区别
- 数据结构与算法一篇帮助你吃下KMP算法
- 线性表之顺序存储结构相关算法学习
- C语言中以二进制形式输出文件
- JAVA springboot ssm b2b2c多用户商城系统源码(三):服务提供与调用
- 快速实现一个简单的canvas迷宫游戏
- 【ArcGIS|空间分析】窗口分析
- 门户通专访草根站长九天狼:做站贵在坚持
- 阿里云活动价格点击购买时价格上涨的解决办法
- Canvas彩色樱花图案背景js特效
- 别把职场当官斗,聪明人都在自我成长
- 《游戏脚本的设计与开发》-(RPG部分)3.7 战斗系统之自动战斗(一)
- python分割文件_python简单分割文件的方法
- 虚函数占用类空间大小(转)
- Greedy——HDOJ 1789
- auto-springboot
- 网页设计:运用html与css实现水平居中、文字图片重叠混排
热门文章
- 阿里云ACP考试如何顺利通过,如何备考?
- Double.NaN和Float.NaN
- java map 内存分配_Android O Bitmap 内存分配
- 算法:动态规划(二)
- 数字人民币app公开上架应用市场 试点区域外用户暂无法使用
- Verizon宣布斥资44亿美元收购AOL,推动LTE无线视频和OTT 策略
- iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”
- CSS3动画正方体3D旋转
- CrossOver 22中文版本更新上线功能介绍
- html超链接里面的文件打不开,word超链接为什么打不开指定文件