自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 centos安装mysql常见的问题及解决方法

1 安装好Mysql后不用密码登录Mysql输入命令 # mysql -u root报错:Access denied for user 'root'@'localhost' (using password: NO)解决方法输入命令# vim  /etc/my.cnf在my.cnf文件中,定位到[mysqld]文段,在[mysqld]所属文段任意一行添加skip-grant-table跳过密码验证过...

2018-06-24 15:09:10 239

原创 栈和队列

栈定义:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,故栈又称为后进先出的线性表。栈上存什么?在函数体内定义的变量以及函数调用时的实参;基本类型(int,short,long,byte,float,double,boolean,char)变量存储在栈上;对象的引用变量存储在栈上。栈的特殊性栈区的变量由编译器自动分配释放内存 存在栈中的数据可以共享栈的分类1 顺序栈 顺序

2017-09-12 15:21:37 321

原创 C语言小项目-注释转换

项目功能把.c文件中的C风格的注释转换成C++风格的注释 C注释风格: /**/ 可以注释多行 C++注释风格:// 只能注释一行项目原理有限状态机转换实现环境input.c// 1.一般情况/*int i=0;*/// 2.换行问题/*int i=0;*/int j = 0;/*int i=0;*/int j = 0;// 3.匹配问题/*int i=0;/*xxxxx*///

2017-09-10 23:19:43 332

原创 二叉树面试题

二叉树面试题1.创建一颗二叉树template<class T>struct BinaryTreeNode{ BinaryTreeNode(const T& data) :_left(NULL) , _right(NULL) , _data(data) {} BinaryTreeNode* _left; BinaryTreeNode* _r

2017-08-24 18:09:36 269

原创 C++——多态之虚表

多态定义:多种形式或形态 多态分类 静态多态:在编译期间完成,编译器根据函数实参的类型推断出要调用哪个函数。 在这里我们只说函数重载,泛型编程在后面再进行介绍。 函数重载的条件 (1)在同一作用域 (2)函数名相同,参数不同 (3)返回值可以不同 动态多态;在程序执行期间判断所引用对象的实际类型,根据其实际类型调用相应的方法。 实现动态多态的条件 1.必须是虚函数 关于虚函

2017-07-28 16:07:25 358

原创 C++实现顺序表&单链表&双链表

c++实现顺序表

2017-07-25 18:18:31 300

原创 Epoll服务器

1. 编写epoll服务器 在浏览器验证的结果如图所示2. 总结epoll优缺点

2017-07-25 13:19:00 235

原创 Tcp套接字

1. 编写version1server和client 2. 编写多进程版本的server 3. 编写多线程版本的server 4. 调研server bind 失败的原因?(TIME_WAIT)

2017-07-23 23:19:55 258

原创 C++中的继承问题

继承:面向对象程序设计 使代码可以复用,并允许程序员在原有类特性的基础上进行扩展,增加功能。继承定义格式class Base{public: Base() { cout << "B()" << endl; } ~Base() { cout << "~B()" << endl; }public: int pri;protected: int pro;

2017-07-23 09:55:37 230

原创 C++_String类

#define _CRT_SECURE_NO_WARNINGS#include#includeusing namespace std;class String{public: //构造函数 String(char* str = "") //:_str(new char[strlen(str) + 1]) { _size = strlen(str); _capa

2017-07-22 18:57:19 184

原创 shell字符串的截取

通过学习,我总结了九种shell中截取字符串的方法1 使用cut命令echo  “string”  |  cut  -c  1-4“-c”表示按字符截取,  ”1-4”表示截取第1到第4个字符还可以截取特定的某个字符从某个位置开始截取2 使用#操作符功能:删除从左边开始第一次出现子字符串及其左边所有字符,保留右边字符用法: echo ${

2017-07-15 15:44:49 549

原创 Shell语法之进度条

1  shell脚本函数shell中也有函数的概念,但是函数定义中没有返回值也没有参数列表。在shell当中函数被理解为小程序或小脚本,调用函数时可以传任意个参数。函数中可以用return命令返回,如果return后面跟一个数字则 shell脚本的函数必须先定义后使用

2017-07-14 15:53:11 262

原创 SHELL脚本的命令代换

1. 理解``和$() 2. 对比两者之间的区别 3. 调研eval命令

2017-07-12 14:45:09 226

原创 tcp握手与挥手

1. 为什么要三次握手 2. 为什么要四次挥手 3. 主动断开链接的一方为什么要进入TIME_WAIT状态

2017-07-10 23:23:53 267

原创 调研tcp定时器

1. 常见的定时器都有哪一些? 2. 各自的特点以及应用场景

2017-07-10 23:22:44 133

原创 udp_server

1. 编写完成udp_server 2. udp不可靠, 了解如何在用户空间实现可靠性

2017-07-10 17:22:09 1345

原创 URG-PSH

1. 是什么? URG:紧急标志位     PSH:推标志位        2. 各自特点,如何使用? 当URG=1时,表示分段中有紧急数据应当加速传送。当PSH=1时,要求发送方马上发送该分段,接受方尽快地将报文交给应用层,不做队列处理。在处理telnet或rlogin等交互模式的连接时,该标志总是置位的。3. 对比两者区别 URG=1表示紧急指针指向包内数据段的

2017-07-08 20:07:18 338

原创 端口分类调研

1. 一共有多少有效端口? 在一台主机上运行了多个服务,主机为了区分这些服务,所以给每个服务都分配一个端口号,端口号唯一标识一台主机上的某个服务。端口(port):计算机与外界通讯交流的出口计算机一共有65535个端口,但是一般常用的只有十几个。2. 端口是如何分类的? 这些端口按端口号可分为3大类1)公认端口(常用端口):从0-1023,它们一般固定分配给一些服务。通

2017-07-07 17:31:54 176

原创 NAT技术与代理服务器调研

1. 是什么? NAT(Network Address Translation,网络地址转换),属于接入广域网技术,是一种将私有地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。NAT不仅完美地解决了IP地址不足的问题,而且还能有效的避免来自网络外部的攻击,隐藏并保护网络内部的计算机。代理服务器(Proxy Server):提供代理服务

2017-07-06 14:45:12 261

原创 C++-拷贝构造中的N中调用情况

1.总结C++对传参合传返回值时构造的优化处理。 2.完成下面的题目。 Test1中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 Test2中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 Test3中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 class AA {}; AA f (AA a)

2017-07-04 17:28:36 169

原创 C++动态内存管理

1.总结并剖析malloc/free和new/delete之间关系和差异。 C++通过new和delete动态管理内存new/delete动态管理对象new[ ]/delete[ ]动态管理对象数组malloc/free和new/delete之间的区别和联系1)它们都是动态管理内存的入口。2)malloc/free是C/C++标准库函数,而new/delete是C+

2017-07-03 09:05:52 211

原创 C++类和对象-Complex的编写

1  完成四个默认成员函数

2017-07-02 19:37:26 613 2

原创 C++实现日期类-Date

各个运算符的重载代码实现如下:#pragma once#includeusing namespace std;class Date{private: int _year; int _month; int _day;public: Date(int year = 1900, int month = 1, int day = 1) : _year(year) ,

2017-07-01 21:27:01 406

原创 C++四个默认成员函数+运算符重载

1:整理类和对象的基础知识,如类的定义,访问限定符,面向对象封装性,对象的大小计算等等。 2:整理四个默认成员函数及运算符重载相关知识 3:整理隐含的this指针等等,及对运算符重载背后做的事情。

2017-06-30 14:52:41 382

原创 CRC校验

CRC即循环冗余校验码:是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

2017-06-29 15:41:06 307

原创 CPP入门基础知识

1  命名空间命名空间相当于一个更加灵活的全局域,可以用花括号把文件的一部分括起来,并以关键字namespace开头给它起一个名字如下定义两个命名空间namespace AA1{ int a = 10;}namespace AA2{ int a = 20;}int main(){ cout << AA1::a << endl; //::是域作用限定符

2017-06-28 17:03:12 380

原创 编写mysleep

1  普通版本mysleep(1)用alarm函数可以设置一个时间值(闹钟时间)(2)在将来的某个时刻这个值会被超过。当所设置的时间超过后,产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止该进程。参数seconds的值是秒数,经历了指定的seconds秒后会产生信号SIGALRM。(3)从内核态返回这个进程的用户态之前处理未决信号,发现有SIGALRM信号,其处理函

2017-06-28 10:31:27 337

原创 守护进程

守护进程:守护进程也称精灵进程,是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或者等待处理某些发生的事件。守护进程和一般进程的区别守护进程是系统服务进程守护进程没有控制终端,不能直接和用户交互。一般进程都是在用户登录和运行时创建,在运行结束或用户注销时终止;守护进程不受用户登录和注销的影响,它们一直在运行着。创建守护进程创建守护进程最关键的一步是调用s

2017-06-27 15:53:05 263

原创 crond和crontab调研

crontab 是一个命令,常见于unix/linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后的读取和执行。crond是crontab的守护进程用service crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过c

2017-06-27 15:00:57 170

原创 基于单链表的面试题-基础篇

1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 2.从尾到头打印单链表 3.删除一个无头单链表的非尾节点 4.在无头单链表的一个节点前插入一个节点 5.单链表实现约瑟夫环 6.逆置/反转单链表 7.单链表排序(冒泡排序&快速排序) 8.合并两个有序链表,合并后依然有序 9.查找单链表的中间节点,要求只能遍历一次链表 10.查找单链表的倒数第k个

2017-06-15 19:38:25 195

原创 基于环形队列的单生产者单消费者模型

程序代码生产者消费者模型简单来说就是“321原则(并非某一规则,而是为了理解生产者消费者模型)”“3”种关系生产者与消费者的互斥与同步关系生产者与生产者的互斥关系消费者与消费者的互斥关系“2”种角色生产者:往交易场所放东西的人消费者:从交易场所取东西的人“1”个交易场所所谓交易场所就是内存中具有存储数据的一段有界缓冲区综上,给出生产者

2017-06-05 12:48:36 553

原创 c语言实现动态版本通讯录

头文件contact.h#ifndef __CONTACT_H__#define __CONTACT_H__#define NAME_MAX 20#define SEX_MAX 20#define TELE_MAX 20#define ADDR_MAX 20#define MAX 100#define DEFAULT_SZ 2#define DEFAULT_INC 2t

2017-05-30 22:32:20 377

原创 读写锁代码编写

读写锁:一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作,这种锁相对于自旋锁而言,能提高并发性。它允许同时有多个读者访问共享资源,

2017-05-30 20:09:19 561

原创 线程同步与互斥

多个线程同时访问共享资源可能会冲突。比如两个线程都要把某个全局变量加1,这个操作需要三条指令完成1 从内存读变量值到寄存器2 寄存器的值加13 将寄存器的值写回内存在“读取变量的值”和“把变量的新值保存回去“,这两步操作之间插入printf调用,它会执行write系统调用进内核,为内核调用别的线程提供了一个很好的时机。在一个循环中重复上述操作几千次,就会观察到访问冲突的现象

2017-05-26 16:45:33 195

原创 利用回调函数实现一个计算器,实现加减乘除操作

#define _CRT_SECURE_NO_WARNINGS#includeint Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x, int y){ return

2017-05-12 18:05:01 7534

原创 理解 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针

1  指针数组指针数组是存放指针的数组例如  int* arr[10]   整型指针数组,表示数组每个元素的类型都是int*          char* arr[5]   字符型指针数组,数组每个元素的类型都是char*          char** arr[5]    数组每个元素的类型都是char**定义一个字符型指针数组   char* arr[5]={"abc","

2017-05-07 22:50:38 326

原创 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。

(1)第一种实现方法#include #include #include int Add(int a, int b) { return a+b; }int Sub(int a, int b){ return a - b;}int Mul(int a, int b){ return a*b;}int Div(int a, int b){ return a /

2017-05-06 15:56:45 1016

原创 FILE结构体成员

C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开文件时,就建立了和文件的关系。     在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。流提供了文件和程序的通信通道。例如,标准输入流使得程序可以从键盘读取数据,而标准输出流使得程序可以在屏幕上输出

2017-05-01 20:01:09 4618

原创 将数组的元素逆序打印(用指针实现)

#includevoid reverse(int *left, int *right){ while (left < right) { int tmp = *left; *left = *right; *right = tmp; left++; right--; }}int main(){ int arr[10] = { 1, 2, 3, 4, 5, 6,

2017-04-27 20:38:10 1125

原创 C语言strncat函数的实现

strncat函数原型:char *strncat(char *dest,const char *src,int n)功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处‘\0’),并添加‘\0’实现:char *mystrncat(char *dest, const char *src, int n){char *ret = dest;asse

2017-04-27 20:17:26 1781

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除