rc应该是return code的意思,将函数返回值rc初始化为-EINVAL,EINVAL由POSIX.1规范中的一个宏,一般通过包含C标准头文件errno.h,表示参数无效(invalid argument),在VC中errno.h中定义如下:

#define EINVAL          22

源于UNIX对错误的处理,UNIX中对系统API调用时如果返回0表示函数成功执行,返回-1则表示函数执行失败,通过设置errno这个全局变量来表示失败原因,这样系统就定义了一些错误码,Linux上shell中执行

man errno

可得到全部的错误码。其中就有一个EINVAL表示函数执行时,传递过来的参数无效(比如数组长度为负等)。

这些错误码都是定义的正值,另一种错误返回方式就是通过返回不同的值来表征错误的类型或程序退出的状态,典型的有进行IO时成功读取了多少字节或者成功写了多少字节,返回成功读或写的字节数。通过返回负数表示执行失败,这时我们可以通过返回不同的负值表征错误的类型,就有了

rc = -EINVAL

即在正的错误码前加一个负号,在错误处理时当返回值小于0时,我们就继续检测返回值的错误类型

int rc = -EINVAL是什么意思的更多相关文章

  1. iOS 数据库操作崩溃提示“ int rc = sqlite3_step([_statement statement]);”或者提示“ rc = sqlite3_step(pStmt);”

    数据库崩溃崩溃提示“ int rc = sqlite3_step([_statement statement]);”或者提示“ rc      = sqlite3_step(pStmt);”的时候,可 ...

  2. Linux kernel 之 socket 创建过程分析

    重要结构体 struct socket 结构体 // 普通的 BSD 标准 socket 结构体 // socket_state: socket 状态, 连接?不连接? // type: socket ...

  3. Linux网络协议栈(一)——Socket入门(2)

    转自: http://www.cnblogs.com/hustcat/archive/2009/09/17/1568765.html 3.套接字的实现套接字最先是在UNIX的BSD版本实现的,所以也叫 ...

  4. Linux内核Socket实现之------Socket创建(2) 文件描述符

    转载请注明:http://blog.chinaunix.net/uid-20788636-id-4408276.html 1.2 sock_map_fd函数 在用户空间创建了一个socket后,返回值 ...

  5. Internet 网络协议族

    1.linux目前支持多种协议族,每个协议族用一个net_porto_family结构实例来表示,在初始化时,会调用sock_register()函数初始化注册到net_families[NPROTO ...

  6. 46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1)

    内核版本          :  Linux 3.10.14 rc红外接收类型:  GPIO 类型的NEC红外编码 本章内容 1) rc体系结构分析 2) 分析红外platform_driver平台驱 ...

  7. Android如何配置init.rc中的开机启动进程(service)【转】

    本文转载自:http://blog.csdn.net/qq_28899635/article/details/56289063 开篇:为什么写这篇文章 先说下我自己的情况,我是个普通的大四学生,之前在 ...

  8. 嵌入式Linux驱动学习之路(二十六)DM9000C网卡驱动程序

    基于DM9000C的原厂代码修改dm9000c的驱动程序. 首先确认内存的基地址 iobase. 确定中断号码. 打开模块的初始化函数定义. 配置内存控制器的相应时序(结合DM9000C.C的手册). ...

  9. linux下bus、devices和platform的基础模型

    转自:http://blog.chinaunix.net/uid-20672257-id-3147337.html 一.kobject的定义:kobject是Linux2.6引入的设备管理机制,在内核 ...

随机推荐

  1. 数据库工具——Navicat Premium使用技巧

    Navicat Premium 常用功能讲解 1.快捷键 1.1. F8 快速回到当前对象列表  1.2. Ctrl + q 打开查询界面  1.3. Ctrl + d 快速修改当前的表结构  1.4 ...

  2. 简述synchronized和java.util.concurrent.locks.Lock的异同

    1.synchronized 用在方法和代码块的区别? a. 可以只对需要同步的使用 b.与wait(),notify()和notifyall()方法使用比较方便 2.wait() a.释放持有的对象 ...

  3. AutoReplace in pl/sql developer

    AutoReplace in pl/sql developer SL=SELECT S*=SELECT * FROM 2D=TO_DATE('2017-01-01 01:01:00','YYYY-MM ...

  4. Node.js具体解析

    介绍 JavaScript 高涨的人气带来了非常多变化.以至于现在使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样,现在我们也能够在server上执行 JavaScript ,从前端跨越 ...

  5. 【编码格式错误】SyntaxError: Non-UTF-8 code starting with

    问题: SyntaxError: Non-UTF-8 code starting with '\xba' in file E:/placement/placement/Placement Test/c ...

  6. maven 自建库

    maven repository 标签: mavenjarxmlserver工具磁盘 2009-11-26 10:56 42322人阅读 评论(7) 收藏 举报   目录(?)[+]   什么是Mav ...

  7. SRM 621 D2L3: MixingColors, math

    题目:http://community.topcoder.com/stat? c=problem_statement&pm=10409&rd=15854 利用高斯消元求线性空间的基,也 ...

  8. C语言之基本算法41—字符串匹配问题

    //字符串匹配问题 /* =============================================================== 题目:输入两字符串S,T,输出在S中存在但在T ...

  9. luogu3111 [USACO14DEC]牛慢跑Cow Jog_Sliver

    题目大意 有N (1 <= N <= 100,000)头奶牛在一个单人的超长跑道上慢跑,每头牛的起点位置都不同.由于是单人跑道,所有他们之间不能相互超越.当一头速度快的奶牛追上另外一头奶牛 ...

  10. DNS隧道工具使用 不过其网络传输速度限制较大

    DNS隧道工具使用 http://www.freebuf.com/sectool/112076.html http://netsec.ccert.edu.cn/zhengming/2011/11/01 ...