- 博客(18)
- 收藏
- 关注
原创 Linux的查找命令
Linux常用的查找命令有:find、which、 whereis、 locate、 type.1.find : 查找任何文件格式:find [PATH] [option] [action]参数说明: 时间查找参数: -atime n: 将n*24小时内access过的文件列出来 -ctime n: 将n*24小时内状态发生改变的文件列出来 ...
2018-05-31 16:36:31 366
原创 C++的异常机制
在学习C语言时我们的程序出错的处理方式基本都是以下几种:1.终止程序 (除数为0)2.返回一个表示错误的值,附加错误码(errno)3.返回一个合法的值,让程序处于一种非法的状态(atoi())4.调用预先准备好的错误处理函数 (回调函数)5.直接终止程序: abort 或者 exit().6.setjmp() 和 longjmp() 函数组合。C语言的常见处理方式之一:输...
2018-05-29 10:46:20 719
原创 C++模板封装Vector和带头结点的双向链表
C++模板封装Vector:注意:1.在Vector的拷贝构造,扩容函数中,需要注意string的影响#pragma once #include <iostream>#include <assert.h>#include <string.h>#include <string>using namespace std;template&...
2018-05-28 16:44:30 508
原创 mmap函数
写在前面:内存共享的几种方式:管道:简单、数据量较小共享内存:最快mmap:最高效socket:最稳定这篇文章重点分析一下mmap:void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr,...
2018-05-20 20:40:48 500
原创 Linux信号
信号的概念:信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或者系统异常。信号的产生:1>对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。如输入Ctrl+c向进程发送一个中断信号。2>系统异常。如浮点数异常和非法的内存段的访问3>系统状态变化。如alarm定时器到期将一起SIGALRM信号。4>运行kill命令或者调用kill函数。服...
2018-05-15 20:33:27 698
原创 Linux下的简单线程池
问题描述:在我们的日常生活中,如果我们现在要浏览一个网页或者频繁的打开一个执行时间较短的任务,如果每次调用都创建一个线程,使用结束后就立即释放,那么这样的开销对于操作系统来说有点太过浪费了。而线程池的出现就可以很好地解决这样的问题。线程池:1.特点:1>经典生产者消费者模型。2>线程池中有若干等待的线程。3>线程池中的线程用于执行大量的相对...
2018-05-12 12:32:42 1764 3
原创 在虚拟机中和本地上传和下载文件
说明:我的虚拟机系统是Centeros7, 本地系统是Win7,工具是Xshell。希望能帮到大家。虚拟机下载文件到本地:1.找到要下载的文件或文件夹,pwd查看当前的绝对路径2.将文件夹打包 (单个文件可以忽略这一步) tar -zcvf /home/czf/Test/test.tar.gz czf ddd eee 格式为 : tar -zcvf /全路径名/生成的打包文件名 要打包...
2018-05-07 15:35:39 11833
原创 线程的几种锁及基本操作
互斥锁:1.定义互斥量: pthread_mutex_t mutex;2.初始化互斥量: pthread_mutex_init(&mutex, NULL); //第二个参数不研究置NULL; //初始化为 1 (仅做记忆)3.上锁 pthread_mutex_lock(&mutex); 1->0; 0 等待4.解锁
2018-05-05 22:50:21 37718 2
原创 线程的基本概念
线程:1>在一个程序里的一个执行路线叫做线程,线程是一个进程内部的控制序列2>一个进程至少都有一个执行线程线程和进程创建过程简单图示:线程和进程:进程是资源竞争的基本单位线程是程序执行的最小单位一个进程内的全部进程共享同一个全局内存空间,这使得进程间很容易共享信息,但是这种容易性也带来可同步问题。一个进程内的线程不光共享全局变量,以下信息也是它们所共享的:1.进程指令2.同一地址空间,...
2018-05-05 22:49:50 296
原创 实现哲学家问题和生产者消费者模型
利用信号量实现互斥访问资源:#include <stdio.h>#include <stdlib.h>#include <sys/ipc.h>#include <sys/sem.h>//本例描述互斥的打印字符AAZZ必须成对出现union semun{ int val;};int id;void print(char...
2018-05-02 00:26:13 204
原创 进程间通信之SystemV IPC--共享内存和信号量
共享内存:最快的可用IPC形式,一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。(不涉及内核:进程不是通过执行任何进入内核的系统调用来传递彼此的数据)。在消息队列处实现过一个服务器和客户机通信的例子:简单的客户端---服务器例程下图展示了从服务器到客户机的文件数据流向:当我们使用共享内存区对对...
2018-05-02 00:09:23 235
原创 进程间通信之SystemV IPC--消息队列
System V IPC : 基于内核持续性System V 消息队列:在程序之间传递数据的一种方法System V 共享内存:用于在程序之间高效的共享数据System V 信号量:用于管理对资源的访问内核会为每个IPC对象维护一个数据结构:struct ipc_perm{ key_t key; /* 调用shmget()时给出的关键字...
2018-05-01 16:59:10 258
原创 实现一个不能被继承的类
在掌握了基本的继承关系时,为了加深理解和延伸知识,可以实现以下几个特殊的类:1.实现一个不能被继承的类:2.实现一个只能在栈上创建对象的类3.实现一个只能在堆上创建对象的类
2018-05-01 09:56:17 381
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人