自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nuptxiaoli

走走停停

  • 博客(543)
  • 资源 (14)
  • 收藏
  • 关注

原创 C++ 带优先级的异步队列的工作线程

【代码】Cpp工作线程。

2023-05-26 10:15:12 195

原创 hibernate HQL 投影查询 + 多表关联

hibernate HQL 投影查询 + 多表关联

2022-10-21 18:10:13 565

原创 Eclipse中使用jstl标签库

Eclipse中使用jstl标签库

2022-07-11 11:45:05 1021

原创 IM TeamTalk流程分析

登陆流程:1.用户名密码校验30分钟内密码错误次数,hash_map<string, list<uint32_t> > g_hmLimits;用list保存每次错误的时间,每次触发登陆的时候将超过30分钟的给剔除。 判断30分钟内密码错误次数是否大于10,返回。抽象接口class CLoginStrategy{public: virtual bool doLogin(const std::string& strName, const std::st...

2022-05-31 17:56:30 258

原创 LeetCode 208 Trie

class Trie {public: /** Initialize your data structure here. */ struct NODE { char l; bool wordFinish; struct NODE* next[26]; }; struct NODE* root; Trie() { root = new struct NODE(); } /** Inserts a word into the trie. */ void insert(s.

2022-05-04 15:41:46 241

转载 非抢占式优先级调度算法

Priority schedulingis a type of scheduling algorithm used by the operating system to schedule the processes for execution. Thepriority schedulinghas both the preemptive mode of scheduling and the non-preemptive mode of scheduling. Here,we will discuss ...

2022-01-12 09:51:13 12291 2

原创 MySQL练习Monthly

use mysql;drop table if EXISTS Student;create table Student(Sid varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');.

2021-08-22 11:07:19 115

转载 zookeeper kafka

zookeeper环境搭建https://www.cnblogs.com/ysocean/p/9860529.html

2021-08-09 15:44:11 119

转载 网站技术实践

https://www.cnblogs.com/edisonchou/p/4281978.html

2021-08-06 11:31:48 75

转载 优先级反转问题及解决方法

(1)什么是优先级反转简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?假设三个任务准备执行,A,B,C,优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;第三:执行过程中需要使用资源,而这个资源又被等待中的C占有的,于是A进入阻塞状态,C回到运行状态;第四:此时B进入就绪状态,因为优先级比C高,

2021-07-20 21:45:35 2113 1

转载 线程的查看以及利用gdb调试多线程

https://blog.csdn.net/zhangye3017/article/details/80382496

2021-07-07 16:01:47 143

转载 LVS+KeepAlived+Nginx高可用实现方案

https://lupengfei.blog.csdn.net/article/details/86514445?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComme

2021-07-06 15:47:56 96

转载 haproxy+keepalived高可用负载均衡构建。

haproxy是一个开源的,高性能的,负载均衡软件,借助haproxy可以快速,可靠的构建一个负载均衡群集。优点如下:可靠性和稳定性非常好,可以和硬件级的负载均衡设备F5相媲美。最高可同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个。支持8种负载均衡算法,支持回话保持。支持虚拟主机功能。支持连接拒绝,全透明代理并且有一个功能强大的服务器状态监控界面。拥有功能强大的ACL支持。haproxy真的很强大。这里不对他的功能一样一样展示,读者可自行去

2021-07-06 11:05:52 156

转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案1 :接口层增加校验,如用户鉴权校验,id做基础校验,id<=...

2021-07-01 10:45:46 114

原创 c++ 异步消息队列

#include <stdio.h>#include <pthread.h>struct msg { int data; struct msg* next_msg;};struct msg * workq;pthread_mutex_t qlock = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t qready = PTHREAD_COND_INITIALIZER;void init_queue(void){ pt.

2021-06-30 10:29:54 864

原创 容易忘记的快捷操作

1.Vim 打开文件同时定位到某一行vi +44 conf/nginx.conf

2021-06-25 23:31:06 78

原创 nginx如何解决惊群效应

https://www.jianshu.com/p/21c3e5b99f4ahttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpphttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpp

2021-06-25 11:29:33 115

原创 linux 自旋锁 vs 互斥锁

自旋锁占用的资源比较少,互斥锁占用的资源比较多如果阻塞的时间较短,则使用自旋锁比较好,否则,使用互斥锁,线程想要加锁的锁被占用,自旋锁则不停地等待询问锁是否被释放,互斥锁则加入等待队列,等待锁被释放。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <unistd.h>#include <tim...

2021-06-25 11:16:19 302

原创 nginx 基础结构

1.sudovi /etc/default/grub找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"然后sudo grub-mkconfig -o /boot/grub/grub.cfg重启后,网卡名称果然变成了eth0和wlan0作者:流沙链接:https://www.zhihu.com/question/45796677/answer/116994126...

2021-06-20 22:39:50 87

原创 nginx 网络连接

#0 ngx_event_accept (ev=0xe49230) at src/event/ngx_event_accept.c:62#1 0x0000000000425b4e in ngx_epoll_process_events (cycle=0xe2a4e0, timer=<optimized out>, flags=<optimized out>) at src/event/modules/ngx_epoll_module.c:827#2 0x0000000...

2021-06-17 17:57:04 412

原创 nginx 配置文件常见问题汇总

问题1;

2021-06-15 23:07:11 126

原创 MySQL 聚集索引 辅助索引 覆盖索引

create table test_order( id int auto_increment primary key, user_id int, order_id int, order_status tinyint, create_date datetime);drop index idx_userid_order_id_createdate on test_order ;create index idx_userid_order_id_createdate.

2021-06-14 22:12:00 148

原创 redis 网络连接

1

2021-06-09 10:25:10 109

原创 MYSQL 触发器

触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表 事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比 如当对一个表进行DML操作( insert , delete , update )时就会激活它执行。...

2021-06-06 20:21:05 89

原创 fmod 变频变声

#include <stdlib.h>#include <unistd.h>#include <iostream>#include "fmod.h"#include "fmod.hpp"using namespace std;using namespace FMOD;static const int EFFECTS_NORMAL = 0; // 原声static const int EFFECTS_LUOLI = 1; // 萝莉static co.

2021-05-18 19:32:36 627

转载 X86-64寄存器和栈帧

概要说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64;正是由于能向后兼容,AMD公司打了一场漂亮翻身战。导致Intel不得不转而生产兼容AMD64的CPU。这是IT行业以弱胜强的经典战役。不过,大家为了名称延续性,更习惯称这种系统结构为x86-64X86-64在向后兼容的同时,更主要的是注入了全新的特性,特别的:x86-64有两种工作模式,32位OS既可以跑在传统模式中,把CPU当成i386来用;又可...

2021-05-07 15:22:48 1144

原创 网络编程从0到放弃再到入坑

1.Cannot assign requested address解决办法“Cannot assign requested address.”是由于linux分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放,而是处于TIME_WAIT状态,默认等待60s后才释放。可能解决方法1--调低time_wait状态端口等待时间:1. 调低端口释放后的等待时间,默认为60s,修改为15~30ssysctl -w net.ipv4.tcp_fin_

2021-03-13 17:06:19 82

转载 epoll内核源码详解

作者:赛罗奥特曼~链接:https://www.nowcoder.com/discuss/26226?type=0&order=0&pos=27&page=1来源:牛客网/* * fs/eventpoll.c (Efficient event retrieval implementation) * Copyright (C) 2001,...,2009 Davide Libenzi * * This program is free software; you

2021-03-04 15:51:15 224 1

转载 网络编程几个IP地址【本机IP地址】、【 127.0.0.1】 和【 0.0.0.0 】的区别

概述 总体来讲,127.0.0.1是本机的环回地址,0.0.0.0代表本机上任何IP地址。下面分别详细讲解。 环回地址 127.0.0.1 严格来说127.0.0.1只是环回地址之一。所有127.x.x.x都是环回地址。从127.0.0.0 到 127.255.255.255 均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。 环回地址:所有发往该类地址的数据包都应该被 loop back。正常的网络包从IP层进入数据链路层,然后发送到网络上, 而发

2021-02-22 14:03:39 457

原创 分布式锁知识点整理

缓存数据库(相对于mysql),数据结构数据库,kv数据库(hash实现),热点数据(经常要访问的数据),如果都放在mysql中,会给mysql数据库带来很大的压力。no-sql就是为了提高查询速度。按照请求命令来执行命令为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。分布式锁的特点:高可用的获取锁和释放锁高性能的获取锁和释放锁具备可重入特性(可理解为重新进...

2021-02-21 23:26:17 129

原创 ext2文件系统,未完待续

ext2_inode结构的定义如下:/* * Structure of an inode on the disk */struct ext2_inode { __le16 i_mode; /* File mode */ __le16 i_uid; /* Low 16 bits of Owner Uid */ __le32 i_size; /* Size in bytes */ __le32 i_atime; /* Access time */ __le32 i_ctime; /.

2021-02-17 22:33:30 116

原创 网络基础知识

wireshark过滤MAC地址/物理地址eth.addr== 80:f6:2e:ce:3f:00 //过滤目标或源地址是80:f6:2e:ce:3f:00的数据包eth.src== 80:f6:2e:ce:3f:00 //过滤源地址是80:f6:2e:ce:3f:00的数据包eth.dst== 80:f6:2e:ce:3f:00 //过滤目标地址是80:f6:2e:ce:3f:00的数据包ARP协议:ARP Request到达本网段中的所有设备上,因为目的为FF:FF:..

2021-01-28 20:58:46 139

原创 nginx handler模块

1.location一致2.ngx_module_tmodule名字要一致config文件:ngx_addon_name=nginx_test_mp_moduleHTTP_MODULES="$HTTP_MODULES nginx_test_mp_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/nginx_test_memory_module.c"sourcecode:#include <ngx_http..

2021-01-28 14:31:17 236

原创 C++ Singleton单例模式

Version6:#include <iostream>using namespace std;template<class T>class Singleton{private:public: static T& GetInstance() { static T instance; return instance; }protected: Singleton(){ cout << "Singeton" << end

2021-01-25 11:15:14 168 1

原创 备份知识点

C++11 thread 向线程传递参数需要注意的是,默认的会将传递的参数以拷贝的方式复制到线程空间,即使参数的类型是引用。void func1(_tagNode &node){ printf("%p\n", &node); node.a = 10; node.b = 20;}void f(){ _tagNode node; node.a = 100; node.b = 200; printf("%p\n", &node); thread t(f

2021-01-24 23:35:52 105 1

原创 算法-红黑树, B树(未完待续)

红黑树的性质:1.每个节点是红的或者是黑的(废话)2.根节点是黑的3.每个叶子节点是黑的4.红色节点的两个儿子节点是黑色的5.每个结点到他的子孙节点上所有的路径包含相同数目的黑结点。...

2021-01-11 11:03:27 59

原创 research libcurl 01

/*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * .

2021-01-09 21:24:13 88

原创 c++11 thread

线程启动两种方式:#include <thread>#include <iostream>using namespace std;class Base{public: void run() { cout << "run()\n"; }};void cb(){ cout << "cb()\n";}int main(){ Base b; thread t0 = thread(&Base::run, &amp.

2021-01-06 17:18:13 125 1

原创 libevent demo

tcp_server.c#include<event2/listener.h>#include<event2/bufferevent.h>#include<event2/buffer.h>#include<ctype.h>#include<arpa/inet.h>#include<string.h>#include<strings.h>#include<stdlib.h>#include&l

2020-12-25 14:05:46 200

转载 Turn Client 和 Server交互简单流程

文章目录1简介 2 报文结构 2.1 Message Header 2.1.1 头部2bits 2.1.2 Stun Message Type 2.1.3 Message Length 2.1.4 Magic Cookie 2.1.5 Transaction ID (96bits) 2.2 Stun Attributes 2.2.1 Type 2.2.2 Length 2.2.3 Value 2.2.3.1 MAPP

2020-11-28 21:08:17 663

nginx-1.16.1.tar.gz openssl-1.1.0g.tar.gz pcre-8.41.tar.gz zlib-1.2.11.tar.gz

nginx 安装包

2021-06-25

jdk 1.8 API

jdk api 1.8 中文版

2017-03-18

libjingle学习笔记

libjingle中的重要概念 关于libjingle你应当理解下面的重要概念: Signals Threads and Messages Naming Conventions SSL Support Connections Transports, Channels, and Connections Candidates Data Packets

2017-01-03

MySQL5中文参考手册

MySQL5中文参考手册

2016-11-02

servlet及其source的jar

servlet及其source的jar

2016-10-30

Ubuntu搜狗输入法安装程序

Ubuntu搜狗输入法安装程序

2016-10-29

RPM for Oracle11g

unixODBC-devel-2.2.14-12.el6_3.i686.rpm gcc-c++-4.4.5-6.el6.i686.rpm libaio-devel-0.3.107-10.el6.i686.rpm libstdc++-4.4.5-6.el6.i686.rpm

2016-10-05

w3cschool全面教程

w3cschool全面教程: 领先的 Web 技术教程:HTML

2015-10-22

mysql-connector-java-5.0.8-bin.jar

mysql-connector-java-5.0.8-bin.jar

2015-10-12

Java编程思想第四版完整中文高清版

第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换对象 1.8 单根继承结构 1.9 容器 1.9.1 参数化类型(范型) 1.10 对象的创建和生命期 1.11 异常处理:处理错误 1.12 并发编程 1.13 Java与Internet 1.13.1 Web是什么 1.13.2客户端编程 1.13.3 服务器端编程 1.22 总结 第2章 一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 2.4.1 域和方法 2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个Java程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 注释文档 2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 类型转换操作符 3.15.1 截尾和舍入 3.15.2提升 3.16 Java没有“sizeof” 3.17 操作符小结 3.18 总结 第4章 控制执行流程 4.1 true和false 4.2 if-else 4.3 迭代 4.3.1 do-while 4.3.2 for 4.3.3 逗号操作符 4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以返回值区分重载方法 5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 成员初始化 5.6.1 指定初始化 5.7 构造器初始化 5.7.1 初始化顺序 5.7.2. 静态数据的初始化 5.7.3. 显式的静态初始化 5.7.4. 非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O系统 第19章 枚举类型 第20章 注解 第21章 并发 第22章 图形化用户界面

2015-06-03

Python基础教程(第2版)

Python基础教程(第2版) 中文版文档

2015-05-10

Beginning.Python.From.Novice.to.Professional,2nd.Edition

Beginning.Python.From.Novice.to.Professional,2nd.Edition

2015-05-10

Linux命令大全

Linux命令大全 包含所有的linux 命令

2015-05-03

UNIX环境高级编程(第二版中文)

UNIX环境高级编程 第1章 UNIX基础知识 1 1.1 引言 1 1.2 UNIX体系结构 1 1.3 登录 1 1.4 文件和目录 3 1.5 输入和输出 6 1.6 程序和进程 8 1.7 出错处理 10 1.8 用户标识 12 1.9 信号 14 1.10 时间值 15 1.11 系统调用和库函数 16 1.12 小结 17 习题 18 第2章 UNIX标准化及实现 19 2.1 引言 19 2.2 UNIX标准化 19 2.2.1 ISO C 19 2.2.2 IEEE POSIX 20 2.2.3 Single UNIX Specification 25 2.2.4 FIPS 26 2.3 UNIX系统实现 26 2.3.1 SVR4 26 2.3.2 4.4BSD 27 2.3.3 FreeBSD 27 2.3.4 Linux 27 2.3.5 Mac OS X 28 2.3.6 Solaris 28 2.3.7 其他UNIX系统 28 2.4 标准和实现的关系 28 2.5 限制 29 2.5.1 ISO C限制 29 2.5.2 POSIX限制 30 2.5.3 XSI限制 32 2.5.4 sysconf、pathconf和fpathconf函数 32 2.5.5 不确定的运行时限制 38 2.6 选项 42 2.7 功能测试宏 44 2.8 基本系统数据类型 45 2.9 标准之间的冲突 45 2.10 小结 46 习题 46 第3章 文件I/O 47 3.1 引言 47 3.2 文件描述符 47 3.3 open函数 48 3.4 creat函数 49 3.5 close函数 50 3.6 lseek函数 50 3.7 read函数 53 3.8 write函数 54 3.9 I/O的效率 54 3.10 文件共享 56 3.11 原子操作 59 3.12 dup和dup2函数 60 3.13 sync、fsync和fdatasync函数 61 3.14 fcntl函数 62 3.15 ioctl函数 66 3.16 /dev/fd 67 3.17 小结 68 习题 68 第4章 文件和目录 71 4.1 引言 71 4.2 stat、fstat和lstat函数 71 4.3 文件类型 72 4.4 设置用户ID和设置组ID 74 4.5 文件访问权限 75 4.6 新文件和目录的所有权 77 4.7 access函数 77 4.8 umask函数 79 4.9 chmod和fchmod函数 81 4.10 粘住位 83 4.11 chown、fchown和lchown函数 84 4.12 文件长度 85 4.13 文件截短 86 4.14 文件系统 86 4.15 link、unlink、remove和rename函数 89 4.16 符号链接 91 4.17 symlink和readlink函数 94 4.18 文件的时间 94 4.19 utime函数 95 4.20 mkdir和rmdir函数 97 4.21 读目录 98 4.22 chdir、fchdir和getcwd函数 102 4.23 设备特殊文件 104 4.24 文件访问权限位小结 106 4.25 小结 106 习题 107 第5章 标准I/O库 109 5.1 引言 109 5.2 流和FILE对象 109 5.3 标准输入、标准输出和标准出错 110 5.4 缓冲 110 5.5 打开流 112 5.6 读和写流 114 5.7 每次一行I/O 116 5.8 标准I/O的效率 117 5.9 二进制I/O 119 5.10 定位流 120 5.11 格式化I/O 121 5.12 实现细节 125 5.13 临时文件 127 5.14 标准I/O的替代软件 130 5.15 小结 130 习题 130 第6章 系统数据文件和信息 133 6.1 引言 133 6.2 口令文件 133 6.3 阴影口令 136 6.4 组文件 137 6.5 附加组ID 138 6.6 实现的区别 139 6.7 其他数据文件 139 6.8 登录账户记录 140 6.9 系统标识 141 6.10 时间和日期例程 142 6.11 小结 146 习题 146 第7章 进程环境 147 7.1 引言 147 7.2 main函数 147 7.3 进程终止 147 7.4 命令行参数 151 7.5 环境表 152 7.6 C程序的存储空间布局 152 7.7 共享库 154 7.8 存储器分配 154 7.9 环境变量 157 7.10 setjmp和longjmp函数 159 7.11 getrlimit和setrlimit函数 164 7.12 小结 168 习题 168 第8章 进程控制 171 8.1 引言 171 8.2 进程标识符 171 8.3 fork函数 172 8.4 vfork函数 176 8.5 exit函数 178 8.6 wait和waitpid函数 179 8.7 waitid函数 183 8.8 wait3和wait4函数 184 8.9 竞争条件 185 8.10 exec函数 188 8.11 更改用户ID和组ID 192 8.12 解释器文件 196 8.13 system函数 200 8.14 进程会计 203 8.15 用户标识 208 8.16 进程时间 208 8.17 小结 210 习题 211 第9章 进程关系 213 9.1 引言 213 9.2 终端登录 213 9.3 网络登录 216 9.4 进程组 218 9.5 会话 219 9.6 控制终端 220 9.7 tcgetpgrp、tcsetpgrp和tcgetsid函数 221 9.8 作业控制 222 9.9 shell执行程序 225 9.10 孤儿进程组 228 9.11 FreeBSD实现 230 9.12 小结 231 习题 232 第10章 信号 233 10.1 引言 233 10.2 信号概念 233 10.3 signal函数 240 10.4 不可靠的信号 242 10.5 中断的系统调用 244 10.6 可重入函数 246 10.7 SIGCLD语义 248 10.8 可靠信号术语和语义 250 10.9 kill和raise函数 251 10.10 alarm和pause函数 252 10.11 信号集 256 10.12 sigprocmask函数 258 10.13 sigpending函数 259 10.14 sigaction函数 261 10.15 sigsetjmp和siglongjmp函数 266 10.16 sigsuspend函数 268 10.17 abort函数 274 10.18 system函数 276 10.19 sleep函数 280 10.20 作业控制信号 282 10.21 其他特征 284 10.22 小结 285 习题 285 第11章 线程 287 11.1 引言 287 11.2 线程概念 287 11.3 线程标识 288 11.4 线程的创建 288 11.5 线程终止 291 11.6 线程同步 297 11.7 小结 311 习题 311 第12章 线程控制 313 12.1 引言 313 12.2 线程限制 313 12.3 线程属性 314 12.4 同步属性 318 12.5 重入 324 12.6 线程私有数据 328 12.7 取消选项 331 12.8 线程和信号 333 12.9 线程和fork 336 12.10 线程和I/O 339 12.11 小结 340 习题 340 第13章 守护进程 341 13.1 引言 341 13.2 守护进程的特征 341 13.3 编程规则 342 13.4 出错记录 345 13.5 单实例守护进程 348 13.6 守护进程的惯例 350 13.7 客户进程-服务器进程模型 354 13.8 小结 354 习题 354 第14章 高级I/O 355 14.1 引言 355 14.2 非阻塞I/O 355 14.3 记录锁 357 14.4 STREAMS 370 14.5 I/O多路转接 379 14.5.1 select和pselect函数 381 14.5.2 poll函数 384 14.6 异步I/O 386 14.6.1 系统V异步I/O 386 14.6.2 BSD异步I/O 387 14.7 readv和writev函数 387 14.8 readn和writen函数 389 14.9 存储映射I/O 390 14.10 小结 395 习题 396 第15章 进程间通信 397 15.1 引言 397 15.2 管道 398 15.3 popen和pclose函数 403 15.4 协同进程 408 15.5 FIFO 412 15.6 XSI IPC 415 15.6.1 标识符和键 415 15.6.2 权限结构 416 15.6.3 结构限制 417 15.6.4 优点和缺点 417 15.7 消息队列 418 15.8 信号量 422 15.9 共享存储 427 15.10 客户进程-服务器进程属性 432 15.11 小结 434 习题 434 第16章 网络IPC:套接字 437 16.1 引言 437 16.2 套接字描述符 437 16.3 寻址 439 16.3.1 字节序 440 16.3.2 地址格式 441 16.3.3 地址查询 442 16.3.4 将套接字与地址绑定 449 16.4 建立连接 450 16.5 数据传输 452 16.6 套接字选项 464 16.7 带外数据 466 16.8 非阻塞和异步I/O 467 16.9 小结 468 习题 468 第17章 高级进程间通信 469 17.1 引言 469 17.2 基于STREAMS的管道 469 17.2.1 命名的STREAMS管道 472 17.2.2 唯一连接 473 17.3 UNIX域套接字 476 17.3.1 命名UNIX域套接字 477 17.3.2 唯一连接 478 17.4 传送文件描述符 482 17.4.1 经由基于STREAMS的管道传送文件描述符 484 17.4.2 经由UNIX域套接字传送文件描述符 486 17.5 open服务器版本1 493 17.6 open服务器版本2 498 17.7 小结 505 习题 505 第18章 终端I/O 507 18.1 引言 507 18.2 综述 507 18.3 特殊输入字符 512 18.4 获得和设置终端属性 516 18.5 终端选项标志 516 18.6 stty命令 522 18.7 波特率函数 523 18.8 行控制函数 524 18.9 终端标识 524 18.10 规范模式 529 18.11 非规范模式 532 18.12 终端的窗口大小 537 18.13 termcap,terminfo和curses 539 18.14 小结 540 习题 540 第19章 伪终端 541 19.1 引言 541 19.2 概述 541 19.3 打开伪终端设备 544 19.3.1 基于STREAMS的伪终端 547 19.3.2 基于BSD的伪终端 549 19.3.3 基于Linux的伪终端 551 19.4 pty_fork函数 553 19.5 pty程序 555 19.6 使用pty程序 559 19.7 高级特性 564 19.8 小结 565 习题 565 第20章 数据库函数库 567 20.1 引言 567 20.2 历史 567 20.3 函数库 568 20.4 实现概述 569 20.5 集中式或非集中式 572 20.6 并发 574 20.7 构造函数库 574 20.8 源代码 575 20.9 性能 598 20.10 小结 600 习题 601 第21章 与网络打印机通信 603 21.1 引言 603 21.2 网络打印协议 603 21.3 超文本传输协议 605 21.4 打印假脱机技术 605 21.5 源代码 607 21.6 小结 644 习题 645 附录A 函数原型 647 附录B 其他源代码 677 附录C 部分习题答案 685 参考书目 709 索引 715

2015-04-16

空空如也

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

TA关注的人

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