day_03_出错处理和环境变量
2017-07-12 19:01
190 查看
一出错处理和环境变量
1C语言的出错处理
1 自己设计的func函数如何来返回错误信息
2 标准C库函数或者系统函数中如何给调用者返回错误对于错误处理提 供了一个全局变量和3个函数来解决显示错误原因的功能
2环境变量和环境表程序的执行环境
1 系统中提供的操作环境变量的API
getenv - 根据name获得value
putenv - 以name value 的形式设置环境变量若name不存在就添加新的环境变量若存在就覆盖
setenv - 设置环境变量是否覆盖取决与第三个参数
unsetenv - 删除环境变量
clearenv - 清空环境变量environ NULL
返回-1代表出错
2)返回值 原来打算返回为int类型,并且可正可负
修改设计,增加一个传出参数,带回操作结果;通过返回0代表运算 成功,返回-1代表运算失败。
* 除法运算的函数
3)返回值 返回为指针(NULL代表失败)
4)该函数不会执行失败,设置函数返回类型为void
三个函数:
strerror - - - - - - - - - - - -把错误编号转化为对应的错误提示字符串;
perror - - - - - - - - - - - - - 打印错误编码对应的字符串信息;(重点)
printf(“%m”) - - - - - 打印当前错误信息;
sudo a.out 读写方式打开/etc/passwd能成功 a.out 执行失败, 为什么?
答案:
当a.out执行时,系统会传递环境变量表给a.out,其中有一个环境变 量执行a.out是谁。
问题2:
如何编程获取环境变量?
答案:
当a.out开始在内存执行时,系统会传递参数
全局变量:char **environ;
查看环境变量的方法:shell中使用env命令,显示当前用户的环境变量信息。
getenv() - 根据name获得value
putenv() - 以name = value 的形式设置环境变量,若name不存在就添加新的环境变量,若存在就覆盖;
setenv() - 设置环境变量,是否覆盖取决与第三个参数;
unsetenv() - 删除环境变量;
clearenv() - 清空环境变量;environ = NULL
1C语言的出错处理
1 自己设计的func函数如何来返回错误信息
2 标准C库函数或者系统函数中如何给调用者返回错误对于错误处理提 供了一个全局变量和3个函数来解决显示错误原因的功能
2环境变量和环境表程序的执行环境
1 系统中提供的操作环境变量的API
getenv - 根据name获得value
putenv - 以name value 的形式设置环境变量若name不存在就添加新的环境变量若存在就覆盖
setenv - 设置环境变量是否覆盖取决与第三个参数
unsetenv - 删除环境变量
clearenv - 清空环境变量environ NULL
一、出错处理和环境变量
1、C语言的出错处理
1.1 自己设计的func函数如何来返回错误信息
1)返回值 返回为int类型 该值不会为负数返回-1代表出错
2)返回值 原来打算返回为int类型,并且可正可负
修改设计,增加一个传出参数,带回操作结果;通过返回0代表运算 成功,返回-1代表运算失败。
* 除法运算的函数
int div(int a, int b) { return a/b; } int div(int a, int b, int *result) { if(b) { *result = a/b; return 0; } return -1; }
3)返回值 返回为指针(NULL代表失败)
4)该函数不会执行失败,设置函数返回类型为void
1.2 标准C库函数或者系统函数中如何给调用者返回错误,对于错误处理提 供了一个全局变量和3个函数来解决显示错误原因的功能。
<errno.h>:用于存储错误的编号
三个函数:
strerror - - - - - - - - - - - -把错误编号转化为对应的错误提示字符串;
perror - - - - - - - - - - - - - 打印错误编码对应的字符串信息;(重点)
printf(“%m”) - - - - - 打印当前错误信息;
2、环境变量和环境表(程序的执行环境)
问题1:sudo a.out 读写方式打开/etc/passwd能成功 a.out 执行失败, 为什么?
答案:
当a.out执行时,系统会传递环境变量表给a.out,其中有一个环境变 量执行a.out是谁。
问题2:
如何编程获取环境变量?
答案:
当a.out开始在内存执行时,系统会传递参数
全局变量:char **environ;
查看环境变量的方法:shell中使用env命令,显示当前用户的环境变量信息。
2.1 系统中提供的操作环境变量的API
环境变量 = valuegetenv() - 根据name获得value
#include <stdlib.h> char *getenv(const char *name);
putenv() - 以name = value 的形式设置环境变量,若name不存在就添加新的环境变量,若存在就覆盖;
#include <stdlib.h> int putenv(char *string);
setenv() - 设置环境变量,是否覆盖取决与第三个参数;
#include <stdlib.h> int setenv(const char *name, const char *value, int overwrite);
unsetenv() - 删除环境变量;
#include <stdlib.h> int unsetenv(const char *name);
clearenv() - 清空环境变量;environ = NULL
#include <stdlib.h> int clearenv(void);
相关文章推荐
- Unix环境编程-出错处理
- 关于打开nios提示环境变量出错的解决
- android开发环境搭建:eclipse 下载--jdk环境变量配置--eclipse ide主题--genymotion下载--sdk源码关联--adb出错解决
- 批处理设置Java及Tomcat的环境变量
- window 利用皮处理脚本修改环境变量
- 关于linux环境变量出错问题
- 设置JAVA HOME环境变量的秕处理
- 由于系统环境变量的设置导致调用链接器出错
- XP下通过 命令行/批处理 修改环境变量
- 嵌入式 win7下QT开发环境配置出错处理
- 批处理解决环境变量的问题
- XP下通过 命令行/批处理 修改环境变量
- jdk1.7.0_03 + Tomcat 6.0.35环境变量配置
- 批处理设置Java环境变量/命令行设置Java环境变量
- 批处理写入windows环境变量
- Linux如何处理当前运行环境的环境变量
- unix环境高级编程-1.7-出错处理
- 环境变量字符集和数据库字符集不一样导致的错误,EXP-00091: Exporting questionable statistics 问题处理方法
- 批处理创建和修改环境变量
- JDK环境变量设置及javac不是内部命令错误处理