书籍详情
Linux下C语言应用编程
作者:杨铸 编著
出版社:北京航空航天大学出版社
出版时间:2012-09-01
ISBN:9787512409057
定价:¥36.00
购买这本书可以去
内容简介
杨铸编著的《Linux下C语言应用编程》深入浅出地讲解了Linux下C应用程序开发所需的基本工具、知识和技巧,主要包括:开发工具的使用和技巧、文件I/O编程、多进程编程、进程间通信、多线程编程、网络编程等内容。可以让读者轻松、快速入门Linux下非图形界面应用编程。《Linux下C语言应用编程》适合大学本、专科学生,培训机构学生,自学人员以及研究生学习Linux下C语言应用编程;同时也适合想转入到Linux下进行开发的Windows应用软件开发工程师。
作者简介
杨铸,电子科技大学通信与信息工程工学硕士,北京邮电大学计算机软件工学学士。作为TeamLeader,负责四川移动最早期的企业信息化网络的高效运行和管理维护。作为主要组织人员,组织完成了四川移动最早的短信系统平台的建设。早期专注于Microsoft的OS和Database的技术研究与职业培训,是微软在中国的早期MCT之一,MCP号1694198。参与完成国家863计划项目——信息安全产品演示和验证平台的子课题,并与合作公司完成产品化开发——内部网络监管系统。中后期专注于嵌入式软件开发的研究与职业培训,尤喜ARM体系结构与嵌入式Linux。
目录
第1章 Linux下c语言编程环境 1.1 Linux操作系统及相关开发工具的安装与使用 1.1.1 虚拟机软件vmware的安装 1.1.2 Linux操作系统的安装 1.2 基本Shell命令的使用 1.2.1 常用命令 1.2.2 帮助命令 1.2.3 搜索命令 1.2.4 重定向与管道 1.2.5 文件类型与权限 1.3 编辑器vim的使用 1.4 编译器gee的使用 1.4.1 gec简介 1.4.2 使用gcc 1.4.3 gee常用选项 1.5 调试器gdb的使用 1.5.1 gdb概述 1.5.2 使用gdb 1.6 make与Makefile文件 1.6.1 Makefile简介 1.6.2 Makefile基本规则 1.6.3 使用带宏的Makefile 1.6.4 Makefile隐含规则第2章 文件I/O编程 2.1 文件I/O介绍 2.2 文件描述符 2.3 基本API 2.3.1 open 2.3.2 read 2.3.3 write 2.3.4 close 2.3.5 lseek 2.3.6 基本API综合使用 2.3.7 fcntl 2.3.8 ioctl 2.3.9 select 2.3.10 poll 2.4 stat的使用 2.4.1 stat的基本使用 2.4.2 文件类型的判定 2.4.3 权限设定的判定 2.4.4 获取主、次设备号 2.4.5 获取时间及时间格式的转换 2.5 目录操作 2.5.1 打开目录 2.5.2 读取目录 2.5.3 关闭目录 2.5.4 使用范例 2.5.5 回绕目录rawinddir 2.6 文件I/O编程综合案例分析——myls.c 2.6.1 用于命令选项的宏定义 2.6.2 子函数功能 2.6.3 main函数分析 2.6.4 子函数show_link_content的实现 2.6.5 子函数show_file的实现 2.6.6 子函数show_dir的实现 2.6.7 子函数my_get_opt的实现 2.6.8 子函数get_file_list的实现第3章 多进程编程 3.1 进程基础知识 3.1.1 进程概念 3.1.2 进程的状态及其转换 3.1.3 进程标识 3.2 精解Linux下C进程内存布局 3.2.1 C进程内存布局说明 3.2.2 C进程内存布局验证 3.2.3 环境变量的获取与设置 3.3 进程控制天字第1号系统调用——fork 3.3.1 fork的机制与特性 3.3.2 fork使用实例分析 3.4 揭秘文件描述符的本质 3.4.1 文件描述符的本质是数组元素的下标 3.4.2 fork对文件描述符的影响 3.4.3 标准输入、输出文件描述符与dup2 3.5 父子进程同步的功臣——wait 3.5.1 wait的作用 3.5.2 调用wait的实例 3.5.3 waitpid 3.6 进程控制地字第1号系统调用——exec 3.6.1 exec的机制和用法 3.6.2 exec的使用实例 3.6.3 exec与fork合作 3.6.4 关于exec函数的6种形式 3.7 gdb调试多进程程序的技巧 3.8 进程的消亡 3.8.1 启动例程与main函数 3.8.2 exit函数与_exit函数 3.8.3 I/O流与I/O库缓存 3.8.4 Exit handler 3.9 守护进程的编写 3.9.1 进程组、对话期与控制终端 3.9.2 编程规则与步骤 3.9.3 出错记录第4章 进程间通信 4.1 进程间通信概述 4.2 进程间的传令兵——信号 4.2.1 信号概述 4.2.2 信号的捕获与处理 4.2.3 实例分析 4.2.4 使用gdb调试信号 4.2.5 pending signal 4.2.6 sigaction 4.3 进程间的动脉——管道 4.3.1 无名管道 4.3.2 有名(命名)管道 4.4 进程间的高速公路——共享内存 4.4.1 共享内存的原理 4.4.2 主要API 4.4.3 利用共享内存进行进程间通信的实例 4.5 高速公路上的红绿灯——信号量 4.5.1 使用共享内存存在的同步问题 4.5.2 信号量的实现原理 4.5.3 使用信号量同步共享内存访问的设计 4.5.4 信号量编程的主要API 4.5.5 使用信号量同步共享内存访问的实例分析 4.6 进程间的邮局——消息队列第5章 多线程编程初步 5.1 线程的概念和优势 5.2 多线程编程的基本API 5.2.1 创建线程pthread_create 5.2.2 结束线程pthread_exit 5.2.3 等待线程结束pthreadjoin 5.2.4 多线程编程实例分析 5.3 多线程的同步与互斥 5.3.1 互斥锁 5.3.2 信号量 5.4 线程属性 5.4.1 创建线程时指定属性 5.4.2 线程创建后改变属性 5.5 使用gdb调试多线程程序第6章 网络编程 6.1 socket编程所需网络通信基础知识 6.1.1 客户端程序和服务端程序 6.1.2 常用的命令 6.1.3 TCP/UDP介绍 6.1.4 数据封包与解包 6.1.5 TCP连接建立过程——3次握手 6.1.6 TCP连接终止过程——4分节终止序列 6.2 服务器和客户机的信息函数 6.2.1 字节序列转换 6.2.2 地址格式转换 6.2.3 IP和域名的转换 6.2.4 服务信息函数 6.3 TCP socket编程 6.3.1 编程模型 6.3.2 主要API 6.3.3 实例分析 6.3.4 令人困惑的“不能绑定到指定地址”的错误 6.3.5 套接口地址结构几点特别说明 6.3.6 迭代服务器与并发服务器 6.4 UDP socket编程 6.4.1 编程模型 6.4.2 主要API 6.4.3 实例分析 6.4.4 特别说明 6.5 高级套接字函数 6.5.1 send和recv 6.5.2 sendmsg和recvmsg 6.5.3 shutdown第7章 Linux下C开发环境使用进阶 7.1 编辑器vim的使用 7.1.1 命令行模式的操作 7.1.2 命令行模式切换到输入模式 7.1.3 最后行模式的操作 7.1.4 vim的注意事项 7.2 编译器gcc的使用 7.2.1 gcc警告提示功能 7.2.2 库依赖 7.2.3 gcc代码优化 7.2.4 gcc编译加速 7.2.5 gcc的错误类型及对策 7.3 程序库文件的制作、链接、加载精解 7.3.1 linux下ELF文件格式 7.3.2 库函数的编写者如何制作库文件 7.3.3 应用程序的编写者如何使用(链接)库文件 7.3.4 应用程序的使用者如何加载库文件 7.3.5 静态库文件的制作和使用 7.4 调试器gdb的使用 7.4.1 gdb的命令概貌 7.4.2 gdb中运行Linux的shell程序 7.4.3 在gdb中配置程序运行环境 7.4.4 调试已运行的程序 7.4.5 暂停/恢复程序运行 7.4.6 查看栈信息 7.4.7 查看源程序 7.4.8 查看运行时数据 7.4.9 改变程序的执行 7.5 autoconf和automake生成Makefile文件 7.5.1 引子 7.5.2 模拟需求 7.5.3 工具简介 7.5.4 生成Makefile的来龙去脉 7.5.5 Configure.in的八股文 7.5.6 实战Makefile.am参考文献后记
猜您喜欢