Linux开发
文章平均质量分 67
系统调用
多弗朗强哥
长亭外古道边,一行白鹭上青天。
展开
-
bash笔记
【代码】bash笔记。原创 2023-08-29 17:17:16 · 136 阅读 · 0 评论 -
Linux进程间通信
共享内存不使用数据传输,而是提供一块允许被其他进程访问的内存空间,用于本机内进程间高效的传输大量数据。使用共享内存时,由于是多个进程访问同一块区域,会发生竞态,所以需要信号量来保证同步。如果只是通知状态变更,则使用信号比较简单。共享内存的用法和消息队列类似。管道是队列型字符传输方式。消息队列是消息型传输方式。原创 2023-07-25 09:56:34 · 74 阅读 · 0 评论 -
Linux的运行原理
more。原创 2023-07-25 09:53:34 · 108 阅读 · 0 评论 -
C++ String类
【代码】C++ String类。原创 2023-07-23 09:00:12 · 66 阅读 · 0 评论 -
C++ Stream类
输入输出语义是将程序与文件和设备进行关联,并使用缓存区(一款共享的内存)在程序与文件/设备之间传输数据。标准输入关联的是键盘设备,标准输出关联的是显示器设备。标准的意思是规定了0、1、2这三个文件描述符用来关联基本输入输出设备。more。原创 2023-07-23 09:00:01 · 452 阅读 · 0 评论 -
C++ 正则表达式
正则表达式使用符号表示一类字符串,以实现批量处理字符串的效果。C++ string没有提供正则表达式,而是以C++正则表达式库形式提供的。C++正则表达式分为Match(匹配)、Search(搜索)、Tokenize(分词)、Replace(替换)四部分。more。原创 2023-07-23 08:59:31 · 480 阅读 · 0 评论 -
c语言输入输出及缓冲
printf和scanf的作用是程序和外设进行交互的接口,printf可以将程序输出到屏幕上或打印机上;scanf可以将键盘的字符输入到程序中;但是printf和scanf并不是让程序和外设直接交互的,因为直接交互的话,一是外设读写速度慢,而是频繁读写外设易造成损伤,因此在程序和外设之间,c语言在内存中增加了输入缓冲区和输出缓冲区,用于提高程序和外设读写的响应速度,详情见下文。原创 2023-07-23 08:59:21 · 387 阅读 · 0 评论 -
C++ 算法库
【代码】C++ 算法库。原创 2023-07-23 08:59:03 · 110 阅读 · 0 评论 -
C++术语
GPU(Graphics Processing Unit,图形处理器)是一种专门用于图形处理和加速的处理器,主要用于3D图形渲染、视频编解码、深度学习等领域。GPU的主要功能包括:图形渲染:GPU可以通过对图形进行数学运算和图形数据处理来实现3D图形的渲染,从而在屏幕上显示出高质量的图像。并行计算:GPU具有大量的计算单元和并行计算能力,可以加速大规模的并行计算任务,如机器学习、计算流体力学等。视频编解码:GPU可以用于视频的编码和解码,可以加速视频的压缩、解码和处理,提高视频的播放流畅度和质量。原创 2023-07-22 19:30:25 · 74 阅读 · 0 评论 -
C++ 并发编程
线程共享进程的内存地址,因此可以并发访问进程中的变量、堆和引用等。线程有自己的栈。原创 2023-07-22 19:30:09 · 96 阅读 · 0 评论 -
C++ 标准容器库
STL(标准模板库)以模板为基石,将容器和操作容器数据的方法分离开,形成了容器、迭代器、算法三部分,其中迭代器充当容器和算法的粘合剂。moreC++的总体思路是:高效,不检查错误;复用,使用多态;最小修改,使用适配器。原创 2023-07-22 19:29:54 · 102 阅读 · 0 评论 -
字符集和编码
在计算机中,协议通常代表数字和概念的映射关系,对于字符集就是使用数字映射到字符,查看看到,数字97映射为字符a,所以这个数字也叫ASCII字符集的字符码。一种映射方案就是一个字符集,包括:ASCII,UTF8,GB2312,GBK,UTF16,UTF32,UNICODE,Latin 等等。Windows默认的中文字符集是GBK。原创 2023-07-22 19:29:30 · 129 阅读 · 0 评论 -
指针、数组和字符串
数组:一块连续的内存空间,属于容器,数组名即是首地址,数组大小即是内存空间长度。int型指针:一块内存空间,包含内存地址(指针)和长度(int)。变量:符号,映射到内存值或者内存地址,且映射内容可被更改;注意:代码段和数据段都是只读的,堆栈段是读写的。这种情况下,可以编译过,但运行会段错误。字符数组:结尾没有’\0’的字符数组;指针:变量的一种,映射的是内存地址;字符串:以’\0’结尾的字符数组;声明:建立符号,不分配内存;是存储在栈上的变量内容,而。是存储在数据段的只读内容。定义:绑定符号和内存地址;原创 2023-07-22 19:29:13 · 36 阅读 · 0 评论 -
运筹学笔记
线性方程组:线形方程组是由多个变量组成的方程组。如果有n个变量,且能找出n个变量组成的方程组,那么由方程组系数构成的矩阵,就成为了系数矩阵。我们的目标是求解线形方程组。行列式的计算公式是由日本数学家江澤潔(Seki Takakazu)在17世纪中期发现的。江澤潔在研究代数方程时,发现了行列式的计算方法。他将行列式看作一个数值函数,能够将矩阵转化为一个数值。江澤潔在他的著作《大原算法》中描述了这种方法,并通过实例展示了如何用这种方法求解代数方程。原创 2023-07-22 19:28:45 · 92 阅读 · 0 评论 -
常用算法笔记
算法与数据结构密不可分,数据结构是对数据的组织和存储形式,算法是对数据结构的增删查改。数据结构部分参考。原创 2023-07-20 09:34:28 · 38 阅读 · 0 评论 -
数据结构概论
数据结构的划分主要是从时间顺序和空间顺序进行划分。线性结构(1-1):数组,链表,队列,栈树状结构(1-2):二叉树树状结构(1-m):多叉树图(m-n):有向图,无向图散列表(?):哈希表基本的数据结构无非以上几种结构,其余的数据结构都是从以上数据结构中衍生或者组合出来的。数据和链表是1-1类型的,即只有一个前驱元素和一个后续元素;二叉树是1-2类型的,包含一个前驱元素和两个后驱元素;m叉树是1-m类型的,包含一个前驱元素和m个后驱元素;原创 2023-07-20 09:34:05 · 38 阅读 · 0 评论 -
架构设计原则
单一职责,单一职责是划分模块的基准,一个模块只能有一个改动原因,或者说一个模块改动后只影响一个模块?将稳定性和变更性结合起来,保证稳定性的前提下提供扩展变更,而不是原地变更。将组件和组件之间使用抽象层隔离,这样就能解除依赖关系,就是解耦合,软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。分割组件和模块,模块间通信,最小变更,闭包,将有相同改动原因的代码放在一起,根据实际规模开发,不要过早的扩大规模。虚实分离、接口实现分离。不确定的事情模板化,原创 2023-07-19 09:25:46 · 30 阅读 · 0 评论 -
汇编基础笔记
在汇编中,一般有两种不同的语法,它们是AT&T语法和Intel语法。AT&T语法是GNU汇编器(GAS)所采用的语法,主要应用于UNIX系统。AT&T语法的特点是:操作数的顺序是源操作数在前,目的操作数在后,同时使用“%”来表示寄存器。Intel语法则是Intel的汇编器采用的语法,主要应用于Windows系统。Intel语法的特点是操作数的顺序是目的操作数在前,源操作数在后,同时使用“[]”来表示内存地址。原创 2023-07-19 09:25:17 · 135 阅读 · 0 评论 -
各种语言的文件读写方法
file的定义如下,open操作也就是建立这个file对象,因此file是进程维护的对象。的定义如下,inode是由文件系统。原创 2023-07-19 09:24:29 · 47 阅读 · 0 评论 -
程序的运行原理
todo.原创 2023-07-18 08:59:44 · 145 阅读 · 0 评论 -
操作系统相关术语
GPU(Graphics Processing Unit,图形处理器)是一种专门用于图形处理和加速的处理器,主要用于3D图形渲染、视频编解码、深度学习等领域。GPU的主要功能包括:图形渲染:GPU可以通过对图形进行数学运算和图形数据处理来实现3D图形的渲染,从而在屏幕上显示出高质量的图像。并行计算:GPU具有大量的计算单元和并行计算能力,可以加速大规模的并行计算任务,如机器学习、计算流体力学等。视频编解码:GPU可以用于视频的编码和解码,可以加速视频的压缩、解码和处理,提高视频的播放流畅度和质量。原创 2023-07-17 09:44:43 · 212 阅读 · 0 评论 -
编程语言的共性比较
【代码】编程语言的共性比较。原创 2023-07-17 09:44:25 · 51 阅读 · 0 评论 -
Linux文件IO详解
默认情况下,文件是在磁盘中以inode形式维护的。对于打开文件,原创 2023-07-17 09:44:02 · 183 阅读 · 0 评论 -
设计模式笔记
单一职责原则(SRP)、开闭原则(OCP)、闭包原则(CCP)、依赖反转原则(DIP)。模块划分:单一职责、闭包原则;相同目标,相同改动原因的内容,作为一个模块单元。模块解耦:依赖反转,开闭原则;增加抽象层,解耦合上层和依赖层,使依赖的修改不会影响其他模块。设计模式的总体思想是团队合作,怎么能让一方的修改不影响另一方,怎么能易于扩展减小修改量。开闭原则是,对修改关闭,都扩展开放。设计模式很多使我们编程中已经用到的技巧了,但是经过命名后,反而不能理解了,哈哈哈。原创 2023-07-20 09:33:56 · 49 阅读 · 0 评论 -
日期与时间
ctime库支持的精度是秒,而且不支持多线程,chrono库支持多精度和多线程。原创 2023-07-20 09:33:13 · 41 阅读 · 0 评论 -
单元测试方法
为什么要引入单元测试呢?如果你不想代码中每一句都用if检测错误,那么单元测试必不可少。换句话说,单元测试是将各种检测条件移到了主要代码外边,避免主代码变的不可读。more单元测试工具包括:gtest,C++test等。原创 2023-07-19 09:23:16 · 62 阅读 · 0 评论 -
Linux动态库
在开始讨论动态库之前,首先对静态库做一个简短的介绍。在静态库产生之前,编译需要链接各种.o文件,随着.o文件数量的增多,管理和引用.o文件也变得困难,于是unix决定把常用的.o文件组成一个单元,这样每次只引用一个归档单元就可以了,这种方式就是静态库。原创 2023-07-25 09:56:15 · 116 阅读 · 0 评论