#include // void perror(const char *msg);

#include // char *strerror(int errnum);

#include //errno

errno 是错误代码,在 errno.h头文件中;

perror是错误输出函数,输出格式为:msg:errno对应的错误信息(加上一个换行符);

strerror 是通过参数 errnum (就是errno),返回对应的错误信息。

以下是测试程序:

--------------------------------------------------------------------

// p_str_error.c

// perror , strerror 函数 , errno 测试

#include

#include

#include

#include

int main(int argc, char *argv[])

{

FILE *fp;

char *buf;

if( (fp = fopen(argv[1], "r")) == NULL)

{

perror("perror"); // 好方便

errno = 12;

printf("strerror: %s\n", strerror(errno)); //转换错误码为对应的错误信息

exit(1);

}

perror("perror");

errno = 13;

printf("strerror: %s\n", strerror(errno));

fclose(fp);

return 0;

}

--------------------------------------------------------------------

输入一个存在的文件名,如:./a.out 111

open失败则会输出:

perror: No such file or directory

strerror: Cannot allocate memory

open成功则会输出:

perror: Success

strerror: Permission denied

很明显,perror信息是由 perror函数输出的了,第二行是 strerror通过将 errno 轮换成对应的错误信息打印出来。

这次就写这么多了,程序简单,没啥好说的了。 最近在搭建开发环境,设计整个系统架构了。花了六年时间研发的系统,终于上线了。 我要用多少时间来学习呢,还好有资料,有源码,学习起来还不算吃力,嘿嘿。。。。。。 我要写一套山寨版的^_^!!!

linux下perror函数,Linux学习 之 perror函数,strerror函数,errno相关推荐

  1. linux下rpm,yum学习

    linux下RPM及yum学习 linux中程序管理程序主要分为两类 dpkg(Debian Packager):debian,Ubuntu,Knoppix         rpm(Redhat Pa ...

  2. linux下的加密解密学习

    linux下的加密解密学习 加密/解密:         加密协议:加密解密使用同一秘钥:3des,aes         公钥加密:公钥私钥对         数字签名,密钥交换          ...

  3. LINUX下USB1.1设备学习小记(2)_协…

    LINUX下USB1.1设备学习小记(2)_协议 (2009-03-27 14:40) 分类: 文章转载 USB协议: 先看USB接口 可以看出,在USB使用了4根线,分别为电源线,地线,信号线和差分 ...

  4. Linux下netstat常用,Linux netstat常用命令

    1.统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2.统计httpd协议连接数(查看Apache的并发请求数及其TCP连接状态) ps -ef ...

  5. linux nginx安装php5.5,linux下搭建LNMP(linux+nginx+mysql+php)环境之mysql5.5安装

    linux下搭建LNMP(linux+nginx+mysql+php)环境之mysql5.5安装: 首先安装依赖包: yum -y install gcc gcc-c++ autoconf libjp ...

  6. lnmp php 5.4,linux下搭建LNMP(linux+nginx+mysql+php)环境之php5.4安装

    安装准备:依赖包下载wget http://ah1.down.chinaz.com/201303/PHP-v5.4.13.tar.gz wget http://soft.7dot.com/soft/l ...

  7. Linux下高级C编程(学习总结)

    Linux下高级C编程 第一章 unix/linux系统的基本概念 第二章 unix/linux系统下的编程基础和开发方式 第三章 unix/linux系统下的内存管理 第四章 unix/linux系 ...

  8. 操作系统知识整理——Linux下进程的内存布局以及brk()、sbrk()函数探究

    文章目录 前言 一.内存堆栈模型 二.系统栈和用户栈 三.函数调用时的内存栈分配 四.brk(), sbrk() 用法详解 前言 本篇文章是自己在学习xv6操作系统内核时,发现自己对进程在内存中的布局 ...

  9. linux下的fgetc()与fputc()函数详细介绍及代码演示

    linux下的标准I/O的fgetc()与fputc()函数详细介绍及代码演示 文章目录 前言 一.fgetc()用法介绍 二.fputc()用法介绍 代码演示 总结 前言 在C语言中,读写文件比较灵 ...

  10. 【转载】Linux下套接字学习

    感觉这个系列还不错,学习一下. 先看的是第三篇: http://blog.csdn.net/gatieme/article/details/46334337 < Linux下套接字详解(三)-- ...

最新文章

  1. [bzoj1042][HAOI2008]硬币购物
  2. pytho基础之文件处理
  3. 阿里钉钉,马云旗下的又一个千亿美金产品?
  4. ftp在命令行状态下下载跟上传东西
  5. python异步实现方式_Python通过yield实现异步
  6. linux ls for 命令嵌套
  7. 32位64位Eclipse和jdk对应关系
  8. css预处理器--sass学习($变量名)
  9. 软件工程 第三章 需求分析
  10. c语言程序调试方法有哪些,c语言程序的调试方法有哪些
  11. JavaCV的摄像头实战之七:推流(带声音)
  12. cheerio获取outerHTML
  13. android tabbar框架,Android 自定义tabbar 用viewPage实现
  14. VUCA时代下,如何有效提高项目成功率?
  15. AngularJs 在ng-repeat中动态使用ng-model进行双向数据绑定(二)
  16. 黑龙江大米:正宗东北大米,源于黑土地
  17. 魅蓝手机显示无服务器,魅蓝手机网速显示设置(魅蓝2)
  18. html十六进制和RGB颜色表
  19. Linux系统yum源的三种配置方法
  20. python支付宝自动支付_python 调用支付宝支付

热门文章

  1. 计算机基础知识精品课程,计算机基础精品课程网站
  2. 卸载office密钥的命令
  3. webpack5 基础配置(性能优化)12 DLL Terser Scope Hoisting
  4. Word中下一页表格无法提到上一页,导致有一大段空白的解决办法
  5. 职业经理人必备的英文词汇
  6. 按照 老罗博客学习安卓 记录
  7. [BZOJ4664]Count/[JOI Open 2016]摩天大楼
  8. html中增删改查怎么写,增删改查crud
  9. 蓝桥杯转接板 定时器2使用
  10. RS232 422 485定义、接口、接线图