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 ...
最新文章
- 用Python从头实现一个神经网络
- 简书 html标签,html标签
- 6. Qt 信号与信号槽 (7)-QMetaObject:: activate
- 10年Linux老司机吐血整理的命令大全,拿去吧
- 划重点:微信小程序1月9日正式上线
- Xcode9模拟器隐藏边框
- 云图说|知道吗?在和你对话的那头,也许是个机器人哦~
- ASP.net控件开发系列之(一、二)
- python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法
- 数据共享,回调函数,threading模块,守护线程
- c bool 类型检查_第3篇:C/C++ 检查数字类型的最高有效位(MSB)
- 计算机数学基础试卷及答案,2012计算机数学基础试题及答案.pdf
- ​在家共享按摩椅“掘金”共享经济
- spring cloud day(6) gateway网关
- NVIDIA_CUDA和AMD_AMD APP
- oracle应付创建会计科目,R12 应付创建会计科目警告【已解决】
- 思维方式-《六顶思考帽》书中的精髓:通过在同一时间只使用一顶思考帽的方法,可以解决思维混乱等问题,从而提升思考效率。
- 论文笔记—ITS+假名管理—ASPA: Advanced Strong Pseudonym based Authentication in Intelligent Transport System
- 全国计算机软件测试工程师,全国计算机等级考试软件测试工程师.doc
- 谷歌浏览器报错ERR_MANDATORY_PROXY_CONFIGURATION_FAILED 解决办法
热门文章
- 第十二课 从宠物商店案例看DAPP架构和WEB3.JS交互接口
- qlistwidge 隐藏_QListWidget 去掉选中项
- ubuntu下解决无法获锁/var/lib/dpkg/lock-open的方法
- 京东金融大数据竞赛猪脸识别(7)- 识别方法之三
- buck双闭环控制仿真降压电路PI调节器设计降压斩波电路建模和数学模型建模
- 学习sql python_2019年精明的数字营销人员生产力指南:如何学习SQL,Python和…
- 算法:动态规划(二)
- 学校的远程教育网络课程的整站ASP源代码
- 【QT项目】基于c++ qt的手机通讯录管理系统
- Windows 2003 个人用户使用的快速入门和维护独门技巧