《UNIXLinux程序设计教程》一导读

2023-10-28 04:31

本文主要是介绍《UNIXLinux程序设计教程》一导读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

a5baaeb833c5801af533e21709dd58d1b01a7b7e

前言

十年前,我们出版了《UNIX程序设计教程》(清华大学出版社)。十年来,影响UNIX编程接口的规范和标准发生了较大变化,当时写书参照的“Single UNIX Specification 2”现在已发展到了“Single UNIX Specification 4”,而若干分离独立的规范和标准,包括Single UNIX Specification,现在都已经统一在POSIX.1-2008标准之下。同时,随着Linux系统的成熟和发展,UNIX系统已不再是少数大型机和服务器的专利。任何一个使用计算机的人现在都能安装和使用Linux,从而使得用UNIX编程接口开发应用的人也越来越多。因此,我们对《UNIX程序设计教程》一书进行了修订,形成本书。

《UNIX程序设计教程》主要面向使用商用UNIX系统进行软件开发的读者,书中给出的例题也都以商用UNIX系统作为运行平台。考虑到读者使用Linux更为方便,在这次重新修订时,我们以Linux作为UNIX的实现系统进行介绍,并将程序例子的运行平台转到了Linux。同时,为了突出本书面向Linux用户的目的,将书名更名为《UNIX/Linux程序设计教程》。
其他修订主要有:
1)调整个别接口使之遵循POSIX.1-2008标准。
2)考虑到许多嵌入式应用的需要,新增了实时信号处理、实时时钟与定时。
3)因为多核多线程微处理器和并行处理已经相当普及,多线程编程对应用软件开发已经非常重要,为此新增了两章专门介绍线程。
4)增强了异步I/O、套接字通信等内容。
5)简化了作业控制内容,同时因为“流”已经很少被使用,删除了原第10章中有关“流”的内容。
6)对许多例题进行了调整,删除了一些简单的例题,也增加了一些例题。
7)在每章结尾增加了“思考与练习”。
8)在不减少内容的前提下,对文字进行了较大的修订和删繁就简。
本书在修订过程中,得到了国防科学技术大学计算机学院黄春研究员、杨灿群研究员、王峰副研究员、迟万庆副研究员、李春江博士等同仁的帮助和支持,对此我们表示衷心的感谢!同时我们也要感谢《UNIX程序设计教程》的很多读者,他们对本书提出了很好的修改意见,也正是他们的鼓励和建议才有了本书。

目录

第1章 UNIX导论
1.1 UNIX简史
1.1.1 UNIX的诞生
1.1.2 UNIX的早期发展
1.1.3 BSD UNIX
1.1.4 系统V UNIX
1.1.5 UNIX的商业化
1.1.6 Linux
1.2 标准
1.2.1 SVID
1.2.2 POSIX
1.2.3 统一UNIX规范
1.2.4 C标准
1.3 UNIX基本概念
1.3.1 程序和进程
1.3.2 内核
1.3.3 shell
1.3.4 用户名与用户ID、用户组与组ID
1.3.5 特权用户
1.3.6 系统调用与库函数
1.4 系统库
1.4.1 头文件
1.4.2 保留字
1.4.3 特征测试宏
1.5 示例程序和编译环境
1.6 错误处理
1.7 系统信息
1.7.1 机器标识
1.7.2 硬件/软件类型识别
1.8 系统能力限制
1.8.1 一般能力限制值
1.8.2 系统和文件特征选项
1.8.3 sysconf()、pathconf()和fpathconf()函数
1.9 思考与练习

第2章 标准输入输出
2.1 UNIX 输入输出基本概念
2.2 流和FILE对象
2.3 打开和关闭流
2.4 读和写流
2.4.1 字符I/O
2.4.2 行I/O
2.4.3 读回退
2.4.4 块I/O
2.5 文件定位
2.6 文件结束和错误指示器
2.7 流缓冲
2.8 格式I/O
2.8.1 格式输出
2.8.2 格式输入
2.9 临时文件
2.10 思考与练习

第3章 低级输入输出
3.1 文件描述字的打开、创建和关闭
3.2 read()和write()函数
3.3 设置描述字的文件位置
3.4 dup()和dup2()函数
3.5 fdopen()和fileno()函数
3.6 文件控制函数fcntl()
3.6.1 重复文件描述字
3.6.2 文件描述字标签
3.6.3 文件状态标签
3.7 非阻塞I/O
3.8 readv()和writev()函数
3.9 fsync()和fdatasync()函数
3.10 思考与练习

第4章 文件与目录
4.1 文件
4.1.1 stat()、fstat()和lstat()函数
4.2 文件类型
4.2.1 普通文件
4.2.2 目录
4.2.3 链接与link()函数
4.2.4 符号链接与symlink()和readlink()函数
4.2.5 特别文件
4.2.6 测试文件的类型
4.3 文件的属主和用户组
4.3.1 chown()、fchown()和lchown()函数
4.4 文件方式
4.4.1 文件访问权限
4.4.2 调整用户ID和调整组ID
4.4.3  sticky位
4.4.4 文件方式位小结
4.5 确定和改变文件方式
4.5.1 umask()函数
4.5.2 chmod()和fchmod()函数
4.5.3 access()函数
4.6 文件大小
4.6.1 截断文件
4.7 文件时间
4.7.1 utime()和utimes()函数
4.8 文件的删除与换名
4.8.1 删除文件和目录
4.8.2 文件换名
4.9 目录操作
4.9.1 工作目录
4.9.2 创建目录
4.9.3 读目录流
4.9.4 对目录流的随机访问
4.10 思考与练习

这篇关于《UNIXLinux程序设计教程》一导读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290719

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实