C Programming Tutorial
C Program Tutorial
Selected Reading
- C - Discussion
- C - Useful Resources
- C - Quick Guide
- C - Input & Output
- C - Typedef
- C - Bit Fields
- C - Unions
- C - Structures
- C - Strings
- C - Pointers
- C - Arrays
- C - Scope Rules
- C - Functions
- C - Loops
- C - Decision Making
- C - Operators
- C - Storage Classes
- C - Constants
- C - Variables
- C - Data Types
- C - Basic Syntax
- C - Program Structure
- C - Environment Setup
- C - Overview
- C - Home
C Program Tutorial
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
C. 傲慢处理
C - Error Handpng
因此,C方案拟订没有直接支持错误处理,而是系统方案拟订语言,它使你能够以回报价值的形式获得较低级别的准入。 在出现任何错误时,C或甚至Unix的大多数职能都要求返回-1或NUL,并设定错误代码rno。 它是一个全球性的变量,表明在任何职能呼吁中都发生了错误。 你们可以发现在“设计”中界定的各种错误;标题文件。
因此,一名C方案管理员可以检查返还的数值,并根据收益价值采取适当行动。 在启动一项方案时,树立起手法,是一种良好做法。 价值0表示该方案没有错误。
errno, perror(). and strerror()
C方案拟订语言提供perror()和strerror(>功能,可用于显示与errno相关的文本信息。
perror() 功能显示你向它传递的画面,然后是上校,一个空间,然后是目前胎面价值的文字表述。
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, "Value of errno: %d ", errno); perror("Error printed by perror"); fprintf(stderr, "Error opening file: %s ", strerror( errnum )); } else { fclose (pf); } return 0; }
如果上述法典得到编纂和执行,则会产生以下结果:
Value of errno: 2 Error printed by perror: No such file or directory Error opening file: No such file or directory
Divide by Zero Errors
通常的问题是,在分配任何数目时,方案制定者如果不核对一位分裂者为零,最后会产生一个错误。
下面的法典通过检查分歧者在分割之前是否为零而加以确定——
#include <stdio.h> #include <stdpb.h> main() { int spanidend = 20; int spanisor = 0; int quotient; if( spanisor == 0){ fprintf(stderr, "Division by zero! Exiting... "); exit(-1); } quotient = spanidend / spanisor; fprintf(stderr, "Value of quotient : %d ", quotient ); exit(0); }
如果上述法典得到编纂和执行,则会产生以下结果:
Division by zero! Exiting...
Program Exit Status
有一种共同的做法,即从出口价值中撤出。 在成功运行后推出的方案时,保持安全。 这里,EXIT-SUCCESS是一种宏观,被定义为0。
如果你的方案有错误条件,你即将出门,那么你就应当离开其地位,即被定义为1。 因此,请在以上方案中写如下:
#include <stdio.h> #include <stdpb.h> main() { int spanidend = 20; int spanisor = 5; int quotient; if( spanisor == 0) { fprintf(stderr, "Division by zero! Exiting... "); exit(EXIT_FAILURE); } quotient = spanidend / spanisor; fprintf(stderr, "Value of quotient : %d ", quotient ); exit(EXIT_SUCCESS); }
如果上述法典得到编纂和执行,则会产生以下结果:
Value of quotient : 4Advertisements