自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 资源 (21)
  • 问答 (5)
  • 收藏
  • 关注

转载 C++中 typename 和 class 的区别

问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? ·在声明 template parameters(模板参数)时,class 和 typename 是可互换的。·用 typename 去标识 nested dependent type names(嵌套依赖类型名),在 base class lists(基类列表)中或在一个 member initialization list(成员初始化列表)中作为一个 base class i

2017-09-17 11:30:00 318

转载 error LNK2001: 无法解析的外部符号 Qt的moc机制

error LNK2001: 无法解析的外部符号 Qt的moc机制error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscallMainWindowBottomWidget::metaObject(void)const " ()

2017-09-16 16:27:54 2753

依赖222222222

依赖222222222

2023-11-11

dubbo2.7.7 111111111111111111111

dubbo2.7.7 111111111111111111111

2023-11-11

王道-程序员求职宝典

本书精选了大量知名企业的程序员笔试、面试题,重点突出、解答翔实。全书共分为四部分,各部分如下:第一部分是程序设计基础及数据结构基础,讨论C/C++基础知识以及数据结构基础知识;第二部分是计算机网络基础,讨论网络模型、套接字编程基本操作、IPv4与IPv6、子网划分、网络常用测试工具等;第三部分是操作系统基础,讨论进程与线程的基本知识、进程间通信与进程同步、内存管理的相关知识等;第四部分是其他计算机相关基础,讨论数据库基础知识、设计模式的相关知识、数学基础、逻辑知识与综合知识等。

2019-04-23

深度探索C++对象模型

《深度探索C++对象模型》重点探索"对象导向程序所支持的C++对象模型"下的程序行为。对于"对象导向性质之基础实现技术"以及"各种性质背后的隐含利益交换"提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序范例、图片,以及对象导向观念和底层对象模型之间的效率测量。专注于C++对象导向程序设计的底层机制,包括结构式语意、暂时性对象的生成、封装、继承,以及虚拟--虚拟函数和虚拟继承。

2019-04-23

java数据结构与算法第二版

目录 出版说明 献词 简介 第1章 综述 数据结构和算法能起到什么作用? 数据结构的概述 算法的概述 一些定义 面向对象编程 软件工程 对于C++程序员的Java Java数据结构的类库 小结 问题 第2章 数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 编程作业 第3章 简单排序 如何排序? 冒泡排序 选择排序 插入排序 对象排序 几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet 单链表 查找和删除指定链结点 双端链表 链表的效率 抽象数据类型 有序链表 双向链表 迭代器 小结 问题 实验 编程作业 第6章 递归 三角数字 阶乘 变位字 递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为什么使用二叉树? 树的术语 一个类比 二叉搜索树如何工作 查找节点 插入一个节点 遍历树 查找最大值和最小值 删除节点 二叉树的效率 用数组表示树 重复关键字 完整的tree.java程序 哈夫曼(Huffman)编码 小结 问题 实验 编程作业 第9章 红-黑树 第10章 2-3-4树和外部存储 第11章 哈希表 第12章 堆 第13章 图 第14章 带权图 第15章 应用场合

2019-04-23

预测分析法

编译原理 预测分析法 c++实现 求解非终结符 终结符 first集 follow集 建立预测分析表 识别字符串

2018-05-01

linux_c第三方库

libconfig-1.4.8.tar.gz zlog-latest-stable.tar.gz libpcap-0.8.3.tar.gz m4-1.4.15.tar.gz flex-2.5.4.tgz libtool-2.4.2.tar.xz bison-2.6.5.tar.xz autoconf-2.69.tar.xz automake-1.12.5.tar.xz

2018-03-24

A星寻路算法

在游戏中,有一个很常见地需求,就是要让一个角色从A点走向B点,我们期望是让角色走最少的路。嗯,大家可能会说,直线就是最短的。没错,但大多数时候,A到B中间都会出现一些角色无法穿越的东西,比如墙、坑等障碍物。这个时候怎么办呢? 是的,我们需要有一个算法来解决这个问题,算法的目标就是计算出两点之间的最短路径,而且要能避开障碍物。

2018-03-08

数据结构与算法分析C++描述第三版.pdf

全面系统地介绍了数据结构,并以C++语言实现相关的算法。书中主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈、队列、递归、二叉树、图、排序和散列。本书还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配等主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。

2018-01-26

试题库管理系统

采用Qt 实现试题库管理系统 1. 掌握数据库的基本概念,使用软件工程的思路确定总体方案; 2. 完成详细的需求分析,完成概念结构设计,进行逻辑结构设计,建立规范化程度较高的关系模型,在SQL中建立完善的数据库; 3. 进行系统界面设计、功能模块设计; 4. 使用程序设计语言C++编程实现学校题库管理系统,最终完成程序设计任务; 5. 撰写并提交课程设计报告和个人总结; 6. 设计报告内容包括:设计题目、任务要求、系统总体方案、各个模块实现和数据流图,心得体会和参考资料。

2018-01-03

页式虚存管理

模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)或LRU处理缺页中断; 要求: ① 指令序列的设定可以执行拟定,格式如表3; ② 在完成了FIFO换页策略后,可以选做LRU的换页策略,并进行比较; ③ 作业允许的页架数m在不同情况下的缺页中断率; ④ 程序运行时显示地址转变和页面调入调出过程。 步骤: ① 设计页表及其数据结构: 页号: 标志:是否在主存; 页架号:设定页表在主存的位置; 修改标志:设定页面在主存中是否修改过; 磁盘上位置:设定页面在辅存中的位置; 设计一个地址转换程序半模拟硬件的地址转换和缺页中断。

2017-11-28

计算机操作系统 第三版

1.1 操作系统的目标和作用.................................1 1.1.1 操作系统的目标......................................1 1.1.2 操作系统的作用......................................2 1.1.3 推动操作系统发展的主要动力...............4 1.2 操作系统的发展过程.....................................5 1.2.1 无操作系统的计算机系统.......................5 1.2.2 单道批处理系统......................................6 1.2.3 多道批处理系统......................................7 1.2.4 分时系统.................................................9 1.2.5 实时系统............................................... 11 1.2.6 微机操作系统的发展............................12 1.3 操作系统的基本特性...................................14 1.3.1 并发性...................................................14 1.3.2 共享性...................................................15 1.3.3 虚拟技术 ...............................................16 1.3.4 异步性...................................................17 1.4 操作系统的主要功能...................................18 1.4.1 处理机管理功能....................................18 1.4.2 存储器管理功能....................................19 1.4.3 设备管理功能........................................21 1.4.4 文件管理功能........................................21 1.4.5 操作系统与用户之间的接口 .................22 1.5 OS 结构设计................................................24 1.5.1 传统的操作系统结构 ............................24 1.5.2 客户/服务器模式...................................26 1.5.3 面向对象的程序设计 ............................27 1.5.4 微内核 OS 结构.....................................29 习题......................................................................33 第二章 进 程 管 理 2.1 进程的基本概念 ..........................................34 2.1.1 程序的顺序执行及其特征.....................34 2.1.2 前趋图...................................................35 2.1.3 程序的并发执行及其特征.....................36 2.1.4 进程的特征与状态................................37 2.1.5 进程控制块...........................................41 2.2 进程控制 .....................................................43 2.2.1 进程的创建...........................................43 2.2.2 进程的终止...........................................45 2.2.3 进程的阻塞与唤醒................................46 2.2.4 进程的挂起与激活................................47 2.3 进程同步 .....................................................47 2.3.1 进程同步的基本概念............................47 2.3.2 信号量机制...........................................50 2.3.3 信号量的应用 .......................................53 2.3.4 管程机制...............................................55 2.4 经典进程的同步问题...................................58 2.4.1 生产者—消费者问题 ............................58 2.4.2 哲学家进餐问题....................................61 2.4.3 读者—写者问题....................................63 2.5 进程通信......................................................65 2.5.1 进程通信的类型....................................65 2.5.2 消息传递通信的实现方法.....................66 2.5.3 消息传递系统实现中的若干问题..........68 2.5.4 消息缓冲队列通信机制.........................69 2.6 线程 .............................................................71 2.6.1 线程的基本概念....................................72 2.6.2 线程间的同步和通信 ............................75 2.6.3 线程的实现方式....................................77 2.6.4 线程的实现 ...........................................78 习题......................................................................81·2· 第三章 处理机调度与死锁 3.1 处理机调度的层次 ......................................84 3.1.1 高级调度...............................................84 3.1.2 低级调度...............................................86 3.1.3 中级调度...............................................87 3.2 调度队列模型和调度准则 ...........................88 3.2.1 调度队列模型 .......................................88 3.2.2 选择调度方式和调度算法的若干 准则 ......................................................90 3.3 调度算法 .....................................................91 3.3.1 先来先服务和短作业(进程)优先 调度算法...............................................91 3.3.2 高优先权优先调度算法 ........................93 3.3.3 基于时间片的轮转调度算法.................95 3.4 实时调度 .....................................................97 3.4.1 实现实时调度的基本条件.....................97 3.4.2 实时调度算法的分类 ............................99 3.4.3 常用的几种实时调度算法...................100 3.5 产生死锁的原因和必要条件......................103 3.5.1 产生死锁的原因..................................103 3.5.2 产生死锁的必要条件 ..........................105 3.5.3 处理死锁的基本方法 ..........................105 3.6 预防死锁的方法.........................................106 3.6.1 预防死锁 .............................................106 3.6.2 系统安全状态......................................107 3.6.3 利用银行家算法避免死锁...................108 3.7 死锁的检测与解除.....................................111 3.7.1 死锁的检测 .........................................111 3.7.2 死锁的解除 .........................................113 习题....................................................................114 第四章 存 储 器 管 理 4.1 存储器的层次结构 .................................... 116 4.1.1 多级存储器结构.................................. 116 4.1.2 主存储器与寄存器.............................. 117 4.1.3 高速缓存和磁盘缓存.......................... 117 4.2 程序的装入和链接 .................................... 118 4.2.1 程序的装入......................................... 118 4.2.2 程序的链接......................................... 120 4.3 连续分配方式............................................ 121 4.3.1 单一连续分配 ..................................... 121 4.3.2 固定分区分配 ..................................... 122 4.3.3 动态分区分配 ..................................... 123 4.3.4 伙伴系统............................................. 126 4.3.5 哈希算法............................................. 126 4.3.6 可重定位分区分配.............................. 127 4.3.7 对换 .................................................... 129 4.4 基本分页存储管理方式............................. 130 4.4.1 页面与页表......................................... 130 4.4.2 地址变换机构 ..................................... 131 4.4.3 两级和多级页表..................................133 4.5 基本分段存储管理方式 .............................135 4.5.1 分段存储管理方式的引入...................135 4.5.2 分段系统的基本原理 ..........................136 4.5.3 信息共享 .............................................138 4.5.4 段页式存储管理方式 ..........................140 4.6 虚拟存储器的基本概念 .............................141 4.6.1 虚拟存储器的引入 ..............................142 4.6.2 虚拟存储器的实现方法.......................143 4.6.3 虚拟存储器的特征 ..............................144 4.7 请求分页存储管理方式 .............................144 4.7.1 请求分页中的硬件支持.......................144 4.7.2 内存分配策略和分配算法...................147 4.7.3 调页策略 .............................................148 4.8 页面置换算法 ............................................149 4.8.1 最佳置换算法和先进先出置换算法....150 4.8.2 最近最久未使用(LRU)置换算法.........151 4.8.3 Clock 置换算法 ...................................153·3· 4.8.4 其它置换算法 ..................................... 154 4.9 请求分段存储管理方式............................. 155 4.9.1 请求分段中的硬件支持 ...................... 155 4.9.2 分段的共享与保护 ..............................157 习题....................................................................159 第五章 设 备 管 理 5.1 I/O 系统..................................................... 160 5.1.1 I/O 设备 .............................................. 160 5.1.2 设备控制器......................................... 162 5.1.3 I/O 通道 .............................................. 164 5.1.4 总线系统............................................. 166 5.2 I/O 控制方式 ............................................. 167 5.2.1 程序 I/O 方式...................................... 167 5.2.2 中断驱动 I/O 控制方式....................... 168 5.2.3 直接存储器访问(DMA)I/O 控制 方式 .................................................... 169 5.2.4 I/O 通道控制方式 ............................... 170 5.3 缓冲管理 ................................................... 171 5.3.1 缓冲的引入......................................... 171 5.3.2 单缓冲和双缓冲.................................. 172 5.3.3 循环缓冲............................................. 174 5.3.4 缓冲池................................................. 175 5.4 I/O 软件..................................................... 177 5.4.1 I/O 软件的设计目标和原则................177 5.4.2 中断处理程序......................................179 5.4.3 设备驱动程序......................................181 5.4.4 设备独立性软件..................................184 5.4.5 用户层的 I/O 软件...............................186 5.5 设备分配....................................................186 5.5.1 设备分配中的数据结构.......................186 5.5.2 设备分配时应考虑的因素...................187 5.5.3 独占设备的分配程序 ..........................188 5.5.4 SPOOLing 技术 ...................................189 5.6 磁盘存储器的管理.....................................191 5.6.1 磁盘性能简述......................................191 5.6.2 磁盘调度 .............................................194 5.6.3 磁盘高速缓存......................................197 5.6.4 提高磁盘 I/O 速度的其它方法............199 5.6.5 廉价磁盘冗余阵列 ..............................200 习题....................................................................202 第六章 文 件 管 理 6.1 文件和文件系统 ........................................ 203 6.1.1 文件、记录和数据项.......................... 203 6.1.2 文件类型和文件系统模型................... 205 6.1.3 文件操作............................................. 206 6.2 文件的逻辑结构 ........................................ 208 6.2.1 文件逻辑结构的类型.......................... 208 6.2.2 顺序文件............................................. 209 6.2.3 索引文件............................................. 210 6.2.4 索引顺序文件 ..................................... 211 6.2.5 直接文件和哈希文件.......................... 212 6.3 外存分配方式............................................ 213 6.3.1 连续分配............................................. 213 6.3.2 链接分配............................................. 215 6.3.3 FAT 和 NTFS 技术...............................216 6.3.4 索引分配 .............................................221 6.4 目录管理....................................................223 6.4.1 文件控制块和索引结点.......................224 6.4.2 目录结构 .............................................226 6.4.3 目录查询技术......................................229 6.5 文件存储空间的管理.................................231 6.5.1 空闲表法和空闲链表法.......................231 6.5.2 位示图法 .............................................232 6.5.3 成组链接法 .........................................233 6.6 文件共享与文件保护.................................234 6.6.1 基于索引结点的共享方式...................234 6.6.2 利用符号链实现文件共享...................236·4· 6.6.3 磁盘容错技术 ..................................... 237 6.7 数据一致性控制 ........................................ 240 6.7.1 事务 .................................................... 241 6.7.2 检查点................................................. 242 6.7.3 并发控制 .............................................243 6.7.4 重复数据的数据一致性问题 ...............243 习题....................................................................246 第七章 操作系统接口 7.1 联机用户接口............................................ 248 7.1.1 联机用户接口 ..................................... 248 7.1.2 联机命令的类型.................................. 250 7.1.3 键盘终端处理程序.............................. 252 7.1.4 命令解释程序 ..................................... 254 7.2 Shell 命令语言........................................... 255 7.2.1 简单命令............................................. 255 7.2.2 重定向与管道命令.............................. 258 7.2.3 通信命令............................................. 259 7.2.4 后台命令............................................. 260 7.3 系统调用 ................................................... 260 7.3.1 系统调用的基本概念.......................... 261 7.3.2 系统调用的类型.................................. 263 7.3.3 POSIX 标准.........................................265 7.3.4 系统调用的实现..................................266 7.4 UNIX 系统调用..........................................268 7.4.1 UNIX 系统调用的类型........................269 7.4.2 被中断进程的环境保护.......................271 7.4.3 系统调用陷入后需处理的 公共问题 .............................................272 7.5 图形用户接口 ............................................273 7.5.1 图形化用户界面..................................273 7.5.2 桌面、图标和任务栏 ..........................274 7.5.3 窗口.....................................................276 7.5.4 对话框.................................................277 习题....................................................................279 第八章 网络操作系统 8.1 计算机网络概述 ........................................ 281 8.1.1 计算机网络的拓扑结构 ...................... 281 8.1.2 计算机广域网络.................................. 284 8.1.3 计算机局域网络.................................. 287 8.1.4 网络互连............................................. 288 8.2 网络体系结构............................................ 290 8.2.1 网络体系结构的基本概念................... 290 8.2.2 OSI/RM 中的低三层 ........................... 292 8.2.3 OSI/RM 中的高四层 ........................... 294 8.2.4 TCP/IP 网络体系结构 ........................ 295 8.2.5 LAN 网络体系结构............................. 297 8.3 Internet 与 Intranet ..................................... 299 8.3.1 Internet 简介........................................ 300 8.3.2 Internet 提供的传统信息服务 ............. 301 8.3.3 Web 服务............................................. 303 8.4 客户/服务器模式 ....................................... 304 8.4.1 两层结构客户/服务器模式的 局限性.................................................304 8.4.2 三层结构的客户/服务器模式 ..............305 8.4.3 两层客户/服务器与三层客户/服务器的 比较.....................................................306 8.4.4 浏览器/服务器(Browser/Server) 模式.....................................................307 8.5 网络操作系统的功能.................................308 8.5.1 数据通信功能......................................308 8.5.2 网络资源共享功能 ..............................309 8.5.3 应用互操作功能..................................312 8.5.4 网络管理功能......................................314 8.6 网络操作系统提供的服务..........................315 8.6.1 域名系统(DNS) ...................................315 8.6.2 目录服务 .............................................317 8.6.3 支持 Internet 提供的服务 ....................319·5· 习题 ................................................................... 320 第九章 系 统 安 全 性 9.1 系统安全的基本概念................................. 322 9.1.1 系统安全性的内容和性质................... 322 9.1.2 系统安全威胁的类型.......................... 323 9.1.3 信息技术安全评价公共准则............... 324 9.2 数据加密技术............................................ 325 9.2.1 数据加密的基本概念.......................... 325 9.2.2 对称加密算法与非对称加密算法 ....... 328 9.2.3 数字签名和数字证明书 ...................... 329 9.2.4 网络加密技术 ..................................... 331 9.3 认证技术 ................................................... 332 9.3.1 基于口令的身份认证.......................... 333 9.3.2 基于物理标志的认证技术................... 335 9.3.3 基于生物标志的认证技术...................337 9.3.4 基于公开密钥的认证技术...................339 9.4 访问控制技术 ............................................340 9.4.1 访问矩阵 .............................................340 9.4.2 访问矩阵的修改..................................342 9.4.3 访问控制矩阵的实现 ..........................343 9.5 计算机病毒................................................345 9.5.1 计算机病毒的基本概念.......................345 9.5.2 计算机病毒的类型 ..............................346 9.5.3 病毒的隐藏方式..................................348 9.5.4 病毒的预防和检测 ..............................350 习题....................................................................351 第十章 UNIX 系统内核结构 10.1 UNIX 系统概述 ....................................... 353 10.1.1 UNIX 系统的发展史 ......................... 353 10.1.2 UNIX 系统的特征............................. 355 10.1.3 UNIX 系统的内核结构 ..................... 356 10.2 进程的描述和控制................................... 357 10.2.1 进程控制块 ....................................... 357 10.2.2 进程状态与进程映像 ........................ 359 10.2.3 进程控制........................................... 361 10.2.4 进程调度与切换................................ 363 10.3 进程的同步与通信................................... 364 10.3.1 sleep 与 wakeup 同步机制................. 364 10.3.2 信号机制........................................... 365 10.3.3 管道机制........................................... 365 10.3.4 消息机制........................................... 367 10.3.5 共享存储区机制................................ 368 10.3.6 信号量集机制 ................................... 369 10.4 存储器管理.............................................. 370 10.4.1 请求调页管理的数据结构.................370 10.4.2 换页进程 ...........................................372 10.4.3 请求调页 ...........................................373 10.5 设备管理..................................................374 10.5.1 字符设备缓冲区管理.........................374 10.5.2 块设备缓冲区管理 ............................375 10.5.3 内核与驱动程序接口.........................377 10.5.4 磁盘驱动程序....................................379 10.5.5 磁盘读/写程序...................................380 10.6 文件管理..................................................381 10.6.1 UNIX 文件系统概述..........................381 10.6.2 文件的物理结构................................383 10.6.3 索引结点的管理................................385 10.6.4 空闲磁盘空间的管理.........................386 10.6.5 文件表的管理....................................388 10.6.6 目录管理 ...........................................389 习题....................................................................390

2017-11-11

gdb完全手册

GDB完全手册.txt GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。 或许, 各位比较喜欢那种图形界面方式的,像VC、 BCB等 IDE的调试, 但如果你是在UNIX平台下做软件, 你会发现GDB这个调试工具有比VC、 BCB的图形化调试器更强大的功能。所 谓“ 寸有所长, 尺有所短” 就是这个道理。 用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。 或许, 各位比较喜欢那种图形界面方式的,像VC、 BCB等 IDE的调试, 但如果你是在UNIX平台下做软件, 你会发现GDB这个调试工具有比VC、 BCB的图形化调试器更强大的功能。所 谓“ 寸有所长, 尺有所短” 就是这个道理。 一般来说, GDB主要帮忙你完成下面四个方面的功能: 1、 启动你的程序, 可以按照你的自定义的要求随心所欲的运行程序。 2、 可让被调试的程序在你所指定的调置的断点处停住。( 断点可以是条件表达式) 3、 当程序被停住时, 可以检查此时你的程序中所发生的事。 4、 动态的改变你程序的执行环境。 从上面看来, GDB和一般的调试工具没有什么两样, 基本上也是完成这些功能, 不过在细节上, 你会发现GDB这个调试工 具的强大, 大家可能比较习惯了图形化的调试工具, 但有时候, 命令行的调试工具却有着图形化工具所不能完成的功 能。 让我们一一看来。

2017-09-03

Makefile.pdf

第一部分、概述...............................................................................................................................6 第二部分、关于程序的编译和链接...............................................................................................6 第三部分、 Makefile 介绍 ............................................................................................................7 一、 Makefile的规则 ..............................................................................................................7 二、一个示例...........................................................................................................................8 三、 make是如何工作的........................................................................................................9 四、 makefile中使用变量....................................................................................................10 五、让make自动推导..........................................................................................................11 六、另类风格的makefile....................................................................................................12 七、清空目标文件的规则.....................................................................................................13 第四部分、 Makefile 总述 ..........................................................................................................13 一、 Makefile里有什么? ....................................................................................................13 1、显式规则。 ..............................................................................................................14 2、隐晦规则。 ..............................................................................................................14 3、变量的定义。 ..........................................................................................................14 4、文件指示。 ..............................................................................................................14 5、注释。 ......................................................................................................................14 二、 Makefile的文件名 ........................................................................................................15 三、引用其它的Makefile ....................................................................................................15 四、环境变量 MAKEFILES................................................................................................16 五、 make的工作方式..........................................................................................................16 第五部分、书写规则.....................................................................................................................17 一、规则举例.........................................................................................................................17 二、规则的语法.....................................................................................................................17 三、在规则中使用通配符.....................................................................................................18 四、文件搜寻.........................................................................................................................19 五、伪目标.............................................................................................................................20 六、多目标.............................................................................................................................22 七、静态模式.........................................................................................................................22 八、自动生成依赖性.............................................................................................................24 第六部分 书写命令.......................................................................................................................25 一、显示命令.........................................................................................................................26 二、命令执行.........................................................................................................................26 三、命令出错.........................................................................................................................27 四、嵌套执行make..............................................................................................................28 五、定义命令包.....................................................................................................................30 第七部分 使用变量.......................................................................................................................30 一、变量的基础.....................................................................................................................31 二、变量中的变量.................................................................................................................32 三、变量高级用法.................................................................................................................34 四、追加变量值.....................................................................................................................37 五、 override 指示符 ..........................................................................................................37 六、多行变量.........................................................................................................................38 第 2 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 七、环境变量.........................................................................................................................38 八、目标变量.........................................................................................................................39 九、模式变量.........................................................................................................................40 第八部分 使用条件判断...............................................................................................................40 一、示例.................................................................................................................................40 二、语法.................................................................................................................................42 第九部分 使用函数.......................................................................................................................43 一、函数的调用语法.............................................................................................................44 二、字符串处理函数.............................................................................................................44 1、 subst .......................................................................................................................44 2、 patsubst.................................................................................................................45 3、 strip .........................................................................................................................45 4、 findstring ...............................................................................................................46 5、 filter.........................................................................................................................46 6、 filter-out.................................................................................................................46 7、 sort ..........................................................................................................................47 8、 word ........................................................................................................................47 9、 wordlist ..................................................................................................................47 10、 words....................................................................................................................47 11、 firstword..............................................................................................................48 12、字符串函数实例....................................................................................................48 三、文件名操作函数.............................................................................................................48 1、 dir.............................................................................................................................48 2、 notdir ......................................................................................................................48 3、 suffix .......................................................................................................................49 4、 basename..............................................................................................................49 5、 addsuffix................................................................................................................49 6、 addprefix ...............................................................................................................49 7、 join...........................................................................................................................50 四、 foreach 函数................................................................................................................50 五、 if 函数 ............................................................................................................................50 六、 call函数..........................................................................................................................51 七、 origin函数 .....................................................................................................................51 “undefined” .................................................................................................................52 “default”.......................................................................................................................52 “file”...............................................................................................................................52 “command line”.........................................................................................................52 “override” ....................................................................................................................52 “automatic”.................................................................................................................52 八、 shell函数 .......................................................................................................................53 九、控制make的函数..........................................................................................................53 1、 error ........................................................................................................................53 2、 warning ..................................................................................................................54 第十部分 make 的运行..............................................................................................................54 第 3 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 一、 make的退出码..............................................................................................................54 二、指定Makefile ................................................................................................................54 三、指定目标.........................................................................................................................55 “all” ................................................................................................................................56 “clean” ..........................................................................................................................56 “install” .........................................................................................................................56 “print” ...........................................................................................................................56 “tar” ...............................................................................................................................56 “dist”..............................................................................................................................56 “TAGS” ..........................................................................................................................56 “check”和“test” ..........................................................................................................56 四、检查规则.........................................................................................................................57 五、 make的参数..................................................................................................................57 第十一部分 隐含规则...................................................................................................................61 一、使用隐含规则.................................................................................................................61 二、隐含规则一览.................................................................................................................62 1、编译C程序的隐含规则 ...........................................................................................63 2、编译C++程序的隐含规则.....................................................................................63 3、编译Pascal程序的隐含规则..................................................................................63 4、编译Fortran/Ratfor程序的隐含规则..................................................................63 5、预处理Fortran/Ratfor程序的隐含规则..............................................................63 6、编译Modula-2 程序的隐含规则...........................................................................63 7、汇编和汇编预处理的隐含规则 ..............................................................................64 8、链接Object文件的隐含规则 .................................................................................64 9、 Yacc C程序时的隐含规则 .....................................................................................64 10、 Lex C程序时的隐含规则.....................................................................................64 11、 Lex Ratfor程序时的隐含规则 ...........................................................................65 12、从C程序、 Yacc文件或Lex文件创建Lint库的隐含规则 ..................................65 三、隐含规则使用的变量.....................................................................................................65 1、关于命令的变量。 ..................................................................................................65 2、关于命令参数的变量 ..............................................................................................66 四、隐含规则链.....................................................................................................................67 五、定义模式规则.................................................................................................................68 1、模式规则介绍 ..........................................................................................................68 2、模式规则示例 ..........................................................................................................69 3、自动化变量 ..............................................................................................................70 4、模式的匹配 ..............................................................................................................72 5、重载内建隐含规则 ..................................................................................................72 六、老式风格的"后缀规则" .................................................................................................73 七、隐含规则搜索算法.........................................................................................................74 第十二部分 使用make更新函数库文件....................................................................................75 一、函数库文件的成员.........................................................................................................75 二、函数库成员的隐含规则.................................................................................................75 三、函数库文件的后缀规则.................................................................................................76 第 4 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 四、注意事项.........................................................................................................................76 第十三部分 后序...........................................................................................................................77

2017-09-03

vbird-linux-basic-4e-脚本之家

鸟哥的Linux私房菜:基础学习篇 第四版 目录及概述 第零章、计算机概论 0.1 电脑:辅助人脑的好工具 0.2 个人电脑架构与相关设备元件 0.3 数据表示方式 0.4 软件程序运行 0.5 重点回顾 0.6 本章习题 0.7 参考资料与延伸阅读 第一章、Linux是什么与如何学习 1.1 Linux是什么 1.2 Torvalds的Linux发展 1.3 Linux当前应用的角色 1.4 Linux 该如何学习 1.5 重点回顾 1.6 本章习题 1.7 参考资料与延伸阅读 第二章、主机规划与磁盘分区 2.1 Linux与硬件的搭配 2.2 磁盘分区 2.3 安装Linux前的规划 2.4 重点回顾 2.5 本章习题 2.6 参考资料与延伸阅读 第三章、安装 CentOS7.x 3.1 本练习机的规划--尤其是分区参数 3.2 开始安装CentOS 7 3.3 多重开机安装流程与管理(Option) 3.4 重点回顾 鸟哥的 Linux 私房菜:基础学习篇 第四版 25.5 5.6 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 7 7.1 7.2 7.3 7.4 7.5 7.6 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9 9.1 9.2 9.3 9.4 9.5 3.5 本章习题 3.6 参考资料与延伸阅读 第四章、首次登陆与线上求助 4.1 首次登陆系统 4.2 文字模式下指令的下达 4.3 Linux系统的线上求助man page与info page 4.4 超简单文书编辑器: nano 4.5 正确的关机方法 4.6 重点回顾 4.7 本章习题 4.8 参考资料与延伸阅读 第五章、Linux 的文件权限与目录配置 5.1 使用者与群组 5.2 Linux 文件权限概念 5.3 Linux目录配置 5.4 重点回顾 5.5 本章练习 5.6 参考资料与延伸阅读 第六章、Linux 文件与目录管理 6.1 目录与路径 6.2 文件与目录管理 6.3 文件内容查阅 6.4 文件与目录的默认权限与隐藏权限 6.5 指令与文件的搜寻 6.6 极重要的复习!权限与指令间的关系 6.7 重点回顾 6.8 本章习题: 6.9 参考资料与延伸阅读 第七章、Linux 磁盘与文件系统管理 7.1 认识 Linux 文件系统 7.2 文件系统的简单操作 7.3 磁盘的分区、格式化、检验与挂载 7.4 设置开机挂载 7.5 内存交换空间(swap) 之创建 鸟哥的 Linux 私房菜:基础学习篇 第四版 39.6 9.7 9.8 9.9 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13 7.6 文件系统的特殊观察与操作 7.7 重点回顾 7.8 本章习题 - 第一题一定要做 7.9 参考资料与延伸阅读 第八章、文件与文件系统的压缩,打包与备份 8.1 压缩文件的用途与技术 8.2 Linux 系统常见的压缩指令 8.3 打包指令: tar 8.4 XFS 文件系统的备份与还原 8.5 光盘写入工具 8.6 其他常见的压缩与备份工具 8.7 重点回顾 8.8 本章习题 8.9 参考资料与延伸阅读 第九章、vim 程序编辑器 9.1 vi 与 vim 9.2 vi 的使用 9.3 vim 的额外功能 9.4 其他 vim 使用注意事项 9.5 重点回顾 9.6 本章练习 9.7 参考资料与延伸阅读 第十章、认识与学习BASH 10.1 认识 BASH 这个 Shell 10.2 Shell 的变量功能 10.3 命令别名与历史命令 10.4 Bash Shell 的操作环境: 10.5 数据流重导向 10.6 管线命令 (pipe) 10.7 重点回顾 10.8 本章习题 10.9 参考资料与延伸阅读 第十一章、正则表达式与文件格式化处理 鸟哥的 Linux 私房菜:基础学习篇 第四版 413.1 13.2 13.3 13.4 13.5 13.6 13.7 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 15 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 15.10 16 16.1 16.2 16.3 16.4 16.5 16.6 11.1 开始之前:什么是正则表达式 11.2 基础正则表达式 11.3 延伸正则表达式 11.4 文件的格式化与相关处理 11.5 重点回顾 11.6 本章习题 11.7 参考资料与延伸阅读 第十二章、学习 Shell Scripts 12.1 什么是 Shell scripts 12.2 简单的 shell script 练习 12.3 善用判断式 12.4 条件判断式 12.5 循环 (loop) 12.6 shell script 的追踪与 debug 12.7 重点回顾 12.8 本章习题 第十三章、Linux 帐号管理与 ACL 权限设置 13.1 Linux 的帐号与群组 13.2 帐号管理 13.3 主机的细部权限规划:ACL 的使用 13.4 使用者身份切换 13.5 使用者的特殊 shell 与 PAM 模块 13.6 Linux 主机上的使用者讯息传递 13.7 CentOS 7 环境下大量创建帐号的方法 13.8 重点回顾 13.9 本章习题 13.10 参考资料与延伸阅读 第十四章、磁盘配额(Quota) 与进阶文件系统管理 14.1 磁盘配额 (Quota) 的应用与实作 14.2 软件磁盘阵列 (Software RAID) 14.3 逻辑卷轴管理员 (Logical Volume Manager) 14.4 重点回顾 14.5 本章习题 14.6 参考资料与延伸阅读 鸟哥的 Linux 私房菜:基础学习篇 第四版 517 17.1 17.2 17.3 17.4 17.5 17.6 18 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 19 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 20 20.1 20.2 20.3 20.4 20.5 20.6 20.7 第十五章、例行性工作调度(crontab) 15.1 什么是例行性工作调度 15.2 仅执行一次的工作调度 15.3 循环执行的例行性工作调度 15.4 可唤醒停机期间的工作任务 15.5 重点回顾 15.6 本章习题 第十六章、程序管理与 SELinux 初探 16.1 什么是程序 (process) 16.2 工作管理 (job control) 16.3 程序管理 16.4 特殊文件与程序 16.5 SELinux 初探 16.6 重点回顾 16.7 本章习题 16.8 参考资料与延伸阅读 第十七章、认识系统服务 (daemons) 17.1 什么是 daemon 与服务 (service) 17.2 通过 systemctl 管理服务 17.3 systemctl 针对 service 类型的配置文件 17.4 systemctl 针对 timer 的配置文件 17.5 CentOS 7.x 默认启动的服务简易说明 17.6 重点回顾 17.7 本章习题 17.8 参考资料与延伸阅读 第十八章、认识与分析登录文件 18.1 什么是登录文件 18.2 rsyslog.service :记录登录文件的服务 18.3 登录文件的轮替(logrotate) 18.4 systemd-journald.service 简介 18.5 分析登录文件 18.6 重点回顾 18.7 本章习题 鸟哥的 Linux 私房菜:基础学习篇 第四版 620.8 21 21.1 21.2 21.3 21.4 21.5 21.6 21.7 22 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24 24.1 24.2 24.3 24.4 18.8 参考资料与延伸阅读 第十九章、开机流程、模块管理与 Loader 19.1 Linux 的开机流程分析 19.2 核心与核心模块 19.3 Boot Loader: Grub2 19.4 开机过程的问题解决 19.5 重点回顾 19.6 本章习题 19.7 参考资料与延伸阅读 第二十章、基础系统设置与备份策略 20.1 系统基本设置 20.2 服务器硬件数据的收集 20.3 备份要点 20.4 备份的种类、频率与工具的选择 20.5 鸟哥的备份策略 20.6 灾难复原的考虑 20.7 重点回顾 20.8 本章习题 20.9 参考资料与延伸阅读 第二十一章、软件安装:源代码与 Tarball 20.1 开放源码的软件安装与升级简介 21.2 使用传统程序语言进行编译的简单范例 21.3 用 make 进行宏编译 21.4 Tarball 的管理与建议 21.5 函数库管理 21.6 检验软件正确性 21.7 重点回顾 21.8 本章习题 21.9 参考资料与延伸阅读 第二十二章、软件安装 RPM, SRPM 与 YUM 22.1 软件管理员简介 22.2 RPM 软件管理程序: rpm 22.3 YUM 线上升级机制 22.4 SRPM 的使用 : rpmbuild (Optional) 鸟哥的 Linux 私房菜:基础学习篇 第四版 724.5 24.6 24.7 25 25.1 25.2 25.3 25.4 25.5 25.6 26 26.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 22.5 重点回顾 22.6 本章习题 22.7 参考资料与延伸阅读 第二十三章、X Window 设置介绍 23.1 什么是 X Window System 23.2 X Server 配置文件解析与设置 23.3 显卡驱动程序安装范例 23.4 重点回顾 23.5 本章习题 23.6 参考资料与延伸阅读 第二十四章、Linux 核心编译与管理 24.1 编译前的任务:认识核心与取得核心源代码 24.2 核心编译的前处理与核心功能选择 24.3 核心的编译与安装 24.4 额外(单一) 核心模块编译 24.5 以最新核心版本编译 CentOS 7.x 的核心 24.6 重点回顾 24.7 本章习题 24.8 参考资料与延伸阅读 鸟哥的 Linux 私房菜:基础学习篇 第四版 8鸟哥的Linux私房菜:基础学习篇 第四版 来源:鳥哥的 Linux 私房菜 - 基礎學習篇 鸟哥的 Linux 私房菜:基础学习篇 第四版 鸟哥的Linux私房菜:基础学习篇 第四版 9目录及概述 这本书的所有内容是学习Linux的基础,这些内容是基础中的基础,如果您能将其中的文字都 看完并且消化过,那么未来在管理 Linux主机以及架设网站方面,就能够达到“事半功倍”的成 效,请不要忽略这些内容了!否则,再怎么讨论都是枉然的啦!^_^。 Linux的资料非常的 多,每份资料彼此的相关性都很强,要单独的一项一项讲解并不容易, 那么这本书件该怎么 看呢?建议先按照顺序将内容大致浏览过一次,看不懂的地方也可以先略过不要紧。 全部看 完之后,再从头开始“仔细”的实际操作过一遍,那应该就能够进入Linux的世界啰~ 另外,每个章节下面的日期,指的是重大改版日期而非最新日期,最新日期请以该章节结束 部分的工作日志为主的喔! Linux 的学习曲线,一个老人家的建议! 1. VBird 与 Linu

2017-09-02

Linux多线程编程手册

1 多线程基础介绍 ..........................................................................................................................................15 定义多线程术语 ..........................................................................................................................................15 符合多线程标准 ..........................................................................................................................................16 多线程的益处 ..............................................................................................................................................17 提高应用程序的响应 .........................................................................................................................17 有效使用多处理器 ..............................................................................................................................17 改进程序结构 ......................................................................................................................................17 占用较少的系统资源 .........................................................................................................................17 结合线程和 RPC(远程过程调用) ...............................................................................................18 多线程概念 ...................................................................................................................................................18 并发性和并行性 ..................................................................................................................................18 多线程结构一览 ..................................................................................................................................18 线程调度 ...............................................................................................................................................19 线程取消 ...............................................................................................................................................19 线程同步 ...............................................................................................................................................20 使用 64 位体系结构 ....................................................................................................................................20 2 基本线程编程 ..............................................................................................................................................23 线程库 ............................................................................................................................................................23 创建缺省线程 ......................................................................................................................................23 等待线程终止 ......................................................................................................................................25 简单线程的示例 ..................................................................................................................................26 分离线程 ...............................................................................................................................................28 为线程特定数据创建键 .....................................................................................................................28 删除线程特定数据键 .........................................................................................................................30 设置线程特定数据 ..............................................................................................................................31 3获取线程特定数据 ..............................................................................................................................31 获取线程标识符 ..................................................................................................................................35 比较线程 ID ..........................................................................................................................................36 初始化线程 ...........................................................................................................................................36 停止执行线程 ......................................................................................................................................37 设置线程的优先级 ..............................................................................................................................38 获取线程的优先级 ..............................................................................................................................39 向线程发送信号 ..................................................................................................................................40 访问调用线程的信号掩码 .................................................................................................................41 安全地 Fork ..........................................................................................................................................41 终止线程 ...............................................................................................................................................42 结束 ........................................................................................................................................................42 取消线程 ...............................................................................................................................................43 取消线程 ...............................................................................................................................................44 启用或禁用取消功能 .........................................................................................................................45 设置取消类型 ......................................................................................................................................46 创建取消点 ...........................................................................................................................................46 将处理程序推送到栈上 .....................................................................................................................47 从栈中弹出处理程序 .........................................................................................................................47 3 线程属性 .......................................................................................................................................................49 属性对象 .......................................................................................................................................................49 初始化属性 ...........................................................................................................................................50 销毁属性 ...............................................................................................................................................51 设置分离状态 ......................................................................................................................................52 获取分离状态 ......................................................................................................................................53 设置栈溢出保护区大小 .....................................................................................................................54 获取栈溢出保护区大小 .....................................................................................................................55 设置范围 ...............................................................................................................................................55 获取范围 ...............................................................................................................................................57 设置线程并行级别 ..............................................................................................................................57 获取线程并行级别 ..............................................................................................................................58 设置调度策略 ......................................................................................................................................58 获取调度策略 ......................................................................................................................................59 设置继承的调度策略 .........................................................................................................................60 获取继承的调度策略 .........................................................................................................................61 目录 4 多线程编程指南 • 2006年 10月设置调度参数 ......................................................................................................................................62 获取调度参数 ......................................................................................................................................63 设置栈大小 ...........................................................................................................................................65 获取栈大小 ...........................................................................................................................................66 关于栈 ....................................................................................................................................................67 设置栈地址和大小 ..............................................................................................................................68 获取栈地址和大小 ..............................................................................................................................70 4 用同步对象编程 ..........................................................................................................................................73 互斥锁属性 ...................................................................................................................................................74 初始化互斥锁属性对象 .....................................................................................................................75 销毁互斥锁属性对象 .........................................................................................................................76 设置互斥锁的范围 ..............................................................................................................................76 获取互斥锁的范围 ..............................................................................................................................77 设置互斥锁类型的属性 .....................................................................................................................78 获取互斥锁的类型属性 .....................................................................................................................79 设置互斥锁属性的协议 .....................................................................................................................80 获取互斥锁属性的协议 .....................................................................................................................82 设置互斥锁属性的优先级上限 ........................................................................................................83 获取互斥锁属性的优先级上限 ........................................................................................................84 设置互斥锁的优先级上限 .................................................................................................................84 获取互斥锁的优先级上限 .................................................................................................................85 设置互斥锁的强健属性 .....................................................................................................................86 获取互斥锁的强健属性 .....................................................................................................................88 使用互斥锁 ...................................................................................................................................................89 初始化互斥锁 ......................................................................................................................................89 使互斥保持一致 ..................................................................................................................................90 锁定互斥锁 ...........................................................................................................................................91 解除锁定互斥锁 ..................................................................................................................................93 使用非阻塞互斥锁锁定 .....................................................................................................................94 销毁互斥锁 ...........................................................................................................................................95 互斥锁定的代码示例 .........................................................................................................................96 条件变量属性 ............................................................................................................................................102 初始化条件变量属性 .......................................................................................................................103 删除条件变量属性 ............................................................................................................................103 设置条件变量的范围 .......................................................................................................................104 目录 5获取条件变量的范围 .......................................................................................................................105 使用条件变量 ............................................................................................................................................106 初始化条件变量 ................................................................................................................................106 基于条件变量阻塞 ............................................................................................................................108 解除阻塞一个线程 ............................................................................................................................109 在指定的时间之前阻塞 ................................................................................................................... 111 在指定的时间间隔内阻塞 ............................................................................................................... 113 解除阻塞所有线程 ............................................................................................................................ 114 销毁条件变量状态 ............................................................................................................................ 116 唤醒丢失问题 .................................................................................................................................... 117 生成方和使用者问题 ....................................................................................................................... 117 使用信号进行同步 ....................................................................................................................................121 命名信号和未命名信号 ...................................................................................................................122 计数信号量概述 ................................................................................................................................122 初始化信号 .........................................................................................................................................123 增加信号 .............................................................................................................................................125 基于信号计数进行阻塞 ...................................................................................................................126 减小信号计数 ....................................................................................................................................126 销毁信号状态 ....................................................................................................................................127 使用信号时的生成方和使用者问题 .............................................................................................128 读写锁属性 .................................................................................................................................................130 初始化读写锁属性 ............................................................................................................................131 销毁读写锁属性 ................................................................................................................................131 设置读写锁属性 ................................................................................................................................132 获取读写锁属性 ................................................................................................................................132 使用读写锁 .................................................................................................................................................133 初始化读写锁 ....................................................................................................................................133 获取读写锁中的读锁 .......................................................................................................................134 读取非阻塞读写锁中的锁 ...............................................................................................................135 写入读写锁中的锁 ............................................................................................................................136 写入非阻塞读写锁中的锁 ...............................................................................................................136 解除锁定读写锁 ................................................................................................................................137 销毁读写锁 .........................................................................................................................................137 跨进程边界同步 ........................................................................................................................................138 生成方和使用者问题示例 ...............................................................................................................138 比较元语 .....................................................................................................................................................141 目录 6 多线程编程指南 • 2006年 10月5 使用 Solaris 软件编程 ..............................................................................................................................143 进程创建中的 fork 问题 ...........................................................................................................................143 Fork-One 模型 ....................................................................................................................................144 Fork-all 模型 .......................................................................................................................................147 选择正确的 Fork ................................................................................................................................147 进程创建: exec 和 exit 问题 ................................................................................................................147 计时器、报警与剖析 ...............................................................................................................................148 每 LWP POSIX 计时器 ......................................................................................................................148 每线程报警 .........................................................................................................................................148 剖析多线程程序 ................................................................................................................................149 非本地转向: setjmp 和 longjmp ...........................................................................................................149 资源限制 .....................................................................................................................................................149 LWP和调度类 ............................................................................................................................................149 分时调度 .............................................................................................................................................150 实时调度 .............................................................................................................................................150 公平共享调度程序 ............................................................................................................................151 固定优先级调度 ................................................................................................................................151 扩展传统信号 ............................................................................................................................................151 同步信号 .............................................................................................................................................152 异步信号 .............................................................................................................................................152 延续语义 .............................................................................................................................................152 对信号执行的操作 ............................................................................................................................154 定向于线程的信号 ............................................................................................................................155 完成语义 .............................................................................................................................................157 信号处理程序和异步信号安全 ......................................................................................................158 中断对条件变量的等待 ...................................................................................................................160 I/O 问题 .......................................................................................................................................................161 I/O 作为远程过程调用 .....................................................................................................................161 人为的异步性 ....................................................................................................................................162 异步 I/O ...............................................................................................................................................162 共享的 I/O 和新的 I/O 系统调用 ...................................................................................................163 getc 和 putc 的替代项 ......................................................................................................................164 6 安全和不安全的接口 ...............................................................................................................................165 线程安全 .....................................................................................................................................................165 MT 接口安全级别 .....................................................................................................................................167 目录 7不安全接口的可重复执行函数 ......................................................................................................168 异步信号安全函数 ....................................................................................................................................168 库的 MT 安全级别 ....................................................................................................................................169 不安全库 .............................................................................................................................................169 7 编译和调试 .................................................................................................................................................171 编译多线程应用程序 ...............................................................................................................................171 为编译做准备 ....................................................................................................................................171 选择 Solaris 语义或 POSIX 语义 .....................................................................................................171 包括 <thread.h> 或 <pthread.h> ...................................................................................................172 定义 _REENTRANT 或 _POSIX_C_SOURCE ...........................................................................................173 使用 libthread 或 libpthread 链接 ..............................................................................................173 与 POSIX 信号的 -lrt 链接 .............................................................................................................174 将原有模块与新模块链接 ...............................................................................................................174 备用线程库 .................................................................................................................................................175 调试多线程程序 ........................................................................................................................................175 多线程程序中常见的疏忽性问题 .................................................................................................175 使用 TNF 实用程序跟踪和调试 .....................................................................................................176 使用 truss ...........................................................................................................................................176 使用 mdb ...............................................................................................................................................176 使用 dbx ...............................................................................................................................................177 8 Solaris 线程编程 ........................................................................................................................................179 比较 Solaris 线程和 POSIX 线程的 API .................................................................................................179 API 的主要差异 .................................................................................................................................179 函数比较表 .........................................................................................................................................180 Solaris 线程的独有函数 ...........................................................................................................................183 暂停执行线程 ....................................................................................................................................183 继续执行暂停的线程 .......................................................................................................................185 相似的同步函数-读写锁 ......................................................................................................................186 初始化读写锁 ....................................................................................................................................186 获取读锁 .............................................................................................................................................188 尝试获取读锁 ....................................................................................................................................188 获取写锁 .............................................................................................................................................189 尝试获取写锁 ....................................................................................................................................189 解除锁定读写锁 ................................................................................................................................190 目录 8 多线程编程指南 • 2006年 10月销毁读写锁的状态 ............................................................................................................................191 相似的 Solaris 线程函数 ...........................................................................................................................193 创建线程 .............................................................................................................................................193 获取最小栈大小 ................................................................................................................................195 获取线程标识符 ................................................................................................................................196 停止执行线程 ....................................................................................................................................196 向线程发送信号 ................................................................................................................................197 访问调用线程的信号掩码 ...............................................................................................................197 终止线程 .............................................................................................................................................198 等待线程终止 ....................................................................................................................................198 创建线程特定的数据键 ...................................................................................................................200 设置线程特定的数据值 ...................................................................................................................201 获取线程特定的数据值 ...................................................................................................................201 设置线程的优先级 ............................................................................................................................202 获取线程的优先级 ............................................................................................................................203 相似的同步函数-互斥锁 ......................................................................................................................204 初始化互斥锁 ....................................................................................................................................204 销毁互斥锁 .........................................................................................................................................206 获取互斥锁 .........................................................................................................................................207 释放互斥锁 .........................................................................................................................................207 尝试获取互斥锁 ................................................................................................................................208 相似的同步函数:条件变量 ..................................................................................................................208 初始化条件变量 ................................................................................................................................208 销毁条件变量 ....................................................................................................................................210 等待条件 .............................................................................................................................................210 等待绝对时间 .................................................................................................................................... 211 等待时间间隔 ....................................................................................................................................212 解除阻塞一个线程 ............................................................................................................................213 解除阻塞所有线程 ............................................................................................................................213 相似的同步函数:信号 ...........................................................................................................................214 初始化信号 .........................................................................................................................................214 增加信号 .............................................................................................................................................215 基于信号计数阻塞 ............................................................................................................................216 减小信号计数 ....................................................................................................................................216 销毁信号状态 ....................................................................................................................................217 跨进程边界同步 ........................................................................................................................................218 生成方和使用者问题示例 ...............................................................................................................218 目录 9fork() 和 Solaris 线程的特殊问题 .........................................................................................................220 9 编程原则 .....................................................................................................................................................221 重新考虑全局变量 ....................................................................................................................................221 提供静态局部变量 ....................................................................................................................................222 同步线程 .....................................................................................................................................................223 单线程策略 .........................................................................................................................................224 可重复执行函数 ................................................................................................................................224 避免死锁 .....................................................................................................................................................226 与调用相关的死锁 ............................................................................................................................227 锁定原则 .............................................................................................................................................227 线程代码的一些基本原则 ......................................................................................................................227 创建和使用线程 ........................................................................................................................................228 使用多处理器 ............................................................................................................................................228 基础体系结构 ....................................................................................................................................229 线程程序示例 ............................................................................................................................................233 需要进一步阅读的内容 ...................................................................................................................233 A 样例应用程序:多线程 grep ..................................................................................................................235 tgrep 的说明 ..............................................................................................................................................235 B Solaris 线程示例: barrier.c ................................................................................................................293

2017-09-02

高质量C编程指南

前 言 .......................................................................................................................................6 第 1 章 文件结构....................................................................................................................8 1.1 版权和版本的声明........................................................................................................8 1.2 头文件的结构 ...............................................................................................................8 1.3 定义文件的结构 ...........................................................................................................8 1.4 头文件的作用 ...............................................................................................................8 1.5 目录结构 .......................................................................................................................8 第 2 章 程序的版式 ................................................................................................................8 2.1 空行 ...............................................................................................................................8 2.2 代码行 ...........................................................................................................................8 2.3 代码行内的空格 ...........................................................................................................8 2.4 对齐 ...............................................................................................................................8 2.5 长行拆分 .......................................................................................................................8 2.6 修饰符的位置 ...............................................................................................................8 2.7 注释 ...............................................................................................................................8 2.8 类的版式 .......................................................................................................................8 第 3 章 命名规则....................................................................................................................8 3.1 共性规则 .......................................................................................................................8 3.2 简单的 WINDOWS 应用程序命名规则 .........................................................................8 3.3 简单的 UNIX 应用程序命名规则..................................................................................8 第 4 章 表达式和基本语句 ....................................................................................................8 4.1 运算符的优先级 ...........................................................................................................8 4.2 复合表达式 ...................................................................................................................8 4.3 IF 语句 ...........................................................................................................................8 4.4 循环语句的效率 ...........................................................................................................8 4.5 FOR 语句的循环控制变量 ............................................................................................8 4.6 SWITCH 语句 ..................................................................................................................8 4.7 GOTO 语句......................................................................................................................8 第 5 章 常量............................................................................................................................8 5.1 为什么需要常量 ...........................................................................................................8 5.2 CONST 与 #DEFINE 的比较 ...........................................................................................8 5.3 常量定义规则 ...............................................................................................................8 5.4 类中的常量 ...................................................................................................................8 第 6 章 函数设计 ....................................................................................................................8高质量 C++/C 编程指南, v 1.0 2001 Page 4 of 101 6.1 参数的规则 ...................................................................................................................8 6.2 返回值的规则 ...............................................................................................................8 6.3 函数内部实现的规则....................................................................................................8 6.4 其它建议 .......................................................................................................................8 6.5 使用断言 .......................................................................................................................8 6.6 引用与指针的比较........................................................................................................8 第 7 章 内存管理....................................................................................................................8 7.1 内存分配方式 ................................................................................................................8 7.2 常见的内存错误及其对策.............................................................................................8 7.3 指针与数组的对比 ........................................................................................................8 7.4 指针参数是如何传递内存的? .....................................................................................8 7.5 FREE 和 DELETE 把指针怎么啦? .................................................................................8 7.6 动态内存会被自动释放吗? ........................................................................................8 7.7 杜绝“野指针” ...........................................................................................................8 7.8 有了 MALLOC/FREE 为什么还要 NEW/DELETE ? .......................................................8 7.9 内存耗尽怎么办? ........................................................................................................8 7.10 MALLOC/FREE 的使用要点 .........................................................................................8 7.11 NEW/DELETE 的使用要点 ...........................................................................................8 7.12 一些心得体会 .............................................................................................................8 第 8 章 C++函数的高级特性 .................................................................................................8 8.1 函数重载的概念 ...........................................................................................................8 8.2 成员函数的重载、覆盖与隐藏 ....................................................................................8 8.3 参数的缺省值 ...............................................................................................................8 8.4 运算符重载 ...................................................................................................................8 8.5 函数内联 .......................................................................................................................8 8.6 一些心得体会 ...............................................................................................................8 第 9 章 类的构造函数、析构函数与赋值函数 .....................................................................8 9.1 构造函数与析构函数的起源 ........................................................................................8 9.2 构造函数的初始化表....................................................................................................8 9.3 构造和析构的次序........................................................................................................8 9.4 示例:类 STRING 的构造函数与析构函数 ..................................................................8 9.5 不要轻视拷贝构造函数与赋值函数 ............................................................................8 9.6 示例:类 STRING 的拷贝构造函数与赋值函数 ..........................................................8 9.7 偷懒的办法处理拷贝构造函数与赋值函数.................................................................8 9.8 如何在派生类中实现类的基本函数 ............................................................................8 9.9 一些心得体会 ...............................................................................................................8 第 10 章 类的继承与组合 ......................................................................................................8高质量 C++/C 编程指南, v 1.0 2001 Page 5 of 101 10.1 继承 .............................................................................................................................8 10.2 组合 .............................................................................................................................8 第 11 章 其它编程经验 ..........................................................................................................8 11.1 使用 CONST 提高函数的健壮性..................................................................................8 11.2 提高程序的效率 ..........................................................................................................8 11.3 一些有益的建议 ..........................................................................................................8 参考文献 .................................................................................................................................8 附录 A : C++/C 代码审查表 ................................................................................................8 附录 B : C++/C 试题 ............................................................................................................8 附录 C : C++/C 试题的答案与评分标准

2017-09-02

Linux_C编程一站式学习_最新版.pdf

目录 历史 前言 I. C语言入门 1. 程序的基本概念 11. 程序和编程语言 2. 自然语言和形式语言 3. 程序的调试 4. 第一个程序 2. 常量、变量和表达式 1. 继续Hello World 2. 常量 3. 变量 4. 赋值 5. 表达式 6. 字符类型与字符编码 3. 简单函数 1. 数学函数 2. 自定义函数 3. 形参和实参 4. 全局变量、局部变量和作用域 4. 分支语句 1. if语句 2. if/else语句 3. 布尔代数 4. switch语句 5. 深入理解函数 1. return语句 2. 增量式开发 3. 递归 6. 循环语句 1. while语句 2. do/while语句 3. for语句 4. break和continue语句 5. 嵌套循环 6. goto语句和标号 7. 结构体 1. 复合类型与结构体 2. 数据抽象 3. 数据类型标志 4. 嵌套结构体 8. 数组 21. 数组的基本概念 2. 数组应用实例:统计随机数 3. 数组应用实例:直方图 4. 字符串 5. 多维数组 9. 编码风格 1. 缩进和空白 2. 注释 3. 标识符命名 4. 函数 5. indent工具 10. gdb 1. 单步执行和跟踪函数调用 2. 断点 3. 观察点 4. 段错误 11. 排序与查找 1. 算法的概念 2. 插入排序 3. 算法的时间复杂度分析 4. 归并排序 5. 线性查找 6. 折半查找 12. 栈与队列 1. 数据结构的概念 2. 堆栈 3. 深度优先搜索 4. 队列与广度优先搜索 5. 环形队列 13. 本阶段总结 II. C语言本质 14. 计算机中数的表示 1. 为什么计算机用二进制计数 2. 不同进制之间的换算 3. 整数的加减运算 3.1. Sign and Magnitude表示法 3.2. 1's Complement表示法 33.3. 2's Complement表示法 3.4. 有符号数和无符号数 4. 浮点数 15. 数据类型详解 1. 整型 2. 浮点型 3. 类型转换 3.1. Integer Promotion 3.2. Usual Arithmetic Conversion 3.3. 由赋值产生的类型转换 3.4. 强制类型转换 3.5. 编译器如何处理类型转换 16. 运算符详解 1. 位运算 1.1. 按位与、或、异或、取反运算 1.2. 移位运算 1.3. 掩码 1.4. 异或运算的一些特性 2. 其它运算符 2.1. 复合赋值运算符 2.2. 条件运算符 2.3. 逗号运算符 2.4. sizeof运算符与typedef类型声明 3. Side Effect与Sequence Point 4. 运算符总结 17. 计算机体系结构基础 1. 内存与地址 2. CPU 3. 设备 4. MMU 5. Memory Hierarchy 18. x86汇编程序基础 1. 最简单的汇编程序 2. x86的寄存器 3. 第二个汇编程序 4. 寻址方式 5. ELF文件 45.1. 目标文件 5.2. 可执行文件 19. 汇编与C之间的关系 1. 函数调用 2. main函数和启动例程 3. 变量的存储布局 4. 结构体和联合体 5. C内联汇编 6. volatile限定符 20. 链接详解 1. 多目标文件的链接 2. 定义和声明 2.1. extern和static关键字 2.2. 头文件 2.3. 定义和声明的详细规则 3. 静态库 4. 共享库 4.1. 编译、链接、运行 4.2. 动态链接的过程 4.3. 共享库的命名惯例 5. 虚拟内存管理 21. 预处理 1. 预处理的步骤 2. 宏定义 2.1. 函数式宏定义 2.2. 内联函数 2.3. #、 ##运算符和可变参数 2.4. 宏展开的步骤 3. 条件预处理指示 4. 其它预处理特性 22. Makefile基础 1. 基本规则 2. 隐含规则和模式规则 3. 变量 4. 自动处理头文件的依赖关系 5. 常用的make命令行选项 523. 指针 1. 指针的基本概念 2. 指针类型的参数和返回值 3. 指针与数组 4. 指针与const限定符 5. 指针与结构体 6. 指向指针的指针与指针数组 7. 指向数组的指针与多维数组 8. 函数类型和函数指针类型 9. 不完全类型和复杂声明 24. 函数接口 1. 本章的预备知识 1.1. strcpy与strncpy 1.2. malloc与free 2. 传入参数与传出参数 3. 两层指针的参数 4. 返回值是指针的情况 5. 回调函数 6. 可变参数 25. C标准库 1. 字符串操作函数 1.1. 初始化字符串 1.2. 取字符串的长度 1.3. 拷贝字符串 1.4. 连接字符串 1.5. 比较字符串 1.6. 搜索字符串 1.7. 分割字符串 2. 标准I/O库函数 2.1. 文件的基本概念 2.2. fopen/fclose 2.3. stdin/stdout/stderr 2.4. errno与perror函数 2.5. 以字节为单位的I/O函数 2.6. 操作读写位置的函数 2.7. 以字符串为单位的I/O函数 2.8. 以记录为单位的I/O函数 2.9. 格式化I/O函数 2.10. C标准库的I/O缓冲区 2.11. 本节综合练习 63. 数值字符串转换函数 4. 分配内存的函数 26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的基本概念 2.2. 排序二叉树 3. 哈希表 27. 本阶段总结 III. Linux系统编程 28. 文件与I/O 1. 汇编程序的Hello world 2. C标准I/O库函数与Unbuffered I/O函数 3. open/close 4. read/write 5. lseek 6. fcntl 7. ioctl 8. mmap 29. 文件系统 1. 引言 2. ext2文件系统 2.1. 总体存储布局 2.2. 实例剖析 2.3. 数据块寻址 2.4. 文件和目录操作的系统函数 3. VFS 3.1. 内核数据结构 3.2. dup和dup2函数 30. 进程 1. 引言 72. 环境变量 3. 进程控制 3.1. fork函数 3.2. exec函数 3.3. wait和waitpid函数 4. 进程间通信 4.1. 管道 4.2. 其它IPC机制 5. 练习:实现简单的Shell 31. Shell脚本 1. Shell的历史 2. Shell如何执行命令 2.1. 执行交互式命令 2.2. 执行脚本 3. Shell的基本语法 3.1. 变量 3.2. 文件名代换(Globbing): * ? [] 3.3. 命令代换: `或 $() 3.4. 算术代换: $(()) 3.5. 转义字符\ 3.6. 单引号 3.7. 双引号 4. bash启动脚本 4.1. 作为交互登录Shell启动,或者使用--login参数启动 4.2. 以交互非登录Shell启动 4.3. 非交互启动 4.4. 以sh命令启动 5. Shell脚本语法 5.1. 条件测试: test [ 5.2. if/then/elif/else/fi 5.3. case/esac 5.4. for/do/done 5.5. while/do/done 5.6. 位置参数和特殊变量 5.7. 函数 6. Shell脚本的调试方法 832. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式 33. 信号 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 2.3. 由软件条件产生信号 3. 阻塞信号 3.1. 信号在内核中的表示 3.2. 信号集操作函数 3.3. sigprocmask 3.4. sigpending 4. 捕捉信号 4.1. 内核如何实现信号的捕捉 4.2. sigaction 4.3. pause 4.4. 可重入函数 4.5. sig_atomic_t类型与volatile限定符 4.6. 竞态条件与sigsuspend函数 4.7. 关于SIGCHLD信号 34. 终端、作业控制与守护进程 1. 终端 1.1. 终端的基本概念 1.2. 终端登录过程 1.3. 网络登录过程 2. 作业控制 2.1. Session与进程组 2.2. 与作业控制有关的信号 3. 守护进程 35. 线程 1. 线程的概念 92. 线程控制 2.1. 创建线程 2.2. 终止线程 3. 线程间同步 3.1. mutex 3.2. Condition Variable 3.3. Semaphore 3.4. 其它线程间同步机制 4. 编程练习 36. TCP/IP协议基础 1. TCP/IP协议栈与数据包封装 2. 以太网(RFC 894)帧格式 3. ARP数据报格式 4. IP数据报格式 5. IP地址与路由 6. UDP段格式 7. TCP协议 7.1. 段格式 7.2. 通讯时序 7.3. 流量控制 37. socket编程 1. 预备知识 1.1. 网络字节序 1.2. socket地址的数据类型及相关函数 2. 基于TCP协议的网络程序 2.1. 最简单的TCP网络程序 2.2. 错误处理与读写控制 2.3. 把client改为交互式输入 2.4. 使用fork并发处理多个client的请求 2.5. setsockopt 2.6. 使用select 3. 基于UDP协议的网络程序 4. UNIX Domain Socket IPC 5. 练习:实现简单的Web服务器 5.1. 基本HTTP协议 5.2. 执行CGI程序

2017-08-26

[汇编语言].冯康.扫描版

2016-12-27

Shell脚本学习指南

2016-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除