linuxC编程实战
linux C编程实战目录目录第一篇 Linux和C编程基础第1章 Linux系统概述……11 Linux操作系统介绍…………世世世世出世世晋意“世看1.1.1 Linux的发展历程1.1.2 Linux的特性…………………………………………………………………21.13 Linux的内核版本和发行版本12C语言简介………………………………4121C语言的发展历史…122C语言的特点………………………………………………………1513 Linux的安装、启动与关闭…………………………………………514 Linux的基本使用1.4.1Linuⅸx终端审看率南看丰日南国国非和主1主日自由面目由自指由由主142 Linux shell……15143 Linux的常用命令…1.5 Linux下程序的开发环境和开发过程………1.6习题………………………………………………………12第2章C编程基础、Ⅵ和 Emacs编辑器……1321C程序的结构……………………………-1132,2C语言的基本数据类型……………………………………………………1422.1整型…………………………………14222浮点型……………………16223字符型……………………………2.3运算符和表达式………………………………………………19231算术运算符与算术表达式………………………20232赋值运算符与赋值表达式………22233逗号运算符与逗号表达式……………………………………………222.4标准输入输出函数………………………………………………………23241字符输出函数 putchar………………………………………23242字符输入函数 getchar………24243格式化输出函数 printf…………………4244格式化输入函数 scanf……26经自TCxo comLinuxC编程实战2.5ⅵ编辑器的使用……27251Ⅵ的工作模式…112722启动Vi………………28253保存文件和退出ⅵ…29254光标的移动………………2925.5文本的删除…302.56文本查找和替换………………30257文本的复制与贴……………………3026 Emacs编辑器的使用….3127命名规范………3327.1标识符……33272关键字……3273命名规范……………3328面试题选与实例精讲………34281面试题选………3428.2实例精讲………………352.9习题…………………………37第3章C程序控制结构和gce编译器¨3831C程序的控制结构………3831C程序语句概述面“““国出“““…手寻“38312C程序的3种基本控制结构……3932分支控制结构-………40321关系运算符与关系表达式322逻辑运算符与罗辑表达式…3.23if语句………………………………………………………42324 switch语句443.3循环控制结构……………………463.31 while语句………4633,2 do, while语句s47333for语句…………48334 break语句和 continue语句………………5034gcc编译器5134.1程序的编译过程……51342gcc的常用选项平果书……………“…,52343gcc的报错类型及对策……543.5面试题选与实例精讲…“…手……53.5.1面试题选…53.5,2实例精讲…563.6习题……………………………58函自目录第4章C函数、数组、指针和调试器gdb4.1函数………………………………………………………………59411函数的定义………………………………………59412函数的调用…………………………………6141.3变量的访问控制和存储类别…………………………………4.2数组世虚64.2.1一维数组的定义和使用…………………………674.2.2二维数组的定义和使用……………………………6742.3字符数组和字符串……………694.3指针…7043.1地址和指针………“……“…“………7∩432指针的定义和使用…………………………714.3.3指针和数组量+普量出日量量B量日i面国目国面盲面国434指针和函数…………………………754.3.5指向字符串的指针…………………7944字符串函数………824.4.1puts和gets…82442 strcpy和 strncpy……………18244.3 strcat和 strncat……83444 strcmp和 strncmp………………………834.4.5 strlen…184446 strlwr:和 struer…………18447 strstr和 strchr……………………………………………8445调试器gdb……………………………………………85451启动和退出gdb35452显示和查找程序源代码……4.53执行程序和获得帮助………………………………………87454设置和管理断点………………………………874.5.5查看和设置变量的值………45.6控制程序的执行……………934.6面试题选……………………………………954.7习题………………………………………………………106第5章C语言预处理、结构体和make的使用…………10751C语言预处理命令……1075.1.1宏定义…………………………………107512文件包含…………………10951.3条件编译1105.2结构体和共用体…521声明和引用结构体…aNodo Coml11LinuxC编程实战522结构体和数组……………………………………………113523结构体和指针……114524共用体…………………………………………116525使用 typedef……………………11753位运算…………………………………………………………117531位运算符和位运算………117532位减……………………………………1195.4make的使用和 Makefile的编写……………………………………120541make的一般使用………121542 Makefile文件的构成……………………………123543便用变量………………………………………………127544隐含規则……………1545使用条件语句………132546使用库…13354.7make命令参数详解…………1345.5面试题选……………………13556进一步学习建议1405.7习题第二篇 Linux系统编程第6章文件操作………………………1426.1系统编程概述…………………………………………14262 Linux的文件结构…………………………………14262.1Linuⅸx的文件系统模型………………………143622文件的分类………………………14462,3文件的访问权限控制…14563文件的输入输出……………14763.1文件的创建、打开与关闭……………………147632文件的读写……………149633文件读写指针的移动……150634dup、dup2、fent、ioct系统调用…………l526.4文件属性操作………16064.1获取文件属性………16064,2设置文件属性………………1626.5文件的移动和删除…164651文件的移动………………………………164652文件的删除…66目录操作…………………166661目录的创建和删除…智r…………166目录6.6,2获取当前目录…167663设置工作目录……………………1676.64获取目录信息………………………………………………1686.7编程实践:实现自己的ls命令………着请着17068习题176第7章进程控制……………771进程概述…………………………………………1777.1.1 Linux进程7.1.2进程控制……………179713进程的内存映像………………………………1797.2进程操作…………………………………………1807.21创建进程…180722创建守护进程:国………………185723进程退出…………………………………187724执行新程序…………………………1887.25等待进程结束面出和x1917.3进程的其他操作………………1947.3.1获得进程T………………………1947.3.2 setuid和 setgid审国44……194733改变进程的优先级…………1967.4编程实践:实现自己的 myshell………1977.5习题………………………………………203第8章线程控制…………………………………20481线程和进程关系……………20482创建线程…05821线程创建函数 pthread create………2058.22线程属性………20783线程终止……………………………………………………20884私有数据……………………………2108.5线程同步…2128.51互斥锁…………………………212852条件变量…………213853异步信号2168.6出错处理………216861错误检查…………………………………………………2168.6,2错误码……217863错误的提示信息……21887习题………"……219fiNGon com5Linux C编程实战第9章信号及信号处理…………2091 Linux信号介绍世由世出世世····中······…………………2209.1.1信号的来源…209.2信号的种类………………………………220913进程对信号的响应2239.2信号处理223921信号的捕捉和处理………………………………………………223922信号处理函数的返回………………227923信号的发送………………2319.24信号的屏蔽……………2369.3编程中如何获得帮助…………………24094编程实践:应用实例…………………………24094.1实例一:信号的发送与处理…240942实例二:信号应用于事件通知………………………………24295习题………244第10章进程间通信E1nE百:TT,于曹?想中中中中中和中…24510.1进程间通信概述……………………24510.2管道……………………………………………………………24610.21管道的概念………………24610.22管道的创建与读写………24610.23管道的应用实例………………………………………………25010.3有名管道……………………………………25110.3.1有名管道的概念…………………………25110.32有名管道的创建与读写………………………25210.33有名管道的应用实例…………………………………25310.4消息对列……256104.1消息对列的基本概念………………25610.4,2涧息队列的创建与读写…………………27104.3获取和设置消息队列的属性……………………………………2601044消息队列的应用实例…………………26210.5信号量…………………………………………………26510.5.1信号量的基本概念…………………"……………26510.52信号量的创建与使用………………………2651053信号量的应月实例…26810.6共享内存………………………………2701061共享内存的数据结构………27010.6.2共享内存的创建与操作…………………2701063共享内存的应用实例……2710.7库的创建和使用……+里要275目录10.71Linx库的概念…………………27510.72静态库的创建和使用…7610.73动态库的创建和使用…………………………………………27710.8进一步学习建议…………………………………………279109习题………………………………………………279第三篇 Linux网络和图形界面编程第11章网络编程28211网络编程基本原理…………282111.1网络模型与协议………1282111.2地址……2841.3端口………………………………851114mP协议…………………………2851115用户数据报协议UDP………286111.6传输控制协议TCP…28611.1.7客户机/服务器模型……………28711.2套接字编程287112.1套接字地址结构……288112.2创建套接字………28811.2.3建立连接………28911.24绑定套接字…………………………………………290112.5在套接字上监听“““““““…·……界果29011.26接受连接……"29111.2.7TCP套接字约数据传输……………………29111.2.8UDP套接字的数据传输“a“…………2921129关闭套接字29411.2.10主要系统调用函数……………………………29413一个面向连接的 Client/Server实例………301114编写安全的代码…………3081141网络攻击………………………………3081142缓冲区溢出……399114.3输入检查……………………………………………31011.5编程实践:编程实现端口扫描器实例…31111.6进一步学习建议……………………………31411.7习题314第12章GTK+图形界面编程………31512.1 Linux下的图形界面编程…………15121.1Qt和GTK+““““…………………31512.1.2GTK+简介………315LhuκC编程实战122一个简单的例子………31612.3消息和回调函数………1319124GTK+的面向对象机制……12012.5排列控件……………………32312..1使用box排列控件……………32312.5.2使用 table排列控件…32512.6常用控件…………3012.6.1进度条、微条按钮、组合框……3012.6,2表格控件…………………………33212.6.3生成对话框……………………33312.64使用菜单…………3412.7进一步学习建议…………………336第四篇 lLinux项目实践第13章项目实践:BT下载软件的开发……………………………………3813.1·BT软件简述…………………33813.2 BitTorrent协议……………3913.2.1概要介绍…………33913.2.,2基于BT协议的文件分发系统的构成…33913.2.3B编码…34013.2.4种子文件的结构…………………340132.5与 Tracker交互…………………………14213.26pecr之间的通信协议………34313.2.7关键算法和策略……………………………………345133系统结构设计………………………………………347134各个模块的设计和实现………48134.1种子解祈模块的设计和实现…“·+·!黑节界3491342位图管理模块的设计和实现………35913.4.3出错处理模块的没计和实现……………………3631344运行日志模块的没计和实现…………………313.4.5信号处理模块的设计和实现…………………36134.6Peer管理模块的设计和实现…36613.4.7消息处理模块的设计和实现3721348缓冲管理模块的设计和实现……………38413.4.9策略管理模块的设计和实现……39313.4.10连接 Tracker模块的设计和实现……139713.4.11与per交换数据模块的设计和实现…………403134.12主函数的设计和实现……………………………………………………411134.13调试和测试8爱自曲Freedomcom…:::………………………:412
用户评论