C标准库学习之<errno.h> ——错误
2017-01-25 15:45
891 查看
#include <stdio.h> #include <string.h> #include <math.h> #include <errno.h> // cuowu函数 /* ========================================================= time: 2017年1月25日14:37:54 objective: test C language's head file of <errno.h> version: Microsoft Visual C++ author: ChenFei remark: 日文system 有些字没法打要用pin音代替 ========================================================= */ int main(void) { /*========================================================= C宏ku extern int errno 当没有fa生cuowu shi,errno 默ren wei 0, 当要打?的文件 file.txt 不存在shi,errno wei 非0, diao用 strerror(errno) xian示 cuowu 描述。 ========================================================= */ FILE *fp; fprintf(stderr, "Value of errno: %d\n", errno); fp = fopen("file.txt", "r"); if( fp == NULL ) { fprintf(stderr, "Value of errno: %d\n", errno); fprintf(stderr, "Error opening file: %s\n", strerror(errno)); } else { fclose(fp); } //========================================================= /*========================================================= C宏ku EDOM Domain Error EDOM 表示一个cuowu域, 当shu入参数超guo数学函数定yi的域shi, errno 被she置wei EDOM ========================================================= */ double val; errno = 0; // 将 errno shewei 默renzhi 0 val = sqrt(-10); if(errno == EDOM) // EDOM 的十jin制zhi:33 { printf("EDOM 的十jin制zhi:%d\n",EDOM); printf("无效参数\n"); } else { printf("有效参数\n"); } errno = 0; // 将 errno shewei 默renzhi 0 val = sqrt(10); if(errno == EDOM) { printf("无效参数\n"); } else { printf("有效参数\n"); } //========================================================= /*========================================================= C宏ku ERANGE Range Error ERANGE 表示一个cuowu域, 当shu入参数dao致数学函数的zhi超出zhi域 shi errno 被she置wei ERANGE ========================================================= */ double x; double value; x = 1.000000; value = log(x); if( errno == ERANGE ) { printf("Log(%f) is out of range\n", x); } else { printf("Log(%f) = %f\n", x, value); } x = 0.000000; value = log(x); if( errno == ERANGE ) // ERANGE 的十jin制zhi:34 { printf("ERANGE 的十jin制:%d\n",ERANGE); printf("Log(%f) is out of range\n", x); } else { printf("Log(%f) = %f\n", x, value); } return 0; }
相关文章推荐
- mysql数据库使用错误<errno:13>
- ejb 学习:遇到错误:LazyInitializationException.<init> : failed to lazily initialize a collection of role:
- C标准库学习之<stddef.h> ——定义部分宏
- 发生系统错误 1275.此驱动程序被阻止加载 寒江孤钓<<windows 内核安全编程>> 学习笔记
- C++&nbsp;学习&nbsp;&lt;三&gt;&nbsp;:错误与解决方法
- C标准库学习之<assert.h> ——诊断
- C标准库学习之<math.h> ——数学函数
- 遇到Can\'t find file : \'./mc2db/job_list.frm\' <errno: 13>错误
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <四>
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <三>
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <二>
- C标准库学习之<setjmp.h> ——非局部跳转
- C++学习:关于“std::vector<Type>::iterator”的一个错误
- Python学习第一个程序:python第一个程序hello.py提示出现File "<stdin>",line 1错误
- # include <errno.h >查看错误代码errno是调试程序的一个重要方法。当Linux C API函数发生异常时,一般会将errno变量赋值一个整数,不同的值表示不同的含义,可以通过查看
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <一>
- C标准库学习之<ctype.h> ——字符处理
- 【学习ios之路:Objective-C错误】Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- 【C】初学习之错误处理——非局部跳转<setjmp.h>
- <机器学习系统设计>第十章(上)----代码与错误分析