Linuxc高级编程之进程1

1.打印当前所有环境变量的值;
2.添加新的环境变量NEWENV=first;
3.修改环境变量NEWENV的值为second;
4.打印环境变量NEWENV的值。

源代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
extern char **environ;
int main(int argc,char **argv)
{
 char **env = environ;
 while (*env)
 {
  printf("%s\n",*env);
  env++;
 }
 printf("\n\n\n添加新的环境变量");
 putenv("NEWENV=firts");
 printf("NEWENV=%s\n",getenv("NEWENV"));
 setenv("NEWENV","second",1);
 printf("修改后的NEWENV=%s\n",getenv("NEWENV"));
return 0;
}

所用函数:
1.getenv
头文件
#include<stdlib.h>
函数原型
char * getenv(const char *name);
函数说明
 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。
返回值
执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。

2.putenv
头文件
#include<stdlib.h>
定义函数
int putenv(const char * string);
函数说明 
putenv函数将形式为name=value的字符串,放入环境表中;
若name已经存在,则先删除其原来的定义。
返回值
执行成功则返回0,有错误发生则返回-1。

3.设置环境变量setenv
setenv函数原型:
int setenv(const char* name,
             const char* value,
             int rewrite);
setenv将环境变量name的值设置为value。
若name已经存在
rewrite != 0,该环境变量原已有内容会被改为参数value所指的变量内容。
rewrite == 0,且该环境变量已有内容,则参数value会被忽略。
返回值
执行成功则返回0,有错误发生时返回-1。

4.删除环境变量
unsetenv函数用于删除某个环境变量
函数原型
int unsetenv(const char* name);

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实验3 进程的管理 一、实验内容 实验一  编写代码,实现以下功能:  打印当前所有环境变量的值;  添加新的环境变量NEWENV=first;  修改环境变量NEWENV的值为second;  打印环境变量NEWENV的值。 实验二  编写代码实现以下功能:  1.打印字符串“hello world!”  2.在打印字符串“hello world!”前调用三次fork,分析打印结果。 实验三  创建子进程  1.在子进程中打开文件file1,写入自己的“班级_姓名_学号”,  2.父进程读取file1中的内容,并且打印显示。  3.在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程进程号。 实验四  编写程序实现以下功能:  1,在父进程中定义变量n,在子进程中对变量n进行++操作;并且打印变量n的值,打印子进程pid;  2,在父进程中打印变量n的值,并且打印父进程pid。  3,要求分别用fork和vfork创建子进程。 实验五  创建子进程一,在子进程中递归打印/home目录中的内容(用exec系列函数调用第二次实验中的代码完成此功能);  1.子进程结束的时候完成以下功能:  打印字符串“Child process exited!”  打印子进程标识符,打印父进程标识符。  2. 创建子进程二, 打印子进程运行环境中环境变量“USER”的值,通过exec系列中的某个函数设置子进程”USER”环境变量值为“zhangsan”,并且让该子进程完成以下命令:“ls –li /home”.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊飞飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值