linux 中的errno 和 strerror(errno)

1. errno.h 中包含 errno 这个错误保存值

string.h 包含 strerror() 函数 ,它的原型 是 char *strerror(int errnum);

输入值应该是errno,返回值是 errno 对应的 错误提示字符串

stdio.h 包含perror() 函数,它的原型是  void perror(char * string),即使string为空,它也会把strerror(errno)的内容打印出来

参考博客:https://www.cnblogs.com/Jimmy1988/p/7485133.html

原文地址:https://www.cnblogs.com/jyfyonghu/p/11155170.html

时间: 2024-10-13 20:17:27

linux 中的errno 和 strerror(errno)的相关文章

linux中网络编程<1>

1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket--->插槽(低俗的哈哈哈哈),看作文件描述符,Linux基本哲学一切皆文件,那么是不是也可以读写关闭这样的习惯性操作呢.对了,差不多的啦. (3)来看看tcp交互流程 ok具体看看各个函数 第一个:int socket(int domain,int type,int protocol) 参数介绍: domai

linux中c语言errno的使用

在linux中使用c语言编程时,errno是个很有用的动动.他可以把最后一次调用c的方法的错误代码保留.但是如果最后一次成功的调用c的方法,errno不会改变.因此,只有在c语言函数返回值异常时,再检测errno. errno会返回一个数字,每个数字代表一个错误类型.详细的可以查看头文件./usr/include/asm/errno.h 如何把errno的数字转换成相应的文字说明?方式一:可以使用strerrno函数 char*strerror(interrno) 使用方式如下: fprintf

linux中errno使用(转)

当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题.但是errno是一个数字,代表的具体含义还要到errno.h中去阅读宏定义,而每次查阅是一件很繁琐的事情. 有下面几种方法可以方便的得到错误信息  (1)void perror(const char *s)函数说明perror ( )用来将上一个函数发生错误的原因输出到标准错

linux中对errno是EINTR的处理

慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用.永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类.如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证. EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能返回一个EINTR错误.例如:在socket服务器端,设置了信号捕获机制,有子进程,当在父进程阻塞于慢系统调用时由父进程捕获到了一个有效信号时,内核会致

linux 中的进程wait()函数

转载自:http://blog.sina.com.cn/s/blog_7776b9d3010144f9.html 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程-- 一个进程在调用exit

Linux中ifreq 结构体分析和使用 及其在项目中的简单应用

[基础知识说明] 结构原型: /* * Interface request structure used for socket * ioctl's.  All interface ioctl's must have parameter * definitions which begin with ifr_name.  The * remainder may be interface specific. */ struct ifreq {#define IFHWADDRLEN 6 union { 

linux中getmntent setmntent endmntent 用法例子

mntent 结构是在 <mntent.h> 中定义,如下: struct mntent {                      char    *mnt_fsname;    /* name of mounted file system */                      char    *mnt_dir;       /* file system path prefix */                      char    *mnt_type;      /*

Linux中的gpio口使用方法

Linux中的IO使用方法 应该是新版本内核才有的方法.请参考:./Documentation/gpio.txt文件 提供的API:驱动需要包含 #include <linux/gpio.h> 判断一个IO是否合法:int gpio_is_valid(int number); 设置GPIO的方向,如果是输出同时设置电平:/* set as input or output, returning 0 or negative errno */int gpio_direction_input(unsi

linux中mmap系统调用原理分析与实现

参考文章:http://blog.csdn.net/shaoguangleo/article/details/5822110 linux中mmap系统调用原理分析与实现 1.mmap系统调用(功能)      void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )      内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的