前言 C语言是目前较为流行的高级程序设计语言之一,是许多计算机专业人员和计算机爱好者学习程序设计的首选语言。但是,很多学过C语言的读者在学习C语言之前以及学习过程中经常会问: “学习C语言能做什么?”学完C语言之后感慨道: “学完C语言之后仍然不知道能做什么”。其实,编者认为学习C语言有两个目标: 第一,为学习其他编程语言打下坚实的基础。因为计算机编程语言都是相通的,学好C语言再学习其他高级程序设计语言会很容易。这也是很多C语言教材能够达到的目标。所以,那些学完C语言之后仍然不知道能做什么的读者已经具备计算机编程基础了。本书的第2、3、6、7章可以达到该目标。第二,真正使用C语言开发有实际意义的程序。这正是本书所追求的目标。希望使用C语言开发有实际意义的程序,就要清楚目前C语言的真正应用场景。目前市面上绝大多数操作系统都是用C语言编写的。很多基础软件,如编译器、数据库、虚拟机、多媒体库、图形库等,也都是用C语言实现的。很多流行的编程语言也是用C语言实现的,如Lua、Python脚本语言等。在嵌入式系统开发中,比如固件、BSP、内核驱动等,除少量汇编代码,大部分都是用C语言开发的。互联网中的很多服务器程序也是用C语言开发的。总之,在整个计算机软件世界中,C语言发挥着中流砥柱的作用。读者可能对Linux不熟悉,但是,Linux早已深刻影响着我们生活的方方面面,从超级计算机、巨型机,到智能手机(Android),再到各种家电和嵌入式设备,内部都运行着Linux。另外,Linux支撑起了整个因特网。C语言和Linux操作系统有密不可分的血缘关系,因此本书的主要目标是帮助读者掌握基于Linux的各种软件的C语言开发方法,为读者以后步入广阔无垠的Linux世界打下坚实的基础。编者坚信Linux之父、天才程序员Linus Torvalds所说: “Talk is cheap, show me the code”。考虑到有些读者之前没有接触过Linux操作系统,因此,读者可以根据本书的第一个视频安装Linux虚拟机,搭建Linux C语言编程环境。 本书提供配套课件、教学大纲和习题参考答案等多种教学资源,还提供了94个微课视频,读者在学习过程中,扫描教学视频二维码可以观看视频。 本书由北京邮电大学计算机专业博士张同光担任主编,田文强、荆春棋、田乔梅、陈明担任副主编,参加编写的人员还有洪双喜、刘春红、秦建保。洪双喜和刘春红工作于河南师范大学,陈明工作于郑州轻工业大学,其他编者工作于新乡学院。其中,洪双喜和刘春红编写第1章,田文强、荆春棋和陈明共同编写第2~5章和附录A,张同光编写第6~10章,田乔梅编写第11章,秦建保编写第12章。全书由张同光(jsjoscpu@163.com)统稿和定稿。 本书得到河南省高等教育教学改革研究与实践重点项目(NO.2021SJGLX106)、河南省科技攻关项目(NO.202102210146)、网络与交换技术国家重点实验室开放课题(SKLNST2020101)以及高效能服务器和存储技术国家重点实验室的支持,在此表示感谢。 在本书的编写过程中,得到清华大学出版社的大力支持和帮助,在此表示衷心的感谢。 由于编者水平有限,书中欠妥之处,敬请广大读者批评指正。 编者 2023年6月