摘要: shell Unix系统中常见的shell有:sh、csh、ksh、tcsh、bash 使用命令: vim /etc/shells 可以查看当前系统支持的bash shell执行脚本 shell执行脚本是一门解释性语言、批量化处理语言,大大的节省了工作成本 shell脚本第一行必须以 #!开头,它表 阅读全文
posted @ 2016-08-12 00:48 ProLyn 阅读(76899) 评论(1) 推荐(29) 编辑
摘要: 网络进程间通信:socket API简介 不同计算机(通过网络相连)上运行的进程相互通信机制称为网络进程间通信(network IPC)。 在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主 阅读全文
posted @ 2016-08-03 21:42 ProLyn 阅读(2227) 评论(0) 推荐(4) 编辑
摘要: 什么是RAII? RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。 RAII又叫做资源分配即初始化,即:定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资 阅读全文
posted @ 2016-07-26 01:40 ProLyn 阅读(2219) 评论(0) 推荐(4) 编辑
摘要: 设计模式: 设计模式代表了最佳实践,是软件开发过程中面临一般问题的解决方案。 设计模式是一套被反复使用、经过分类、代码设计总结的经验。 单例模式 单例模式也叫单件模式。Singleton是一个非常常用的设计模式,几乎所有稍微大一些的程序都会使用到它,所以构建一个线程安全并且 高效的Singleton 阅读全文
posted @ 2016-07-23 23:16 ProLyn 阅读(766) 评论(2) 推荐(1) 编辑
摘要: 红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。 通过对任何一条从根到叶子节点简单路径上的颜色来约束树的高度,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树是满足下面红黑性质的二叉搜索树: 1. 每个节点,不是红色就是黑色的 2. 阅读全文
posted @ 2016-07-08 16:50 ProLyn 阅读(3188) 评论(0) 推荐(2) 编辑
摘要: 我在使用PHPmailer发邮件时候,遇到了这个问题“SMTP Error: Could not connect to SMTP host.”,分享一下解决方法。 这个错误是PHP版本7产生的。如果我将PHP更改为5,它就可以工作了。 1.首先查看PHP环境扩展中是否开启了socket 和opens 阅读全文
posted @ 2018-05-25 15:20 ProLyn 阅读(18722) 评论(0) 推荐(0) 编辑
摘要: 首先下载一个安装包 按照默认选项,依次安装: 去掉不必要的选项: 选择安装路径: 显示下图说明已经成功安装完成了。 打开XAMPP,启动Apache服务: 如果显示Apache服务无法启动,有如下错误: Error: Apache shutdown unexpectedly. 这是由于端口占用造成的 阅读全文
posted @ 2016-11-25 11:19 ProLyn 阅读(1191) 评论(0) 推荐(0) 编辑
摘要: 先来先服务、短进程优先算法 一.目的 通过使用c对先来先服务、短进程优先算法的实现,进一步理解并掌握调度算法的逻辑过程,以及每种算法分别在进程调度和作业调度中的的处理方法. 二.原理 先来先服务:该算法在每次调度中,都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资 阅读全文
posted @ 2016-08-31 09:57 ProLyn 阅读(4338) 评论(0) 推荐(0) 编辑
摘要: 关于 信号signal的知识铺垫 点这里 信号由三种处理方式: 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个自定义函数,这称为捕捉信号。 进程收到一个信号后不会被立即处理,而是在恰当时机进行处理!即内核态返回用户态之前 ! 但是由于信号处理函数的代码在用户空间,所以这增加了内核处理信号 阅读全文
posted @ 2016-08-15 12:17 ProLyn 阅读(3582) 评论(0) 推荐(1) 编辑
摘要: eval eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令;如果命令中含有变量的间接引用,则保证间接引用的语义。也就是说,eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。因此,eval命令适用于那些一次扫描无法实现其功能的变量。 eval 执行以下 阅读全文
posted @ 2016-08-14 02:56 ProLyn 阅读(2839) 评论(0) 推荐(2) 编辑
摘要: Unix下共有五种I/O模型: 1. 阻塞式I/O 2. 非阻塞式I/O 3. I/O复用(select和poll) 4. 信号驱动式I/O(SIGIO) 5. 异步I/O(POSIX的aio_系列函数) io请求分两步: 1. 先将数据从存储介质(磁盘,网络等)拷贝到内核缓冲区,此时称为数据准备好 阅读全文
posted @ 2016-07-27 17:07 ProLyn 阅读(1716) 评论(1) 推荐(3) 编辑
摘要: 大家都知道如下代码中,被const限定的a是不可以被直接修改的 void main() { const int a = 3; a=1; } 在C++中const修饰的常量,不能被直接修改,但是可以通过指针进行间接修改 来看下面的例子: 运行后输出 5 3 单步执行,利用内存窗口进行查看,未修改前a为 阅读全文
posted @ 2016-07-20 22:39 ProLyn 阅读(4778) 评论(1) 推荐(0) 编辑
摘要: 信号的基本概念 每个信号都有一个编号和一个宏定义名称 ,这些宏定义可以在 signal.h 中找到。 使用kill -l命令查看系统中定义的信号列表: 1-31是普通信号; 34-64是实时信号 所有的信号都由操作系统来发! 对信号的三种处理方式 忽略此信号:大多数信号都可使用这种方式进行处理,但有 阅读全文
posted @ 2016-07-17 00:09 ProLyn 阅读(1461) 评论(0) 推荐(4) 编辑
摘要: core dump 的基本概念 当一个进程要异常终止时 ,可以选择把进程的用户空间内存数据全部保存到磁盘上 ,文件名通常是 core, 这叫做 Core Dump。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作 阅读全文
posted @ 2016-07-16 19:12 ProLyn 阅读(1617) 评论(0) 推荐(2) 编辑
摘要: 死锁 死锁可以被定义为一组竞争系统资源或相互通信的进程间相互的“永久”阻塞。当一组进程中的所有进程都在等待一个事件(等待请求资源的释放),而只有在进程集合中的其他阻塞的进程才可以触发该事件,这时就成一组进程死锁。 因为没有事件可以触发,故死锁是永久性的。 一般情况下,如果同一个线程先后两次调用loc 阅读全文
posted @ 2016-07-15 08:21 ProLyn 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 1 需求分析 1.1 银行家算法的实现思想 允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。 1.2 阅读全文
posted @ 2016-07-14 23:18 ProLyn 阅读(52041) 评论(3) 推荐(41) 编辑