操作系统错误处理
错误处理
1、通过函数的返回值表示执行错误:
// 返回合法值表示成功 返回非法值表示失败
// 计算大小、查找
long file_size(const char* path)
{FILE* fp = fopen(path,"r");if(NULL == fp)return -1; // 返回非法值fseek(fp,SEEK_END,0);long size = ftell(fp);fclose(fp);return size;
}
// 返回指针类型 返回NULL/0xffffffff表示失败,malloc、mmap
Node* query_list(Node* head,TYPE data)
{for(Node* n=head->next; n; n=n->next){if(n->data == data)return n;}return NULL;
}
// 返回0表示成功,非零表示失败 main、fseek
// 永远成功的函数,printf、menu菜单函数
2、通过errno全局变量表示错误:
-
errno是一个记录系统最后一次错误代码原因的全局变量,是int类型的值,需要导入头文件 <errno.h> 通过该全局变量的值查看和调试程序错误。
-
当调用Linux系统API函数发生异常,一般系统会自动地将本程序的errno修改一个值,不同的值表示不同的异常,可以通过该值获取和推测出程序出现了什么问题,实际编程中能找出大部分调用系统API出现的异常
-
一般errno在程序执行成功时不会被修改,但是毕竟是一个全局变量,可能被其他人或者操作失误而修改,因此不能以errno非零就断定程序出现了异常,只能先根据其他具体条件判断出程序出现异常后,才能使用errno来确定异常的原因
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(int argc,const char* argv[])
{FILE* fp = fopen("xixi","r");if(NULL == fp) { printf("fopen:%d\n",errno); printf("fopen:%s\n",strerror(errno));printf("fopen:%m\n");perror("fopen");} fclose(fp);
}
相关文章:
操作系统错误处理
错误处理 1、通过函数的返回值表示执行错误: // 返回合法值表示成功 返回非法值表示失败 // 计算大小、查找 long file_size(const char* path) {FILE* fp fopen(path,"r");if(NULL fp)return -1; // 返回非法值fseek(fp,SEEK_END,0);long size …...
【靶场实操】sql-labs通关详解----第一节:基础注入方式(Less-1~Less-10)
目录 一、注入方式简要概括 1.1 SQL常见注入方式 1.2 爆破函数 二、靶场实操 2.1 Less-1 2.1.1 判断类型 2.1.2 联合注入查询 2.2 Less-2 2.2.1 判断类型 2.2.2 注入攻击 2.2.3 字符型与数字型漏洞对比 2.3 Less-3 2.3.1 判断 2.3.2 注入 2.4 Less-4 2.4.1 判断…...
力扣676.实现一个魔法字典
力扣676.实现一个魔法字典 字典树 dfs class Trie{public:Trie* next[26];bool is_end false;};class MagicDictionary {public:Trie* root new Trie();void add(string& word){Trie* p root;for(char c:word){if(p->next[c-a] NULL) p->next[c-a] new Trie…...
ctfshow-web入门-sql注入(web171-web175)
目录 1、web171 2、web172 3、web173 4、web174 5、web175 1、web171 单引号测一下,报错 -- 闭合后回显正常 也可以用 # ,不过需要 URL 编码 成功闭合之后,先判断下字段数: 1 order by 3-- 3 的时候正常 4 的时候报错&am…...
视频怎么添加音乐?分享5种视频添加音乐方法
在如今火爆的短视频时代,为视频添加合适的背景音乐,无疑是让其脱颖而出的关键一步。无论是打造个人Vlog、纪录片,还是创意短片,音乐都能赋予视频独特的情感与氛围。那么怎么给视频添加上背景音乐呢?给大家分享5种简单的…...
黑马JavaWeb后端案例开发(包含所有知识点!!!)
目录 1.准备工作 环境搭建 开发规范 REST(REpresentation State Transfer),表述性状态转换,它是一种软件架构风格 注意事项 统一响应结果 2.部门管理功能 查询部门 删除部门 新增部门 RequestMapping 3.员工管理功能 分页查询 批…...
FPGA开发——蜂鸣器实现音乐播放器的设计
一、概述 我们在进行蜂鸣器的学习的时候,总会在想既然蜂鸣器能够发出声音,那么它能够播放音乐吗,今天这篇我们文章我们就一起来学习怎样使用使用蜂鸣器来播放音乐,也就是怎样成为一个音乐播放器。 1、蜂鸣器的类型 在设计的时候…...
InnoDB存储引擎(1)
InnoDB存储引擎的优点 InnoDB在设计时考虑到了处理大数据量时的性能,支持事务,回滚和崩溃修复的能力,通过多版本并发控制来减少锁定(降低了锁的争用),同时还支持外键的约束;通过缓冲池在内存中缓存数据来提高查询的性能ÿ…...
VMWare虚拟机共享主机的网络访问外网
1.主机中启动客户端并连接外网 2.设置虚拟网络类型为NAT 3.启动虚拟并通过主机访问外网...
LeetCode Easy|【415. 字符串相加】
力扣题目链接 题目本身难度不大,但是后续的一些补充内容还是值得搞清楚的 主要的逻辑如下: 其实本题的目的就是让我们来模拟我们的竖式加法。所以很直观的一个想法就是使用双指针:分别指向两个 num 的末尾。随后就会产生一些问题:…...
RAG 革命:NVIDIA 工作站如何成为企业 AI 的秘密武器
在深圳的一家科技初创公司,首席技术官李梅正在向她的团队展示一个令人兴奋的新项目。“看这个,” 她指着屏幕上的实时演示说,“我们刚刚用公司的技术文档训练了一个 AI 助手,它现在可以回答任何关于我们产品的问题,而且…...
九大原则,轻松构建个人高效SOP
1、原则一、工作汇报SOP SCQA模型(升职加薪的关键!) 清晰定义问题和提出解决方案 类别 关键词 解读 S - Situation 情景 陈述项目背景,目标,愿景 C - Complication 冲突 讲卡点,讲冲突 Q - Question 疑问-问题 这些冲…...
Airtest的demo实现多设备并行
Airtest的demo实现多设备并行 它实现是的获取adb连接上的所有设备,然后在每一台设备上跑给定的测试用例,跑完之后生成单机的测试报告,最后再汇总这些单机测试报告的结果,形成汇总(聚合)报告: 同…...
社区养老服务小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,服务人员管理,服务产品管理,服务预约管理,服务状态管理,服务退订管理,活动管理,视频管理 微信端账号功能包…...
Interceptor拦截器开发
因为1登录后的接口都需要token验证代码,会出现重复代码;2当前的接口不防刷,会被恶意攻击 所以在controller层增加请求拦截,如果你的token不合法,就不让你做后续的处理了 拦截器的作用是什么 作用: 1、对controller层代码的访问进行拦截,合法的请求,那此层代码就处理,反…...
美团 AIGC产品经理面经(已拿 offer)
背景:211本科毕业,毕业之后在北京一家中型电商公司做了3年商家后台产品经理,目前通过老薛的朋友关系拿到了美团的offer。 目前还有几家在面试流程中,继续加油💪 美团AIGC产品面经-业务面 💥1、自我介绍&a…...
@RequestBody与@RequestParam
RequestBody会将请求体中的数据,转换成对象.最主要的是RequestBody就是要返回Json的字符串!!! RequestParam会从http请求查询参数中提取数据! RequestParam和RequestBody是Spring Framework中用于处理HTTP请求的注解…...
vmware上,虚机经常丢失网卡。导致无法上网。
1、winR 输入 services.msc 2、重启这两个服务。 VMware NAT service和VMware DHCP service...
git 鉴权失败
这条错误信息通常出现在使用Git进行远程操作时,比如克隆仓库、拉取更新或推送代码。错误的含义是: HTTP Basic: Access denied:访问被拒绝。The provided password or token is incorrect:提供的密码或令牌不正确。Your account …...
[C++] 容器适配器:深入理解Stack与Queue的底层原理
文章目录 容器适配器简介deque的缺陷为什么使用deque作为stack和queue的底层默认容器 stack和queue的简单讲解Stack(栈)栈的操作图示栈的相关接口 Queue(队列) Stack和Queue的模拟实现Stack(栈)作为容器适配…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
