int main()
{
char* p = getenv("PWD");
std::cout<
#include
#include
#include
int main()
{
extern char environ; //声明外部变量
for(int i = 0;environ[i];i++) //直到内容为空结束打印
{
printf("environ[%d]: %s\n",i,environ[i]);
}
return 0;
}
🍮这样便可以打印出一张环境变量表。
深度解析
🍮在 Linux 中不仅有环境变量,还有另一种变量叫做本地变量,定义环境变量时不加 export 定义的便是本地变量。
🍮但本地变量与环境变量不同的地方在于,其无法被子进程继承。因此我们在代码中是无法访问到本地变量的。
、
🍮之后我们不再需要这个变量后可以使用 unset 将其删除。
命令行参数
🍮平时我们都在使用 main 函数,但你知道 main 函数也有参数吗?其实 main 函数中最多能有三个参数。
int main(int argc, char *argv[], char *envp[])
{
return 0;
}
其中 envp 就是环境变量表, 我们直接打印便能够得到完整的环境变量表。
int main(int argc, char *argv[], char *envp[])
{
for(int i = 0;envp[i];i++)
{
std::cout<
#include
#include
#include
#include
int main(int argc, char *argv[], char *envp[])
{
if (argc == 1) //没有参数的情况
{
std::cout << "------------------" << std::endl;
printf("无任务执行,已退出\n");
std::cout << "------------------" << std::endl;
exit(0);
}
if (argc != 2) //参数过多的情况
{
std::cout << "------------------" << std::endl;
std::cout << "输入样例不合法" << std::endl;
std::cout << "------------------" << std::endl;
exit(2);
}
// 判断参数
if (strcmp(argv[1], "-a") == 0)
{
std::cout << "------------" << std::endl;
std::cout << "执行A任务" << std::endl;
std::cout << "------------" << std::endl;
}
else if (strcmp(argv[1], "-b") == 0)
{
std::cout << "------------" << std::endl;
std::cout << "执行B任务" << std::endl;
std::cout << "------------" << std::endl;
}
else if (strcmp(argv[1], "-c") == 0)
{
std::cout << "------------" << std::endl;
std::cout << "执行C任务" << std::endl;
std::cout << "------------" << std::endl;
}
else
{
std::cout << "无目标指令" << std::endl;
}
return 0;
}
🍮根据传入参数的不同,从而进行不同的任务。
进程优先级
🍮我们在以前学习过权限的相关内容,而权限与优先级的本质区别在于:
权限决定的是能或不能。优先级则是已经能,决定谁先谁后。
🍮为什么有优先级?
cpu 资源有限,当资源不足时根据优先级进行分配,保证先执行最重要的程序。
优先级查看
🍮通过 ps -l 我们可以查看进程的优先级。
ps -l
🍮其中 UID 代表的是用户,系统通过 UID 识别用户,但有一个专属的字符串与 UID 对应,供用户使用。
🍮而表示优先级的是 PRI ,PRI 越小进程优先级别就越高。
🍮NI 为修正数据,范围为[-20,19],一般来说不直接更改 PRI 而是通过修改 NI 从而达到修改优先级的效果。
优先级修改
使用 top 进入任务管理器输入 r 进入 renice 模式输入要更改 NI 值进程的 PID输入更改的 NI 值
🍮如此便完成了修改。NI 的修改值如果超出了范围,则会修改成范围最贴近的那个值。
🍮值得注意的一点是:PRI(new) = PRI(old)+NI。
🍮其中的 PRI(old) ,每次都为 80 ,即更改 NI 时刻关系着 PRI 的大小
进程间的概念
竞争性: 系统进程数目多,而 CPU 资源少,进程之间具有竞争属性。为了高效完成任务,更合理竞争相关资源,便有了优先级。独立性: 多进程运行,运行期间互不干扰。并行: 多个进程在多个 CPU 下分别同时运行。并发: 多个进程在一个 CPU 下采用进程切换的方式,在一段时间之内,使多个进程都得以推进,
🍮好了,今天环境变量和进程优先级的讲解到这里就结束了,如果这篇文章对你有用的话还请留下你的三连加关注。