自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kkkkde的博客

既要低头做事,也要抬头看人

  • 博客(50)
  • 收藏
  • 关注

原创 博客迁移again

又搬家啦新博客地址见。

2024-03-17 18:54:32 301

原创 博客迁移通知

博客已迁移至 https://goforest.wiki 点击继续关注我的新动态~

2020-06-24 18:45:39 828

原创 记使用一次cmake

本文在前提为:假设你已经安装过cmake最基础最简单的模板

2019-08-31 21:30:30 210

转载 使用minizip解压缩多个文件(基于zlib)

写作目的:之前在网上看到很多人在寻找可以解压缩多个文件的程序,其中有尝试zlib的,使用zlib的源码可以生成后缀为点gz的压缩文件,但是一次只能压缩一个文件,无法压缩多个文件。其实,zlib的源码包里有一个第三方的contrib已经实现解压缩多个文件,这就是minizip。下面就来看看是怎么操作的。下载zlib源码去zlib网站下载源码并解压, 这里选择tar.gz格式的源码包下载(...

2019-08-15 15:21:57 1452

原创 c++11笔记

c++11笔记整理,备用防忘,归期岂烂漫

2019-07-31 11:04:59 227

原创 虚拟内存小结

虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互。他为每个进程提供了一个大的、一致的和私有的地址空间。

2019-07-31 10:52:08 519

原创 ping一次的背后

当你ping的时候,你知道背后发生了什么吗?

2019-06-23 21:23:24 1214

原创 进程调试

GDB默认只调试父进程,如果在子进程中打断点,那么子进程会接收SIGTRAP信号调试前的配置detach-on-fork:该属性决定了gdb是同时调试父子进程,还是在fork了子进程之后,将子进程分离出去。On:子进程(或者是父进程,取决于gdb在初始时,要调试的进程,也就是follow-fork-mode的值)Off:同时调试父子进程。一个进程处于被调试的状态,而另一个则被gdb挂起f...

2019-03-20 08:42:10 755 3

原创 谈listen与backlog

首先我们先来谈一下listen函数。int listen(int sockfd, int backlog);一、listen函数仅由TCP服务器调用,它做两件事情:将一个主动套接字(且未连接的套接字)转化为被动套接字来指示内核“应该接受指向该套接字的连接请求”。ps:当socket函数创建一个套接字时,他是被假设为一个主动套接字的,所以才需要此处套接字的转化。 主动套接字是可以调用co...

2019-03-16 15:18:40 1050 5

原创 三次握手与四次挥手

三次握手:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;(SYN:同步序列编号)第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包,向服务器发...

2019-03-15 17:16:05 224

原创 http服务器(三) MyWebServer分析与实现

使用c++编写,基于epoll+线程池实现的小型web服务器。具体实现:启动服务器,在浏览器中发送地址记录过程:一进来先注册socket事件完成三次握手,建立线程池线程池内部开始运转,在构造函数中开始创建线程并调用类的工作函数使队列没有任务状态下的线程等待),主线程进行设置表单事件,进入轮播循环等待客户端连接,若是新连接,在表单中注册事件,若是已有连接,查看任务(当为有数据写事件入...

2019-03-03 19:00:25 6394

原创 网络传输遇到乱码问题

写的服务器打开一个网页,汉字显示乱码,英文正常显示。排查许久,因为服务器接受请求发送网页,发送端专门标识了charset:utf-8 ,查阅的资料都说要将编码转义,设置为utf-8sprintf( header, "HTTP/1.1 %d %s\r\nServer: okokme\r\nContent-Length: %d\r\nContent-Type: %s;\r\ncharset:utf...

2019-02-28 01:41:28 1194

原创 HTTP服务器(二)

基于CGI,HTTP小规模服务器的具体实现步骤(HTTP/1.0)

2019-02-01 22:14:35 274

原创 HTTP服务器(一)

基本疑问知识点荟萃

2019-02-01 22:10:58 9759 1

原创 linux聊天室知识点整理

标签: linuxc1.pthread_create函数函数原型:int pthread_create(pthread_t *tid, const pthread_attr_t *tattr, void*(*start_routine)(void *), void *arg);功能:创建一个新的线程,并将线程加入当前进程头文件:#includepthread并非linux系统的默认库...

2019-01-20 22:17:02 303

原创 OSI七层模型各个分层的作用

专门百度了下 “广为应用的是tcp/ip 为什么还要学习七层模型”原谅我的无知...

2019-01-19 23:46:04 1571

原创 DHCP的工作原理

—要配置好一个网络环境,使计算机顺利可以顺利Internet,那么计算机里一定要有IP、netmask、network、broadcast、getway、DNS IP等网络参数才行。其中 IP、network、netmask、broadcast、gateway、都可以在/etc/sysconfig/netmask-scrips/ifcfg-eth[0-n]这个文件中定义。DNS服务器的地址则可...

2018-12-11 02:03:10 11316 2

转载 十大经典排序算法

十大经典排序算法(动图演示) 0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线...

2018-11-25 20:53:41 195

原创 迷宫问题

标签: 数据结构算法题目 A: 5×5 迷宫输入输入的数据仅有一组,为一个五行五列的矩阵。矩阵的每一行在一行以空格为分隔符的输入中表示。例如,若输入为:0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0,则表示输入为矩阵:[0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0]。该矩...

2018-10-23 17:10:49 260

转载 bfs和dfs框架

框架:BFS:#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int maxn=100;bool vst[maxn][maxn]; // 访问标记int dir[4][2]={0,1,0,-1,1,...

2018-10-09 19:03:19 526

原创 算术表达式转后缀表达式求值

数据结构c语言算术表达式求值(转化为后缀表达式的方法)(双栈:符号栈和数据栈)

2018-10-06 17:12:23 8376 6

原创 暑假byebyebye

2018的暑假byebye啦

2018-09-02 16:49:39 249

原创 setbuf与fflush

setbuf 程序输出有两种方式:一种是即时处理方式,另一种是先暂存起来,然后再大块写入的方式,前者往往造成较高的系统负担。因此,c语言实现通常都允许程序员进行实际的写操作之前控制产生的输出数据量。这种控制能力一般是通过库函数setbuf实现的。如果buf是一个大小适当的字符数组,那么:setbuf(stdout,buf);语句将通知输入/输出库,所有写入到stdout的输出...

2018-09-02 14:39:43 867

原创 小白来学着写makefile

—起先是对Makefile这个东东并不感冒,觉得很麻烦啊,好像也没什么用啊.直到真正写了个对于自己来讲算大型的项目,才真正知道了Makefile的好处.起初的缘分来源于觉得需要编译运行时,需要写一长串东西很麻烦,就在Makefile文件里写了个编译运行的shell命令,(这个操作被学长们称作很骚…) 只需make一下,一步搞定~后来还是要了解一下为什么可以这么做,原来 make只是...

2018-09-01 18:38:10 320

原创 [Linux网络编程]之epoll

为什么要用epoll,用了epoll还用不用多线程或者多进程了?高性能的网络服务器需要同时并发处理大量的客户端,而采用那种对于每个连接使用一个分开的线程或进程的方法效率不高. 因为在处理大量的客户端的时候,资源的使用以及进程上下切换会影响服务器的性能. 那么有一个可代替的方法就是在单一的线程中使用非阻塞的I/O. epoll与多线程与多进程是互不冲突的.使用了epoll并不是说就不能用多线...

2018-08-20 08:23:21 514

原创 [Linux网络编程]套接字编程

最开始的学习疑问,网络编程上的这些乱七八糟的名词这些都是用来干什么的?地址:为了使网络上的计算机通过唯一标识进行相互间通信 端口:解决多个程序要同时访问网络 IP协议:确定到达目的地的路由 UDP协议:向应用程序提供一种面向无连接的服务 TCP协议:提供一种面向连接的,可靠的数据传输服务套接字是什么 在两个程序进行通讯连接的一个端点.是连接应用程序和网络驱动程序的桥梁.网络应...

2018-08-15 09:17:48 2415 2

原创 [Linux系统编程]线型控制之条件变量

线程控制之条件变量标签: 线程的可结合和分离上一次我写了互斥锁,这次来写一下总能用到互斥锁的条件变量. 因为要保证条件变量能被正常的修改,条件变量就要受到特殊保护,实际使用的过程中互斥锁扮演者这样一个必不可少的保护者的角色. 条件变量是利用线程间共享的全局变量进行同步的一种机制.(条件变量宏观上类似于if语句,符合条件就能执行某段程序,否则只能等待条件成立 ) 使用条件...

2018-08-13 08:17:03 152

原创 [Linux系统编程]线程控制之线程同步

线程最大的特点就是资源的共享性,而资源共享中同步问题是多线程编程的难点. Linux系统提供了多种方式处理线程间的同步关系,其中最常用的就是互斥锁,条件变量和异步信号.下面就来让我们看看这些都是怎么用的吧(ˇˍˇ)(一)互斥锁举个栗子: 假如现在有一个办公室每次只能进一人,你现在要在这个房间奋斗早早完成工作好把工作室让给别人用-.- 但是由于工作需求,你在进行工作的时候会不停进出...

2018-08-10 11:30:58 224

原创 Github工作及操作

Github的工作原理标签: 未分类—这几天一直都在使用Github提交代码,日程。但是只是简单的git add, git push感觉懂得很皮毛的皮毛。有点好奇团队的工作原理,那就来记录一下吧^O^ [x] 蓝色代表功能分支,负责开发某一工作的工作流。[x] 橙色代表功能总汇分支,里边是所有功能的汇总[x] 黄色表示测试分支,用于产品内侧[x] 紫色表示bug修复分支,只...

2018-07-31 17:18:44 747

原创 [Linux系统编程]之守护进程

守护进程标签: Linux系统编程之进程Daemon(守护进程)是运行在后台的一种特殊进程.没有控制终端与之相连. 特点:独立于终端控制,周期性地执行某种任务 守护进程启动方式: 从启动脚本/etc/rc.d; 由作业规划crond启动; 又用户终端(通常是shell)执行编写守护进程要点: * 让程序在后台执行.方法是fork产生一个子进程,然后使得父进程退出.pid_...

2018-07-31 09:30:25 284

原创 [Linux系统编程]简化版chmod命令实现

简化版chmod命令标签(空格分隔): Linux—使用系统调用实例在实现之前首先说一下#include<一个简单的系统编程:#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>int main(int arg...

2018-07-30 00:36:59 360

原创 [Linux系统编程]之初级认识文件操作

标签: Linux系统编程Linux下系统编程是什么?程序员使用系统调用或c语言本身所携带的库函数来设计和编写具有某一特定功能的程序,就为系统编程。(比如下文中我自己写的my_chmod指令)系统调用是什么?系统调用是操作系统提供给程序员使用的接口,(如作为系统调用提供的open函数用于打开一个文件,又如c语言的函数库也是系统调用实现的,只不过它封装了系统调用,并在此基础上...

2018-07-30 00:21:52 270

原创 [Linux系统编程笔记]对目录进行操作

标签: Linux系统调用编程目录的创建和删除目录的创建可以由mkdir系统调用来实现 其函数原型为#include<sys/types.h>#include<sys/stat.h>int mkdir (const char *pathname, mode_t mode);mkdir创建一个新的空目录。空目录中自动创建. 和 .. 目录项 所...

2018-07-29 23:22:16 318

转载 Linux下各目录的作用

转载于此处https://www.cnblogs.com/yinheyi/p/6279974.html,为了作个笔记,方便自己以后查看 下面内容来自:http://www.linuxidc.com/Linux/2015-04/116032.htm,学会尊重别人的劳动成果。Linux各个目录的作用及内容1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于Windows操...

2018-07-23 17:54:16 275

原创 西邮杯acm试题

—明天c语言机试赶紧花一天时间把西邮杯写下练练手… 写的脖子痛…问题:可逆素数题目描述若将某一素数的个位数字顺序颠倒后得到的数任然是素数,则此素数称为可逆素数判断给定的n个数据是否是可逆素数。输入第一行为n值,第二行输入n个数字,以空格间隔。输出输出n行,第一行的格式为【是可逆素数】(或者【是素数,但不是可逆素数】,用中文逗号隔开,或者【**不是素...

2018-07-10 00:47:20 506

转载 scanf的用法及scanf中有\n的问题

—去年c语言上机就死到这里,今年临近期末赶紧来了解下不能又死了…scanf()函数的原理想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组。 当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入。 现在假设你的缓冲区里有:abcd\n1234\n (其中\n是回车符)执行:scanf(“%s”,name);的时候,由于...

2018-07-09 16:19:53 20616 5

原创 [笔记]c语言关于多种格式文件有关知识

为什么要有这么多种格式的文件呢?原因很简单,它们各有各的用途,区分就在于这些文件里面存放的数据集合所遵循的存储规则不一样。具有一定格式规则的文件一般是二进制存储的。文件无非就是一段数据的集合,这些数据可以是有规则的集合,也可以是无序的集合。操作系统也就是以文件为单位对数据进行管理的。 也就是说,要访问外部介质上的数据,必须先按照文件名进行查找,然后从该文件中读取数据。要想写数据到...

2018-06-26 20:48:04 451

原创 [笔记]c语言文件写入读出的具体应用代码

简单的写入一个文件以及从文件中读取输出:#include<stdio.h>mian(){ int a[3]={100,200,300},a1[3]; //一份定义俩个变量将a读入文件,从文件中读取到a1 float b=123,45678,b1; FILE *fp; if((fp=fopen("data.txt","w"))==NULL) ...

2018-06-26 20:43:17 943

原创 [笔记]IEEE标准浮点数格式

标签: 杂—复习下计导位次存储浮点表示法允许小数点浮动,用于维持正确度或精度一个数字的浮点表示法由3部分组成:符号、位移量和定点数。 余码系统都是正数、 单精度 32位 双精度 64位 IEEE标准浮点数的存储:       &amp

2018-06-26 20:13:16 3182

原创 [心得]c语言关于存储字节

标签: c语言—今天学校组织了认识实习,一个老师给我们出了一道c语言题,发现自己还有很多欠缺了解的不透彻的地方。或者是以前知道,但是最近用不到,就就此遗忘掉了,不过学习就是这样一个过程嘛。每一次复习回顾都会加深,拥有新的理解和收获。就来总结总结吧~题目如下:char a = 255;int d = a+1;int c = a;printf("%d",a);printf("%d"...

2018-06-25 19:20:34 1346

空空如也

空空如也

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

TA关注的人

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