自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 黑马云盘项目总结

整体的架构图1.分布式存储器 fast-dfs2.缓存数据库 redis3.数据库 MySql4.HTTP协议5.服务器nginx6.动态请求处理fastcgi spawn-fcgi7.客户端Qt根据客户端的功能分模块总结客户端的目录构成common公共接口,里面就是各个模块会用到的一些公共接口conf:配置文件的目录images:软件中用到的图片myselfWidget 自绘控件服务器设置功能服务器的配置信息是写进配置文件的配置文件的格式是JSON,web

2021-12-24 09:40:48 2799

原创 static详解

静态变量函数中的变量,类中的变量,用static修饰函数中的静态变量当变量用static修饰时,生命周期和程序的生命周期一样。即使多次调用该函数,静态变量也只分配一次空间,而且它的值还会累计使用。这对于需要先前存储函数状态的任何应用程序有非常的作用。#include <iostream>#include <string>using namespace std;void demo(){ //static var static int var = 0;

2021-12-24 09:36:35 749

原创 字节对齐(实战版)

什么是字节对齐​ 计算机存储的基本单位是字节(byte),但在读写内存的时候,我们并非一个字节一个字节的读取,而是2,4,8的倍数来读取,所以就对基本数据类型的地址做出了一些限制,它的地址也必须是2,4,8的倍数。那么数据类型就需要按照一些规则在空间上进行排列,这样就产生对齐。对齐原则规则1:结构体变量的首地址能够被其对齐字节数大小所整除规则2:结构体每个成员相对结构体首地址的偏移都是成员大小的整数倍,如不满足,对前一个成员填充字节以满足规则3:结构体的总大小为结构体对最大成员大小的整数倍,如不

2021-12-24 09:34:07 741

原创 动态库和静态库

使用库文件的优点项目代码更加简洁,没有过多的源文件需要管理保护项目代码,以库的方式提供给使用者,使用者无法知道源代码静态库静态库的制作对源文件编译得到.o文件(加参数 -c)ar进行打包,生成.a静态库文件gcc *.c(源文件) -c ar rcs libxxx.a *.o - c 创建一个库--创建 - s 创建目标文件索引--编号索引 - r 库中插入模块静态库的使用需要静态库文件和对应头文件gcc main.c -o app -L 库的路径(绝对或者相对都

2021-12-24 09:29:00 681

原创 可变参函数

C库宏实现#include <stdarg.h>void va_start(va_list ap,last_arg);参数: ap va_list 类型,va_start 函数用来初始化ap 变量,它用来存储通过 va_arg 获取额外参数时所必需的信息 last_arg 是最后一个传递给函数已知的固定参数,即省略号之前的参数作用: 初始化ap变量调用时机: 在va_arg 和 va_end 之间被调用 //-------------------------

2021-12-23 16:54:36 362

原创 IPC-管道

管道进程间通信的方式之一本质是对内核缓冲区的读写,存储在一个环形队列中管道对应的内核缓冲区的大小是固定的,默认为4KB管道分为读写两端,数据从写端进入管道,从读端流出管道管道中的数据只能读一次,相当于出队列管道是单工的,数据单向流动,从写端到读端对管道的读写操作都是阻塞的读管道:当管道中没有数据,读操作阻塞;有数据阻塞解除写管道:写满后,写操作阻塞;有空闲后,继续写入管道的分类匿名管道:只能实现血缘关系的进程间通信创建匿名管道#include <unistd.h&

2021-12-23 14:01:10 246

原创 git学习

什么是git?分布式版本控制软件针对这三个名词的解释软件:git是一个软件,需要你安装在电脑本地才可以使用。版本控制:你的一篇论文,需要反复修改和保留历史版本,比如论文有修改版,完成版,终极完成版。做好版本控制,有利于回滚和修改分布式:版本不但在本地存在一份,远端也完全存在一份一样的。每一个安装了git的主机上都有一个版本备份,这个备份包括所有的历史版本和修改版本。安装git安装git一、我接下来要干啥?1. 新建一个文件夹,或者进入你要做版本控制的目录2. 执行

2021-12-23 13:58:24 65

原创 三次握手-四次挥手

1.TCP​ TCP 是一种面向连接的单播的,可靠的,流式传输协议,位于网络模型的传输层,为应用程序间提供数据传输。2.TCP 连接的建立和终止1.服务器调用socket,bind ,listen 完成初始化,服务器做好准备等待外部的TCP连接的到来,这种方式为被动打开,这个时候服务器处于LISTEN状态,等待客户端的连接请求。2.客户端通过connect发起主动打开,向服务器发出连接请求,发送请求标识位SYN=1,同时发送初始化序号seq=x.SYN报文不允许携带数据,消耗一个序号。

2021-12-23 13:46:23 1263

原创 shell脚本简单总结

1.shell脚本的执行1.给脚本赋予执行权限后,./xxx.sh2. . xxx.sh3. source xxx.sh2.shell变量1.环境变量 printenv 显示当前shell进程下的环境变量2.本地变量 设置本地变量 VAR=10 VAR1="hello" 使用本地变量 $VAR $VAR1 本地变量变成环境变量 export VAR=10 取消本地变量 unset VARset 查看shell进程的本地变量和环境变量没有定义的变量取值是空字.

2021-12-23 13:36:44 106

原创 openssl-1.1.1g移植编译

依赖包的信息过程安装OpenSSL的时候因为新环境的GLIC版本太低,就需要安装高版本的。高版本的GLIC依赖的包中,本机的ld,as,gcc版本太低,所以需要先升级这三个依赖包。ld,as依赖包通过binutils版本包进行升级,binutils的安装参考文档gcc需要单独的进行升级,非常耗时,在安装的过程中会报错,需要安装相关的依赖包``gcc需要的依赖包为flex-2.6.4.1.tar.gz,而flex依赖的包为m4-1.4.13.tar.gz编译安装openssl步骤:wi

2021-12-23 13:18:59 1393

原创 大小端与网络字节序

1.大小端大端字节序:高地址储存在低位小端字节序:高地址存储在高位2.判断#include <stdio.h>int main(){ int a = 1; char ch = *(char*)&a; if(ch) printf("little\n"); else printf("big\n"); return 0;}3.共用体判断#include <stdio.h>unio

2021-12-23 13:09:57 501

Node Js In Action(中文版)

Node Js In Action(中文版)

2018-06-19

空空如也

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

TA关注的人

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