自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1120)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux系统软件工程师/嵌入式Linux应用开发工程师 知识体系构建 500篇(持续更新)

今年受疫情影响,企业经营必不可免地受到冲击,企业在选人用人方面比以往都更加谨慎,招聘也更加苛刻。hr都试图用最低的成本去招最优秀的人才。本人从事嵌入式软件开发多年,结合自己的经验,推出了《嵌入式软件工程师技术面专题》,预计会有40篇,分成硬件协议、多进程多线程编程、网络编程、linux基础、C/C++等几大模块,每一篇在末尾都总结了相关提问,其中有些知识,即使是工作了两三年的同学也未必都懂,所以社招的同学也可以看,对于找工作绝对有帮助。**不打无准备之战,提前做好准备,方可立于不败之地**。欢迎大家订阅,只

2020-09-13 11:12:01 50688 73

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(3) 守护进程

守护进程(daemon),是一种运行在后台 的特殊进程,它独立于控制终端 ,并周期性地执行某项任务或等待处理某些发生的事件。守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。但是守护进程却能突破这种限制

2020-08-17 09:21:18 3705 4

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(4) 进程同步和通信的方式有哪些?

🥇 作者简介: 热衷于知识探索和分享的技术博主。💂 csdn主页::【✍️ 微信公众号:【🎉精彩专栏:🎓 【​ 🧡 【​ 📚【​ 🌎【✍️ 【​ …💂关于作者: 曾就职于国内知名安防上市公司,现就职于国内知名AMR机器人公司,担任高级系统软件工程师。2020年至今保持CSDN博客专家,CSDN C/C++领域优质创作者头衔。全网5万+粉丝。十载寒冰,难凉热血;多年过去,历经变迁,物是人非。然而,对于技术的探索和追求从未停歇。💪坚持创作,热衷分享,初心未改,继往开来!

2020-08-16 16:27:48 11215 3

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(15) 内核空间、用户空间、内核态、用户态

为了保证用户进程不能直接操作内核,保证内核安全,操作系统将虚拟空间划分为两部分,一部分是内核空间,一部分是用户空间。针对Linux操作系统,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)供内核使用,称为内核空间,而较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。对于校招而言,该问题提问几率较大,因为是基础性问题,考察对内核空间和用户空间的理解,进程的内核态和用户态等概念。),进程切换时,用户空间切换,内核空间不变。

2020-08-16 16:18:39 15224 2

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(13) 请你描述下进程虚拟内存空间布局

对于这个问题,面试官可能拿出一张白纸,让你尝试画出linux下进程的虚拟内存空间布局,然后=再让你简述下每个分区的作用,可能会挑几个重点分区,例如堆区、栈区来进行深入展开,考察你对堆栈的理解等等。文章目录1 内核空间2 栈(stack)3 内存映射段(mmap)4 堆(heap)5 BSS段6 数据段(Data)7 代码段(text)8 保留区问题提问在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4

2020-08-16 16:00:34 2113 2

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(1) 进程和线程的基本概念与区别

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。线程(thread)是操作系统能够进行调度的最小单位。它被包含在进程之中,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2020-08-15 12:59:17 3341 2

原创 Linux C/C++ or 嵌入式面试之《网络编程系列》(4) tcp四次断开若干问题

首先A向B发送一个FIN报文段,报文段首部FIN=1,序列号seq=u(u为最后传送的数据的序列号加1,因为tcp规定,fin包消耗一个序列号,虽然没有发送数据),然后A进入FIN-WAIT-1(终止等待1)状态。(2)B收到释放连接的报文段后即发出确认报文段,报文首部ACK=1,ack=u+1,seq=v(v等于B前面传送过的数据的序列号加1),然后B进入CLOSE-WAIT(关闭等待)状态。(3)当A收到B的确认报文后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。

2020-08-15 12:52:33 14872 2

原创 网络编程实战(17)一文读懂VPN以及OpenVPN实现原理

ISP(Internet Service Provider,互联网服务提供商)是提供互联网接入服务的公司或组织。ISP 通过各种技术(如光纤、DSL、卫星或无线)将互联网连接到家庭或企业。由于国内的一些原因,有时候我们访问Google、youtobe等国外网站,需要通过一些代理软件才能访问,俗称科学上网。

2024-08-23 09:01:13 35

原创 Linux C/C++并发编程实战(11)缓存颠簸

当一个处理器写入数据时,缓存一致性协议需要确保其他处理器的缓存中的数据也被更新或使其失效。例如,如果一个处理器在处理器 A 的缓存中更新了数据,那么协议会将这个更新传播到其他处理器的缓存。缓存一致性协议:为了保证在多个处理器缓存中数据的一致性,系统使用缓存一致性协议(如 MESI)。每当一个处理器写入数据时,协议必须将这个更新通知到所有其他处理器,以确保它们的缓存中的数据是一致的。每个处理器的缓存都可能有该数据的副本。当一个处理器对这个数据进行写入(如增加计数器的值)时,这个数据在处理器的缓存中被更新。

2024-08-15 18:19:01 166

原创 linux防火墙iptables用法

在早期的 Linux 系统中,默认使用的是iptables配置防火墙。尽管新型 的firewalld防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。iptables 是 Linux 防火墙工作在用户空间的管理工具,是IP 信息包过滤系统是一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。filterinputoutput和。

2024-08-12 17:23:18 27

原创 《网络编程实战系列》(17)网络桥接模式

桥接模式通过将多个网络接口连接在一起,形成一个逻辑上统一的网络,为网络设备之间的通信提供了一种简洁而有效的解决方案。它广泛应用于网络扩展、虚拟化环境、无线网络等场景中。尽管桥接模式具有透明性和兼容性,但在大型网络或复杂环境中,需要谨慎配置,以避免潜在的广播风暴和安全问题。

2024-08-10 23:10:12 217

原创 《网络编程实战系列》(15)NAT网络地址转换原理

举个例子,客户端172.18.250.6和百度服务器202.108.22.5通信,172.18.250.6发送数据时,先转换为219.155.6.240:1723(任意>1024的随机端口),然后再利用这个身份发送数据给百度服务器,然后百度服务器回应数据并发送给219.155.6.240:1723,NAT网关检查自己的关联表,意识到这是自己地私网中172.18.250.6的数据包,然后把这个数据发送给客户端。此种方式下,转换上层协议就是不必要的,因为一个公网IP就能唯一对应一个内部主机。

2024-08-10 17:41:19 35

原创 《网络编程实战系列》(16)route命令用法大全

命令是一个用于显示和操作 IP 路由表的工具。它可以在 Linux 和类 Unix 操作系统中使用,包括 OpenWrt。如果需要修改已有的路由条目,可以通过先删除原有条目,然后重新添加新的条目来实现。(img-vTawoqiA-1723106434344)]命令来查看当前系统的路由表信息,包括目标网络、网关、网络接口和路由类型等。命令可以向系统的路由表中添加新的路由条目。命令可以从路由表中删除指定的路由条目。网络的数据包发送到指定的网关进行路由。命令的详细使用说明和选项,可以使用。这样,系统就会将属于。

2024-08-08 15:10:12 167

原创 mqtt协议详解(0)初步认识mqtt

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种构建在TCP/IP协议之上的轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。MQTT 协议于 1999 年发明,用于石油和天然气行业。工程师需要一种协议来实现最小带宽和最小电池损耗,以通过卫星监控石油管道。最初,该协议被称为消息队列遥测传输,得名于首先支持其初始阶段的 IBM 产品 MQ 系列。

2024-07-31 23:07:38 111

原创 安全与加密常识(2)TLS/SSL安全协议

传输层安全性协议 Transport Layer Security,TLS 及其前身安全套接层 Secure Sockets Layer,SSL是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。发展历程SSL 1.0和2.0: 1990年代初期由网景公司开发,但存在严重的安全漏洞,因此很快被废弃。

2024-07-30 22:52:37 60

原创 mqtt协议详解(7)三种qos介绍与实现原理

很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议,并不能完全保证消息的可靠到达。因此,MQTT 提供了 QoS 机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足用户在各种场景下对消息可靠性的要求。QoS 0,最多交付一次。QoS 1,至少交付一次。QoS 2,只交付一次。其中,使用 QoS 0 可能丢失消息,使用 QoS 1 可以保证收到消息,但消息可能重复,使用 QoS 2 可以保证消息既不丢失也不重复。

2024-07-26 23:30:03 66

转载 为什么收到三个重复的ACK意味着发生拥塞?

没有Fast Re-transmit / Fast Restore机制,TCP完全可以凭借超时重传来完成可靠传输,由于是被动地等待,所以传输效率低下。FastRe-transmit / Fast Restore机制,使得TCP能够快速地通过三次重复的ACK,推测报文有丢失的可能,进而主动重传,传输效率更高。

2024-07-23 13:45:54 45

原创 安全与加密常识(9)5分钟带你了解经常听到的cookie

通过抓包,我们发现在HTTP响应中, cookie的表示形式是,Set-Cookie:cookie的名字,cookie的值。我们在发送HTTP请求时,发现浏览器将我们的cookie都进行了携带(注意:浏览器只会携带在当前请求的url中包含了该cookie中path值的cookie),并且是以key:value的形式进行表示的。一般情况下,cookie是以键值对进行表示的(key-value),例如name=jack,这个就表示cookie的名字是name,cookie携带的值是jack。

2024-07-17 22:01:25 524

转载 安全与加密常识(8)趣谈https单向认证和双向认证

上文的顾客就是客户端(也可以是浏览器), 店家就是服务端(网站), 工商局就是可信CA机构(或者某域内自己设置的颁发机构也行)。以上的认证过程也称为单向认证,因为只是客户端验证了服务端的身份。CA私钥用于签名, CA公钥用于验签要先生成摘要,再签名。目的是为了验签后确认来源是所签的服务端。服务端公钥用于加密, 服务端私钥用于解密。传输数据使用对称密钥进行加密和解密。双向认证和单向认证原理基本差不多,单向认证客户端需要认证服务端,而在双向认证中增加了服务端对客户端的认证。

2024-07-09 23:47:10 70

原创 1000张linux C/C++工程师面试高质量图

本文持续更新…

2024-06-30 22:29:26 626

原创 安全与加密常识(7)pem, der, crt, cer, key等各类证书与密钥文件后缀解析

在Windows平台上,CRT文件通常用于存储公钥证书,而CER文件则用于存储包含公钥和私钥的证书。CRT文件通常使用PEM或DER格式进行编码,而CER文件则通常使用DER格式进行编码。编码,并且包含了起始标记和结束标记,以便于识别和区分不同类型的密钥和证书,(例如-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)。使用PEM格式编码的KEY文件具有良好的可读性和可编辑性,而使用DER格式编码的KEY文件则更加紧凑和高效。

2024-06-30 20:18:29 602

原创 安全和加密常识(6)Base64编码方式

Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处理文本数据的场合中存储和传输二进制数据。

2024-06-30 20:13:54 481

原创 安全和加密常识(1)对称加密和非对称加密以及相应算法

非对称加密使用一对密钥:公钥(public key)和私钥(private key)。公钥用于加密数据,私钥用于解密数据,因此公钥可以自由分发给任何人,而私钥则必须严格保密。对称加密使用同一个密钥(称为对称密钥)来加密和解密数据。加密和解密过程都使用这个密钥,因此在传输过程中需要确保密钥的安全性。对称加密算法的特点是加密和解密速度快,适合大量数据的加密。对称加密和非对称加密是信息安全领域中两种重要的加密方式,它们分别使用不同的加密算法和密钥管理方式来保护数据的机密性。

2024-06-30 13:22:25 436

原创 安全与加密常识(3)什么是数字签名和数字证书

此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。她写完后用鲍勃的公钥加密,就可以达到保密的效果。尽管帕蒂和道格可能可以拿到苏珊加密后的信且拥有鲍勃的公钥,但是由于他们没有鲍勃的私钥,因此无法解密。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

2024-06-30 01:05:06 755

原创 安全与加密常识(0)安全与加密概述

加密是信息安全的一个核心组成部分,数据加密是一种将数据从明文(未加密)转换为密文(加密)的方法。用户可以使用加密密钥访问加密数据,使用解密密钥访问解密数据。加密过程:数据 + 密钥 = 密文解密过程:密文 - 密钥 = 数据明文:明文指的是未被加密过的原始数据。密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。

2024-06-29 18:07:42 437

原创 安全与加密常识(5)自签名证书

自签名证书是由不受信的CA机构颁发的数字证书,也就是自己签发的证书。与受信任的CA签发的传统数字证书不同,自签名证书是由一些公司或软件开发商创建、颁发和签名的。虽然自签名证书使用的是与X.509证书相同的加密密钥对架构,但是却缺少受信任第三方的验证。在颁发过程中缺乏独立验证会产生额外的风险,这就是为什么对于面向公众的网站和应用程序来说,自签名证书是不安全的。

2024-06-27 23:37:00 1093

原创 安全与加密常识(4)证书签名请求(CSR)

证书签名请求(Certificate Signing Request,简称CSR)是一个由申请证书的实体(如公司或个人)生成的文件,其中包含申请者的公钥和身份信息(如组织名称、通用名、地点等)。CSR主要用于在数字证书认证过程中向证书颁发机构(Certificate Authority,CA)请求签名,以便获取一个受信任的数字证书。CSR的主要组成部分:公钥CSR包含了申请者的公钥,此公钥将被包含在最终的证书中。主体信息这些信息包括申请者的姓名、组织、部门、城市、州/省和国家等。

2024-06-26 23:31:20 1451

原创 C++编程法则365天一天一条(323)main函数执行之前和之后的动作

在C和C++程序中,main函数之前和之后执行的函数是由编译器、链接器和运行时环境共同决定的。

2024-06-02 22:47:52 490

原创 linux进程加载和启动过程分析

我们的源代码通过预处理,编译,汇编,链接后形成可执行文件,那么当我们在终端敲下指令后,操作系统是怎么将我们的可执行文件加载并运行的呢?首先知道,计算机的操作系统的启动程序是写死在硬件上的,每次计算机上电时,都将自动加载启动程序,之后的每一个程序,每一个应用,都是不断的 fork 出来的新进程。那么我们的可执行文件,以linux 系统为例,也是由shell 进程 fork 出一个新进程,在新进程中调用exec函数装载我们的可执行文件并执行。

2024-06-01 22:39:10 231

原创 操作系统的体系结构:宏内核和微内核

为此,操作系统设计人员试图按照复杂性、时间常数、抽象级别等因素,将操作系统内核分成基本进程管理、虚存、I/O与设备管理、IPC、文件系统等几个层次,继而定义层次之间的服务结构,提高操作系统内核设计上的模块化。它将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。微内核结构有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。

2024-06-01 17:26:19 509

原创 shell从入门到精通(23)贪婪匹配、非贪婪以及独占模式

非贪婪匹配会尽可能少地匹配符合模式的字符,只匹配满足条件的最少字符数。例如,在正则表达式\d+中,加号表示匹配一个或多个数字,而贪婪匹配会尽可能多地匹配连续的数字,直到遇到非数字字符为止。通过使用问号来实现非贪婪匹配,我们可以得到我们需要的最小匹配结果。第一个示例中,使用贪婪匹配模式\d+匹配了字符串中的尽可能多的数字,并将结果打印出来。简而言之,贪婪匹配会尽可能多地匹配,而非贪婪匹配会尽可能少地匹配,根据具体的需求选择适当的匹配方式。在正则表达式中,贪婪匹配和非贪婪匹配是指匹配模式下的不同行为。

2024-05-26 23:48:28 88

原创 shell从入门到精通(22)shell正则匹配~=

如果匹配成功,BASH_REMATCH[0] 将会存储整个匹配的结果,而 BASH_REMATCH[1]、BASH_REMATCH[2] 和 BASH_REMATCH[3] 分别存储了正则表达式中括号捕获的三个子模式的匹配结果。BASH_REMATCH 数组的第一个元素 (即 BASH_REMATCH[0]) 存储着整个正则表达式匹配的部分,而后续的元素依次存储了正则表达式中使用括号捕获的子模式的匹配结果。捕获匹配结果: 通过使用括号创建子模式,可以捕获匹配到的子字符串,以便后续在脚本中使用。

2024-05-26 23:23:58 102

原创 C++编程法则365天一天一条(60)改革不彻底的产物:字符串视图string_view

是 C++17 引入的一个字符串视图类。它是一个轻量级、非拥有、只读的字符串查看器,可以用于以只读方式访问字符串的连续字符序列,而无需复制字符串数据。python里一切皆对象,包括字符串字面量,提供了一种类似于Python字符串对象的方式来处理字符串字面量,但改革得没有python彻底,毕竟还需要构造转换而非编译层面支持。下面是非拥有性不拥有字符串数据,它仅仅是对现有字符串的引用或视图。这意味着它不负责管理字符串的生命周期,需要确保字符串数据的生存期足够长,防止出现空悬指针的风险。只读性。

2024-05-19 12:01:38 49

原创 面向对象设计与分析40讲(25)中介模式、代理模式、门面模式、桥接模式、适配器模式

该模式为客户端提供一个高级接口,隐藏了系统内部子系统的复杂性,使得客户端只需与门面对象交互,而无需了解底层子系统的实现细节。门面(Facade):提供了一个简化的接口,将客户端的请求委派给底层的一个或多个子系统,通过门面对象可以访问底层子系统的功能。抽象主题(Subject):定义了被代理对象和代理对象之间的公共接口,这样在任何使用被代理对象的地方都可以使用代理对象替代。在代理模式中,代理对象充当了被访问对象的替身,客户端通过代理对象间接地访问和操作被代理的对象,而不需要直接访问被代理对象。

2024-04-22 23:03:33 1287

原创 面向对象设计与分析(42)工厂方法模式

工厂方法模式,定义一个用于创建对象的接口(工厂方法),返回对象基类,让子类去实现该接口,从而返回具体的子类对象。结构抽象产品(Product):定义产品的接口,是工厂方法模式创建的对象的超类型。具体产品(Concrete Product):实现抽象产品接口的具体类。抽象工厂(Creator):声明创建产品对象的工厂方法,是工厂方法模式的核心。具体工厂(Concrete Creator):实现抽象工厂接口,返回具体产品的实例。工作原理。

2024-04-21 23:11:20 497

原创 面向对象设计与分析(41)建造者模式builder

看下builder模式的官方定义:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。Builder 模式是一种创建型设计模式,旨在通过提供一种更加灵活的方式来构建复杂对象。它允许你分步骤构建对象,同时可以灵活地配置对象的属性和参数。这个模式通常包括以下几个角色:Director(指导者):负责组织构建过程的顺序,但不负责实际构建对象的细节。客户端通过指导者来构建最终的对象。Builder(构造者):定义了构建对象的抽象接口,包括构建对象的每个部分的方法。

2024-04-21 18:21:50 289

原创 git基础教程(10) git push将本地修改推送到远端

事实上,远程仓库的名称应该是一个url,之所以可以填写名称,是git为该名称做了一个到url的映射。如果大家自己创建了一个分支,直接push那就不行了,因为没有建立上游分支,它会提示你使用git push --set-upstream 设置上游分支。命令一起使用,它用于将本地分支与远程分支关联起来,它的全称是–set-upstream, 表示设置上游分支。可以看到,配置了一个develop2分支,同时为其配置了remote为origin,同时也定义了一个remote叫origin。例如,如果要将本地的。

2024-04-20 16:01:15 205 1

原创 git基础教程(52).git/config的’remote’和’branch’部分的理解

在使用Git进行版本控制时,每个仓库都会有一个名为.git的隐藏文件夹,其中包含了Git的配置信息和版本记录等重要数据。其中,.git/config文件是每个仓库的配置文件,记录了与远程仓库的连接和本地分支的相关设置。我们先回顾下 git push的用法。是远端仓库的地址,可以是一个url,也可以是一个remote name(定义于.git/config的remote)。, +可以省略,可以是本地分支名,HEAD或者类似master~4。如果在执行git push。

2024-04-20 13:27:43 218 1

原创 cmake基础教程(12)函数和宏用法

参考:https://cmake.org/cmake/help/latest/command/function.htmlhttps://cmake.org/cmake/help/latest/command/macro.html#command:macro在CMake中,函数和C或C++中的函数非常相似。你可以将参数传递给函数,它们在函数内部变成了变量。同样,一些标准变量如 ARGC、ARGV、ARGN,以及 ARGV0、ARGV1 等也被定义了。函数调用具有动态范围。在函数内部,你处于一个新的变量作用域;

2024-04-10 14:08:47 328

原创 boost共享内存使用(3)managed_shared_memory共享内存分配器

Boost.Interprocess提供了一些基本的类来创建共享内存对象和文件映射,并将这些可映射的类映射到进程的地址空间中。然而,管理这些内存段对于非平凡的任务来说并不容易。一个映射区域是一个固定长度的内存缓冲区,动态创建和销毁任何类型的对象需要大量的工作,因为这将需要编写一个内存管理算法来分配该段的部分。许多情况下,我们还希望将名称与在共享内存中创建的对象关联起来,以便所有进程都可以使用名称找到该对象。

2024-04-06 21:12:05 1306

AOA Linux实现 ,含TCP转发

AOA Linux实现 ,含TCP转发

2022-03-17

HI3519AV100最新SDK smaple

海思最新SDK 程序 版本V2.0.1.0 最新

2019-03-29

RTP协议在嵌入式网络摄像机中的设计及实现.pdf

rtp,网络摄像头开发,描述了rtp推流,h264编码,v4l2视频流获取

2018-04-27

v4l2读取摄像头

v4l2读取摄像头,能在linux下编译,生成yuv文件,可以指定文件帧数

2018-01-30

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

TA关注的人

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