代码编织梦想

文章目录

strerror

在这里插入图片描述
当一个函数运行错误时,它会将对应的错误码存放在一个int类型的全局变量errno中,strerror函数是将错误码转化成错误信息的函数,参数是一个int类型的errno错误码,返回值为错误信息的首地址。

#include <stdio.h>
#include <string.h>
#include <errno.h>

int main()
{
	FILE* pf = fopen("test.txt", "r");//打开失败返回NULL
	if (pf == NULL)
	{
		printf("%s", strerror(errno));
	}
  else
  {
	fclose(pf);
	pf = NULL;
	}
	return 0;
}

注意:errno也要包含头文件

perror

在这里插入图片描述
perror函数没有返回值,与strerror函数不同,strerror返回错误信息的首地址,要想知道错误信息还需要打印,perror直接打印没有返回值。
打印的信息为冒号+空格+错误信息

#include <stdio.h>

int main()
{
	FILE* pf = fopen("test.txt", "r");
	if (pf == NULL)
	{
		perror("test.txt");
	}
	else
	{
		fclose(pf);
		pf = NULL;
	}
	return 0;
}

在这里插入图片描述
perror的参数为
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_61488314/article/details/128819197

errno 两个相关的打印出错信息函数 strerror和perror-爱代码爱编程

一.源代码: #include "apue.h" #include <errno.h> int main(int argc, char *argv[]) {         fprintf(stderr, "EACCES:%s\n",strerror(EACCES) );         errno = ENOENT;  

apue 1-8 strerror 和 perror-爱代码爱编程

#include "apue.h" #include <errno.h> int main(int argc, char *argv[]) { fprintf(stderr, "EACCES: %s\n", strerror (EACCES)); errno = ENOENT; perror(argv[0]); exit(0); }

错误报告函数:strerror和perror_zgege的博客-爱代码爱编程_strerror和perror

本文主要介绍两种错误错误报告函数:strerror和perror。 strerror主要用于字符串错误报告,perror则是以一种简单,统一的方式报告错误,perror适用范围更广,更简单。 strerror函数原型如下

perror和strerror的使用和区别_拉普拉斯_凯的博客-爱代码爱编程

https://blog.csdn.net/diediexiaomi/article/details/76862248 (1) perror  头文件:stdio.h  void perror(const char *msg);  它是基于errno的当前值,在标准错上产生一条出错信息,然后返回。  它先输出由msg字符串,然后是一个冒号后头接着对应

errno、strerror与perror_欢欢喜欢欢欢喜喜的博客-爱代码爱编程

全局变量errno 经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。     在程序代码中包含 #include <errno.h>,然后每次程序调用失败的

线程创建的检测strerror与perror_shen-的博客-爱代码爱编程

在线程的创建中,检测创建是否成功为什么使用strerror而不是perror? 这要从perror和strerror的原理说起 在库函数中有个errno的全局变量,每个errno的值对应错误的类型。 当我们调用某些函

c语言学习之程序错误errno strerror perror-爱代码爱编程

系统维护着一个全局变量 int errno, 当大部分系统调用或者库函数出错时,可以根据该值来了解错误的描述信息。man 3 errno: 如何得到错误码描述的信息? 用 char *strerror(int errnum)

linux下的strerror文件,linux下的strerror和perror-爱代码爱编程

strerror和perror用于获取error相关的错误信息,strerror接受一个int,perror接受一个字符串。 #include #include #include int main(int argc,char *argv[]) { printf("%s\n",argv[0]); errno=2; printf("%

C语言错误信息报告函数strerror、perror的使用-爱代码爱编程

strerror char * strerror ( int errnum ); 返回错误码,所对应的错误信息。(是把错误码转化为对应的错误信息) #include <errno.h>//必须包含的头文件 可通过往strerror的参数中放入不同的数,罗列出错误提示 for (int i = 0; i < 10; i++) {

如何利用mdc快速查询应用接口全部执行日志-爱代码爱编程

对于每一个开发者来说,查询接口的执行日志都是一个高频率的操作,每当测试说接口有问题时,我们都需要去服务器或者日志系统上查报错的原因。 一般情况下,我们会通过对应的关键字或者接口地址去查询这个接口到底报了什么错,但是这带来一

strerror 和 perror区别与联系_perror和strerror-爱代码爱编程

(1) perror 头文件:stdio.h 函数原型:void perror(const char *msg); 它是基于errno的当前值,在标准错误输出上产生一条出错信息,然后返回。(不需要printf) 它先

spring 中 mybaits 的一级缓存失效_mybatis 一级缓存失效-爱代码爱编程

mybatis 的一级缓存 简单回顾下mybatis的一级缓存 本质上是一个基于map实现的内存级别的缓存,默认开启,生命周期是 sqlsession 级别的 为什么会失效 其实这个问题反向分析一下就会有思路了,一级缓存默

图文详解 java 泛型,写得太好了!-爱代码爱编程

一、泛型的引入 我们都知道,继承是面向对象的三大特性之一,比如在我们向集合中添加元素的过程中add()方法里填入的是Object类,而Object又是所有类的父类,这就产生了一个问题——添加的类型无法做到统一 由此就可能产生在遍历集合取出元素时类型不统一而报错问题。 例如:我向一个ArrayList集合中添加Person类的对象,但是不小心手