Linux C编程从初学到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

Linux诞生于1991年,由UNIX发展而来。几乎每天Linux都会以某种方式出现在我们的生活中,我们已经数不清在Linux上有多少应用程序,以及有多少机构在使用Linux。国内外无数大型企业都在使用Linux系统作为服务器解决方案,尤其是在嵌入式开发领域,Linux的应用更是在不断增加。在百度上搜索“Linux软件工程师”的相关网页约有1,230,000篇,由此可见,在Linux平台下进行程序开发的需求之大。

作者根据自己多年来在Linux下进行C程序开发所积累的经验,并融合大量的程序实例而著成此书。本书由浅入深,适合各个水平阶段的读者学习。

本书特点

1.配套视频讲解光盘

为了让读者更加快速、直观地学习本书内容,作者专门为本书录制了全程多媒体视频教学,包括各个技术知识点,以及程序案例的分析。结合视频的讲解,能够帮助读者更高效地掌握Linux下C编程的技巧与方法。

2.循序渐进,由浅入深

从Linux系统的安装、C语言编程基础、Linux下的基本编辑器、程序编译器和调试器、make工具管理器,到Linux系统的各种函数调用,再到Linux下具体程序案例的设计开发,本书内容由浅入深,囊括了Linux下C程序开发的各个环节。

3.程序实例丰富,实践性强

在本书中,几乎每个知识点都会伴随一个或多个程序实例,通过实例来加深和巩固读者对知识点的理解和掌握。对于每个程序实例,作者都添加了十分详细的注释,方便读者理解。并且,所有的实例读者都可以在自己的实验环境中完整实现。尤其是第3部分的五个项目案例,更是完整地向读者演示了Linux环境下项目实例的设计与开发。

4.技术全面,知识点阐述到位

网络编程和图形界面编程是C程序学习中比较深入的知识,也是本书重点讲解的内容。在第3部分,我们将这些知识点与实际的项目开发结合,通过逐步设计与实现,深化和巩固读者对它们的理解与掌握。将Linux系统开发技术、C语言开发技术、软件工程思想融会贯通,使得本书成为思想和内容都极其丰富的计算机教程。

本书内容

第1章:介绍Linux系统的基本概念和安装方法,Linux下的常用命令,以及Shell的使用。这些是使用Linux的基础,帮助读者为本书后续的学习打下扎实的基础。

第2章:详细讲述了C语言的编程基础,它们是熟悉和掌握这些信息与学习C语言的必经之路,同时也方便了读者在阅读本书时查阅C语言中的相关知识点。

第3章:讲述Linux下最常用的两种文本编辑器vi和Emacs,通过实例应用讲解让读者一步一步地学会如何使用这些编辑器的使用。

第4章:讲解Linux系统下的程序编译器gcc和程序调试器gdb,二者是在Linux下进行C程序开发所必备的工具。

第5章:讲述Linux下的工程管理器make,以及Makefile的书写规则。make工具大大提高了实际项目的工作效率,几乎所有Linux下的项目编程都会涉及它。

第6章:讲解基于文件描述符的文件I/O操作,以及Linux中文件系统的概念。文件操作是Linux系统中最常见的操作之一,在Linux中,所有的内容都被看成文件,所有的操作都可以归结为对文件的操作。

第7章:讲述基于流的文件I/O操作。基于流的I/O操作是由标准C函数库提供的,与基于文件描述符的I/O操作相比,基于流的I/O更简单、方便。在大多数情况下,程序员更愿意使用基于流的输入输出方法。

第8章:详细阐述了Linux下进程控制的原理。进程是操作系统中一个非常重要的概念,熟悉使用进程的操作和进程控制的相关系统调用,会使用户在使用Linux系统完成各种工作时更加得心应手。

第9章:讲解Linux信号的基本概念,以及Linux下信号处理的机制。信号的使用对于灵活使用C语言在Linux环境下进行程序开发是非常有益的,在编写大型的程序时,经常会需要处理多个进程之间的异步事件,所以是离不开信号的使用的。

第10章:详细讲述了Linux进程间通信的概念,以及Linux下5中最常用的进程间通信方式,它们包括:管道、命名管道、消息队列、共享内存、信号量等。

第11章:详细讲述了Linux网络编程的原理与方法,通过大量的程序实例演示了Socket编程中常用API的使用方法。

第12章:讲述GTK+图形界面编程。GTK+是Linux下基于C的图形界面开发库,通过程序实例向读者演示了使用GTK+库创建各种界面元件的方法。

第13章:通过讲述一个计算器软件的设计案例,进一步向读者演示图形界面编程的技巧,以及GTK+信号与回调函数的原理。

第14章:通过设计一个类似于QQ的聊天软件,向读者演示了小型项目工程软件的模块划分方法,以及Linux下的C程序开发的步骤。使读者能够更深层次地掌握GTK+图形界面编程,以及Linux网络编程的原理方法。

第15章:讲述Linux下一种基于C/S模式实现的远程管理工具的设计。使读者对Linux下的文件I/O操作、相关系统服务的管理有更深层次的了解和认识,并进一步掌握GTK+图形界面编程,套接字Socket网络编程的使用方法。

第16章:讲述了在Linux-2.4.20-8内核下利用Netfilter数据控制过滤机制完成简易防火墙软件的设计,实现了对固定端口、网页访问,以及不同协议类型的数据报文的管理和控制。

第17章:讲述基于Linux的嵌入式家庭网关远程交互操作平台的设计。向读者阐述了嵌入式系统,以及家庭网关的概念,采用B/S结构的开发模式,嵌入式Web服务器选取Boa,并结合CGI技术,实现了动态的具体智能设备的访问和控制。

本书适合的读者:

● Linux及C程序设计初学者。

● 大中专院校计算机及相关专业的学生。

● 高校计算机及相关专业本科生、研究生。

● Linux软件开发从业人员。

● 开源软件开发爱好者。

● 社会培训学生。

最后,我要感谢我的家人及好友陈曦在我最困难的时候带给我快乐与动力,支持我一直坚持下来,并最终完成这部著作。

本书主要由张繁主持编写,参加本书编写工作的还有高淑娟、王丽娜、周毅、林小峰、刘刚、马海波、李强、吴慧、马玉刚、冯浩、唐爱琴、李子龙、王明明、蒋志等,在此,编者对以上人员致以诚挚的谢意!

作者力图使本书案例功能翔实,并尽量使用关键编程技术进行程序设计和简化程序代码。但由于水平有限,书中难免有错误、纰漏之处,欢迎广大读者、同仁批评斧正。

编著者