Linux环境高级程序设计

本书特色

[

本书介绍使用C语言结合Linux API进行系统级程序设计的方法,主要包括Linux基础知识、C程序开发工具、文件及目录管理、进程管理、重定向与管道、信号、进程间通信、线程、线程间的同步机制、网络程序设计等10章,以及10个实验,全面而系统地介绍Linux操作系统各种机制的实现原理、经常使用的系统接口函数、系统接口和命令程序之间的关系以及命令程序的实现过程等。
本书结构清晰,适合于教学,为各类高等学校开设开源软件程序设计课程提供了一个切实可行的思路,同时也可作为培训教材在各类培训机构使用。书中各章节划分明确,各章突出不同的重点,有利于教师组织安排授课内容;同时提供设计精美、内容丰富的电子教案以及教学素材供授课教师使用,有效地减轻了授课教师备课的工作量和强度。
本书目标读者为具有一定C语言基础的读者,适合各类高等院校的计算机及相关专业学生、Linux培训机构、Linux API编程爱好者、Linux程序开发人员及爱好者学习使用。

]

目录

目录第1章Linux基础知识/11.1Linux简介11.1.1Linux系统的发展11.1.2与Linux相关的一些知识31.2Linux系统编程51.2.1什么是系统编程51.2.2系统编程的学习内容及方法61.2.3一个例子71.2.4系统调用和库函数101.3常用工具及命令101.3.1命令格式101.3.2常用工具111.3.3常用命令151.3.4获取帮助171.4小结20习题20第2章C程序开发工具/222.1编辑工具222.1.1编辑工具介绍222.1.2vi和vim程序编辑器252.2gcc编译器342.3gdb调试器362.3.1启动和退出gdb372.3.2显示和查找程序源代码382.3.3执行程序和获取帮助392.3.4设置和管理断点402.3.5查看和设置变量的值452.3.6控制程序的执行462.4make和Makefile48〖1〗Linux环境高级程序设计目录[3]〖3〗2.4.1make命令482.4.2编写Makefile文件502.5小结54习题55第3章文件及目录管理/563.1文件和I/O操作分类563.1.1文件概念563.1.2文件操作分类563.2Linux文件系统概述583.2.1文件结构583.2.2文件系统模型593.2.3目录、索引结点和文件描述符603.2.4文件的分类633.2.5文件访问权限控制643.3文件的读写683.3.1文件打开、创建和关闭693.3.2文件的读写723.3.3文件读写指针的移动803.3.4标准I/O的文件流823.4文件属性及相关系统调用873.4.1获取文件属性873.4.2修改文件的访问权限913.4.3修改文件的用户属性933.4.4获取用户的信息943.4.5改变文件大小953.4.6获取文件的时间属性963.5目录操作973.5.1打开目录973.5.2读取目录项983.5.3关闭目录983.6实现自己的ls命令1003.7小结105习题106第4章进程管理/1074.1Linux可执行程序的存储结构与进程结构1074.1.1Linux可执行程序的存储结构1074.1.2Linux系统的进程结构1094.1.3进程树1104.2进程的环境和进程属性1114.2.1进程的环境1114.2.2进程的状态1124.2.3进程的基本属性1154.2.4进程的用户属性1214.3进程管理1244.3.1创建进程1244.3.2在进程中运行新代码1274.3.3vfork函数1314.3.4进程退出1334.3.5wait函数1384.3.6Shell的实现流程1424.4Linux中的特殊进程1434.4.1孤儿进程1434.4.2僵尸进程1444.4.3守护进程1454.4.4出错记录1484.5小结150习题150第5章重定向与管道/1515.1重定向和管道命令1515.1.1重定向命令1515.1.2管道命令1525.2实现重定向1535.2.1重定向的实施者1535.2.2实现重定向的前提条件1545.2.3dup和dup21545.2.4重定向的三种方法1575.2.5ls �瞝>list.txt1595.3管道编程1615.3.1匿名管道1615.3.2命名管道1655.3.3ls �瞝|grep root1685.3.4popen和pclose1705.4小结173习题174第6章信号/1756.1信号概述1756.1.1什么是信号1756.1.2信号的来源和处理过程1776.1.3信号的处理方式1776.2早期信号处理函数——signal1786.2.1signal函数实现信号的三种处理方式1786.2.2signal函数存在的问题1826.3信号处理函数——sigaction1836.3.1sigaction系统调用1836.3.2sigaction函数参数的说明1866.4信号其他相关函数1906.4.1kill与raise1906.4.2alarm与pause1926.4.3实现sleep函数1936.5小结194习题195第7章进程间通信/1967.1选择进程间通信方式1967.1.1文件实现进程间通信1967.1.2命名管道实现进程间通信1997.2共享内存2017.2.1什么是共享内存2017.2.2共享内存相关系统调用2037.2.3共享内存实现进程间通信2067.2.4三种通信方式的比较2087.3信号量2097.3.1信号量及相关系统调用2097.3.2使用信号量控制对共享内存的访问2147.3.3信号量机制总结2217.4System V IPC2227.4.1Linux中的进程通信机制2227.4.2System V IPC概述2237.4.3IPC的标识符和键2247.5消息队列2257.5.1消息队列的概念2257.5.2消息队列相关系统调用2267.5.3使用消息队列实现进程间通信2297.6小结232习题232第8章线程/2338.1线程概述2338.1.1线程的定义2338.1.2用户级线程和内核级线程2348.1.3线程与进程的对比2348.2线程基本操作2358.2.1线程创建2358.2.2线程退出/等待2388.2.3线程终止2448.2.4线程挂起2478.2.5线程的分离2498.2.6线程的一次性初始化2518.2.7线程的私有数据2538.3线程属性2578.3.1线程属性对象2588.3.2设置/获取线程detachstate属性2608.3.3设置与获取线程栈相关属性2618.4线程应用举例2668.5小结273习题273第9章线程间的同步机制/2759.1互斥锁2759.1.1互斥锁基本原理2759.1.2互斥锁基本操作2759.1.3互斥锁应用实例2789.2条件变量2799.2.1条件变量基本原理2799.2.2条件变量基本操作2799.2.3条件变量应用实例2819.3读写锁2849.3.1读写锁基本原理2849.3.2读写锁基本操作2849.3.3读写锁应用实例2879.4线程与信号2899.4.1线程信号管理2909.4.2线程信号应用实例2919.5小结295习题295第10章网络程序设计/29610.1网络知识基础29610.1.1TCP/IP参考模型29610.1.2Linux中TCP/IP网络的层结构29610.1.3TCP协议29710.1.4UDP协议29810.2套接字29910.2.1套接字概述29910.2.2套接字编程接口30010.2.3套接字通信流程30310.3套接字基础30710.3.1套接字地址结构30710.3.2字节顺序30910.3.3字节处理函数31010.4套接字编程31110.4.1基于TCP协议的网络通信31110.4.2基于UDP协议的网络通信31610.5小结319习题319附录实验/321实验1Linux基础知识321实验2C程序开发工具321实验3文件I/O操作322实验4进程管理及守护进程323实验5重定向和管道编程323实验6信号安装及处理方式324实验7System V IPC进程通信325实验8线程管理325实验9线程间通信326实验10套接字编程326

封面

Linux环境高级程序设计

书名:Linux环境高级程序设计

作者:黄茹

页数:327

定价:¥59.0

出版社:清华大学出版社

出版日期:2019-03-01

ISBN:9787302520252

PDF电子书大小:50MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注