摘要:
管道是UNIX系统IPC的最古老形式,所有UNIX系统都提供此种通信机制。管道有以下两种局限性: (1)历史上,管道是半双工的(即数据只能在一个方向上流动)。 (2)管道只能在具有公共先祖的两个进程之间使用。通常,一个管道有一个进程创建,在进程调用fork之后,这个管道就能在父子进程间使用。 管道的 阅读全文
摘要:
最近刚开始啃Unix网络编程(卷1:套接字联网API),为加深TCP连接的建立和终止的理解与记忆,记下本文,方便以后翻看。 同时留下的还有简单的Socket(TCP)类: mySocket.h 1 #pragma once 2 3 #include <unistd.h> 4 #include <sy 阅读全文
摘要:
之前在VMware中安装Mac虚拟机时,硬盘选的是默认的40G,后来用的过程中随着软件的安装,特别是安装完Xcode和QT5.9之后,可用空间只剩不到3G,每次开机之后都会提醒空间不足,需要清理空间,特别烦人,就琢磨着给虚拟机扩个容。 VMware版本为12.6。 扩容过程很简单,分两步: 1、虚拟 阅读全文
摘要:
多线程计数,每个线程累加10个数。 实现: 阅读全文
摘要:
应用层协议:Telnet、FTP、e-mail等 传输层协议:TCP、UDP、STCP等 网络层协议:IP、ICMP、IGMP等 链路层协议:设备驱动及接口卡 阅读全文
摘要:
二叉树是一种特殊的树结构:每个节点最多有两个子节点。 二叉树的性质: (1)二叉树第i层的节点数目最多为 2{i-1} (i≥1)。 (2)深度为k的二叉树至多有2{k}-1个结点(k≥1)。 (3)包含n个结点的二叉树的高度至少为log2 (n+1)。 (4)在任意一棵二叉树中,若终端结点的个数为 阅读全文
摘要:
STL:是Standard Template Library的简称,中文译为标准模板库,是由惠普实验室开发的一系列软件的统称,现为C++的一部分,可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms 阅读全文
摘要:
1、概念的区别 进程:是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配的基本单位,也是调度运行的基本单位。一个进程中可以包含多个线程。 线程:是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的、可以独立运行的基本单位,除运行中必不可少的资源外,基本上不拥有自己的系统资源 阅读全文
摘要:
排序算法大致可分为两类: 比较排序,时间复杂度一般在O(nlogn) ~ O(n^2)之间,主要有冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序等 非比较排序,时间复杂度可达到O(n),主要有计数排序、基数排序等 本文主要介绍常用的其中比较排序。 1、冒泡排序 说明:冒泡排序是一 阅读全文
摘要:
C++是Bjarne Stroustrup博士于1982年,在C语言的基础上引入并扩充了面向对象的概念后发明的一种新的程序语言。就与C语言的渊源而言,C++可以说是C语言的超集,它兼容C的一切(可能是小可才疏学浅,并没有发现C可以但C++不可以的东西)。 C语言面向过程,侧重于算法和数据结构;C++ 阅读全文