C++学习笔记42:进程管理
摘要:子进程异步清除 SIGCHLD信号:子进程终止时,向父进程自动发送,编写此信号处理例程,异步清除子进程 创建守护进程的步骤 创建新进程:新进程将成为未来的守护进程 守护进程的父进程退出:保证祖父进程确认父进程已结束,且守护进程不是组长进程 守护进程创建新进程组和新会话:并成为两者的首进程,此时刚创建
阅读全文
posted @
2017-01-16 22:14
Worty
阅读(609)
推荐(0)
C++学习笔记41:进程调度
摘要:进程调度策略:先进先出,时间片轮转,普通调度,批调度,高优先级抢先 子进程与父进程的调度没有固定的顺序;不能假设子进程一定会在父进程之后执行,也不能假设子进程一定会在父进程之前执行; 僵尸进程 子进程已结束,但父进程未被调用wait()函数等待 子进程已终止,但没有被正确清除,成为僵尸进程 清除子进
阅读全文
posted @
2017-01-11 21:44
Worty
阅读(547)
推荐(0)
C++学习笔记40:进程应用
摘要:进程创建 system()函数:用于在程序中执行一条命令 如果shell不能运行,返回127,如果发生其他错误返回-1; 例子:int ret_val = system(“ls -l /”); fork()函数:创建当前进程的副本作为子进程 原型:pid_t fork(); 返回值为0(新创建的子进
阅读全文
posted @
2017-01-10 22:20
Worty
阅读(279)
推荐(0)
C++学习笔记39:进程概念
摘要:进程的基本概念 进程是描述程序执行过程和资源共享的基本单位 主要目的:控制和协调程序的执行 进程相关函数 用户与组ID函数 创建进程:system(),fork(),exec() 终止进程:kill() 等待进程终止:wait(),waitpid() 进程组 定义:由一个或多个相关联的进程组成,目的
阅读全文
posted @
2017-01-09 23:04
Worty
阅读(392)
推荐(0)
C++学习笔记38:事件机制
摘要:事件基本概念 操作系统或应用程序内部发生某件事,程序的某个组件需要响应该事件,并进行特定处理 面向对象架构中,事件响应函数最可能为成员函数 问题:指向类成员函数的指针不能转换为哑型指针void *,也不能随意转换为指向另一个类的成员函数的指针 解决方案:使用指向指向类成员函数的指针的指针 实现策略:
阅读全文
posted @
2017-01-08 17:13
Worty
阅读(820)
推荐(0)
C++学习笔记37:元编程
摘要:元编程 什么是元编程(metaprogramming) 利用模板可以进行编译期计算(数值计算,型式计算和代码计算)的特点进行程序设计 为什么可以进行元编程? C++是两层语言:执行编译期计算的代码称为静态代码,执行运行期计算的代码称为动态代码 模板可用于函数式编程,强调抽象计算,重视模块化,使用递归
阅读全文
posted @
2017-01-08 14:59
Worty
阅读(276)
推荐(0)
C++学习笔记36:类模板
摘要:类模板的目的 设计通用的类型式,以适应广泛的成员数据型式 类模板的定义格式 template<模板形式参数列表>class 类名称{...}; 原型:template<typename T> class A; 类模板的成员 像普通类的成员一样定义 定义在类中或类外均可,后者需要在类名后列些模板参数,
阅读全文
posted @
2017-01-08 13:05
Worty
阅读(229)
推荐(0)
C++学习笔记35:函数模板
摘要:函数模板 函数模板的目的 设计通用的函数,以适应广泛的数据型式 函数模板的定义格式 template<模板型式参数列表>返回值型式 函数名称(参数列表); 原型:template<class T> void Swap(T &a, T&b); 实现:template<class T> void Swa
阅读全文
posted @
2017-01-08 00:14
Worty
阅读(200)
推荐(0)
C++学习笔记34:泛型编程拓展3
摘要:输入流迭代器 表:标准模板库中为双向链表 表的使用 定义包含Point对象的容器:list<Point> pts(8); 插入:pts.insert(pts.begin(),Point(1,2)); 表头插入:pts.push_front(Point(1,2)); 插入:pts.insert(pts
阅读全文
posted @
2017-01-07 22:32
Worty
阅读(238)
推荐(0)
C++学习笔记33:泛型编程拓展2
摘要:调用标准模板库的find()函数查找数组元素 例子: 向量迭代器 使用向量迭代器操作向量 常迭代器 若不想通过迭代器修改目标对象值,定义迭代器常量 例子: const vector<int>::iterator it; 非法操作:*it = 10;//不能修改常迭代器指向的对象 流迭代器 使用迭代器
阅读全文
posted @
2017-01-07 21:27
Worty
阅读(211)
推荐(0)
小技能1:用好google搜索
摘要:下面简单总结一些搜索引擎的使用方法,方便查询: 1.首先提炼要搜索内容的关键字,然后再搜索。(专业内容建议英文搜索) 2.双引号"":精确搜索,完全匹配搜索内容;例子:“英超联赛” 3.星号*:通配符,指任意内容;例子:“足球*” 4.减号-:搜索结果不包含“-”后的内容;例子:"国际足球 -乙级"
阅读全文
posted @
2017-01-06 23:49
Worty
阅读(137)
推荐(0)
C++学习笔记32:泛型编程拓展1
摘要:标准模板库的内容 标准模板类:复数、序偶 迭代器 标准容器:向量,表,栈,队列,集合,映射等 标准算法:查找,排序等 标准模板库型式的使用方法 “<>”:模板名称<数据对象基型式>数据对象名称; 例子1:complex<double>a(1.0,2.0); 例子2:pair<string,strin
阅读全文
posted @
2017-01-04 23:28
Worty
阅读(309)
推荐(0)
C++学习笔记31:术语翻译
摘要:reference:引用 dereference:引领,好于“解引用” type:型式,好于“类型” int:整数型式,简称整型 class:类型式,简称类型 constructor:构造函数或者建构函数 destructor:析构函数或者解构函数 instance:定体,好于“实例” instan
阅读全文
posted @
2017-01-04 22:44
Worty
阅读(213)
推荐(0)
C++学习笔记30:模板与型式参数化
摘要:转型操作 接受目标型式作为模板参数 Programmer *p = dynamic_cast<Programmer*>(e) 模板工作原理 使用template<typename T>定义函数模板或者类模板 体化(instantiation):使用特定的模板实际参数,生成真正的模板函数和模板类 编译
阅读全文
posted @
2017-01-04 22:23
Worty
阅读(410)
推荐(0)
C++学习笔记29:运行期型式信息2
摘要:static_cast 静态转型的用途 与dynamic_cast不同,static_cast不仅可以用于指针和引用,还可以用于其他型式 一般用于非类型式的普通数据对象转型 静态转型的问题 不进行运行期型式检查,不安全 若转型失败,结果无定义 const_cast 常量转型的目的 用于取消或者设置量
阅读全文
posted @
2017-01-04 22:05
Worty
阅读(189)
推荐(0)
C++学习笔记28:运行期型式信息
摘要:RTTI 运行期标识对象的型式信息 优势:允许使用指向基类的指针或引用自如地操作派生类的对象 typeid:获取表达式的型式;type_info:型式信息类 头文件:typeinfo 对象转型模板 dynamic_cast:动态转型 static_cast:静态转型 reinterpret_cast
阅读全文
posted @
2017-01-03 23:01
Worty
阅读(328)
推荐(0)
C++学习笔记27:异常处理机制
摘要:一、异常处理机制基础 异常的定义 程序中可以检测的运行不正常的情况 异常处理的基本流程 某段程序代码在执行操作时发生特殊情况,引发一个特定的异常 另一段程序代码捕获该异常并处理它 二、异常的引发 throw 三、异常的捕获 try { ... } catch(...) 四、异常类与异常对象 五、异常
阅读全文
posted @
2017-01-03 22:05
Worty
阅读(246)
推荐(0)
C++学习笔记26:泛型编程概念
摘要:一、什么是泛型编程? 泛型就是通用的型式 编写不依赖数据对象型式的代码就是泛型编程 二、为什么需要泛型编程? 函数重载,相似类定义与型式兼容性 例如:设计函数,求两个数据对象的较小值 //未明确规定参数型式,因c/c++的强制式检查特性 //必须为不同型式的参数分别实现 //函数重载的数目巨大 //
阅读全文
posted @
2017-01-03 21:01
Worty
阅读(413)
推荐(0)
C++学习笔记25:makefile文件2
摘要:Makefile文件语法 行解析:命令按行解析 命令行的行首字符为Tab键,其他行的行首字符不得为Tab键,但可以使用多个空格缩进 换行:命令太长时,行尾使用"\"换行 注释:行首字符为“#”的文本行 关闭回显:在行首字符后和命令前添加“@” 未关闭回显时,make会首先回显(打印)命令,然后执行该
阅读全文
posted @
2017-01-02 23:32
Worty
阅读(372)
推荐(0)