首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言函数执行成功时,返回1和返回0,究竟哪个好?

按照C语言语法, 0 表示假,非零(常常用 1)表示真,那是否函数也用 0 返回值表示“失败”,1 返回值表示“成功”呢?...“行业潜规则” C语言函数当然可以使用返回值 0 表示“失败”,用返回值 1 表示“成功”。...当然,我们也可以说“实数要么是 1,要么非 1”,不过这显然也不是“行业潜规则”。...例如我们可以规定,如果 myopen() 函数因为“文件或者目录不存在”的原因失败,返回 -1,如果因为“权限不够”的原因失败,则返回 -2。...-1 和 -2 都是“非零值”,而成功作为失败的对立面,也即“非零值”的对立面,myopen() 函数使用返回值 0 表示成功无可厚非。

2.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL(1)——数据类型的选择(一)

    一、三个原则 更小的通常更好:在符合条件的情况下,选择最小的数据类型更好。因为它们占用更少的磁盘、内存和 CPU 缓存。 简单就好:简单的数据类型的操作通常需要更少的 CPU 周期。...尽量避免 NULL:如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更负责。...② varchar 需要使用 1 或 2 个额外字节记录字符串的长度。如果列长 1 个字节记录长度,否则使用 2 个字节。...当存储 char 值时, MySQL 会删除所有的末尾空格 ② char 适合存储很短的字符串,或所有值都接近同一个长度 两者使用区别 ① 对于经常变更的列,使用 char 更好,因为定长的 char...varchar(5) 和 varchar (100) 都能满足时,最好使用短的。

    1.1K20

    2019 MySQL8 24小时快速入门(1)

    先从安装入手,这是初学者最头痛的事情了,因为不仅仅要安装 MySQL, 还要熟悉一些 Linux 的基本操作。但万事开头难,一步步跟着我这个小课来,你会发现困难就是只大病猫。 ? 安装篇 ? 1....安装 MySQL 8 3.1 下载路径: 选择 MySQL Community 8.0 版本, 下载地址: https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql...-8.0.17-1.el7.x86_64.rpm-bundle.tar 3.2 安装: 1)解压tar文件:tar -xf 2)按照以下顺序安装这些包: mysql-community-server...> alter user 'root'@'localhost' identified by '1QAZ2WSX' ; ERROR 1819 (HY000): Your password does not...我在整个过程中,碰到2个耗时特长的错误: 1)安装文件没有选好:虚拟机用的是 CentOS 7 版本,与 RedHat 7 统一主脉,所以应该选 RedHat 7 对应的 MySQL 8版本,而不是

    65010

    自己写的驱动用CreateFile打开时错误码返回1的问题

    就像题目上说的,今天在写一个例子代码时遇到了这个问题,下面是当时驱动层和应用层的代码: #include #define BASE_CODE 0x800 #define CREATE_THREAD_COMMAND...CTL_CODE(FILE_DEVICE_UNKNOWN, BASE_CODE + 1, METHOD_BUFFERED, FILE_ANY_ACCESS) #define DEVICE_NAME L...这段代码当时主要是有两个问题,第一个就是CreateFile打开时错误,并返回错误码1,乍看好像没有什么问题,其实这个问题我估计还是自己对应用层如何调用驱动层不太熟。...决定如何向I/O管理器和本层驱动程序返回值 I/O管理器会根据返回的值来决定如何给上层返回一个值,就拿CreateFile来说,这个API在调用时会经过I/O管理器生成一个IRP_MJ_CREATE...最后来总结下: 1. 如果我们要打开对应的驱动中的设备对象,在驱动层需要提供IRP_MJ_CREATE的处理函数,将返回给I/O管理器的值填入到IRP的IoStatus这个结构中。

    1.6K50

    VS2010连接MySql数据库时无法选择mysql database数据源

    解决方案:点击上面的连接,下载mysql-for-visualstudio-1.1.4.msi,然后进行安装即可; 注意:不能下载最新版1.8的,因为1.8的只支持vs2010以上版本,所以只能下载低的版本...; 1.在配置数据源时,首先查看是否有mysql连接驱动,如果没有连接驱动首先在mysql官网上下载connect ODBC连接驱动; 然后进行安装;在这就不详细说明如何安装和配置数据源了; 2.或许在网上百度了很多资料...,还有说需要下载connect/net,但是小编亲自下载安装,都没有效果; 还有一种做法就是卸载连接驱动,connect/net,以及mysql软件,然后在官网重新下载安装mysql,在安装时选择setup...type处选择full;小编没有亲自试验,有想法的小伙们可以亲测,给小编留言哦; 如图: ?...3.最终解决方案:点击上面的连接,下载mysql-for-visualstudio-1.1.4.msi,然后进行安装即可; 注意:不能下载最新版1.8的,因为1.8的只支持vs2010以上版本,所以只能下载低的版本

    2.8K20

    MySQL InnoDB数据恢复,丢失ibdata1时怎么安全恢复

    如何在删除ibdata1的情况下恢复 数据库宕机恢复数据或迁移数据,几个重要节点。 1 检查数据库目录配置是否正确 数据库目录配置错误时,MySQL是不能正常启动的,报错可能与此无关。...3 检查ibdata1的最后更新日期,以及是否可用 MySQL在运行以及关闭时会更新ibdata1文件,我们通过ibdata1的最后更新时间可以判断这个文件大概是什么时候的。...4 丢失ibdata1或 ibdata1文件损坏,与数据库数据文件不匹配时的数据恢复。...由于innoDB将表数据字典存储在ibdata1中,当ibdata1改变时,ID就无法对应上,所以就会找不到表 解决方案概括来说就是 CREATE TABLE table_name ...; # 这里的表格式.../traper/item_unit.ibd /mnt/mysql/traper/item_unit.ibd chown mysql /mnt/mysql/traper/item_unit.ibd mysql

    3.9K30

    【重学 MySQL】八十、掌握定义条件与处理程序,让数据库管理更高效!

    使用:当MySQL数据库操作失败时,系统通常会返回一个或多个 MYSQL_error_code,以帮助开发者或数据库管理员诊断问题。...如果需要更具体的MySQL错误信息,可以选择使用 MYSQL_error_code;如果需要更通用的SQL标准错误信息,可以选择使用 sqlstate_value。...示例 假设在MySQL中执行一个插入操作时发生了重复键错误,那么可能会返回以下错误信息: 使用 MYSQL_error_code 表示:ERROR 1062 (23000): Duplicate entry...; 这里,处理程序被设置为在SQLSTATE值为’42S02’(表示表或视图不存在)时触发。...在选择使用哪种方法时,你应该根据具体的需求和错误处理策略来决定。例如,如果你想要处理特定的错误代码或条件,方法1、2和3可能更适合。如果你想要捕获和处理所有类型的警告或异常,方法4、5和6可能更合适。

    13310

    故障分析 | 从一则错误日志到 MySQL 认证机制与 bug 的深入分析

    但既然是不存在的用户,访问时为什么还提示认证插件将废弃呢?...使用不存在用户认证逻辑当用户不存在时,mysql用户登录过程,源码分析结果如下:|—> handle_connection |—> thd_prepare_connection |—> login_connection...根因总结根据以上认证过的分析,导致错误日志存在 PLUGIN_SHA256_PASSWORD 将被废弃的根本原因为:在当前版本,当使用不存在的用户登录数据库时,mysql会随机选择用户的密码认证插件,在当前的版本版本中...,有1/3的概率会选择到 PLUGIN_SHA256_PASSWORD 插件。...可以作为临时方案;3.修改mysql代码,避免在使用不存在用户登录数据库时,选择 SHA256_PASSWORD认证插件。目前针对该方案已提交Bug #109635。

    66720
    领券