- 博客(118)
- 资源 (21)
- 收藏
- 关注
原创 Error injecting: org.apache.maven.plugin.war.WarMojo
1) 在pom.xml文件中增加。然后重新mvn install。
2023-05-14 20:05:56
2159
原创 webpack 插件实战笔记(一)
cnpm init111Air:webpackSerial1 i$ cnpm initThis utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sensible defaults.See `npm help json` for definitive documentation on these fi...
2020-06-26 18:00:21
1561
原创 webpack学习笔记
简介手写的typescript、less、jpg===》Loader===》js、css、png静态资源文件。webpack 里,一张图片、一个css、一个字体都会被称为模块。webpack 作用是处理模块间的关系,并把他们进行打包。举例加载 css 大多通过<link>标签引入 css 文件,而在 webpack 里,直接在一个.js 文件中导入,比如:import ’ src/styles/index . css ’;组成webpack 的主要适用场...
2020-06-14 16:19:30
446
原创 解决mac安装hexo报错
前言mac OS安装hexo 的时候报错。报错信息Error: EACCES: permission denied, mkdir ’解决方法sudo npm install -g hexo --unsafe-perm=true --allow-root
2019-11-09 11:35:26
706
原创 Java抽象类和接口的异同
Java抽象类和接口的异同小总结相同点: 1)接口不是类,不能使用new运算符实例化一个接口。抽象类也不能实例化。接口、抽象类能声明变量。不同点: 1)一个类可以实现多个接口。但是只能扩展一个类。接口不是类,抽象类是类。 2)接口不可以实现具体方法,抽象类可以实现具体的方法。 ...
2018-10-13 16:50:07
264
原创 -fpic 与-fPIC的区别
-fpic 与-fPIC的区别前言 在编译动态库的时候,我们应该需要使用-fpic 或-fPIC参数。如下所示: 然后,使用gcc或g++ 命令生成动态库pic 与PIC的异同 相同点:都是为了在动态库中生成位置无关的代码。...
2018-08-22 10:31:17
40862
1
原创 valgrind memcheck 检测机制学习总结
valgrind memcheck 检测机制学习总结1、Valid-value (V) bits 作用:建立和维护值的有效性。 Memcheck实现了一个与真实CPU相同的合成CPU。 真实CPU处理,存储和处理的每一位(字面)数据在合成CPU中都有一个相关的“有效值”位,表示附...
2018-08-19 23:34:00
717
原创 gcc 编译优化标志说明
gcc 编译优化标志说明 在编译过程中我们经常会使用gcc及其相关的编译参数来编译源文件。编译Nginx编译debug版本使用的gcc 参数如下: -pipe -O -W -Wall -Wpointer-arith -Wno-unused-paramete...
2018-08-19 23:16:00
2513
原创 memmove 与memcopy 的区别
memmove 与memcopy 的区别内存重叠的概念 顾名思义,重叠就是有重复的部分。在字符串拷贝的过程中,还没被拷贝就已经被覆盖了原来的值。内存重叠在拷贝的过程中指源指针开始的内存与目的指针指的内存有重叠。我们可以在同一个数组中模拟内存重叠的现象。 ...
2018-08-13 16:46:24
694
原创 fork 与vfork 的异同
vfork 与fork异同总结前言 调⽤fork或vfork函数是Linux创建⼀个新进程的⽅法.fork 由fork创建的新进程被称为⼦进程(child process)。该函数被调⽤⼀次,但返回两次。两次返回的区别是⼦进程的返回值是0,⽽⽗进程的返回 值则是新⼦进程的进程ID...
2018-08-08 16:51:59
1241
原创 C程序的内存布局
C程序的内存布局C程序的典型内存表示由以下部分组成: 1.文本段(CPU 执行的机器指令) 2.初始化数据段(数据段) 3.未初始化的数据段(也称bss段) 4.栈(自动变量...
2018-08-08 14:21:42
764
原创 在保证Nginx正常处理请求的情况下升级Nginx
在保证Nginx正常处理请求的情况下升级Nginx 前言 Nginx是一个功能强大的Web服务器,用于服务于世界上许多最受欢迎的站点。 在本博客中,我将演示如何在不丢失客户端连接的情况下升级Nginx可执行文件。 升级方法 Nginx通过在服务启动时生成主进程来工作。同时,主服务会启动一个或多个处...
2018-08-06 17:48:50
529
原创 linux 系统中比较重要的库
linux 系统中比较重要的库在Linux平台开发过程中,有一些库很重要。因此在这里简单记录一下。librt 库的重要性librt库在Linux系统中很重要,这个库包括异步I / O,消息队列,进程调度,实时信号扩展,信号量,共享内存对象,...
2018-08-02 17:26:03
4095
原创 TCP、UDP协议学习总结
TCP、UDP协议学习总结TCP/IP 协议族 互联网协议族(英语:Internet Protocol Suite,缩写IPS) 是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP...
2018-07-17 01:54:39
1198
原创 链表总结(一)
前言 链表在组织大量数据时候效率非常高,但是操作都是使用指针进行操作,比较容易出错。因此,掌握链表的操作很重要。测试例子及说明 下面的例子主要实现链表节点的插入、删除链表节点、追加节点到链表、遍历链表节点。#include <stdio.h>#include <stdlib.h>//定义链表节点 struct node { int data; str...
2018-07-05 02:37:12
663
原创 学习RSA 算法
学习RSA 算法概述 RSA 算法目前是非对称算法领域里家喻户晓的算法。因此很有必要学习。密钥的生成。 取p、q两个大的互质的数。 n = p*q 。e与(p-1)*(q-1) 互质。 n 和e 拿来作为公钥。 求得(p-1)*(q-1)最小公倍数为b. 且令 d為同餘方程式 ex≡1(mod b) 中的最小正整數解。 在RSA中将n和e封装成公钥,n和d封装成私钥...
2018-06-28 02:24:14
350
原创 位移相关的算法举例
位移相关的算法举例问题:在一个unsigned int 变量查找位为1的个数。可参看:https://en.wikipedia.org/wiki/Hamming_weight 经过自己的思考我整理出如下程序:#include <stdio.h>int oneBitCount(unsigned long long n){ unsigned int c =0 ; wh...
2018-06-27 00:21:43
960
原创 OpenSSL 握手过程及重要操作
OpenSSL 握手过程及重要操作概述 大部分的网站都是支持SSL协议来保证数据在传输过程中的安全。因此了解OpenSSL握手过程及重要操作很重要。使用RSA密钥交换算法时的标准SSL握手主要步骤如下:1. Client Hello 客户端发送给服务器端需要的信息。 这些信息包括客户端SSL版本号,cipher设置,会话特定数据。对应于上图中的步骤【1】.2.Server Hello ...
2018-06-24 18:35:00
4969
1
原创 XSI IPC-共享存储总结(一)
XSI IPC-共享存储总结(一)XSI IPC-共享存储 有三种XSI IPC,它们分别是消息队列(msg)、信号量(semaphore)、共享存储(shm)。XSI IPC函数是紧密的基于System V的IPC,并且不使用文件系统命名空间,而是自行一派,定义了它们自己的命名空间。 共享存储允许两个或多个进程共享一个给定的存储区。进程之间数据的交换不需要复制到各自进程,因此共享存储...
2018-06-18 22:34:14
831
原创 管道PIPE_BUF说明
管道PIPE_BUF说明 FIFO被称为命名管道。PIPE也是管道。由于pipe和FIFO本质上都是管道,不同点就是创建方式不一样、FIFO多个进程使用(可以没有共同祖先)、FIFO多个进程通信。因此,FIFO的测试demo就不多介绍了。本博客主要记录管道的PIPE_BUF,即管道的缓存大小。PIPE——BUF POSIX.1规定当写入管道的长度小于PIPE_BUF字节时必须是原子的:...
2018-06-17 00:10:42
4503
原创 进程通信—管道
进程通信—管道概述 pipe函数创建一个管道,一个可用于进程间通信的单向数据通道。 数组pipefd用于返回两个指向管道两端的文件描述符。 pipefd [0]指的是管道的读取端。 pipefd [1]指的是管道的写入端。 写入管道写入端的数据由内核缓冲,直到从管道的读取端读取。 接口说明#include <unistd.h>int pipe(int pipefd[2]);#de...
2018-06-16 16:32:01
924
原创 epoll 总结
epoll 总结epoll概述 在网络通信中,由于网络环境复杂、程序的健壮性不佳等因素的存在,会造成通信双方不能正常通信。 常见的不稳定因素如下: 1)服务器进程终止。客户端在不知道服务器进程已终止的情况下发送数据给服务器。如果客户端程序 没有处理SIGPIPE信号,客户端程序会崩溃。 2)客户端与服务器的网络不通。客户端发送的数...
2018-06-12 00:54:50
2316
原创 异步I/O(一)
异步I/O(一)概述 AIO可以一次性发出大量的read/write调用并且通过通用块层的IO调度来获得更好的性能,用户程序也可以减少过多的同步负载,还可以在业务逻辑中更灵活的进行并发控制和负载均衡。 POSIX异步I/O(AIO)接口允许应用程序启动一个或多个异步执行的I/O操作。应用程序可以选择以各种方式通知I/O操作的完成:通过传递信号,通过实例化线程或运行完后没有通知。 ...
2018-06-11 00:05:33
1360
原创 进程间数据共享--文件与内存的映射
进程间数据共享--文件与内存的映射前言 在运行strace -c nginx的时候,我们可以看出mmap、mprotect和munmap使用的比例是很高的。因此可以看出nginx运行的时候有很大一部分时间在处理文件与内存之间的映射。接口说明mmap mmap在调用进程的虚拟地址空间中创建一个新的映射。 #include <sys/mman.h> void *m...
2018-06-09 12:13:03
1271
原创 调试神器之strace
调试神器之strace概述 strace是一个有用的诊断,调试工具。通过追踪甚至普通的程序,可以了解到一个系统和系统调用的很多事情。被跟踪中的每一行都包含系统调用名称,后跟括号中的参数及其返回值。每个系统调用的名称,参数及其返回值都打印在标准错误或用-o选项指定的文件上。strace 常用参数说明接下来我列出常用的几个参数并举例说明,-c 计算每个系统调用的运行时间,调用和错误,并打出报告。...
2018-06-07 01:01:38
450
原创 进程同步方式(一)--记录锁
进程同步方式(一)--记录锁记录锁定义 一个进程正在读或修改文件的某个部分时,可以使用记录锁锁定文件的一个区域(也可能是整个文件)。它是一个字节范围内的锁。接口声明 POSIX记录锁是使用fcntl 函数实现。Linux系统支持POSIX标准。 #include <unistd.h> #include <fcntl.h> int fcntl(i...
2018-06-06 19:35:19
1519
原创 阻塞IO与非阻塞IO
阻塞IO与非阻塞IO阻塞IO 默认情况下,Linux系统上的所有文件描述符都以阻塞模式开始。 这意味着I / O系统调用如读取,写入或连接可能会阻塞。 如果你在stdin上调用read,那么你的程序将被阻塞,直到数据实际可用,例如当用户实际上在他们的键盘上物理键入字符时。具体来说,内核会将进程置于“睡眠”状态,直到数据在stdin上可用。 网络传输中,如果你尝试从TCP套接字读取,则...
2018-06-02 11:41:29
557
原创 多级证书验签
多级证书验签#!/bin/shif [[ "$1" = "" || "$2" = "" ]]; then echo "certSignVerify.sh CAfiles(自签证书或多级证书) certfile " exit 0;fi#除了最后一个参数,其他参数为CA级证书touch tmpca.cercount=$#tmp=1for i...
2018-05-16 14:44:01
1264
原创 openssl 生成X509 V3的根证书及签名证书
openssl 生成X509 V3的根证书及签名证书在测试的时候有时需要使用证书。因此使用OpenSSL创建自签名根证书,使用根证书签发证书显得很重要。1、生成根证书及自签名证书1.创建根证私钥 openssl genrsa -out root-key.key 10242.创建根证书请求文件 openssl req -new -out root-req.csr -key root-ke...
2018-05-16 10:48:22
20310
原创 信号那点事(二)-信号集及相关操作
信号那点事(二)-信号集及相关操作前言 POSIX.1 定义了一个数据类型sigset_t用于表示信号集。 使用信号集处理信号的方式与原来的信号方式不一样。主要体现在sigaction函数上。一旦对给定的的信号设置了一个动作,那么在调用sigaction显示的改变信号的处理方式之前,该设置就一直一样。 信号集操作增加信号到信号集int sigaddset(sigset_t *set, ...
2018-05-10 13:28:24
305
原创 机器学习数学基础(二)
机器学习数学基础(二)前言 概率密度函数和分布函数是机器学习的回归中重要的基础。因此学习概率密度函数和分布函数很重要。随机变量的定义 设随机试验样本空间为S={e}。X = X(e) 是定义在样本空间S上的实值单值函数。称X=X(e)为随机变量。也就是要求对于任意实数x,集合{e|X(e) =< x}有确定的概率。否则x没意义。 离散型随机变量 ...
2018-05-06 12:36:43
1329
原创 机器学习之数学基础(一)
机器学习之数学基础(一)前言 统计学是机器学习重要的一门基础性学科。很多机器学习相关的模型都是基于统计学。由此可见统计学对机器学习的重要性。本文将总结统计概率学的相关概念,这对随后的机器学习的理解有很大的帮助。样本空间 将随机试验E的所有可能结果组成的集合称为E的样本空间,记为S。样本空间的元素,称为样本点。 概率 随机试验E,其中S为它的样本空间。对于E的每一事件A赋予一个...
2018-05-05 14:07:26
874
原创 信号那点事(一)
信号概念 信号是软件中断。很多⽐较重要的应⽤程序都需处理信号。信号提供了⼀种处理异步事件的⽅法。每个信号都有⼀个名字。这些名字都以三个字符SIG开头。 查看系统支持的信号 在Linux系统中可以使用kill -l命令来查看系统支持的信号。 信号发生的条件1) 进程调用kill函数或使用kill命令发送信号给其他进程。2) 系统内核异常产生的中断。如硬件损坏等等。 信号...
2018-04-30 11:27:14
292
原创 fork那点事
fork那点事fork 总结fork()通过复制调用进程来创建一个新进程。在Linux下,fork()是通过使用写时复制页面实现的,所以它唯一的缺点是复制父页表的时间和内存,并为子进程创建独特的任务结构。fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它有三种不同的返回值: 1)在父进程中,fork返回新创建子进程的进程ID; 2)在子进程中,fork返回0; 3...
2018-04-29 12:41:29
296
原创 挂载硬盘到Linux系统
挂载硬盘到Linux系统前言硬盘用一段时间后可能因为各种各样的因素导致硬盘的空间越来越少。为了防止没有硬盘空间而导致的数据丢失,我们可以增加硬盘。测试Linux系统识别硬盘插入硬盘到硬盘槽并检查硬盘是否被识别。下图红色显示的硬盘为最新的硬盘,表示硬盘已经识别。 对硬盘进行分区我们使用fdisk 命令来对/dev/sdb进行分区。下图是我分区的截图。 创建Linux文件系统硬盘在创建Linux文件系...
2018-04-26 15:21:46
671
原创 部署DNS 服务器
部署DNS 服务器前言 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。部署DNS 服务器centos系统配置关闭防火墙# systemctl stop fir...
2018-04-22 19:37:36
1650
原创 fork后父子进程共享文件描述符
fork后父子进程共享文件描述符测试程序#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <time.h>#include <stdlib.h&g
2018-04-18 11:52:54
1353
原创 验证证书请求是否与秘钥匹配
验证证书请求是否与秘钥匹配验证脚本#!/bin/shif [[ "$1" = "" || "$2" = "" ]]; then echo "certRequestCheck.sh requestfile keyfile " exit 0;else value=`openssl req -text -noout -in $1 | grep "Public Key
2018-04-17 17:05:41
905
原创 验证公钥证书是否和秘钥匹配
验证公钥证书是否和秘钥匹配验证脚本#!/bin/shif [[ "$1" = "" || "$2" = "" ]]; then echo "certCheck.sh certfile keyfile" exit 0;else #certModuleMd5=`openssl x509 -noout -modulus -in $1 | openssl md5` #privateMod...
2018-04-17 16:56:05
3292
Bulletproof SSL and TLS
2016-09-28
acl库 (advanced c library)
2012-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人