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

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

按照C语言语法, 0 表示假,非零(常常用 1)表示真,那是否函数也用 0 返回值表示“失败”,1 返回值表示“成功”呢?...“行业潜规则” C语言函数当然可以使用返回值 0 表示“失败”,用返回值 1 表示“成功”。...仔细考虑下,其实C语言函数使用返回值 0 表示成功是有原因的。...更一般的C语言函数返回值并不一定只有两种可能值(成功/失败),它可能还会返回对应错误原因的返回值,总之,函数成功只有一种可能,函数失败却有多种可能。...小结 本文主要讨论了C语言程序开发中关于函数返回值的问题。可见,使用什么样的返回值表示成功,什么用的返回值表示失败,其实只是一种人为约定。

2.8K20

Linux:编写 Shell 脚本时如何优雅地处理函数返回状态,多行文本和脚本路径

在 Linux 环境下编写 Shell 脚本时,能够灵活处理函数的返回状态以及获取脚本的实际路径是非常有用的技能。...本文将详细介绍如何让函数返回执行状态而不是退出脚本,并推荐使用的获取脚本所在位置的方法。...一、让函数返回执行状态而不是退出脚本 在编写 Shell 脚本时,我们经常需要编写函数来实现代码的模块化和重用。然而,如果不小心使用了 exit 命令,整个脚本会被退出,这并不是我们想要的结果。...在这个示例中: 定义函数:my_function 函数根据传入的参数返回不同的状态码。 使用 return 命令:函数内部使用 return 返回状态码。 捕获返回状态:调用函数后,通过 $?...变量获取返回状态。 检查返回状态:根据返回状态执行不同的逻辑,而不会影响脚本的继续执行。

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

    软链接和硬链接

    文件只有在被覆盖的时候,才算是真正的删除了,也就是有当其他数据正好存在1.txt数据所用的block中时,把原来1.txt文件的内容覆盖掉,这才算是真正的删除。...(我们看到的磁盘还有多少G空间都是一个逻辑的概念,实际上你的硬盘可能已经全是数据了,只不过有的空间不可用,它保存了你需要的数据,而那些被标记为free状态的block是可用的,即使它上面有数据也是你已经删除不需要的数据...(内存大小远小于磁盘) 第二种磁盘满的情况就是inode编号不够用,比如说我们创建了大量文件,像这种情况我们查看磁盘空间的时候,会发现还有大量空间可用,但是查看可用inode节点的时候,发现已经满了,这也会提示磁盘满...在实际场合,我们个人的电脑磁盘满一般是指磁盘没有空间了,这可能是我们电脑磁盘上保存了大量的数据导致的;在服务器中,更常见的磁盘满是inode节点编号满了,因为服务器是给很多人用的,文件数量会很多,并且还会有大量的日志文件...正确的备份方法是使用tar打包(打包和压缩是有区别的,tar命令只打包不压缩,打包是把多个文件打包成一个文件,不会节省存储空间,而压缩会节省存储空间,所以我们见到的.tar格式的文件都是打包文件,而不是压缩文件

    13810

    关于《秦时明月世界》运维的那些事儿—自研上云与core优化

    CBS云盘提供的是一种抽象的分布式存储资源,采用三副本的分布式机制,系统确认数据在三个副本中都完成写入后才会返回写入成功的响应。...升级磁盘 最开始秦时使用的是CBS云盘中性能最低的高性能云盘,到发文时自研云已经支持增强型SSD云硬盘,但在秦时业务上线前2020年底那会儿纠结实现方案的时候,该类硬盘还在测试阶段,没有正式开放申领。...【运行效果】30G的core文件压缩后约2G大小,耗时进一步降到40s左右,而且这个耗时并不是由于磁盘IO限制导致的(假设IO满写 2G / 速率260MB/s应为7.8s,说明瓶颈已经不在IO上了),...再启个守护进程,每秒钟探测/dev/shm下是否有core文件,若有则用多线程压缩后再落地磁盘并清理内存中的core文件。出于压缩比和使用习惯原因,压缩落地磁盘的是tar包。 ?...tar包,这样一来解压时就没法用xtar了,解压时就存在瞬间IO过高的风险。

    84830

    nginx 缓存策略实现方案

    针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中,在用户需要观看回放视频时。通过一个视频回源服务器,去文件服务器中逐个请求切片,返回给用户播放。...提出疑问: 到此,就完成了最基本的proxy_cache配置和访问过程介绍,但是最基本的配置,往往无法满足我们的业务需求,我们往往会提出以下几点疑问和需求: 需要主动清理缓存文件 写入路径为一块磁盘,如果磁盘打满该怎么解决...问题二:缓存文件强磁盘打满该怎么办? 由于写入路径为一个单一目录,只能写入一块磁盘。一块磁盘很快就会被打满,解决该问题有如下两种方法: 1、将多块磁盘做磁盘阵列? 缺点是:减小了实际的存储空间。...对该一级目录进行软连接,分别将0-f软连接到你所需要的指定磁盘目录上,如图所示: ? 通过软链的方法,实现:将不同盘下的目录作为真正存放数据的路径,解决了多盘利用,单盘被打满的问题。...由于nginx配置为:proxy_cache_key $uri,用uri作为key 所以当请求为普通请求和range请求时,都是同样的uri作为key。proxy_cache将有可能导致错误返回。

    3K20

    备份压缩问题:备份文件压缩设置不当,导致备份失败

    添加错误处理机制在压缩过程中可能会遇到磁盘空间不足、文件损坏等问题,需要添加错误处理机制。(1)检查磁盘空间在压缩前检查磁盘空间是否足够。...tar -czf $BACKUP_FILE $SOURCE_DIR 2>/var/log/compression_errors.log # 检查压缩是否成功if [ $?...验证压缩文件的完整性即使压缩成功,也需要验证压缩文件的完整性,确保未被损坏。(1)生成校验值在压缩完成后生成校验值,并将其保存到安全位置。...监控压缩状态通过日志记录和告警机制,实时跟踪压缩任务的状态。(1)记录压缩日志将压缩操作的结果记录到日志中,便于后续分析。#!.../compression.log fi } compress_backup (2)设置告警机制当压缩失败时发送告警通知。

    10010

    总结最近半年对Elasticsearch开源项目的贡献

    当因磁盘写满而导致ES自动对索引设置read_only_allow_delete block时,对http请求返回429状态码而不是403 issue: #49393 PR: #50166 这个提交有意思了...这个改动的初衷是因为在磁盘写满的情况下,ES会自动地把对应节点上的索引设置为只读(index.read_only_allow_delete=true), 后续有新的写入请求进来后,会直接返回403状态码拒绝进行写入...所以该提交就需要针对因为index.read_only_allow_delete为true的情况,返回429状态码(429意思是TOO_MANY_REQUESTS, 请求太多,需要限流)。...讨论的焦点在于,6.8版本之后,如果磁盘空间释放出来,索引的只读的状态会被自动的release,有单独的线程轮询检查磁盘来确定要不要释放只读状态,所以需要对auto release机制是否开启进行随机选择...一方面,auto release开启,因为客户端接收到429状态码,写入请求经过重试后能够成功执行;另一方面,关闭auto release, 写入请求经过数次重试后仍然执行失败而报错。

    1.8K31

    监控工具 Nagios

    监控的本质就是收集获取软硬件资源的状态信息,例如 CPU 的使用率、内存空间、磁盘余量、WEB服务可达状态……,然后分析各部分是否工作正常,当发现某个地方异常时,发出报警信息 什么情况算是异常?...由 core 和 plugin 构成,core 提供监控的处理、任务调度、下发指令的功能,plugin 执行具体的监控指令、返回监控的结果 Nagios 系统中的角色可以分为:1)Nagios服务器,...,所以分为两个部分来介绍,本文先介绍Nagios服务器的安装 目标是成功运行Nagios的WEB服务,并能监控本机的状态指标,大概了解Nagios的WEB界面功能 后面的文章会继续介绍如何添加被监控主机...$ wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz $ tar zxf nagios-4.1.1.tar.gz...$ tar zxf nagios-plugins-2.1.1.tar.gz 编译Nagios $ cd nagios-4.1.1 $ .

    1.8K40

    简单的linux系统配置故障定位与排除

    一般性的问题无非cpu占用高,内存满,磁盘满,目录或文件无权限,防火墙设置,所以上机器之后一般从这几个方面进行排查,这样能定位和解决大部分表现为接口不能访问,变慢,服务突然或周期性中断的问题,从而及时排除或定位故障...,加上-h 获得更好的容量大小展示,一般用于查看是不是因为磁盘满了而导致的系统不可用等情况,日志占满磁盘会导致服务不可用,通过这个问题就可以快速定位出 doc_image_12_w445_h133.jpg...16. du 查看具体目录的磁盘占用信息,用ls查看,目录统一显示为4KB,无法查看真实的磁盘占用情况 -h 友好显示 -d控制层级 1表示只看当前目录 数字越大层级越深,列表中的最后一个表示当前目录总共占用的大小...压缩解压缩 tar,gz格式的压缩包 解: tar -xvf 解压缩 格式为: tar -xvf file.tar 解压file.tar当前文件夹 tar -xvf file.tar -C.../tmp/xxx 解压file.tar指定的文件夹 压: tar -jcvf 压缩成bz2属性 tar -zcvf 压缩成 gzip属性 格式为: tar -cvf 压缩包名 被压缩的文件或文件夹

    1.4K60

    假期结束了,DBA们又要忙起来了

    春节长假结束了,打工人们陆续返回工作岗位了,做为DBA需要做哪些工作呢? 首先,经过春节长假,可能会有积压的告警和日志需要处理。...同时,检查操作系统日志,是否有硬件或系统层面的问题,比如磁盘空间不足、内存交换过高等。 然后,性能检查。...如果数据库在假期期间有变更,比如补丁应用、升级等,需要确认这些变更是否成功,是否有回滚计划,以及后续的验证工作。...一、系统状态检查与告警处理 1、监控系统检查 查看告警信息: 查看OEM、第三方监控工具(如Zabbix)中的未处理告警,确认是否有数据库宕机、表空间满、性能骤降等问题。...操作系统日志: 检查/var/log/messages或dmesg,确认硬件/系统级异常(磁盘故障、内存不足)。

    7600

    第九章 打包备份

    back.tar就是新创建出的包文件 -v 即--verbose 详细列出处理的文件 -f 使用归档文件,即新建的备份文件做备份 打包成功后,我们可以ll...所以解包时必定要关注一下当前目录下的内容。...再者,备份时若有文件权限拒绝读取,则会有文件遗漏,所以加上-r参数便允许备份时能够读取所以文件。...第二种方法是使用dd命令,将整个系统所在磁盘导出到另一块磁盘中,以作备份盘使用,当系统故障后,可以直接将备份盘中的数据再用dd导回即可,此种操作的缺点是系统所在磁盘未经压缩,占磁盘空间多。...故意有一部分磁盘空间是未使用的,所以这里新建分区是可以成功,但是如果磁盘已经被所有分区用满,则此操作会失败。

    1.2K10

    linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)

    Linux服务器准备 我这里选了一个比较大的服务一会测试一下性能 流量拉满 直接创建完毕。...通过Xshell链接成功 选择安装位置 这里选择在/opt文件夹下创建一个soft来存放咱们的Redis cd /opt/ mkdir soft cd soft 下载Redis安装包 wget http...://download.redis.io/releases/redis-6.2.7.tar.gz 解压Redis安装包 tar -zxvf redis-6.2.7.tar.gz 解压完毕ls查看一下 ...start --开启防火墙 systemctl disable firewalld --关闭开机启动 可以看到,防火墙是关闭状态的。 ...将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb 这种方式不能完全保证数据持久化,因为是定时保存,所以当redis服务kill掉,就会丢失一部分数据,而且数据量大,写操作多的情况下,会引起大量的磁盘

    79210

    600 条最强 Linux 命令总结

    你有时怀疑自己的那套准则,到底适不适合你现在的交际状态。可能怎么办呢?你知道他们的小伎俩,你知道他们的举动,你就是没办法跟他们一样。...返回上一级目录 cd ../.....返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料...umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount...为了避免画 面显示时瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示; ls -al |more:以长格形式显示etc目录下的文件列表

    68940

    备份存储问题:备份存储介质故障,备份数据丢失

    定期检查存储介质健康状态通过工具定期检查存储介质的状态,及时发现潜在问题。(1)硬盘健康检查使用 smartctl 检查硬盘的 SMART 信息。...(1)恢复文件系统备份# 示例:从 tar 文件恢复数据tar -xzf /backup/full_backup_20250207.tar.gz -C /restore/directory(2)恢复数据库备份...-eq 0 ]; then echo "恢复测试成功" >> /var/log/restore_test.log else echo "恢复测试失败" >> /var...监控存储状态通过监控工具实时跟踪存储介质的状态,及时发现和解决问题。(1)查看磁盘空间定期检查磁盘空间是否充足。# 查看磁盘空间 df -h (2)设置告警机制当存储介质出现异常时发送告警通知。...# 示例:磁盘空间不足时发送告警邮件if [ $(df /backup | awk 'NR==2 {print $5}' | sed 's/%//') -gt 90 ]; then echo "磁盘空间不足

    9210
    领券