strerror函数

目录

strerror

函数介绍:

 举例:

使用案例:

优化:

perror:



strerror

strerror函数_第1张图片

函数介绍:

  • 函数声明: char * strerror ( int errnum );
  • 头  文  件:#include
  • 返  回  值: 返回值为char * 类型 。指向描述错误错误的错误字符串的指针。

原理:

  1. 在C语言的库函数中设计一些错误码,当我们库函数在调用的过程的中发生了各种错误,要记录下来,这时候记录的就是错误码。
  2. 注意,当出现一连续的错误时,返回的只有第一个错误码。

 举例:

int main()
{
 int i = 0;
 for (i = 0; i < 10; i++)
 {
  char * ret = strerror(i);
  printf("%d : %s\n", i , ret);
 }
 
return 0;
}

将0~9作为错误码,并使用strerror将错误码中的错误信息打印出来。

strerror函数_第2张图片

使用案例:

//当库函数调用失败的时候,会讲错误码记录到errno这个变量
//errno是一个C语言的全局变量
//打开文件 - 读写文件之前,需要打开文件
//读取文件前,需要打开文件,如果要打开成功,需要文件是存在的
//如果文件不存在,则打开失败,fopen会返回NULL

#include 
int main()
{
  FILE* pf = fopen("add.txt","r");
  if (pf == NULL)
  {
     printf("打开文件失败,失败的原因:%s\n"strerar(errno));
     return 1;
  }
  else
  {
     printf("打开文件成功\n");
  }
  return 0;
}

输出结果:

 

优化:

  •   printf("打开文件失败,失败的原因:%s\n"strerar(errno));进行改造,变为perror("打开文件失败,失败的原因");二者的结果是一致的。

perror:

 

 如果说strerror是读取错误码中的错误信息,那么perror是直接打印出错误码中的信息,这是二者之间最大的区别。

且perror();中是先打印出括号中的内容,随后在直接打印错误信息。

 

你可能感兴趣的:(C语言,算法,c语言,函数)