C/C++开发学习
文章平均质量分 83
对学习C++,数据结构,Linux,算法,设计模式等中的知识分享
wangiijing
你的孤独,虽败犹荣!
展开
-
Linux上的RAID
Linux上的RAID有三种:硬RAID(hard-RAID)通过专门的RAID控制芯片实现。一般表现为RAID卡,并且卡上有专用的、独立于主板BIOS的固件(一般也称其为BIOS)。伪RAID(fake-RAID)通过SATA/IDE等磁盘控制芯片附带的RAID固件(集成于主板的BIOS中)实现,所以又称为"bios-RAID"。典型的例子就是Intel ICHxR系列南桥芯片。软RAI转载 2017-03-06 11:40:07 · 883 阅读 · 0 评论 -
如何调试Shell脚本
1) 检查语法错误:一般来说我们可以通过修改shell脚本的源代码,令其输出相关的调试信息来定位错误,那有没有不修改源代码来调试shell脚本的方法呢?答案就是使用shell的执行选,下面是一些常用选项的用法:-n 只读取shell脚本,但不实际执行-x 进入跟踪方式,显示所执行的每一条命令-c "string" 从strings中读取命令“-n”可用于测试shell脚本是转载 2016-12-15 11:07:29 · 1012 阅读 · 0 评论 -
linux egrep 查询文件内容
1、从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名2、从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名3、查找时不区分大小写:$ grep –i "被查找的字符串" 文件名转载 2016-11-23 14:51:54 · 1648 阅读 · 0 评论 -
malloc实现原理
malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配,且转载 2016-08-23 14:34:55 · 2614 阅读 · 0 评论 -
HTTP1.0和HTTP1.1区别及http状态码
HTTP1.0和HTTP1.1的主要区别1,HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,;2,HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象!HTTP目前三个版本:HTTP0.9、HTTP1.原创 2016-08-19 10:13:49 · 5477 阅读 · 0 评论 -
windows进程间通信
原文地址:http://blog.csdn.net/weiwangchao_/article/details/7104940摘 要: 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了转载 2016-07-28 13:58:56 · 885 阅读 · 0 评论 -
创建动态链接库,使用自己的dll中的排序算法,用Qt将排序用时在界面上用表格的形式呈现出来
首先创建动态链接库打开vs2013,创建win32控制台应用程序项目,勾选dll及导出符号完成后,就可以了然后打开Qt,,创建Qt项目,都选默认值,最后将Vs项目生成的.dll拷到Qt项目.exe文件所在的文件目录下(或者将Vs项目生成的.dll文件所在的目录设置环境变量)Vs头文件代码:// 下列 ifdef 块是创建使从 DLL 导出原创 2016-07-19 23:31:41 · 2467 阅读 · 0 评论 -
死锁产生的原因和必要条件及预防死锁的方法及死锁的检测与解除
产生死锁的原因和必要条件:产生死锁的原因:1.竞争资源。当系统中供多个进程共享的资源如打印机,公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。2.进程推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,原创 2016-07-17 00:01:56 · 11826 阅读 · 0 评论 -
进程间通信:管道及命名管道(代码实现)
管道:1.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 2.只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 3.单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统, 并且只存在原创 2016-07-07 21:03:31 · 6923 阅读 · 1 评论 -
进程间通信:共享内存(代码实现)
共享内存:1.共享内存就是允许两个不相关的进程访问同一个逻辑内存; 2.共享内存是在两个正在运行的进程之间共享和传递数据的一种最有效的方式; 3.不同进程之间共享的内存通常安排为同一段物理内存; 4.共享内存不提供任何互斥和同步机制,一般用信号量对临界资源进行保护;原创 2016-07-06 18:17:36 · 13630 阅读 · 1 评论 -
进程间通信:消息队列(代码实现)
消息队列:1.一种从一个进程向另外一个进程发送数据块的方法; 2.每个数据块都被认为是有一个类型,接受者进程接收的数据块可以有不同的类型值; 3.消息队列的读取不一定是先入先出; 4.消息队列的生命周期是随内核的; 5.每个消息的最原创 2016-07-05 23:21:15 · 4378 阅读 · 0 评论 -
赋值运算符函数
当写一个赋值运算符函数时,首先要关注几点(第一种写法):1.返回值的类型是不是应该声明为该类型的引用,并在函数结束前返回实例自身的引用,只有这样,才支持连续赋值例如3个list的实例l1,l2,l3,语句l1=l2=l3编译通过。2.实例自身已有的内存是不是应该释放,如果在分配内存之前没有释放,程序将出现内存泄漏。3.传入的参数是不是应该应该声明为常量引用以避免实参传给形参时调用拷贝构原创 2016-05-18 23:26:16 · 691 阅读 · 0 评论 -
用C++实现一个哈希表(插入,删除,查找)
#include#includeusing namespace std;enum status{ EXIST, DELETE, EMPTY,};template struct hashfunc{ size_t operator()(const K & key) { return key; }};struct hashfuncstring { size_t原创 2016-05-24 20:46:28 · 4580 阅读 · 0 评论 -
替换空格(将字符串中的空格替换为20%)
题目:请实现一个函数,把字符串中的每个空格替换成“20%”,例如输入“We are happy.”,则输出“We%20are%20happy.”。分析:void test(string &str,int size){ if (size <= 0) { return; } int count = 0;//定义一个变量来计数空格的数量 for (int i = 0; i原创 2016-06-10 21:07:21 · 4036 阅读 · 0 评论 -
实现一个广义表
实现一个广义表,实现求广义表的深度,广义表的大小及成员函数原创 2016-05-22 23:03:25 · 827 阅读 · 0 评论 -
不使用任何变量编写是strlen函数(递归)
strlen函数很简单,大家都能熟练的应用,可是如果不允许调用库函数,也不允许使用任何全局或局部变量来编写一个MyStrlen也许就没有那么简单了,当然,递归函数就可以来解决这个问题了size_t MyStrlen(const char * str){ assert(str); //参数入口检验 if(*str=='\0') r原创 2016-05-18 13:06:24 · 1036 阅读 · 0 评论 -
在Linux下用C语言写一个小程序实现一个进度条编写Makefile来进行运行
运行结果如下: 代码:Makefile编写:原创 2016-06-04 19:38:02 · 2641 阅读 · 5 评论 -
Linux系统下find指令详细用法与示例及Linux下的atime ,ctime,mtime
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。命令格式:find 路径 -命令参数 [输出形式]-name 按照文件名查找原创 2016-05-22 11:53:17 · 2948 阅读 · 0 评论 -
外观模式实例之文件加密
代码;package child;class CipherMachine:public class CipherMachine { public String encrypt(String plainText) { return plainText; }}class FileReader:public class FileReader { pu原创 2016-05-31 10:45:28 · 5586 阅读 · 0 评论 -
二维数组中的查找
问题描述:在一个二位数数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例:下面的二维数组满足该情况,如果在该数组中查找5,则返回true,若查找15,则返回false 1 2 3 4 5 2 5 6 7 8 9 10 11原创 2016-06-08 23:26:16 · 1158 阅读 · 0 评论 -
注释转换(C++小项目)
将所有以C语言格式的注释转换成C++注释格式,利用文件指针打开文件并读写文件,input,output导入导出文件,转换后不得改变原文件的含义并且编译连接无错误,所有的转换必须符合语法规则,注释转换支持注释嵌套。#include#include#includetypedef enum ConverState{ c_open, c_close}ConverState;typedef原创 2016-05-19 21:46:26 · 534 阅读 · 0 评论 -
用C/C++实现一个日期类,重载运算符=,==,+,-,++,--,>,>=,<,<=等
#include#includeusing namespace std;class Date{public: Date(int year, int month, int day) //构造函数 :_year(year) ,_month(month) ,_day(day) {} Date(Date & d) //拷贝构造 :_year(d._year) ,原创 2016-05-21 23:21:32 · 21112 阅读 · 2 评论 -
操作系统处理机调度及常见的调度算法
操作系统处理机调度及常见的调度算法(先来先服务调度算法(FCFS),短作业(进程)优先调度算法,高优先权优先调度算法,时间片轮转算法)原创 2016-06-05 22:17:18 · 13559 阅读 · 1 评论 -
各类排序算法的对比及实现
(直接插入排序,希尔,选择排序,堆排序,冒泡排序,快排,归并)各类排序的算法比较及实现原创 2016-05-23 23:29:09 · 10749 阅读 · 2 评论