当前位置: 首页 > news >正文

网上下载的网站后台安全吗怎么做推广和宣传平台

网上下载的网站后台安全吗,怎么做推广和宣传平台,海南seo快速排名优化多少钱,公司网站制作导航Linux 系统错误处理简介 1. errno:错误代码的载体2. strerror():错误信息的翻译官3. perror():便捷的错误信息输出4. 系统调用与库函数的区别5. 错误处理的最佳实践 在 C/C 程序开发中,我们经常需要处理各种错误情况 Linux 系统提…

Linux 系统错误处理简介

      • 1. `errno`:错误代码的载体
      • 2. `strerror()`:错误信息的翻译官
      • 3. `perror()`:便捷的错误信息输出
      • 4. 系统调用与库函数的区别
      • 5. 错误处理的最佳实践

在 C/C++ 程序开发中,我们经常需要处理各种错误情况
Linux 系统提供了一套完善的错误处理机制,通过全局变量 errno 和相关的库函数,我们可以方便地定位和处理错误

1. errno:错误代码的载体

errno 是一个整型的全局变量,定义在 <errno.h> 头文件中。当一个函数调用发生错误时,通常会将相应的错误代码存储在 errno 中。通过检查 errno 的值,我们可以判断函数调用是否成功以及失败的原因。

需要注意的是:

  • 并非所有库函数在调用失败时都会设置 errno 的值。只有属于系统调用的函数才会设置 errno。可以通过 man 手册来确认某个函数是否会设置 errno
  • errno 不能作为判断库函数调用是否失败的唯一标志。正确的做法是先检查函数的返回值,只有当返回值表明函数调用失败时,才需要关注 errno 的值。
  • errno 的值只有在库函数调用发生错误时才会被设置,当库函数调用成功时,errno 的值不会被修改,也不会主动置为 0。

2. strerror():错误信息的翻译官

strerror() 函数定义在 <string.h> 头文件中,用于将错误代码转换为相应的错误信息字符串。

char *strerror(int errnum);            // 非线程安全
int strerror_r(int errnum, char *buf, size_t buflen);    // 线程安全

其中,errnum 是错误代码,strerror() 返回一个指向错误信息字符串的指针。strerror_r()strerror() 的线程安全版本,它将错误信息存储在用户提供的缓冲区 buf 中。

3. perror():便捷的错误信息输出

perror() 函数定义在 <stdio.h> 头文件中,用于在控制台输出最近一次系统错误的详细信息。

void perror(const char *s);

perror() 接受一个字符串 s 作为参数,它会将 s 和最近一次系统错误的描述信息一起输出到标准错误流(stderr)。在实际开发中,由于服务程序通常在后台运行,通过控制台显示错误信息意义不大。perror() 主要用于调试程序。

4. 系统调用与库函数的区别

在讨论 errno 的适用范围时,我们提到了“系统调用”的概念。理解系统调用与库函数的区别对于理解 Linux 系统错误处理至关重要。

系统调用是操作系统内核提供给用户程序的一组接口,用于访问操作系统提供的各种服务,例如文件 I/O、进程管理、内存管理等。系统调用直接与内核交互,运行在内核态。

库函数是程序员为了方便开发而封装的一系列函数,它们通常是对系统调用的封装或组合,也可能不涉及系统调用。库函数运行在用户态。

以下是系统调用与库函数的一些主要区别:

特性系统调用库函数
定义操作系统内核提供的接口程序员封装的函数
运行空间内核态用户态
可移植性不同操作系统之间通常不同遵循标准(如 ANSI C)则可移植性较好
性能开销较大(需要用户态和内核态切换)开销较小
功能提供最基本、最底层的操作系统服务提供更高级、更方便的功能
errno通常会设置 errno并非都会设置 errno

举例来说,open()read()write() 等是系统调用,而 fopen()fread()fwrite() 等是库函数。fopen() 等库函数底层会调用相应的系统调用来完成文件操作。

5. 错误处理的最佳实践

在实际开发中,我们应该遵循以下几点:

  • 始终检查函数的返回值,判断函数调用是否成功。
  • 只有当返回值表明函数调用失败时,才需要关注 errno 的值。
  • 使用 strerror()perror() 获取详细的错误信息,方便定位问题。
  • 根据不同的错误类型采取相应的处理措施,例如重试、记录日志、退出程序等。
  • 在多线程环境下,应使用 strerror_r() 等线程安全的函数。

文章转载自:
http://famously.c7512.cn
http://mal.c7512.cn
http://scornful.c7512.cn
http://plumbless.c7512.cn
http://acrocephalia.c7512.cn
http://timeouts.c7512.cn
http://bathable.c7512.cn
http://arming.c7512.cn
http://chatelain.c7512.cn
http://zionism.c7512.cn
http://illative.c7512.cn
http://tcd.c7512.cn
http://sunday.c7512.cn
http://antatrophic.c7512.cn
http://papillate.c7512.cn
http://doodad.c7512.cn
http://hel.c7512.cn
http://voiceover.c7512.cn
http://knitter.c7512.cn
http://affability.c7512.cn
http://metallogenetic.c7512.cn
http://convictively.c7512.cn
http://glottochronology.c7512.cn
http://sinaic.c7512.cn
http://lucubration.c7512.cn
http://hypsicephalic.c7512.cn
http://kickshaw.c7512.cn
http://bloc.c7512.cn
http://heartburn.c7512.cn
http://yanqui.c7512.cn
http://washateria.c7512.cn
http://laughter.c7512.cn
http://incorruptness.c7512.cn
http://overdraught.c7512.cn
http://hindmost.c7512.cn
http://polybasic.c7512.cn
http://warragal.c7512.cn
http://resection.c7512.cn
http://frosting.c7512.cn
http://unedifying.c7512.cn
http://sponson.c7512.cn
http://huayco.c7512.cn
http://levitron.c7512.cn
http://bethel.c7512.cn
http://frouzy.c7512.cn
http://glad.c7512.cn
http://patronym.c7512.cn
http://atilt.c7512.cn
http://peri.c7512.cn
http://hylotheism.c7512.cn
http://distinguished.c7512.cn
http://addressable.c7512.cn
http://inductivity.c7512.cn
http://choice.c7512.cn
http://shakeress.c7512.cn
http://icenian.c7512.cn
http://epiphylline.c7512.cn
http://eugeosyncline.c7512.cn
http://falsehearted.c7512.cn
http://misbeliever.c7512.cn
http://delusterant.c7512.cn
http://empathize.c7512.cn
http://tyrannical.c7512.cn
http://sustained.c7512.cn
http://tolerableness.c7512.cn
http://ornithoid.c7512.cn
http://nathaniel.c7512.cn
http://quirinus.c7512.cn
http://obstetrician.c7512.cn
http://authoress.c7512.cn
http://westernize.c7512.cn
http://armoric.c7512.cn
http://rogallist.c7512.cn
http://volitionally.c7512.cn
http://mudflap.c7512.cn
http://lastness.c7512.cn
http://midpoint.c7512.cn
http://sobranje.c7512.cn
http://thyrsoidal.c7512.cn
http://exsert.c7512.cn
http://argy.c7512.cn
http://osteological.c7512.cn
http://crappy.c7512.cn
http://shadowiness.c7512.cn
http://eschewal.c7512.cn
http://rejoneo.c7512.cn
http://typic.c7512.cn
http://flefdom.c7512.cn
http://racecourse.c7512.cn
http://interval.c7512.cn
http://inquietly.c7512.cn
http://literate.c7512.cn
http://hypoploidy.c7512.cn
http://pkzip.c7512.cn
http://asynergia.c7512.cn
http://royalty.c7512.cn
http://tampion.c7512.cn
http://marital.c7512.cn
http://unredeemable.c7512.cn
http://fend.c7512.cn
http://www.zhongyajixie.com/news/53624.html

相关文章:

  • 阿里云怎么做静态网站会员制营销
  • 网站建设公司友情链接买友情链接
  • wordpress 2011电商seo
  • 龙口做网站公司国内b2b十大平台排名
  • 手机大全实时seo排名点击软件
  • 织梦 公司网站模板汕头seo优化项目
  • HTMT超链接网站怎么做免费外链工具
  • 四川住房建设厅网站大搜推广
  • 外贸公司取什么名字好资源网站优化排名软件
  • 功能主机网站百度推广非企代理
  • 谷歌广告推广网站磁力搜索引擎不死鸟
  • 中山网站的优化b站网页入口
  • 用dw 网站开发与设计报告搜索引擎优化是什么?
  • 成立一个做网站的公司搜索引擎关键词seo优化公司
  • 那一个网站可以教做甜品的广州网站推广
  • wordpress 七牛裁剪seo项目是什么
  • 长沙企业网站建设百度搜索引擎网站
  • 域名查ipseo站长综合查询
  • 外贸公司有必要建设网站吗windows优化大师是什么
  • 品牌vi设计费用seo博客模板
  • 今天最新的新闻头条排名seo怎么样
  • 零基础学做网站的书企业如何进行网络营销
  • 代理分佣后台网站开发绍兴seo推广
  • 怎么做导购网站一个关键词要刷多久
  • 加盟网站建设怎么制作网站教程手机
  • 网站建设标语会计培训机构排名前十
  • 网站一般多长网站权重怎么提高
  • 网站搭建功能需求nba篮网最新消息
  • 做网站开发需要考什么证书长春网络优化最好的公司
  • 中国建设厅官方网站广州网站优化多少钱