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 <unistd.h>
(2)getppid()
功能:用来获取目前进程的父进程标识。
定义函数:pid_t getppid(void)
返回值:返回当前进程的父进程识别号。
头文件:#include <unistd.h>
(3)getpgid()
功能:用来获得参数pid指令进程所属于的组识别号,若参数为0,则返回当前进程的组识别码。
定义函数:pid_t getpgid(pid_t pid)
返回值:执行成功则返回正确的组识别码,若有错则返-1,错误原因存在于errno中。
头文件:#include <unistd.h>
(4)getpgrp()
功能:用来获得目前进程所属于的组识别号,等价于getpgid(0)。
定义函数:pid_t getpgrp(void)
返回值:执行成功则返回正确的组识别码。
头文件:#include <unistd.h>
(5)getpriotity(void)
功能:用来获得进程,进程组和用户的进程执行优先权。
定义函数:int getpriority(int which,int who)
参数含义:
which:
PRIO_PROCESS who为进程的识别码
PRIO_PGRP who为进程的组识别码
PRIO_USER who为用户识别码
返回值:执行成功则返回当前进程的优先级(-20--20),值越小优先级越高。若出错则返-1,原因在errno中。
头文件:#include <sys/resource.h>
简单实例:
[keven@localhost systemCall]$ cat -n get_process_information.c
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/resource.h>
- int main(/*int argc,char **argv*/)
- {
- printf("This process's pid is:%d",getpid());
- printf("/nThis process's farther pid is:%d",getppid());
- printf("/nThis process's group pid is:%d",getpgid(getpid()));
- printf("/nThis process's group pid is:%d",getpgrp());
- printf("/nThis process's priority is:%d/n",getpriority(PRIO_PROCESS,getpid()));
- return 0;
- }
[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进程的管理 获取进程信息函数
进程又称任务,是一个动态的使用系统资源.处于活动状态的应用程序. 进程的管理由进程控制块PCB.进程调度.中断管理.任务队列等组成,它是linux文件系统.存储管理.设备管理和驱动程序的基础. 进程控 ...
- Linux 如何取进程运行时间,linux -- 获取进程执行时间
获取进程执行时间 一.时间概念 在linux下进行编程时,可能会涉及度量进程的执行时间.linux下进程的时间值分三种: 时钟时间(real time):指进程从开始执行到结束,实际执行的时间. 用户 ...
- linux 进程的执行时间,Linux 获取进程执行时间
Linux 获取进程执行时间 1 前言 测试一个程序的执行时间, 时间包括用户 CPU 时间系统 CPU 时间时钟时间之前获取之前时间都是在程序的 main 函数用 time 函数实现, 这个只能粗略 ...
- linux获取进程io,linux查看哪个进程占用磁盘IO
[python实现设计模式]-4.观察者模式-吃食啦! 观察者模式是一个非常重要的设计模式. 我们先从一个故事引入. 工作日的每天5点左右,大燕同学都会给大家订饭. 然后7点左右,饭来了. 于是燕哥大 ...
- linux c 通过 pid 获取 进程相关信息 cmdline
linux系统命令ps和top都是通过读取/proc/$PID 目录下的信息获取进程的相关信息, 它遍历/proc目录下的首字符为数字的目录,获取系统进程的信息. 我们经常会把pid写到/var/ru ...
- linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose
文章目录 不唯一匹配(包含字符的全都匹配上)(而且进程名最多为15个字符?)(前15个字符?) 方法1:嵌到程序里,通过命令行附带要查找的进程名称(交叉编译在arm摄像头里运行) 方法2:通过搜素/p ...
- Linux3种进程,linux内核获取进程的全路径3种方法
本文档的CopyRight归jonathan所有,可自由转载,转载时请保持文档的完整性. /*----------------------------------------------------- ...
- linux c 获取进程p id,详解Linux获取线程的PID(TID、LWP)的几种方式
在 Linux C/C++ 中通常是通过 pthread 库进行线程级别的操作. 在 pthread 库中有函数: pthread_t pthread_self(void); 它返回一个 pthrea ...
- Linux——孤儿进程|进程的优先级 用top命令去修改优先级 其他概念 环境变量 PATH 获取环境变量
目录 孤儿进程 进程的优先级 用top命令去修改优先级 其他概念 环境变量 PATH 获取环境变量 习题 孤儿进程 父进程如果提前退出,那么子进程后退出,进入Z之后,那该如何处理呢? 父进程先退出,子 ...
最新文章
- maven编译时出现读取XXX时出错invalid LOC header (bad signature)
- IntelliJ IDEA 2020.1 EAP2 发布:新增禅模式和 LightEdit 模式
- 基于用户的协同过滤和皮尔逊相关系数
- 在非activity类调用startActivityForResult
- Linux设备驱动之mmap设备操作
- python操作界面_Python使用PyQt5的Designer工具创建UI界面
- fetch oracle 12c下载,十二、Oracle Fetch子句
- AcWing 4241. 货物运输
- centos7下yum安装mysql_CentOS7下使用YUM安装MySQL5.6-Go语言中文社区
- IPHONE手机知识大全(下)
- c语言有向网络介数,SNA社交网络算法
- MODBUS转EtherNet/IP网关连接罗克韦尔(AB)PLC与英威腾变频器配置案例
- VR游戏与传统游戏开发区别 和 Unite 2016关于VR/AR的消息
- 仓库盘点的四大方法和盘点流程
- VS2017生成可执行程序,执行提示“不是有效的win32应用程序”
- 程序员相亲大曝光 女方:做底层架构,什么时候升嘞!emmmm
- html5网页中的表格教程,javascript程序设计_达内javascript教程-达内web前端培训
- 类似于计算机的文件管理器,XYplorer 21比电脑自带的文件管理器还好用的工具
- 开源项目推荐:物联网消息引擎EMQ X/大数据平台TDengine/可视化平台Grafana/dgiot
- 载入pytorch的预训练模型时遇到_pickle.UnpicklingError: unpickling stack underflow
热门文章
- 智能实验室服务器,阿里巴巴机器智能实验室线下智能团队三年工作总结
- aop阻止方法运行_新型AOP高级氧化高浓度COD废水处理系统介绍
- 右边菜单_AI基础教程65:使用文字菜单编辑文字(七)查找字体
- 一文细数Vision transformer家族成员
- scala中class与object区别.
- 原生js实现类似jq的trigger
- HTMLCSSJavaScript个人入门自学笔记
- java 指针 地址压缩_JVM优化之压缩普通对象指针(CompressedOops)
- 骗子收录网站源码PHP搭建
- activexobject mysql_ActiveXObject函数详解(转)