吉法师的博客

不知道能否追到喜欢的人呀,今年努力下吧~ 2022.1.4

用C++实现数组的自动扩容

用到的技巧 其实就是指针的简单使用,能够通过练习,加深对指针的理解。而在C++容器中,vector也是用数组实现的自动扩容。 当然,我们需要保证数组名不会随之改变,不然就不算什么自动扩容了。 代码部分 动态数组的创建。 假设数组的长度是未知的,完全可以用new在堆区分配内存。 int *p =new int[len]; Read more →

Nodejs数据库和文件操作总结

文件操作 需要引入nodejs自带的fs模块 var fs=require("fs"); var path=require("path"); 异步读取文件fs.readFileSync() 对buffer进行切割:slice() buffer转为方便操作的字符串toString() 还需要进制转换操作 Read more →

nodejs16进制转2进制遇到的坑

背景 我在初学nodejs这门语言的时候,遇到了16进制无法正常转成2进制的问题。 解决思路 先是对一个字符串使用toString(2)。然而发现字符串再使用这种方法,已经没有意义了。 16进制转2进制的过程:16进制字符串->数字->2进制数 weekdatebin=weekdate.slice(0,8); weekdatebin=parseInt(weekdatebin,"16").toString(2); weekdatebin=PrefixInteger(weekdatebin,32); 但也有问题,24个十六进制数,是无法转成24*4的2进制数的,太长了,会报错。 一种解决方案,就是将这24位的数拆分成3个8位进行处理,还有一种方式则是通过C语言的按位与思想,但是没有深入尝试了。 Read more →

著名压测工具webbench源码解析

项目概述 Webbench是用的标准C语言编写,仅仅只有500多行代码的轻量级压测软件。 用到的技术有:Linux提供的运行时参数解析,多进程,服务器通信,管道。 github地址:wenbbench 项目整体流程 1.解析程序运行时的参数。 2.根据选择的http协议组装报文。 3.开始压力测试。 4.获取压力测试的结果。 1.解析程序运行时的参数 其实这就是传说中的argc argv[],不过程序在此处用到了C语言的getopt_long函数。 Read more →

C++ socket初探

本文讲述socket客户端和服务端的简单实现。 客户端 用到的头文件及用法 #include <iostream>/*获取设置socket,bind*/ #include<sys/socket.h>/*基本数据类型,如time_t*/ #include<sys/types.h>/*用于socketaddr_in结构体,htons系统调用*/ #include<netinet/in.h>/*对read write提供支持*/ #include<unistd. Read more →