定义在Android/system/core/include/utils/Errors.h中,小提示,Android代码中遇到的symbol,既不是Linux中提供的定义,使用source insight又找不到的情况下,可以去Android/system/core/include/目录找找,可能会有意想不到的收获哦。

定义如下:

1/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ANDROID_ERRORS_H
18#define ANDROID_ERRORS_H
19
20#include <sys/types.h>
21#include <errno.h>
22
23namespace android {
24
25// use this type to return error codes
26#ifdef _WIN32
27typedef int         status_t;
28#else
29typedef int32_t     status_t;
30#endif
31
32/* the MS C runtime lacks a few error codes */
33
34/*
35 * Error codes.
36 * All error codes are negative values.
37 */
38
39// Win32 #defines NO_ERROR as well.  It has the same value, so there's no
40// real conflict, though it's a bit awkward.
41#ifdef _WIN32
42# undef NO_ERROR
43#endif
44
45enum {
46    OK                = 0,    // Everything's swell.
47    NO_ERROR          = 0,    // No errors.
48
49    UNKNOWN_ERROR       = (-2147483647-1), // INT32_MIN value
50
51    NO_MEMORY           = -ENOMEM,
52    INVALID_OPERATION   = -ENOSYS,
53    BAD_VALUE           = -EINVAL,
54    BAD_TYPE            = (UNKNOWN_ERROR + 1),
55    NAME_NOT_FOUND      = -ENOENT,
56    PERMISSION_DENIED   = -EPERM,
57    NO_INIT             = -ENODEV,
58    ALREADY_EXISTS      = -EEXIST,
59    DEAD_OBJECT         = -EPIPE,
60    FAILED_TRANSACTION  = (UNKNOWN_ERROR + 2),
61#if !defined(_WIN32)
62    BAD_INDEX           = -EOVERFLOW,
63    NOT_ENOUGH_DATA     = -ENODATA,
64    WOULD_BLOCK         = -EWOULDBLOCK,
65    TIMED_OUT           = -ETIMEDOUT,
66    UNKNOWN_TRANSACTION = -EBADMSG,
67#else
68    BAD_INDEX           = -E2BIG,
69    NOT_ENOUGH_DATA     = (UNKNOWN_ERROR + 3),
70    WOULD_BLOCK         = (UNKNOWN_ERROR + 4),
71    TIMED_OUT           = (UNKNOWN_ERROR + 5),
72    UNKNOWN_TRANSACTION = (UNKNOWN_ERROR + 6),
73#endif
74    FDS_NOT_ALLOWED     = (UNKNOWN_ERROR + 7),
75    UNEXPECTED_NULL     = (UNKNOWN_ERROR + 8),
76};
77
78// Restore define; enumeration is in "android" namespace, so the value defined
79// there won't work for Win32 code in a different namespace.
80#ifdef _WIN32
81# define NO_ERROR 0L
82#endif
83
84}; // namespace android
85
86// ---------------------------------------------------------------------------
87
88#endif // ANDROID_ERRORS_H
89

所以,我们看到的status_t不过是int类型而已,只是取值有些枚举值已经定义好,当然也可以自己扩展。

Android Native代码中的status_t定义相关推荐

  1. Android Native 代码NDK开发学习笔记

    引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...

  2. android native java_在Android Native层中创建Java虚拟机实例

    前言 Android应用中JNI代码,是作为本地方法运行的.而大部分情况下,这些JNI方法均需要传递Dalvik虚拟机实例作为第一个参数.例如,你需要用虚拟机实例来创建jstring和其他的Java对 ...

  3. 在Android Native层中创建Java虚拟机实例

    前言 Android应用中JNI代码,是作为本地方法运行的.而大部分情况下,这些JNI方法均需要传递Dalvik虚拟机实例作为第一个参数.例如,你需要用虚拟机实例来创建jstring和其他的Java对 ...

  4. android native 代码内存泄露 定位方案

    android native 代码内存泄露 定位方案 java代码的内存定位,暂时我们先不关注.此篇文章,主要围绕c c++代码的内存泄露. ** *欢迎留言,交流您所使用的内存泄露定位方案.*c   ...

  5. java android 数组_android中数组的定义与使用

    android中数组的定义 可以直接在JAVA代码中声明,也可以在res->values目录下新建一个xml文件,作为数组资源进行声明 字符数组可以有如下2种声明方式String[]或者是Lis ...

  6. Android Native 代码 Release 编译 - 隐藏符号表

    使用 ndk-build NDK_DEBUG=0 可以编译 release 版本,但是符号表(Symbole table)仍然存在,如何隐藏呢? 在 Android.mk 文件中添加下面的配置: LO ...

  7. android 在代码中设置样式,安卓代码中设置fontFamily中的样式

    今天和视觉调样式的时候,发现一个问题,我们代码中经常使用fontFamily的样式,比如: android:id="@+id/name" android:layout_width= ...

  8. Android在代码中设置drawableLeft(Right/Top/Bottom)

    根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性. 我们知道在xml中设置的方法为: android: ...

  9. 【Android】代码中动态设置 drawable 背景

    如图这样的效果,我们平时直接可以在 xml 写死. 写法很简单. <?xml version="1.0" encoding="utf-8"?>< ...

最新文章

  1. JavaSE replaceAll 方法
  2. mysql internal_MySQLInternal笔记
  3. XML 解析错误:XML 或文本声明不在实体的开头位置,有效的解决方法
  4. Spring--IoC(2)
  5. springmvc 配置 tag lib_Java自学之springMVC:Hello Spring MVC
  6. git前端工程实现ci_大前端项目代码重用,也许lerna是最好的选择
  7. winserver 服务开机启动
  8. kettle升级jetty10实验(未完成jaas认证)
  9. Kotlin实战【一】Kotlin定义与目的
  10. linux tracker服务器搭建,linux 下 BT Tracker服务器搭建
  11. Redis数据结构之list对象
  12. TCP和Socket关系
  13. 互作转录组常用数据库介绍
  14. 最新ChatGPT商业运营版网站源码+支持AI绘画+支持用户会员套餐+邀请分佣功能+支持后台一键更新+网站后台管理+永久更新!
  15. python智能写作_闲人AI写作智能文章生成-文章伪原创-关键词生成文章工具
  16. laravel中图片验证码以及错误处理
  17. Skyline查询实验数据点的生成
  18. OFD转PDF ~java实现
  19. 日常水文章之rk3188 5.0最简单的视频图片混播
  20. 巴菲特致股东的一封信:2013年

热门文章

  1. DLL中的main函数
  2. 1996:登山——动态规划
  3. 馒头,不!月饼引起的惨案
  4. 优信拍集团php面试题_【优信拍PHP高级工程师面试】不错,主管眼光很犀利,而且不扯皮。-看准网...
  5. Python读取wav音频文件
  6. GBase 8c V5 主备式部署实操
  7. 奇虎360笔试题2014
  8. Python爬虫HTTP异常:rllib.error.HTTPError: HTTP Error 418,伪装User-Agent以及fake-useragent插件的妙用
  9. 利用Tensorflow实现手写数字识别(附python代码)
  10. 高等数学——平面曲线的弧长的计算