
日常总结
文章平均质量分 82
猫呢被鱼吃了吗
这个作者很懒,什么都没留下…
展开
-
指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针
指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。 数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。 区分指针数组跟数组指针主要看变量是先跟‘’还是‘[原创 2018-01-27 11:38:31 · 155 阅读 · 0 评论 -
C实现迷宫问题
迷宫问题分析 用二维码创建一个m*n的迷宫地图,1表示通路,0表示障碍,从迷宫中寻找出路。迷宫问题大致有三种情况实现:使用递归和非递归方法实现简单的迷宫问题如果迷宫有多条出路,求最短出路针对复杂迷宫问题寻找最短出路下面对其依次进行分析:1、使用递归和非递归方法实现简单的迷宫问题 这里的简单迷宫问题就是只有一条出路,且出路不带环,实现它的主要思路就是应用回溯的思想...原创 2018-05-04 13:09:33 · 507 阅读 · 0 评论 -
TCP(传输控制协议)协议段格式
TCP全称传输控制协议(Transmission Control Protocol),是传输层的一条可靠地重点协议。TCP协议段格式 16位的源端口号:标示该进程自己 16位目的端口号:标示我要向哪个进程发送数据 32位的序列号/32位确认序列号:为了满足全双工的安全机制而存在的,它有以下四个功能:保证基本的可靠性是数据可以按序到达支持超时重传高效 4位的首部长度:表示...原创 2018-05-18 18:00:33 · 1129 阅读 · 0 评论 -
(Linux)线程基础
什么是线程线程是比进程的执行粒度更细的一个执行流(线程是进程的子集),是进程内部的执行分支(可理解为线程是在进程的地址空间内运行),是调度的基本单位。一个进程至少有一个执行线程Linux没有真正的线程,但它用进程来模拟实现线程,而这种进程被称为轻量级进程。线程用TCB管理,但是Linux下没有TCB,因此Linux用PCB模拟TCB,创建进程只有创建PCB,再分配资源即可,并且cup认...原创 2018-05-21 11:22:36 · 207 阅读 · 0 评论 -
死锁问题
死锁的定义如果一组进程中的每一个进程都在等待仅由改组进程中的其它进程才能引发的时间,那么该组进程就是死锁的。死锁的产生几种情况竞争不可抢占性资源引发死锁竞争可消耗资源引发死锁进程推进顺序不当引发死锁产生死锁的四个必要条件互斥条件请求和保持条件不可抢占条件循环等待条件互斥条件互斥条件也就是进程之间的互斥性,当一个进程访问某种资源时,该资源只能被一...原创 2018-05-28 16:03:58 · 326 阅读 · 0 评论 -
线程的同步和互斥
学习线程的同步和互斥,我们首先需要明白的就是同步和互斥,它们是为了什么。同步是为了在安全的条件下,使线程具有顺序性,而互斥是为了保证数据的安全性。线程互斥(mutex)为神马需要线程互斥?大多数情况,线程使用的数据都是局部变量,变量的地址空间实在线程栈空间中,这种情况下,变量归属单个进程,其他线程无法获取该变量。但有时,很多变量都需要线程共享,这些共享的变量称为共享变量,可以通...原创 2018-05-24 11:06:34 · 298 阅读 · 0 评论 -
Linux:进程间关系和守护进程
进程间关系几个基本概念1、进程组 每个进程不仅有一个进程ID,还属于一个进程组。进程组是一个或者多个进程的集合。每个进程组拥有一个唯一的进程组ID。每个进程组可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中一个进程存在,则改进程组就存在,这与其组长进程是否终止无关。 如上图,sleep了三个...原创 2018-06-01 17:33:53 · 307 阅读 · 0 评论 -
Linux:centos7更换阿里yum源
最近打算写python爬虫,但是这需要urllib2的一些库,这里就需要来安装python-pip来安装一些所需要的库,但是我使用的centos7的yum源是默认的,下载不了,所以就需要更改一下yum源改为国内的一些知名的yum源,我就将我的改为了阿里源,具体的操作步骤如下:1、打开yum源配置文件 cd /etc/yum.repos.d/ 2、备份一下原有的源,以备出错了可以更改回来...原创 2018-08-01 07:27:11 · 2627 阅读 · 0 评论 -
常出现程序崩溃的几种状况
常出现程序崩溃的几种状况程序崩溃对于程序猿来说,时经常出现的问题,如果你都没有出现过,那大佬快收下我的膝盖吧。程序崩溃一般都发生在运行时期,而崩溃的原因一般都是程序猿的失误所导致的,在这里我就总结了这几种程序崩溃的读取未赋值的变量这个错误一般是由于程序猿粗心大意,没有给变量初始化和赋值,导致该变量的值为脏值。函数栈溢出函数栈溢出一般是由两种情况引起的: 1、定义了一个...原创 2018-08-11 08:41:21 · 9063 阅读 · 0 评论 -
C++:强制类型转换
强制类型转换C++和C语言存在四种基本类型:整型,浮点型,字符型,布尔型。在C语言中,程序里时常会发生隐式类型转换和强制类型转换,但是他们却没有明显的区分,这就会让我们程序猿耗费多余的精力去区分它们,因此在C++里,就添加了static_cast、const_cast、reinterpret_cast、dynamic_cast,explicit四个关键字,来让我们程序猿很好的区分哪儿是隐式类型...原创 2018-08-13 08:22:21 · 1477 阅读 · 0 评论 -
C++:四种智能指针
智能指针智能指针在C++中非常常用,在学习指针指针的时候,发现创造它的大佬太牛逼了,为了以后学习,我就对它进行了一些总结为马产生了智能智能在平时写代码的时候,时常会忘记释放自己动态开辟出来的资源,因此我们在处理相关逻辑的时候就会变得异常的谨慎,但是即使这样,有一些隐形的一些问题,还是会导致资源被泄露了,让人防不胜防啊。有这样的困惑,就有大佬来帮我们解决这个困惑了,这不大佬们就创造出了智...原创 2018-08-08 21:16:08 · 1017 阅读 · 0 评论 -
用阿里云服务器充当TCP服务器的一些注意事项
最近几天学了TCP后就不仅仅想让其可以再局域网为生效,想让其在广域网访问,因此就将TCP服务器放在阿里云服务器上,就出现了下面的情况 显示bind错误,但是查看8080端口时,显示没被使用,这就让我有点懵逼了,最后请教了下大佬才知道,要通过广域网通信的时候,局域网和局域网之间通过路由器来通信,但是当我们使用阿里云ECS服务器的公网IP地址时,会被路由器自动的屏蔽掉,因此,我们此时填写IP时就不能...原创 2018-05-10 17:47:11 · 8923 阅读 · 2 评论 -
栈和队列面试题
一、最小栈 最小栈其实和栈没有什么区别的,唯一的区别在于最小栈是可以在O(1)时间内得到当前的栈空间里,最小的值。解决这个问题提供两种方法: Round1: 创建一个辅助栈,比较当前元素和辅助元素栈顶元素的大小 ...原创 2018-04-26 08:20:56 · 326 阅读 · 0 评论 -
自定义类型:结构体、枚举、联合
C语言的三种自定义类型:结构体,枚举,联合 一、结构体 1.结构体的声明 struct tag { member-list;//在C语言中定义结构体时,其成员变量不能为空 }variable-list; 例: struct student //最好不要省略结构体标签(tag),否则以后定义结构体变量的时候就必须在此处定...原创 2018-03-15 09:17:04 · 174 阅读 · 0 评论 -
Linux操作系统的基本指令及相关知识
一、Linux基本指令ls 主要用于查看目录下的所有子目录和文件或者文件名以及其他信息 常用选项 a 列出目录下的所有文件 i 输出文件的i节点的索引 k 以k字节的形式表示文件大小 l 列出文件的详细信息pwd 显示用户所在目录cd 将当前目录改变到指定目录 常用选项 .. 返回上一级目录 ~ 进入加目录touch 新建文件,更改日期时间mkdir 在当...原创 2018-03-21 09:26:51 · 160 阅读 · 0 评论 -
Linux开发工具
一、编辑器 WordPress开发人员对常用的代码编辑器进行的评分: 第一名:VIM Vim是WordPress开发人员中最流行的代码编辑器。它是免费的,在Linux开发人员中享有良好的声誉。该编辑器是开放源码并高度可配置的,它提供了跨平台兼容性。此外,它可以在Dos中工作。 Vim可能不会在新用户中受到欢迎,因为它具有一定的学习曲线。以下是Vim附加的部分功能: ·整合...原创 2018-03-21 12:07:39 · 281 阅读 · 0 评论 -
进程
一、进程的调度算法 进程的调度算法大致分为五种: 1、时间片轮转调度算法(RR):给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。2、先来先服务调度算法(FCFS):根据进程到达的先后顺序执行进程...原创 2018-03-21 16:51:53 · 230 阅读 · 0 评论 -
进程控制
一、进程的创建,终止,等待进程创建 创建进程主要有两个函数fork函数和vfork函数(头文件 unistd.h)。 fork函数创建进程时,它的父子进程代码共享,数据自己各自拷贝一份,也就是所谓的写时拷贝。使用fork函数有这两种情况: 父进程希望复制自己,使父子进程同时执行不同的代码段 一个进程要执行一个不同的程序fork函数调用失败时,主要原因是系统内的进程太...原创 2018-03-22 11:26:39 · 180 阅读 · 0 评论 -
字符串函数及字符串函数的实现(1)
C语言中关于字符和字符串的操作是非常多的,操作字符和字符串往往就要用到字符串相关的函数。因此在这里我们就先来了解下函数库中的字符串函数,并且自己实现字符串函数。 strlensize_t strlen ( const char * str );字符串是以‘\0’作为结束标志,strlen函数是用于求字符串的字符长度(不包括‘\0’),它的返回值是字符串‘\0’前字符的个数。s...原创 2018-04-03 15:46:56 · 392 阅读 · 0 评论 -
链表经典练习题
链表经典练习题 一、从尾到头打印单链表 因为单链表是有指向的,前一节点只能指向下一节点,因此为了实现从尾到头打印链表可以使用一种非常简单的方法就是递归,先遍历再输出。 代码实现:void LinkListReversePrint(LinkNode* head){ 85 if(head == NULL){ 86 return;//空链表 8...原创 2018-04-16 14:55:57 · 23536 阅读 · 5 评论 -
静态顺序表的实现(C)
引言 要实现静态顺序表,我们首先需要知道什么是顺序表。 顺序表是指用一段地址连续的存储单元依次存取数据元素的线性结构。 顺序表采用的是连续的地址空间,这是与链表的本质区别。对于连续的地址空间,我们一般采用数组,而数组又分为静态数组和动态数组。我们本次要实现的就是采用静态数组的顺序表。 实现静态顺序表的操作静态顺序表的结构体typedef char SeqListType;...原创 2018-03-29 11:03:15 · 524 阅读 · 0 评论 -
进程间通信(Linux)
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC方式包括管道(匿名管道和命名管道),消息队列,共享内存,信号量等。一、管道管道是Unix中最古老的进程间通信方式,我们把从一个进程连接到另一个进程的一个数据流称为“管道”。管道(匿名管道)的特点:只能用于具有共同祖先的进程(具有血缘关系的进程)之间进行通信;通常,...原创 2018-04-30 12:22:07 · 185 阅读 · 0 评论 -
Linux的系统调用open,write,read,close,及相关总结
在进行C语言学习的时候我们了解到了C语言相关的一些IO操作,如fopen,fwrite,fread,fprintf,fclose等相关函数,他们都是由C库函数提供的一些函数,是将操作系统的系统调用加以封装,虽说Linux是由C语言实现的,但为了使我们更加的了解Linux,就需要了解更接近与底层的一些IO操作,因此就需要来了解下基本的系统调用—open,write,read,close首先我们来...原创 2018-04-20 11:32:13 · 1103 阅读 · 0 评论 -
Linux文件系统
在Linux下,我们要查看文件信息可以使用ls -l命令[rlh@localhost ~]$ ls -l总用量 14440drwxr-xr-x. 2 root root 25 4月 17 21:42 bitdrwxr-xr-x. 2 rlh rlh 6 3月 29 22:02 Desktopdrwxr-xr-x. 2 rlh rlh ...原创 2018-04-20 12:39:05 · 229 阅读 · 0 评论 -
Linux日常总结:cookie与session
参考:https://www.cnblogs.com/lonelydreamer/p/6169469.htmlcookie和session出现的原因其实它俩之所以出现,就是为了解决HTTP协议无状态的缺陷的。HTTP协议本身是无状态的,这和它本来存在的目的是一样的,因为客户端每次只需要在服务器上下载某些文件,客户端和服务器并没有太大的意义去记录彼此过去的行为,但是人总是爱偷懒的嘛,作为用户,如...原创 2019-01-18 15:09:05 · 656 阅读 · 0 评论