# UNIX环境高级编程源码_第三版 **Repository Path**: laojia91/apue_srcs ## Basic Information - **Project Name**: UNIX环境高级编程源码_第三版 - **Description**: 《UNIX环境高级编程》第三版,以下简称 APUE.3E。用CMKAE工具构建APUE.3E书籍源码,本仓库代码几乎全部源自APUE.3E,根据个人理解,有些许改动。 本人刚刚接触CMAKE和APUE,希望和大家共同学习。 - **Primary Language**: C - **License**: Not specified - **Default Branch**: main - **Homepage**: https://gitee.com/laizili/apue_srcs - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-04-22 - **Last Updated**: 2024-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **Platform Environment:** 1. OS: WIN10 2. IDE: CLION 3. Toolchains: cygwin 4. CMAKE 3.17 5. Python 3.x.x [toc] ### APUE.3E 书籍源码 #### lib目录, 各章文件依赖的静态库文件(libapue.a) #### 1. ch1_basic 第一章 UNIX基础知识 > UNIX系统概览 #### 2. ch2_standards 第二章 UNIX标准及实现 > 介绍了 C语言标准、UNIX标准 及 不同OS厂商对标准实现差异等 #### 3. ch3_fileio 第三章 文件IO > 1. 介绍了文件的打开、读取、写入、关闭及与文件描述符操作相关的函数(`open/read/write/close/fcntl`); > >2. 文件同步函数(`sync/fsync/fdatasync`),将写到内存缓冲区的内容同步到磁盘中. #### 4. ch4_file_and_directory > 1. 围绕stat函数,介绍了`struct stat`结构的各个字段含义,如文件类型、文件访问权限、文件时间戳等;介绍了umask 及各种文件和目录相关的操 > 作函数;介绍了硬链接与软连接的概念及相关操作函数; > >2. 介绍了进程属性(`当前工作目录`)的概念,获取及更改进程当前工作目录的相关函数. #### 5. ch5_fileio > 1. 介绍了操作`FILE *`(stdio stream)相关函数(打开、读写、定位、冲洗、关闭),以及设置流缓冲的函数; > > 2. 还介绍了内存流与临时文件相关的标准IO库提供的函数等 #### 6. ch6_sysdata > 1. 介绍了获取系统数据文件相关信息的可移植接口(函数);获取系统标识的函数;及时间和日期获取和转换的函数 #### 7. ch7_procenv > 1. 介绍了内核加载程序的过程,介绍了进程的创建、终止及终止处理程序、获取命令行参数、获取和修改环境变量等函数;还介绍了程序被加载到 > 内存中的典型布局; > 2. 介绍了程序的非局部跳转函数(`setjmp/longjmp`)及这些函数对不同存储类型变量的影响; > 3. 介绍了获取和修改进程资源限制的相关函数 #### 8. ch8_procctl > 1. 介绍了几个进程控制原语如: `fork`、`exec` family、`wait`、`waitpid`; > 2. 介绍了内核执行`解释器文件(脚本语言程序)`的机制; > 3. 简要介绍了进程调度和获取进程运行时间的方法; #### 9. ch9_procrel 1. 本章主要介绍进程之间的关系,进程组、会话、进程组长、会话首进程、控制终端等; 2. 介绍了上述概念在作业控制中的应用,并简要介绍了作业控制的BSD实现; 3. 介绍了孤儿进程组的概念,及POSIX处理孤儿进程组的方式; #### 10. ch10_signal 1. 首先介绍了信号相关术语,可靠信号与不可靠信号,信号的状态(generated/pending/delivered),信号丢失含义,信号的发送与捕获; 2. 如何可靠地、在不影响其他代码段地情况下处理信号(信号集、进程信号屏蔽字); 3. 标准信号(standard signal)和实时信号(realtime signal)语义及实时信号相关处理函数;