标签: Linux
-
把服务器迁移回Debian和Docker
去年,运行这个网站和Mastodon实例的服务器是一台Debian 9,后来跳级升级到Debian 11后,遇到一些零散的版本不兼容问题。年初,因为自己在折腾ZFS的NAS,所以我也将服务器迁移到了FreeBSD. 老实说FreeBSD在很多方面比起Linux更「原汁原味」。 但我还是遇到了若干问题,并最终迁移回了Linux,同时尝试了自己并不熟悉的Docker生态。
-
关于命令行参数的那些事
事情是这样的。这学期的C语言课程期末的大作业(说实话我不太愿意称其为“项目”……),就像我的前几篇博文里提到的,要求编写一个程序,可以读入一串字符,包含声明变量、求值、打印的功能。如何进行词法分析和构建表达式树的过程在前两篇文章我已经说过了,这里不再赘述。那么很多同学问起来的一个问题是,在作业的要求里面,有一项是“从第一个命令行参数读入文件名”——这个到底是什么意思?
有些同学把它理解成了从标准输入获取一个文件名的字符串。大错特错啦。不过也难怪,我们这个年代的人小时候接触DOS的机会不多了,可能从小到大根本就没有在计算机上敲过命令,以至于第一次写C程序的时候看到那个黑漆漆的窗口还大失所望。
-
Linux下程序创建进程
进程是操作系统中运行的程序实例。而多进程程序和多线程程序相比,具有更健壮,更简单的特点。
在GNU/Linux操作系统中,创建一个新进程,可以使用fork,clone函数以及使用exec函数族调用其他程序替换当前进程镜像。