错误情况简单
来源:互联网 发布:利用445端口入侵win7 编辑:程序博客网 时间:2024/06/07 12:49
errno、perror() 和 strerror()
C 语言提供了 perror() 和 strerror() 函数来显示与 errno 相关的文本消息。
perror() 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
strerror() 函数,返回一个指针,指针指向当前 errno 值的文本表示形式。
可以使用多种方式来输出错误消息,在这里使用函数来演示用法。另外有一点需要注意,应该使用 stderr 文件流来输出所有的错误。
#include <stdio.h>
#include <errno.h>
#include <string.h>
extern int errno ;
int main ()
{
FILE * pf;
int errnum;
pf = fopen ("unexist.txt", "rb");
if (pf == NULL)
{
errnum = errno;
fprintf(stderr, "错误号: %d\n", errno);
perror("通过 perror 输出错误");
fprintf(stderr, "打开文件错误: %s\n", strerror( errnum ));
}
else
{
fclose (pf);
}
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
错误号: 2
通过 perror 输出错误: No such file or directory
打开文件错误: No such file or directory
被零除的错误
在进行除法运算时,如果不检查除数是否为零,则会导致一个运行时错误。
代码在进行除法运算前会先检查除数是否为零:
#include <stdio.h>
#include <stdlib.h>
main()
{
int dividend = 20;
int divisor = 0;
int quotient;
if( divisor == 0){
fprintf(stderr, "除数为 0 退出运行...\n");
exit(-1);
}
quotient = dividend / divisor;
fprintf(stderr, "quotient 变量的值为 : %d\n", quotient );
exit(0);
}
当上面的代码被编译和执行时,它会产生下列结果:
除数为 0 退出运行...
程序退出状态
程序成功执行完一个操作正常退出的时候会带有值 EXIT_SUCCESS。在这里,EXIT_SUCCESS 是宏,它被定义为 0。
如果程序中存在一种错误情况,当退出程序时,会带有状态值 EXIT_FAILURE,被定义为 -1。
#include <stdio.h>
#include <stdlib.h>
main()
{
int dividend = 20;
int divisor = 5;
int quotient;
if( divisor == 0){
fprintf(stderr, "除数为 0 退出运行...\n");
exit(EXIT_FAILURE);
}
quotient = dividend / divisor;
fprintf(stderr, "quotient 变量的值为: %d\n", quotient );
exit(EXIT_SUCCESS);
}
C 语言提供了 perror() 和 strerror() 函数来显示与 errno 相关的文本消息。
perror() 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
strerror() 函数,返回一个指针,指针指向当前 errno 值的文本表示形式。
可以使用多种方式来输出错误消息,在这里使用函数来演示用法。另外有一点需要注意,应该使用 stderr 文件流来输出所有的错误。
#include <stdio.h>
#include <errno.h>
#include <string.h>
extern int errno ;
int main ()
{
FILE * pf;
int errnum;
pf = fopen ("unexist.txt", "rb");
if (pf == NULL)
{
errnum = errno;
fprintf(stderr, "错误号: %d\n", errno);
perror("通过 perror 输出错误");
fprintf(stderr, "打开文件错误: %s\n", strerror( errnum ));
}
else
{
fclose (pf);
}
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
错误号: 2
通过 perror 输出错误: No such file or directory
打开文件错误: No such file or directory
被零除的错误
在进行除法运算时,如果不检查除数是否为零,则会导致一个运行时错误。
代码在进行除法运算前会先检查除数是否为零:
#include <stdio.h>
#include <stdlib.h>
main()
{
int dividend = 20;
int divisor = 0;
int quotient;
if( divisor == 0){
fprintf(stderr, "除数为 0 退出运行...\n");
exit(-1);
}
quotient = dividend / divisor;
fprintf(stderr, "quotient 变量的值为 : %d\n", quotient );
exit(0);
}
当上面的代码被编译和执行时,它会产生下列结果:
除数为 0 退出运行...
程序退出状态
程序成功执行完一个操作正常退出的时候会带有值 EXIT_SUCCESS。在这里,EXIT_SUCCESS 是宏,它被定义为 0。
如果程序中存在一种错误情况,当退出程序时,会带有状态值 EXIT_FAILURE,被定义为 -1。
#include <stdio.h>
#include <stdlib.h>
main()
{
int dividend = 20;
int divisor = 5;
int quotient;
if( divisor == 0){
fprintf(stderr, "除数为 0 退出运行...\n");
exit(EXIT_FAILURE);
}
quotient = dividend / divisor;
fprintf(stderr, "quotient 变量的值为: %d\n", quotient );
exit(EXIT_SUCCESS);
}
阅读全文
0 0
- 错误情况简单
- (转)考虑错误情况
- Volley错误可能情况
- 参数返回错误情况
- 简单记录当前情况
- 考虑可能的错误情况
- LaTeX 中图片格式错误情况
- uses-permission错误情况之一
- docker启动错误情况一
- python中文编码错误情况
- 简单查看oracle的连接情况和内存使用情况.
- 简单查看oracle的连接情况和内存使用情况.
- 段错误的第三种情况
- 导致Link2019 错误的 另一种情况
- 总结c++内存错误的典型情况
- Ubuntu查询软件安装情况 - 错误排解
- eclipse tomcat启动错误情况之一 SetPropertiesRule
- 配置Tomcat服务器出现错误情况解决办法
- 网络更新购物车的适配器
- 手机和电脑设备判断显示不同的页面
- Java开发练习9.2 TCP
- 【BZOJ】4552 [Tjoi2016&Heoi2016]排序 二分+线段树
- Android状态栏微技巧,带你真正理解沉浸式模式
- 错误情况简单
- Ubuntu 16.04编译安装OpenCV(Python)
- 学习JSON第一步
- SSM三大框架的整合的步骤:
- 计算机原码、反码、补码详解
- 【Java】基本类型之浮点类型(七)
- HDOJ 2042 不容易系列之二
- Android界面编程之BaseAdapter
- 网络更新购物车activity