Linux
一禅的师兄
这个作者很懒,什么都没留下…
展开
-
linux 日志打印(Linux多线)
Linux 多线程https://www.cnblogs.com/linxw-blog/p/10454988.html日志打印https://www.cnblogs.com/wanghao-boke/p/11150859.html原创 2020-11-09 17:58:47 · 252 阅读 · 0 评论 -
linux下的线程栈
https://blog.csdn.net/yangkuanqaz85988/article/details/52403726栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的数据结构。这种数据结构的特点是后入先出(LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行推入(push) 和弹出(pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。...转载 2020-09-23 09:33:12 · 241 阅读 · 0 评论 -
linux中的 主设备号与次设备号
linux主设备号和次设备号Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件, 完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。 Linux为所有的设备文件都提供了统一的操作函数接口,方法是...转载 2020-08-10 15:14:30 · 2260 阅读 · 0 评论 -
C++ 线程池学习笔记(面试吹牛逼)
一、线程池的概念 线程开的过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护这多个线程,等待着监督管理制者分配可并发执行任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池能保证内核的充分利用,还能防止过度调用。 二、线程池的组成 1、线程池管理器 创建一定数量的线程,启动线程,调配任务,管理着线程池。 本篇线程池目前只需要启动(start()),停止方法(stop()),及任务添加方法(addTask)....原创 2020-07-25 23:00:10 · 2164 阅读 · 0 评论 -
vscode 配置gdb调试
1.VSCode 中进行 C++ 相关的编译和调试1.1c_cpp_properties.json - 编译环境相关的设置1.2task.json - 编译参数设置1.3launch.json - 调试相关的参数 VSCode 中进行 C++ 相关的编译和调试1.1 c_cpp_properties.json - 编译环境相关的设置 该文件用于指定一般的编译环境,包括头文件路径,编译器的路径等。通过 Ctrl + Shift + p 打开命令行,键入关键字 "C++"...原创 2020-07-20 09:34:30 · 16998 阅读 · 0 评论 -
epoll
https://www.bilibili.com/video/BV1jJ411j7ot/?spm_id_from=333.788.videocard.10原创 2020-07-14 23:22:45 · 85 阅读 · 0 评论 -
IO复用学习笔记
1--概念:IO即为网络I/O,多路即为多个TCP连接,复用即为共用一个线程或者进程,模型最大的优势是系统开销小,不必创建也不必维护过多的线程或进程。2--IO两个阶段IO过程分两阶段: 数据准备阶段。从设备读取数据到内核空间的缓冲区内核空间复制回用户空间进程缓冲区阶段发生IO的时候: 内核从IO设备读数据(例如:淘米,把米放在饭锅里煮饭)进程从内核复制数据(盛饭,从内核这个饭锅里把饭装到碗里来); 系统调用----read函数。 IO多路...原创 2020-07-13 17:52:20 · 4430 阅读 · 0 评论 -
C++ 服务学习第一天打卡坚持打卡
需要掌握1.计算机网络 复习1.1 OSI 模型IP模型以太网最小是46字节,最大是1500字节,超过就就进行分包转发。 IP的特点:是不可靠的无连接的。网络的数据格式都是按照大端模式进行传输的,即Big Endian模式进行传送的。 IP数据包: 什么是大端模式,什么是小端模式?所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点...原创 2020-07-10 23:36:09 · 161 阅读 · 0 评论 -
FLASH的基本原理与读写操作笔记
一、概念:每个文件对应多个block,每个block对对应多个扇区sector,每个sector对应有多个页。一般一个扇区(sector)多个页(page) , 一个块 (bank)又有多个扇区(sector) 块(bank) > 扇区(sector) > 页(page)二、FLASH读写操作u32 SPI_FLAsh_ReadFourByte(u32 ReadAddr){ u8 temp[4] = {0,0,0,0}; u32 val = ...原创 2020-07-09 09:21:02 · 14468 阅读 · 4 评论 -
函数指针的妙用
#include <iostream>#include <vector>using namespace std;typedef struct fileptr{ void(*f1)(); void(*f2)();}Fileptr;void s1(){ cout<<"hello s1";}void s2(){ cout<<"hello s2";}Fileptr file{ s1, s2};void.原创 2020-07-08 22:11:40 · 131 阅读 · 0 评论 -
Linux 阻塞IO和非阻塞IO
1 什么是I/O 2 同步IO模型 2.1 阻塞IO模型 2.2 非阻塞IO模型 2.3 信号驱动IO模型 2.4 IO复用模型 2.5 小结 3 异步IO模型 4 五种IO模型对比1 什么是I/O程序是由数据+指令构成的,运行程序的过程可以分成下面这几步:1.将代码加载到内存中,逐条运行内存中的代码2.在运行代码的过程中,可能需要对文件的读写,即将文件输入(Input)到内存和将代码执行结果产生的文件输出(Output)到外设(网络、磁盘)的过程。那么这..原创 2020-07-01 21:59:25 · 1941 阅读 · 1 评论 -
开漏与推挽
1、开漏输出开漏输出只能输出低电平,类似于三极管的集电极,要输出高电平需要上拉电阻才能输出我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截转载 2020-06-01 16:44:45 · 3657 阅读 · 0 评论 -
Uboot 启动流程简要
知识回顾:参考网址:https://blog.csdn.net/kernel_yx/article/details/53045424?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-原创 2020-05-30 22:01:14 · 410 阅读 · 0 评论 -
Linux 中的原子
原子变量的操作是一种不可以被打断的操作,原子操作需要硬件支持,因此是架构相关。类似于汇编的一条汇编指令,不可以被分割。两种原子变量: 原子整型操作 原子位操作原创 2020-05-21 22:26:20 · 137 阅读 · 0 评论 -
生产者与消费者模式总结
理论:https://blog.csdn.net/liushall/article/details/81569609代码:#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <stdlib.h>#include <assert.h>...转载 2020-01-18 14:28:04 · 200 阅读 · 0 评论 -
正点原子linux nfs文件系统挂载(主要功能就是实现Ubuntu与开发板实现资源的共享功能)
1.查看挂载指令:showmount -e2.进入SecureCRT ,进行网络环境变量设置网络中的常用指令:https://www.cnblogs.com/klb561/p/9074278.htmlipaddr:为开发板的IP地址 ethaddr:为硬件地址gateway:网关 netmask:子网掩码serv...原创 2020-01-06 18:59:45 · 1128 阅读 · 1 评论 -
c/c++Linux后台服务开发全套视频收录(持续更新中)
https://blog.csdn.net/qq_42302962/article/details/95061288转载 2020-01-05 22:49:27 · 853 阅读 · 0 评论 -
gdb 调试
https://blog.csdn.net/niyaozuozuihao/article/details/91802994转载 2020-01-05 21:58:47 · 106 阅读 · 0 评论 -
利用mmap实现父子进程通信
MAP_PRIVATE:私有映射,父子进程各自独占映射区MAP_SHARED:共享映射区,父子进程共享映射区父子等有血缘关系的进程之间也可以通过mmap 建立的映射区来完成数据通信,但对应的要在创建映射区的时候指定对应的额标志位参数flags;#include <stdio.h>#include <stdlib.h>#include &...原创 2019-12-30 22:18:59 · 231 阅读 · 0 评论 -
Linux 下挂载U盘的相关指令
1: 在控制台状态下输入如下命令:fdisk -l /dev/sd*如果您有多个USB设备话,则设备名在Linux下分别表示为sda、sdb、sdc等。运行上面的命令后,笔者的电脑上返回如下图所示信息,表示系统已经找到笔者的USB设备,设备名称为/dev/sda1、可启动(Boot下面的那个*表示是活动分区),容量128MB、文件系统为FAT16。Disk /dev/sda: 131 ...原创 2019-12-28 19:12:31 · 515 阅读 · 0 评论 -
利用管道实现父子进程读写数据
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/wait.h>#include <unistd.h>/*@brief:管道间的进程通信(单向半双工通信) @function :父进程向向管道写数据,子进程向管道中读数据 ...原创 2019-12-27 21:44:32 · 2435 阅读 · 1 评论 -
在配置busybox 的时候,scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目录
make menuconfig HOSTCC scripts/kconfig/lxdialog/checklist.oIn file included from scripts/kconfig/lxdialog/checklist.c:24:0:scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目...原创 2019-12-24 16:22:16 · 1032 阅读 · 2 评论 -
Linux 解压 .gz 格式压缩包
解决方法:需要在在gz的压缩包两边家加上单引号才可以,不然就会出出现错误信息:谨慎地拒绝创建空归档文件下面附录:tar 针对不同的格式解压缩命令:一:tar(可压缩可解压)tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。但是tar本身只是一个文件打包工具,只有和其他工具组合时才具有压缩/解压文件功能。 使用t...原创 2019-12-12 19:39:19 · 3775 阅读 · 0 评论 -
C++ STL 中的Set容器使用总结
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。...原创 2019-12-12 10:59:20 · 806 阅读 · 0 评论 -
正点原子的linux开发板中BSP例程之Makefile与链接文件学习
ARM裸板,当使用NAND启动的时候,开发板会自动将前4k字节复制到SRAM中,通过使用硬件ECC,有效的检查NAND Flash 数据。在复制完成的基础上,将在SDRAM中执行主程序。裸板驱动的步骤主要: 1.写makefile 2.写lds链接脚本 3.写真正要执行的文件为啥要写lds链接脚本?首先lds链接脚本...原创 2019-11-18 14:01:44 · 658 阅读 · 0 评论 -
嵌入式开发寄存器编程几个常见的位操作
一、位操作C语言支持的6种位操作符如下:1.不改变其他位的值的状况下,对某几个位进行设值。方法:先对需要设置的位用&操作符(对应位&0)进行清零操作,然后用|操作符设值(对应位|你想要设定的值)。举例:改变 GPIOA-> BSRRL 的状态 GPIOA-> BSRRL &=0XFF0F; //将第 4-7 位...原创 2019-11-10 14:38:51 · 1930 阅读 · 0 评论 -
KMP算法实现验证通过
#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 100/*串结构体*/typedef struct Stirngs{ char string[100]; int length;}sq;/*next数组*///q为子串void GetNext(sq...原创 2019-10-20 19:56:23 · 255 阅读 · 0 评论 -
黑马Linux 学习笔记3
1.基本命令:查看文件cat :查看文件more::默认显示10行首先了解一下VIM的基本指令Vim是Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版。它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升。因此...原创 2019-09-17 14:10:05 · 346 阅读 · 0 评论 -
黑马程序员学习笔记2
1.文件与目录 的一般情况 2 ls -la 3常用文件操作命令回家: cd ~ ; cd创建一个目录: mkdir mytest创建递归目录: mkdir -p aa/bb ; tree 查看目录删除空目录: rmdir aa;...原创 2019-09-14 17:08:01 · 110 阅读 · 0 评论 -
黑马程序员学习笔记1
Linux 快捷键命令1.命令解析器: shell:----unix操作系统 bash:----Linux操作系统命令解析器的本质:根据命令的名字,调用对应的可执行程序。2.Linux下的常用快捷键(1)history 查看历史命令(ctr+N:查看下一条指令(向下进行遍历),ctrl+p 查看上一条指令(向上进行遍历))(2)光标的移动...原创 2019-09-14 15:32:56 · 435 阅读 · 0 评论 -
Qt 菜单栏创建注意,掉坑了一开始
Step1: QT Designer创建菜单栏采用Qt Designer设计UI界面时,在编辑菜单时,输入菜单名称前面需要加”&”,例如在菜单栏添加菜单“File”时,需要双击“在此处输入”的地方输入“&File”,并且按下“Enter”键,这样才能保证File创建成功。Step2: QT Designer增加菜单栏“Action”,通过“动作编辑器”进行编辑,并通过鼠标...原创 2019-07-19 23:06:51 · 641 阅读 · 0 评论 -
Qt使用QCustomPlot开发
1、下载源文件http://www.qcustomplot.com/;2、把.cpp和.h放在工程目录下,并将cpp和h加入工程;3、在.pro中:QT += printsupport;4、在ui中添加一个Widget,右键提升为,输入:QCustomPlot,改变对象名称为customPlot;5、加入代码:void MainWindow::initUi(){...转载 2019-07-23 21:31:56 · 1033 阅读 · 0 评论 -
Qt程序打包发布方法(使用官方提供的windeployqt工具)
https://blog.csdn.net/qq_21792169/article/details/56848407Qt程序打包发布方法(使用官方提供的windeployqt工具)Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:win...转载 2019-07-18 20:38:19 · 125 阅读 · 0 评论 -
linux 文件系统结构
在我们初学嵌入式Linux时,首先学习的就是Linux的最小根文件系统;下面我将为初学者们详细的阐述一下Linux的最小根文件系统。 根目录在Linux中即为“/”,要进入根目录,命令“cd /”即可进入根目录,并利用“ls -l”查看当前目录的详细信息,如下图所示是我当前使用的Ubuntu16.04的根目录一级列表(在此请各位忽略不重要的一些文件和目录,在之后再深入学习)...原创 2019-07-16 12:55:56 · 101 阅读 · 0 评论 -
Linux多线程编程学习(1)
1.学习路线 2.开始多线程之旅2.1 啥是线程回顾:进程是一个正在执行的程序,它是资源分配的最小单位;进程中的事情需要按照一定的顺序逐个进行,那么如何让一个进程中的一些事情同时执行呢?例子:服务器---需要用多线程线程又称作是轻量级进程,是程序执行的最小的单位,系统独立调度和分配CPU的基本单位。他是进程中的一个实体。一个进程有...原创 2019-07-15 23:04:21 · 160 阅读 · 0 评论 -
Shell 编程
https://www.cnblogs.com/maybe2030/p/5022595.html转载 2019-06-10 09:16:16 · 64 阅读 · 0 评论