时至今日,技术界的各种新编程语言层出不穷,提供的功能特性也是应有尽有,那么古老的 C 语言又是凭什么屹立不倒?是否仍值得程序员学习?
作者 | 肖楠
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
C是一种系统编程语言,不仅有些年头了,而且名声还不太好,比如未定义的行为、内存相关的Bug等。特别是在今时今日Go和Rust迅速走红的情况下,C似乎已渐渐被人遗忘了。尽管如此,恕我直言,C仍然值得花时间学习。
无论你是C语言的编程新手还是经验丰富的程序员,我强烈建立你读一读《现代 C 语言》(Modern C)这本书。通过本书,你就会发现C语言也在悄悄地进化,如今这门语言也不像你想象的那么原始。例如,C11定义了类似于C++的标准线程API,这个功能让C看起来更像是一种“现代”语言,而不是过时的语言。你可以通过本书从新的角度来审视C语言。
无论你是系统语言程序员、运维人员、性能工程师还是身处其他职位,对操作系统的了解越多,就能越好地完成工作。
以所有流行的类Unix操作系统为例,从内核到命令行工具,几乎都用C语言实现。研究相关的源代码可以让你深入理解内部操作系统。例如,我知道有一个taskset命令可以绑定到一个专用CPU进程,但我想知道其背后的实现方法,所以我阅读了源代码。然后,我得知了两个真相:
-
有一个“/ proc /%pid / task”文件夹,用于记录进程的线程信息;
-
taskset实际上是通过调用sched_setaffinity和sched_getaffinity API来完成任务的。
最后,因为C是靠近底层的语言,所以在某些情况下性能至关重要时,你可以利用C来编写高性能的代码,充分利用CPU。
虽然我列举了很多我认为你应该学习C的理由,但也许你也有充分的借口拒绝考虑C语言。没关系。但是,如果你想尝试C语言,那么首先不要害怕,勇敢地迈出第一步。尽管编写C语言代码很容易出错,但是你只需要确保你编写的内容是正确,不使用未定义的行为,那就没问题。
原文:https://nanxiao.me/en/as-a-system-programming-language-c-still-deserves-learning-today/
声明:本文为 CSDN 经作者授权翻译。
【End】
热 文 推 荐
☞华为拍月亮申请专利;魅族黄章回应李楠离职;GoLand 2019.2 Beta 发布 | 极客头条
☞计算机密码发明者去世!曾获图灵奖、并启蒙 Unix 诞生!
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
文章评论