自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx 是如何解决stale event的

nginx 如何使用一个bit 来优雅的解决epoll 的stale event

2023-02-24 10:34:49 122

原创 TLS和GMTLS中的PRF的实现

PRF(Pesedu Random Function)的基础概念PRF的输入参数有2部分组成,一部分是密钥key 另外一部分是种子seed。还有一个Hash方法。PRF的输出是一段定长的hash值 这个值是随机的。这也是这个函数的名字的来历PRF在SSL/TLS中的应用计算Master Secretkey 为 “master secret” || $client_random || $ server_randomseed为 $pre_master_secret输出为48字节的..

2021-11-21 13:49:39 1253

原创 free中的buffer和cache的区别

buffer和cache的区别原始语义buffer为了防止最坏cache为了加速最好在Linux内核中Linux内核会将用户write到文件的数据存放在内核buffer中,后面一次性写入文件。Linux内核会预读一些文件到内存中,这些预读的内存被称为cache。其他xxx...

2021-07-07 17:53:01 275

原创 C语言根据域名得到IP地址

C语言根据域名得到IP地址#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <ctype.h>#include <string.h>#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h> int main(int argc, char c..

2021-07-06 19:48:12 2095

原创 生成 chroot 环境脚本 根据系统文件生成chroot环境

生成 chroot 环境脚本 根据系统文件生成chroot环境[github地址](shell_script/chrootBuilder at master · ffashion/shell_script (github.com))复制命令 库等export command_list=("bash" "ls" "dpkg" "apt" "whoami" "whereis" "vim" "cat" "grep" "awk" "adduser" "groups" "perl" "su" "sudo

2021-06-06 21:19:12 225

原创 JNA回调 Java C语言

JNA以及开发环境介绍介绍JNA 是基于JNI的, 用于在Java层调用C的代码JNA和JNI的对比JNA不需要特意为C编写代码 ,所有操作在Java端完成JNI需要C的代码包含jni.h头文件 并且按照JNI的格式编写本教程的C语言使用Makefile 在Linux下编译完成 生成so文件读者如果使用Windows那么可以使用VS编译测试C代码 生成dll文件准备C代码#include <stdio.h>int add(int x,..

2021-05-27 18:02:11 333

原创 C语言 使用zlib压缩和解压数据 API

C语言中使用zlib 压缩和解压数据使用zlib压缩和解压数据#include <zlib.h>#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ //存储压缩后的数据 Bytef compresed[100] = {0}; uLongf compressed_len; const Bytef data[] = "he

2021-05-25 10:56:54 1248

原创 C语言 Openssl的md5使用方式

方式1#include <openssl/md5.h>#include <stdio.h>#include <string.h>void md5hexToString(unsigned char *md,char *result){ // char tmp[3]; for (size_t i = 0; i <= 15; i++){ sprintf(result+i*2,"%02x",md[i]); } ..

2021-05-03 17:41:35 3705

原创 那些记不住的Linux知识点

/proc和/sys/proc存放内核参数 基本只读,但是/proc/sys可读写/sys 某些目录可读写,可以写入某些参数修改硬件的工作属性sysctl命令修改/proc/sys属性sysctl net.ipv4.ip_forword=1配置文件/etc/sysctl.confnet.ipv4.ip_forword=1Linux Permissionumask文件默认文件权限 = 0666 - umask值,如果文件默认会有x权限则权限自动+1目

2021-04-08 21:39:01 136

原创 Vscode搭建jdk源码阅读环境 wsl

下载并安装Java Extension Pack下载并安装jdk以及其源码sudo apt install openjdk-11-jdk下载jdksudo apt install openjdk-11-source下载jdk源码配置用户的settings.json{ //set project jdk "java.configuration.runtimes": [ { "name": "JavaSE-11", "path..

2021-02-12 15:35:55 1989

原创 gcc生成相对路径的debug Info

gcc生成相对路径的debug info生成汇编gcc -g3 -S -fdebug-prefix-map="your build dir"=. test.c -o test.s此时你搜索.s文件 你就会发现绝对路径被相对路径代替了

2021-02-10 00:30:00 742

原创 源码级 调试glibc Ubuntu Debian Vscode

下载libc源码 (ubuntu)apt source libc-source编译libccd glibc-2.31mkdir build && cd buildCFLAG="-g -O3"./configure --prefix=“你的build绝对路径”如果configure报错 安装相应的软件包即可-g指定符号表-O指定优化等级make -j20复制libc到系统环境 cp libc /usr/lib/x86_64-linux-gnu/li..

2021-01-23 00:11:40 927 4

原创 C语言获取文件长度方法汇总

方法1 使用 stat.h#include <sys/stat.h>#include <stdio.h>int main(int argc, char *args[]){ struct stat sb = {0}; int fd = open("./filename.txt",O_RDONLY); fstat(fd,&sb); printf("%d",sb.st_size);//获取文件的长度}方法2 只使用stdio..

2021-01-11 12:43:46 3084

原创 C语言main函数的参数解惑

C语言main函数参数问题常用main函数参数原型int main(void)int main(int,char *[])思考main函数参数可以是其他嘛?比如各种乱七八糟的形式int main(char , int ,long)…结果经过测试 main函数的参数是可以自定义的,但是我们的程序只会按照main(int ,char *[])来进行解析例子 我们定义函数原型为 int main(int , long)#include <stdio.h

2020-11-22 23:14:43 172

原创 Linux 各种创建Swap分区的方式

使用磁盘创建创建swap 分区mkswap /dev/sdb5开启swap分区swapon /dev/sdb5重读分区表partprobe加入开机启动echo "UUID=959871f3-30b7-480d-9061-c5bb2f8cfeee none swap sw " >> /etc/fstab查看UUIDsudo blkidls -l /dev/disk/by-uuid使用本地回环设备 创建swap分

2020-11-13 20:04:13 249

原创 Shell 的for循环产生序列的几种方法

使用seq命令产生for i in `seq 1 20`; do echo $idone使用bash 内置的表达式产生for i in {1..20..1};do echo $idone使用双小括号整数计算产生for((i=1;i<100;i++));do echo $idone欢迎补充

2020-11-02 18:50:54 1119

原创 stm32使用Vscode开发(arm-none-eabi)

配置模板打包,只需要配置里面的gcc路径 openocd 路径即可

2020-10-18 09:30:05 561

原创 Ventoy U盘可持续化配置

Ventoy —ISO启动器,一个U盘无数个启动盘。Ventoy 简单介绍Ventoy is an open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files.Ventoy支持的功能特性介绍Ventoy Linux 持久化获取dat文件(如果网络好建议下载dat,否助建议使用dd自己做)获取shell脚本并执行(建议Linux下执行,wsl似乎有问题,回环设备无法创建)直接copy

2020-10-08 11:08:02 3101

原创 2020-02-05

vimscript function! 的含义When [!] is used, an existing function is silently replaced. Unless it is currently being executed, that is an error.NOTE: Use ! wisely. If used without care it can cause...

2020-02-05 00:54:42 90

原创 数字电路

笔记数字电路 :用数字信号进行算数运算和逻辑运输的电路 称为数字电路或者数字系统 数字电路具有逻辑运算和逻辑处理功能 又称数字逻辑电路数字信号 时间和幅值的变化是离散的信号 即时间上离散 幅值上整数化第一章 数字电路基础数字电路的发展与分类电子管 半导体分离原件 小规模集成电路(SSI)中规模集成电路(MSI) 大规模集成电路(LSL)超大规模集成电路(VLSI)集成电路的材...

2019-06-23 09:34:43 5618

8086 Opcodes.pdf

8086操作码 opcode 查看mov add 指令二进制等 assembly 汇编语言 资料

2020-05-15

gnu_libc.pdf

linux C语言 gnu 标准文档 gnu_libc API glibc 文件io流 套接字 英文版

2020-05-15

空空如也

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

TA关注的人

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