linux中,exit与_exit的printf语句加上"n"与不加有何不同,原因是什么

linux中,exit与_exit的printf语句加上"n"与不加有何不同,原因是什么,第1张

_exit 和 exit 最主要的区别有两个,

1、 _exit 不会flush 任何标准输入输出 (stdio)流,即通过printf/fprintf 这类调用产生的尚未写入设备仍在缓冲中的数据都会丢弃

2、 _exit 时不会调用任何通过 atexit/on_exit 注册的回调函数

printf 如果不加 \n, 则信息是不会立刻打印出来的 (由于标准输出是按行缓冲的,具体细节这里不展开,自己去查标准输入输出 stdio 的缓冲机制),那么根据上面说的第一条, _exit 时打印信息会丢失,而 exit 不会。 如果有 \n ,则直接打印出来,此时 exit/_exit 无区别

另,一般统一应该用 exit, 除非你有非常特殊的需求,知道自己在干什么,且清楚 exit/_exit 的区别,才可以用 _exit

在shell中的条件判断语句格式为:

其中elif和else不是必须的,如果只需判断一次,那么if...fi即可。值得注意的是if后面中括号[]中的语句[的后面和]的前面必须要有空格。

下面通过判断大小和文件是否存在看一下判断语句的用法:

-gt 大于 (greater than);

-lt 小于(less than);

-eq 等于(equal);

-ne 不等于(not equal);

-ge 大于等于(greater equal)

-le 小于等于(less equal)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7379228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存