HighConcurrencyCommFramework c++通讯服务器框架 :目录,修改标题,配置,日志打印

目录规划

nginx 根目录下的三个文件

makefile :编译项目的入口,编译项目从这里开始

config.mk:也是个配置脚本用来增加变动的东西,应付可变

common.mk:最核心的编译脚本,每个子目录都要被编译.cpp程序

配置文件

配置文件读取功能实战代码

该缩进的必须缩进,对齐的对齐;

1.读取文件的代码

2.内存泄露的检查

valgrind :工具集:

帮助程序员寻找bug,擅长内存管理的问题memcheck 检测内存;
)memcheck的基本功能,能发现如下的问题;/a)使用未初始化的内存//b)使用已经释放了的内存//c)使用超过malloc()分配的内存//d)对堆栈的非法访问//e)申请的内存是否有释放*//f)malloc/free,new/delete申请和释放内存的匹配//g)memcpy()内存拷贝函数中源指针和目标指针重叠;

检查实例

valgrind --tool=memcheck
--leak-check=full:指的是完全full检测内存泄露
--show-reachable=yes;显示内存泄露的地点
--trace-children=yes :是否跟入子进程
--log-file=log.txt :将调试信息输出到log.txt 不输出到屏幕

 

设置可执行程序的标题

原理和实现的分析

argc :命令行参数的个数

argv:是个数组,每个数组元素都是指向一个字符串的char*,存的是命令行参数

内存连续;

argv 之后紧挨着后面的内存是环境变量内存保存的可执行程序所有环境变量的参数信息;

修改可执行程序的实现思路:

先把环境变量的内存搬走;

搬走了,命令行后面的参数你不用了,才可以增加长度

设置标题,然后,只要一个参数,然后跳过标题让其全部后面的为0;

日志打印 :

查看work mast进程

ps -eo pid,ppid,sid,tty,pgrp,comm,stat,cmd | grep -E 'bash|PID|nginx'

内核写入的write的命令是原语

父子进程共享文件描述符,那么就是子进程写完之后,父进程紧随其后写,因此同时写进一个日志的时候不会混乱;

没有亲缘关系的不共享,可能发生混乱;

write掉电解决:

直接iO ,直接访问物理磁盘O_DRECT 绕过内核,直接到磁盘,512的倍数分配空间

同步选项:

open文件是用 O_SYNC ,将写入的内核缓冲区的数据立即写入到磁盘

每次写数据,必须要大块大块的写数据,一般都4k 4k的写,节省系统调用的次数;

缓存同步:尽量保证缓存数据,和写道磁盘上的数据一致

sync(void)将所有修改过的块缓冲区排入写队列,然后返回,并不等待实际写磁盘操作,数据是否写入磁盘没有保证

fsync(int fd)将fd对应的文件的快缓冲区立即写入磁盘,并等待实际写磁盘操作返回,全部都影响,属性和数据;

fdatasync(int fd)只影响数据,不影响属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1487824.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

构建未来客户服务的智能平台架构

随着科技的飞速发展,客户服务不再仅仅是响应投诉和提供支持,而是成为企业与客户之间重要的互动和沟通桥梁。在这个信息化和智能化的时代,构建一个优秀的客户服务平台架构至关重要,它不仅能提升服务效率,还能增强客户满…

《0基础》学习Python——第二十一讲__网络爬虫/<4>爬取豆瓣电影电影信息

爬取网页数据(获取网页信息全过程) 1、爬取豆瓣电影的电影名称、导演、主演、年份、国家、评价 2、首先我们先爬取页面然后再获取信息 1、爬取网页源码 import requests from lxml import etree if __name__ __main__:#UA伪装head{User-Agent:Mozilla/…

Bootstrap实现dialog上一步下一步多个弹窗交互

Bootstrap实现dialog上一步下一步多个弹窗交互 版本介绍: Bootstrap v3.3.7jQuery v3.5.1 一、功能介绍 重新设置bootstrap主题色内容区以card形式展示,纯js实现分页功能共两步骤,第一步选择模板,第二步进行其他操作步骤一内的按…

隧道洞外亮度检测器的工作原理

TH-SDG2隧道洞外亮度检测器是一种专门用于监测隧道洞外光照强度的设备,它通过感光器件和计算机技术,实时测量隧道出口处的光照强度,并根据测量结果控制隧道内的照明系统,以确保车辆在隧道内外切换时的行驶安全性。 隧道洞外亮度检…

谷粒商城实战笔记-54-商品服务-API-三级分类-拖拽效果

文章目录 一,54-商品服务-API-三级分类-修改-拖拽效果1,el-tree控件加上允许拖拽的属性2,是否允许拖拽3,完整代码 一,54-商品服务-API-三级分类-修改-拖拽效果 本节的主要内容是给三级分类树形结构加上拖拽功能&#…

【llama3.1】ollama的使用--本地部署使用llama3.1模型

快速入门 安装完成ollama后,在命令行窗口输入 ollama run llama3 上图表示 Ollama 正在下载 llama3 任务所需的资源文件,并显示了当前的下载进度、速度和预计剩余时间。这是 Ollama 在准备运行 llama3 任务之前所需的步骤。 上面的步骤完成后,就可以在本地进行聊天了,…

java面向对象进阶进阶篇--《抽象类和抽象方法》

个人主页VON 所属专栏java从入门到起飞 目录 个人主页​编辑我的主页​编辑 一、简介 抽象方法: 抽象类: 概述: 二、抽象类 特点和用途 示例: Animal类 Dog类 Flog类 Sheep类 Text类 结果展示: 三、抽象方…

【区块链+绿色低碳】基于区块链技术的碳账户金融服务平台 | FISCO BCOS应用案例

实现碳达峰、碳中和是我国一场广泛而深刻的经济社会变革,是党中央统筹国内国际两个大局和经济社会发展全局, 推动生态文明建设和经济高质量发展,建设社会主义现代化强国作出的重大战略决策。金融资源绿色低碳化是推 动碳达峰、碳中和的重要手…

ICMPv6与DHCPv6之网络工程师软考中级

ICMPv6概述 ICMPv6是IPv6的基础协议之一。 在IPv6报文头部中,Next Header字段值为58则对应为ICMPv6报文。 ICMPv6报文用于通告相关信息或错误。 ICMPv6报文被广泛应用于其它协议中,包括NDP、Path MTU发现机制等 ICMPv6控制着IPv6中的地址自动配置、地址…

将github上的项目导入到vscode并创建虚拟环境

1、将github上的项目导入到vscode 直接从github上下载到本地&#xff0c;用vscode打开&#xff08;Open file&#xff09; 2、创建虚拟环境 python -m venv <name> <name>\Scripts\activate ps: 1、退出虚拟环境 deactivate 2、如果运行python -m venv <…

十七、(正点原子)Linux LCD驱动

一、Framebuffer设备 在 Linux 中应用程序通过操作 RGB LCD 的显存来实现在 LCD 上显示字符、图片等信息。 先来看一下裸机 LCD 驱动如下&#xff1a; ①、初始化 I.MX6U 的 eLCDIF 控制器&#xff0c;重点是 LCD 屏幕宽(width)、高(height)、 hspw、 hbp、 hfp、 vspw…

c++语言实现类似swoole扩展的项目实践

实践目录&#xff1a; 最终实现的效果&#xff1a; <?php$server new BF\Server("0.0.0.0",9509);$server->on("connect",function($server,$fd){print_r($server);echo "收到客户端的连接了\r\n" ; });$server->on("receive…

嵌入式人工智能(24-树莓派4B的Linux系统故障日志查询分析)

1、dmesg ‌dmesg命令用于显示或控制‌Linux内核的环形缓冲区内容&#xff0c;主要用于查看系统启动信息、硬件检测、驱动加载等关键信息。以下是该命令的一些基本用法和选项&#xff1a; 基本用法&#xff1a;直接输入dmesg命令即可查看内核消息。例如&#xff0c;使用sudo …

Windows10+vs 2017中创建WEB API教程

我们如果需要用到web api怎么办&#xff1f;一般来说可以自己开发和去使用别人开发好的api&#xff0c;今天我们来讲一下Windows10vs 2017中创建web Api的教程。目前本教程当中的方法在Win10 VS2017&#xff08;MVC5&#xff09;win server2016vs2017&#xff0c;vs2013 vs201…

PHP简单商城单商户小程序系统源码

&#x1f6cd;️轻松开店&#xff0c;触手可及&#xff01;「简单商城小程序」让电商梦想照进现实&#x1f31f; &#x1f389;开店新风尚&#xff0c;「简单商城小程序」引领潮流&#xff01; 还在为繁琐的电商开店流程烦恼吗&#xff1f;想要快速搭建自己的线上商城&#x…

vue3引入openlayers

安装ol包 OpenLayers作为 ol npm包提供&#xff0c;它提供了官方支持的API的所有模块。 官方地址&#xff1a;ol npm install ol模块和子模块约定 具有CamelCase名称的OpenLayers模块提供类作为默认导出&#xff0c;并且可能包含其他常量或函数作为命名导出&#xff1a; i…

得物App弱网诊断探索之路

一、背景 随着得物用户规模和业务复杂度不断提升&#xff0c;端上网络体验优化已逐步进入深水区。为了更好地保障处于弱网状态下得物App用户的使用体验&#xff0c;我们在已有的网络体验大盘、网络诊断工具的基础上研发了弱网诊断能力。该工具能够高效实时诊断用户真实网络环境…

c++初阶知识——string类详解

目录 前言&#xff1a; 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

Jenkins+Gitlab持续集成综合实战

一、持续集成应用背景&#xff1a; DevOps&#xff1a;&#xff08;英文Development&#xff08;开发&#xff09;和Operations&#xff08;技术运营&#xff09;的组合&#xff09;是一组过程、方法与系统的统称&#xff0c;用于促进开发&#xff08;应用程序/软件工程&#…

本地生活抽佣系统搭建:如何让系统具有竞争优势?

随着本地生活的潜力不断展现&#xff0c;本地生活服务商逐渐成为新兴职业中的一大热门&#xff0c;本地生活抽佣系统搭建的热度也一直保持着飙升的状态。 抖音生活发布的《2023年数据报告》显示&#xff0c;2023年&#xff0c;抖音生活服务平台总交易额增长256%&#xff0c;抖…