• c++ web框架实现之静态反射实现

    0 前言 最近在写web框架,框架写好后,需要根据网络发来的请求,选择用户定义的servlet来处理请求。一个问题就是,我们框架写好后,是不知道用户定义了哪些处理请求的类的,怎么办? 在java里有一个叫反射的机制,他允许我们通过传入类名来创建对象,这样我们就可以让用户在配置文件里(java可以用注 ...
    服务器搭建 c++   2022-05-20 15:39
  • 一个测试记录:利用分段锁来处理并发情况下的资源竞争问题

    别人的经验,我们的阶梯! 在开发中经常遇到多个并发执行的线程,需要对同一个资源进行访问,也就是发生资源竞争。 在这种场景中,一般的做法就是加锁,通过锁机制对临界区进行保护,以达到资源独占的目的。 这篇文章主要描述的就是使用分段锁来解决这个问题,说起来很简单:就是把锁的粒度降低,以达到资源独占、最大程 ...
    C语言   2022-05-22 13:14
  • CSAPP 之 ShellLab 详解

    前言 本篇博客将会详细介绍 CSAPP 之 ShellLab 的完成过程,实现一个简易(lou)的 shell。tsh 拥有以下功能: 可以执行外部程序 支持四个内建命令,名称和功能为: quit:退出终端 jobs:列出所有后台作业 bg <job>:继续在后台运行一个处于停止状态的后台作业,<j ...
    c++ 计算机系统 C++   2022-05-22 14:20
  • 值得注意的: c++动态库、静态库、弱符号__attribute__((weak))以及extern之间的关系

    先说结论: ①:动态库优先级最差,如果同时有静态库和动态库,那么首先使用的是静态库函数。 ②:如果只有两个或多个动态库,那么首先使用的是最开始链接的动态库函数; ③:弱符号函数在动态库中是起任何作用的 ④:动态库是强函数,静态库是若符号函数,那么extern使用的就是若符号函数 下面举例说明: Ⅰ: ...
  • 栈溢出基础

    栈溢出基础 之前已经介绍了C语言函数调用栈,本文将正式介绍栈溢出攻击。 当函数调用结束时,将发生函数跳转,通过读取存放在栈上的信息(返回地址),跳转执行下一条指令。通过栈溢出的方式,可以将返回地址覆盖为攻击指令的地址,这样函数调用结束后,将跳转到攻击指令继续执行。 Stack Canary cana ...
    C/C++ pwn   2022-05-27 19:11
  • 手把手教你使用 Spring Boot 3 开发上线一个前后端分离的生产级系统(七) - Elasticsearch 8.2 集成与配置

    介绍 Elastic Stack 是一个可以帮助我们构建搜索体验、解决问题并取得成功的搜索平台。核心产品包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)等等。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视 ...
    elasticsearch 项目实战 novel   2022-05-31 07:47
  • shell脚本获取文件名字

        我们有时候需要获取某个文件路径的文件名或者文件所在目录名,那么如何操作呢?下面介绍两种方法。一、利用 ${}1、${var##*/}    该命令的作用是去掉变量var从左边算起...
    C   2022.06.02 13:33