站长工具seo推广 站长工具查询,互联网+营销策略怎么写,汕头网站建设推荐,网站软件推荐阅读导航 前言一、进程优先级1. 优先级概念2. Linux查看系统进程3. PRI#xff08;Priority#xff09;和NI#xff08;Nice#xff09; 二、环境变量1. 概念2. 查看环境变量方法3. 环境变量的组织方式4.通过代码获取环境变量5. 环境变量的特点 总结温馨提示 前言
前面我们… 阅读导航 前言一、进程优先级1. 优先级概念2. Linux查看系统进程3. PRIPriority和NINice 二、环境变量1. 概念2. 查看环境变量方法3. 环境变量的组织方式4.通过代码获取环境变量5. 环境变量的特点 总结温馨提示 前言
前面我们讲了C语言的基础知识也了解了一些数据结构并且讲了有关C的一些知识也学习了一些Linux的基本操作也了解并学习了有关Linux开发工具vim 、gcc/g 使用、yum工具以及git 命令行提交代码也相信大家都掌握的不错上一篇文章我们了解了关于进程的基本概念今天博主带大家了解一下 —— 进程优先级以及环境变量 下面话不多说坐稳扶好咱们要开车了
一、进程优先级
1. 优先级概念
进程优先级Process Priority是操作系统用来决定进程获取CPU资源的顺序的一种机制。一般来说进程优先级较高的进程会获得更多的CPU时间片从而更频繁地执行。进程优先级的设置通常由操作系统或系统管理员来决定而不是由普通用户来指定。进程优先级的目的是根据进程的重要性或性能需求来分配系统资源以实现对系统资源的合理分配和性能调整。较高优先级的进程通常会被更快地响应和执行而较低优先级的进程则可能会被抑制或推迟。
2. Linux查看系统进程
在linux系统中用ps –l命令则会类似输出以下几个内容 我们很容易注意到其中的几个重要信息有下
UID : 代表执行者的身份。PID : 代表这个进程的代号。PPID 代表这个进程是由哪个进程发展衍生而来的亦即父进程的代号。PRI 代表这个进程可被执行的优先级其值越小越早被执行。NI 代表这个进程的nice值。
3. PRIPriority和NINice
PRI是指进程的实际优先级Priority。在Unix/Linux系统中PRI是一个整数值代表了进程在调度时的优先级。较低的PRI值表示较高的优先级而较高的PRI值表示较低的优先级。系统中的PRI值范围可以是不固定的具体取决于操作系统的实现。
NI是指进程的Nice值Nice Value。Nice值是Unix/Linux系统中用于调整进程优先级的参数。Nice值的范围通常是从-20到19其中-20是最高优先级19是最低优先级。与PRI不同的是较低的NI值表示较低的优先级而较高的NI值表示较高的优先级。
PRI和NI之间存在一个简单的转换关系。通常PRI 20 NI即PRI值等于20加上Nice值。因此通过修改NI值可以间接地修改进程的PRI值从而调整进程的优先级。
可以使用nice命令来设置进程的Nice值。例如使用以下命令可以将进程的Nice值设置为10
nice -n 10 command其中command是要执行的命令或程序。
除了使用nice命令外还可以使用renice命令来修改已经运行的进程的Nice值。例如使用以下命令可以将进程的Nice值修改为5
renice -n 5 -p pid其中pid是要修改Nice值的进程的进程ID。
注意只有具有足够权限的用户才能修改进程的NI值一般需要管理员或具有特殊权限的用户才能进行修改。
二、环境变量
1. 概念
环境变量是操作系统中用于存储和管理系统级别的配置信息的一种机制。它们是由操作系统或应用程序设置的键值对用于指定特定应用程序或整个系统在运行时的行为。环境变量通常包含一些重要的配置信息如路径、语言、时区等。通过设置和读取环境变量可以在不修改应用程序本身的情况下对其进行配置和定制。应用程序可以使用环境变量来获取配置参数或根据不同的环境执行不同的操作。
在不同的操作系统中设置和读取环境变量的方法可能会有所不同。例如在Unix和Linux系统中可以使用export命令设置环境变量通过$符号引用环境变量的值。
2. 查看环境变量方法
在Linux下可以使用以下方法来查看环境变量 使用printenv命令 在终端中输入printenv命令将显示当前会话中的所有环境变量及其对应的值。 使用echo命令 可以使用echo命令来显示单个环境变量的值。例如要查看PATH环境变量的值可以输入以下命令
echo $PATH类似地可以将$符号后面的部分替换为所需的环境变量名称。 使用env命令 env命令可以显示当前会话中的环境变量和其值。在终端中输入env命令即可显示所有环境变量。 查看特定配置文件 根据不同的Linux发行版可能会有不同的配置文件保存环境变量。在常见的发行版如Ubuntu和CentOS中可以查看/etc/environment文件来获取全局环境变量的值。
注意这些方法都是在终端中查看当前会话中的环境变量。如果您希望查看永久环境变量即在每次登录时都生效的环境变量则可以查看用户的bash配置文件如~ /.bashrc或~/.bash_profile中的设置。
3. 环境变量的组织方式 每个程序都会收到一张环境表环境表是一个字符指针数组每个指针指向一个以’\0’结尾的环境字符串。
4.通过代码获取环境变量
命令行第三个参数
#include stdio.h
int main(int argc, char *argv[], char *env[])
{int i 0;for(; env[i]; i){printf(%s\n, env[i]);}return 0;
}通过第三方变量environ获取
#include stdio.h
int main(int argc, char *argv[])
{extern char **environ;int i 0;for(; environ[i]; i){printf(%s\n, environ[i]);}return 0;
}libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。
5. 环境变量的特点 全局性Linux环境变量是在整个操作系统级别定义和生效的。它们对所有用户和进程都是全局可见的因此可以在系统中的任何位置和任何进程中使用和访问。 动态性Linux环境变量可以在运行时动态地进行修改、添加或删除。这意味着可以根据需要更改环境变量的值而无需重新编译或重启程序。 字符串格式Linux环境变量的值通常以字符串的形式表示。这使得环境变量非常适合存储配置信息、路径、用户名等文本数据。 持久性Linux环境变量可以在系统启动时由各种不同的方式进行设置。例如在/etc/profile、~/.bashrc 或 /etc/environment 等文件中设置环境变量使其在系统启动时自动加载。 继承性Linux环境变量可以被派生进程继承。这意味着当创建子进程时子进程会继承父进程的环境变量。这种特性使得环境变量可以在整个进程树中自动传递并共享。 临时性Linux环境变量可以在当前的终端会话中设置并在会话结束后自动消失。这对于临时设置和调试非常有用。 SHELL变量和环境变量在Linux中有些特殊的环境变量被称为SHELL变量用于控制和配置当前的Shell环境。这些变量在当前Shell中起作用而不会传递给其他进程。
总结
一、进程优先级
优先级概念进程优先级决定了进程在系统资源分配和竞争中的优先级别。优先级较高的进程会在资源有限时获得更多的处理时间和资源。Linux查看系统进程通过命令行工具如top、ps等可以实时查看系统中运行的进程以及它们的优先级信息。PRIPriority和NINice在Linux中进程的优先级主要通过PRI和NI来表示。PRI的范围是-20最高优先级到19最低优先级而NI的范围是-20到19它们之间存在一定的关系。较小的PRI值表示较高的优先级。
二、环境变量 环境变量在Linux系统中具有重要作用用于存储和传递配置信息、路径、用户名等。具体内容如下
概念环境变量是在操作系统层面上定义和生效的全局变量它们可以在系统中的任何位置和任何进程中使用和访问。查看环境变量方法使用printenv或echo命令可以在终端中查看当前环境变量的值或者通过env命令列出所有环境变量。环境变量的组织方式环境变量以key-value的形式存储其中key是变量名value是变量的值。多个环境变量以列表或配置文件的形式进行组织。通过代码获取环境变量可以使用编程语言提供的函数如getenv来获取指定环境变量的值然后在代码中进行使用。环境变量的特点环境变量具有全局性、动态性、文本格式等特点。它们可以全局共享、动态修改适应不同的环境和配置需求。
温馨提示
感谢您对博主文章的关注与支持如果您喜欢这篇文章可以点赞、评论和分享给您的同学这将对我提供巨大的鼓励和支持。另外我计划在未来的更新中持续探讨与本文相关的内容。我会为您带来更多关于Linux以及C编程技术问题的深入解析、应用案例和趣味玩法等。如果感兴趣的话可以关注博主的更新不要错过任何精彩内容
再次感谢您的支持和关注。我们期待与您建立更紧密的互动共同探索Linux、C、算法和编程的奥秘。祝您生活愉快排便顺畅