首页 > 其他分享 >异常处理(二)

异常处理(二)

时间:2022-10-31 07:55:06浏览次数:36  
标签:... return open 处理 errno int mode 异常

 1 // 错误码的返回方式一:pathname/flags/mode为入参;fd为出参,存储打开的文件句柄。
 2 int open(const char *pathname, int flags, mode_t mode, int* fd) {
 3   if (/*文件不存在*/) {
 4     return EEXIST;
 5   }
 6   
 7   if (/*没有访问权限*/) {
 8     return EACCESS;
 9   }
10   
11   if (/*打开文件成功*/) {
12     return SUCCESS; // C语言中的宏定义:#define SUCCESS 0
13   }
14   // ...
15 }
16 //使用举例
17 int fd;
18 int result = open(“c:\test.txt”, O_RDWR, S_IRWXU|S_IRWXG|S_IRWXO, &fd);
19 if (result == SUCCESS) {
20   // 取出fd使用
21 } else if (result == EEXIST) {
22   //...
23 } else if (result == EACESS) {
24   //...
25 }
26 
27 
28 // 错误码的返回方式二:函数返回打开的文件句柄,错误码放到errno中。
29 int errno; // 线程安全的全局变量
30 int open(const char *pathname, int flags, mode_t mode){
31   if (/*文件不存在*/) {
32     errno = EEXIST;
33     return -1;
34   }
35   
36   if (/*没有访问权限*/) {
37     errno = EACCESS;
38     return -1;
39   }
40   
41   // ...
42 }
43 // 使用举例
44 int hFile = open(“c:\test.txt”, O_RDWR, S_IRWXU|S_IRWXG|S_IRWXO);
45 if (-1 == hFile) {
46   printf("Failed to open file, error no: %d.\n", errno);
47   if (errno == EEXIST ) {
48     // ...        
49   } else if(errno == EACCESS) {
50     // ...    
51   }
52   // ...
53 }

 

标签:...,return,open,处理,errno,int,mode,异常
From: https://www.cnblogs.com/woaiheniunai/p/16842994.html

相关文章

  • 处理器
    概念:处理器是os的核心,负责管理调度,分配计算机系统的重要资源,并行控制程序执行执行过程处理器依据程序计数器(pc)中的指令地址从内存中取一条指令取到的指令,放入指令寄存......
  • 异常处理及程序调试
    一、模拟幼儿园分苹果    二、模拟幼儿园分苹果(除数不能为0)     三、模拟幼儿园分苹果(每个人至少分到一个苹果   四、模拟幼儿园分苹果(应用......
  • 【自然语言处理(NLP)】基于Transformer的中-英机器翻译
    文章目录​​【自然语言处理(NLP)】基于Transformer的中-英机器翻译​​​​前言​​​​(一)、任务描述​​​​(二)、环境配置​​​​一、数据准备​​​​(一)、加载开发......
  • 【自然语言处理(NLP)】基于FNN网络的电影评论情感分析
    文章目录​​【自然语言处理(NLP)】基于FNN网络的电影评论情感分析​​​​前言​​​​(一)、任务描述​​​​(二)、环境配置​​​​一、IMDB数据准备​​​​(一)、参数设......
  • 深入 Spring 系列之静态资源处理
    前一段时间,WebIDE开源的过程中,无意间接触到webjars,觉得比较有趣,于是研究并整理了一下。webjars是将前端的库(比如jQuery)打包成Jar文件,然后使用基于JVM的包管理器(比如......
  • Selenium4+Python3系列(五) - 多窗口处理之句柄切换
    写在前面感觉到很惭愧呀,因为居然在Selenium+Java系列中没有写过多窗口处理及句柄切换的文章,不过也无妨,不管什么语言,其思路是一样的,下面我们来演示,使用python语言来实现窗......
  • 11.异常处理与模块
    异常处理当检测到⼀个错误时,解释器就⽆法继续执⾏了,反⽽出现了⼀些错误的提示,这就是所谓的"异常"。python提供了两个非常重要的功能来处理python程序在运行中出现的异常......
  • C语言之预处理,头文件
    目录1预处理1.1简介1.2预处理器实例1.3预定义宏1.3.1简介1.3.2不带参数的宏1.3.3参数化的宏1.4预处理器运算符1.4.1宏延续运算符()1.4.2字符串常量化运算符(#)1.......
  • 06异常
    异常体系结构Java把异常当作对象来处理,定义一个基类java.lang.Throwable作为所有异常的超类Java异常处理机制处理异常自定义异常......
  • typescript文件导入svelte文件报错处理办法
    在typescripts文件中引入svelte文件时报错Cannotfindmodule'../components/HelloWorld.svelte'oritscorrespondingtypedeclarations.ts(2307)并且svelte已安装......