errno定义,errno的值

1、前言

stdin:标准输入       //键盘输入的内容会存在这个文件里

stdout:标准输出     //屏幕输出的内容会存在这个文件里

stderr:标准错误      //屏幕输出的错误信息会存在这个文件里,与正常输出到stdout的信息分开

2、perror

#include <stdlib.h>

void perror(const char*s);

将上一个函数发生的错误原因输出到标准错误中stderr;s为用户的提示信息,会先被打印出来,后面会紧跟着错误原因字符串,此错误原因依照全局变量errno的值来决定要输出的字符串。

在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。陶醉的花卷调用”某些”函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和errno所对应的错误一起输出。

#include <stdlib.h>int main(int argc, char *argv[]){ FILE *fp; fp=fopen(“/root/myfile”,”r+”); if(NULL==fp) { perror(“/root/myfile”); } return 0;}

 

会发现: void perror(const char*s);s是用户要输出的提示信息,perror会在后面添加   :错误原因

上一个函数即:fopen

3、errno

#include <errno.h>

errno是一个全局变量,不同的数值表示不同的出错原因;当linux系统调用api失败时,根据errno分析原因。

#include <stdlib.h>#include <string.h>int main(int argc, char *argv[]){ FILE *fp; fp=fopen(“/root/myfile”,”r+”); if(NULL==fp) { perror(“/root/myfile”); printf(“errno=%d\n”,errno); char * mesg = strerror(errno); printf(“/root/myfile:%s\n”,mesg); } return 0;}

 

 总结:perror和打印输出strerror(errno)的效果是一样的。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注