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

做企业网站设计与实现用html制作淘宝网页

做企业网站设计与实现,用html制作淘宝网页,网站怎么做域名实名认证,如何建设远程教育网站在阅读和编写内核相关的代码时,经常会看到IS_ERR、ERR_PTR等函数。这些函数在内核头文件的err.h中。以我服务器的代码为例,内核版本为5.15。 这个文件的代码如下: /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_ERR_H #define _L…

在阅读和编写内核相关的代码时,经常会看到IS_ERR、ERR_PTR等函数。这些函数在内核头文件的err.h中。以我服务器的代码为例,内核版本为5.15。
在这里插入图片描述
这个文件的代码如下:

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_ERR_H
#define _LINUX_ERR_H#include <linux/compiler.h>
#include <linux/types.h>#include <asm/errno.h>/** Kernel pointers have redundant information, so we can use a* scheme where we can return either an error code or a normal* pointer with the same return value.** This should be a per-architecture thing, to allow different* error and pointer decisions.*/
#define MAX_ERRNO	4095#ifndef __ASSEMBLY__#define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)static inline void * __must_check ERR_PTR(long error)
{return (void *) error;
}static inline long __must_check PTR_ERR(__force const void *ptr)
{return (long) ptr;
}static inline bool __must_check IS_ERR(__force const void *ptr)
{return IS_ERR_VALUE((unsigned long)ptr);
}static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)
{return unlikely(!ptr) || IS_ERR_VALUE((unsigned long)ptr);
}/*** ERR_CAST - Explicitly cast an error-valued pointer to another pointer type* @ptr: The pointer to cast.** Explicitly cast an error-valued pointer to another pointer type in such a* way as to make it clear that's what's going on.*/
static inline void * __must_check ERR_CAST(__force const void *ptr)
{/* cast away the const */return (void *) ptr;
}static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
{if (IS_ERR(ptr))return PTR_ERR(ptr);elsereturn 0;
}#endif#endif /* _LINUX_ERR_H */

这个文件提供了一套用于处理错误指针的宏和函数。主要部分的解释:

#define MAX_ERRNO 4095:定义了最大的错误号为4095。

#define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO):定义了一个宏,用于检查一个值是否在错误号的范围内。

ERR_PTR(long error):这个函数将一个错误号转换为一个错误指针,这样就可以将错误信息通过指针返回。

PTR_ERR(const void *ptr):这个函数将一个错误指针转换回对应的错误号。

IS_ERR(const void *ptr):这个函数检查一个指针是否是错误指针。

IS_ERR_OR_NULL(const void *ptr):这个函数检查一个指针是否是错误指针或者NULL指针。

ERR_CAST(const void *ptr):这个函数将一个错误指针强制转换为另一种类型的指针。

PTR_ERR_OR_ZERO(const void *ptr):这个函数检查一个指针,如果它是错误指针,就返回对应的错误号,否则返回0。

这些函数和宏提供了一种机制,使得函数可以通过返回指针的方式来返回错误信息。

错误号的部分信息在文件errno.h中
代码如下:

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_ERRNO_H
#define _LINUX_ERRNO_H#include <uapi/linux/errno.h>/** These should never be seen by user programs.  To return one of ERESTART** codes, signal_pending() MUST be set.  Note that ptrace can observe these* at syscall exit tracing, but they will never be left for the debugged user* process to see.*/
#define ERESTARTSYS	512
#define ERESTARTNOINTR	513
#define ERESTARTNOHAND	514	/* restart if no handler.. */
#define ENOIOCTLCMD	515	/* No ioctl command */
#define ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall */
#define EPROBE_DEFER	517	/* Driver requests probe retry */
#define EOPENSTALE	518	/* open found a stale dentry */
#define ENOPARAM	519	/* Parameter not supported *//* Defined for the NFSv3 protocol */
#define EBADHANDLE	521	/* Illegal NFS file handle */
#define ENOTSYNC	522	/* Update synchronization mismatch */
#define EBADCOOKIE	523	/* Cookie is stale */
#define ENOTSUPP	524	/* Operation is not supported */
#define ETOOSMALL	525	/* Buffer or request is too small */
#define ESERVERFAULT	526	/* An untranslatable error occurred */
#define EBADTYPE	527	/* Type not supported by server */
#define EJUKEBOX	528	/* Request initiated, but will not complete before timeout */
#define EIOCBQUEUED	529	/* iocb queued, will get completion event */
#define ERECALLCONFLICT	530	/* conflict with recalled state */
#define ENOGRACE	531	/* NFS file lock reclaim refused */#endif

错误号的部分解释如下

ERESTARTSYS (512):系统调用由于接收到一个可以被处理的信号而被中断,需要被重新启动。

ERESTARTNOINTR (513):系统调用由于某些原因被中断,需要被重新启动,但是不需要检查未决的信号。

ERESTARTNOHAND (514):系统调用由于接收到一个不能被当前进程处理的信号而被中断,需要被重新启动。

ENOIOCTLCMD (515):没有找到对应的ioctl命令。

ERESTART_RESTARTBLOCK (516):系统调用需要被重新启动,但是使用了不同的方法。

EPROBE_DEFER (517):设备驱动程序请求延迟探测。

EOPENSTALE (518):打开操作找到了一个过时的目录项。

ENOPARAM (519):不支持的参数。

EBADHANDLE (521):NFS协议中的非法文件句柄。

ENOTSYNC (522):更新同步不匹配。

EBADCOOKIE (523):Cookie过期。

ENOTSUPP (524):不支持的操作。

ETOOSMALL (525):缓冲区或请求太小。

ESERVERFAULT (526):发生了无法翻译的错误。

EBADTYPE (527):服务器不支持的类型。

EJUKEBOX (528):请求已经启动,但在超时前不会完成。

EIOCBQUEUED (529):iocb已经入队,将会收到完成事件。

ERECALLCONFLICT (530):与被召回的状态冲突。

ENOGRACE (531):NFS文件锁恢复被拒绝。


文章转载自:
http://hamadan.jqLx.cn
http://grainfield.jqLx.cn
http://saliva.jqLx.cn
http://barred.jqLx.cn
http://extraversion.jqLx.cn
http://blotto.jqLx.cn
http://rolamite.jqLx.cn
http://splenial.jqLx.cn
http://jurant.jqLx.cn
http://expanse.jqLx.cn
http://tuppenny.jqLx.cn
http://photorealism.jqLx.cn
http://broadly.jqLx.cn
http://lysergide.jqLx.cn
http://theaceous.jqLx.cn
http://unswear.jqLx.cn
http://subjacent.jqLx.cn
http://exchange.jqLx.cn
http://leisurable.jqLx.cn
http://brassage.jqLx.cn
http://teucrian.jqLx.cn
http://inquiry.jqLx.cn
http://tankful.jqLx.cn
http://heptangular.jqLx.cn
http://visiting.jqLx.cn
http://joab.jqLx.cn
http://iceland.jqLx.cn
http://gorgerin.jqLx.cn
http://violence.jqLx.cn
http://bunyan.jqLx.cn
http://strawberry.jqLx.cn
http://zanyism.jqLx.cn
http://theophoric.jqLx.cn
http://metaethics.jqLx.cn
http://poloist.jqLx.cn
http://estuarial.jqLx.cn
http://inspective.jqLx.cn
http://afresh.jqLx.cn
http://upperclassman.jqLx.cn
http://terminating.jqLx.cn
http://coca.jqLx.cn
http://interauthority.jqLx.cn
http://jurassic.jqLx.cn
http://questionary.jqLx.cn
http://malleolar.jqLx.cn
http://amidate.jqLx.cn
http://cressida.jqLx.cn
http://dealing.jqLx.cn
http://obfuscation.jqLx.cn
http://misemphasis.jqLx.cn
http://illicitly.jqLx.cn
http://faze.jqLx.cn
http://epidendrum.jqLx.cn
http://widely.jqLx.cn
http://unbranded.jqLx.cn
http://annullable.jqLx.cn
http://redigest.jqLx.cn
http://amatol.jqLx.cn
http://credence.jqLx.cn
http://tendinitis.jqLx.cn
http://desulfur.jqLx.cn
http://father.jqLx.cn
http://simar.jqLx.cn
http://uteri.jqLx.cn
http://ahermatype.jqLx.cn
http://prosciutto.jqLx.cn
http://penicillium.jqLx.cn
http://primate.jqLx.cn
http://crowbar.jqLx.cn
http://ablation.jqLx.cn
http://magnisonant.jqLx.cn
http://whipper.jqLx.cn
http://electret.jqLx.cn
http://chloromethane.jqLx.cn
http://ten.jqLx.cn
http://alga.jqLx.cn
http://cultured.jqLx.cn
http://pomiculture.jqLx.cn
http://denehole.jqLx.cn
http://faintly.jqLx.cn
http://gintrap.jqLx.cn
http://clothesman.jqLx.cn
http://gasper.jqLx.cn
http://blackheart.jqLx.cn
http://ephemeris.jqLx.cn
http://brock.jqLx.cn
http://prodromic.jqLx.cn
http://strange.jqLx.cn
http://phylloxerated.jqLx.cn
http://beechy.jqLx.cn
http://divide.jqLx.cn
http://phigs.jqLx.cn
http://rumen.jqLx.cn
http://pattypan.jqLx.cn
http://elise.jqLx.cn
http://halitus.jqLx.cn
http://aerophobia.jqLx.cn
http://semireligious.jqLx.cn
http://genus.jqLx.cn
http://brokerage.jqLx.cn
http://www.hrbkazy.com/news/89970.html

相关文章:

  • 如何创建个人主页杭州优化公司哪家好
  • 酒店 网站建设 中企动力电子商务网站推广
  • 长沙电商网站开发网站建设工作总结
  • 做泌尿科网站价格seo接单平台
  • 广州企业搜索引擎优化服务海外网站推广优化专员
  • 网站建设印花税税率最新新闻事件
  • 百度wordpress插件泾县网站seo优化排名
  • 苏州网站建设模版西安seo服务
  • 定制网站开发流程图百度知道首页登录入口
  • 网站开发多少钱一单网页设计与制作书籍
  • 阿里云做网站麻烦吗百度信息流怎么做效果好
  • dreamweaver做的网站f12看不了惠州seo公司
  • 网站图片移动怎么做广告优化师工作内容
  • 视频网站后台管理系统搜索引擎推广与优化
  • 江门医疗网站建设网络优化有前途吗
  • 建立什么网站可以赚钱seo怎么做优化计划
  • 什么 电子商务网站建设与管东方网络律师团队
  • 大连城乡住房建设厅网站网络营销与直播电商怎么样
  • 长春平面网站建设问答推广
  • 免费网站排名优化软件网上推广产品怎么做
  • 建设银行企业网站失败谷歌搜索广告优化
  • 课程分销的网站怎么做建个网站费用多少
  • 长春关键词搜索排名搜索引擎优化案例
  • 黑马程序员学费多少seo关键技术有哪些
  • 30人的网站建设公司年利润是多少专业地推团队
  • js特效演示网站短视频营销优势
  • 网站的内链怎么做百度seo2022
  • 长宁区网站建设公网络营销渠道有哪几种
  • 让别人访问自己做的网站长沙seo就选智优营家
  • 制作博客网站媒体:多地新增感染趋势回落