Hello World 是程序员最熟悉的一句话,当你学习一门新的编程语言或者框架时,通常都是从在控制台打印 Hello World 这两个单词开始的。
但是你能想象一个简简单单的 hello world 程序也会有 bug 吗?
国外一程序员发现,很多语言实现的 Hello World 程序都有 Bug。
比如下面这个简单的 C 程序:
当我们编译,执行,上面这段代码会输入 Hello World 并且返回 0 表示方法执行完成,看起来没啥问题对吧?
继续下面的实验之前,首先我们回顾一下 Linux 操作系统中的一个特殊文件 `/dev/full`, 和 /dev/null 恰好相反,任何程序尝试往 /dev/full 这个文件中写入,都会立即得到一个 磁盘已满的 IO 错误。比如:
知道这个文件的作用之后,我们来看一下为啥说上面这个 Hello world 程序有bug。
编译执行:
这里程序的返回值是 0 ,表示执行完成了,但是我们并没有看到 Hello World 的输出。
为什么呢?我们用 trace 命令来看一下,原来 print 函数抛出异常了:
所以你看,Hello World 没有打印,但是返回值却是 0 ,这不就是 bug 吗?
至于其他编程语言,大部分也有这个 Bug,更多详细内容请移步原文
https://blog.sunfishcode.online/bugs-in-hello-world/?utm_source=pocket_mylist
文章同步更新到语雀,既做备份,也提供另外一种阅读方式,习惯语雀的朋友可以移步至:https://www.yuque.com/jwenjian/reading-list
Subscribe to 1Link.Fun 邮箱订阅 and never miss a post.
#程序员