- 博客(20)
- 资源 (3)
- 收藏
- 关注
转载 2020-08-24
转载[https://blog.youkuaiyun.com/guotianqing/article/details/80044087]1. 概述 在多数unix系统中,当多个进程/线程同时编辑一个文件时,该文件的最后状态取决于最后一个写该文件的进程。 对于有些应用程序,如数据库,各个进程需要保证它正在单独地写一个文件。这时就要用到文件锁。 文件锁(也叫记录锁)的作用是,当一个进程读写文件的某部分时,其他进程就无法修改同一文件区域。 能够实现文件锁的函数主要有2个:flock和fcntl。 早期的
2020-08-24 16:17:35
228
转载 c++异常机制--学习笔记
[ 转载 ]:https://www.cnblogs.com/hdk1993/p/4357541.html1. 概述 异常处理是C++ 的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象。异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的try块,依次匹配catch语句中的异常对象(只进行类型匹配,catch参数有时在catch语句中并不会使用到)。若.
2020-08-06 09:49:16
416
转载 C++中虚函数的作用和虚函数的工作原理
【转载】https://www.cnblogs.com/zkfopen/p/11061414.html1. C++中虚函数的作用和多态虚函数: 实现类的多态性关键字:虚函数;虚函数的作用;多态性;多态公有继承;动态联编 C++中的虚函数的作用主要是实现了多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要在派生类中声明该方法为虚方法。 当子类重新定义了父类的虚函数后,当父类的指针指向子类对象的地址时,[即B b; A a = &b;] 父类指针根
2020-07-28 11:50:16
512
原创 live555学习笔记之-GroupSock(NetAddress&NetAddressList&AddressPortLookupTable)
live/groupsock/include/NetAddress.hh1.概述 group是组/群的意思,socket是网络接口的代名词了。这个部分很庞大,主要是与网络相关的。而live555的网络模块很多都涉及到组播的概念。 使用Socket进行的网络连接,网络地址一般由地址(IP)和端口(port)组成。live555中定义了一些数据类型,表明了目前所支持的网络地址类型。typedef u_int32_t netAddressBits;typedef u_int16_t portNum
2020-07-21 11:55:08
650
原创 live555四大基础组件学习笔记-处理程序handler类
1.介绍 处理程序相关类一共有三个,其没有派生继承关系,但是其有友元关系和使用关系。处理程序相关类主要是用于对相关的处理函数的指针和数据的包装,方便在DelayQueue相关类中的使用等。先来总的说以下三个类的关系。 HandlerDescriptor是一个节点类,而HandlerSet是一个链表类,链表节点就是HandlerDescriptor对象。HandlerIterator是一个迭代器类,其绑定一个HandlerSet对象。 处理程序相关的三个类都定义在live555sourcecon
2020-07-21 11:53:54
284
原创 AVI格式--学习笔记
1. 介绍 AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先用于Microsoft Video for Windows (简称VFW)环境,现在已被Windows 95/98、OS/2等多数操作系统直接支持。AVI格式允许视频和音频交错在一起同步播放,支持256色和RLE压缩,但AVI文件并未限定压缩标准,因此,AVI文件格式只是作为控制界面上的标准,不具有兼容性,用不同压缩算法生成的
2020-07-14 19:44:02
573
原创 const的作用--学习笔记
1. const关键字的作用欲阻止一个变量被改变,可使用const,在定义该const变量时,需先初始化,以后就没有机会改变他了;对指针而言,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;在一个函数声明中,const可以修饰形参表明他是一个输入参数,在函数内部不可以改变其值;对于类的成员函数,有时候必须指定其为const类型,表明其是一个常函数,不能修改类的成员变量;对于类的成员函数,有时候必须指定其返回值为const类型,以使
2020-07-13 19:31:14
1391
转载 堆--学习笔记
[ 转载 ]https://www.jianshu.com/p/c5f4255b81481.概念 堆,是一种十分基础的数据结构,也是优先队列实现的最好方法,其本身的实现也挺简单的。废话不多说,我们直接来看堆的一些描述和特性。1.1拓展概念二叉树 首先,堆其实就是一颗完全二叉树,在描述一颗二叉树的时候,我们完全可以使用类似链表的方式,一个数据域来储存数据,两个指针来指向其左右节点。但这样储存会导致空间的浪费,所以可以采用数组来储存二叉树。 堆正是一种特殊的二叉树,完全二叉树,这样子的.
2020-07-12 17:31:05
269
原创 线程-学习笔记
1.背景 在传统的Unix模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理。Unix下的大多数网络服务器程序都是这么编写的,即父进程接受连接,派生子进程,子进程处理与客户的交互。 虽然这种模型很多年来使用得很好,但是fork时有一些问题:fork是昂贵的。内存映像要从父进程拷贝到子进程,所有描述字要在子进程中复制等等。目前有的Unix实现使用一种叫做写时拷贝(copy-on-write)的技术,可避免父进程数据空间向子进程的拷贝。尽管有这种优化
2020-07-11 17:08:24
283
原创 RTP打包发送H264之封包详解
1.网络抽象层单元类型(NALU)NALU 头由一个字节组成, 它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F: 1 个比特.forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.NRI: 2 个比特.nal_ref_idc. 取 00 ~ 11, 似乎指示这个 NALU 的重要性, 如 00 的
2020-07-07 17:30:32
338
原创 alsa声卡驱动之三:ASoC框架中的platform
第一篇章中说过ASoC分为:Machine、Codec、Platform三个部分,其中Machine主要起到匹配Codec跟Platform,Codec主要是音频解码芯片的初始化配置跟一些相对应的控制,比如第二章节说的tlv320aic3x.c文件的内容。
2018-01-09 11:22:51
666
原创 alsa声卡驱动二:ASoC框架中的Codec
Codec简介在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号
2018-01-03 16:00:42
505
原创 alsa-lib和alsa-util安装编译及开发板移植
最近想在自己的开发板上移植一个音频驱动,所以涉及到了音频测试方面,alsaproject提供了alsa-driver、alsa-lib以及alsa-utils。现在的内核基本都有 了alsa-driver,所以关于他的安装没有进行操作。一下主要总结一下alsa-lib和alsa-utils的安装移植。先准备alsa-lib跟alsa-utils的安装包,我用的是alsa-lib-1.1.5跟als
2017-12-16 10:23:57
1933
原创 自旋锁学习总结
--为了获得一个自旋锁, 在某CPU 上运行的代码需先执行一个原子操作,该操作测试并设置(test-and-set) 某个内存变量,由于它是原子操作,所以在该操作完成之前其他执行单元不可能访问这个内存变量。如果测试结果表明锁已经空闲,则程序获得这个自旋锁并继续执行;如果测试结果表明锁仍被占用,程序将在一个小的循环内重复这个“ 测试并设置” 操作,即进行所谓的“ 自旋”,通俗地说就是“在原地
2016-11-15 17:53:42
574
原创 字符设备驱动学习总结
从module_exit(l138_led_exit);中的函数l138_led_exit(void)来看字符设备驱动建立的过程static int l138_led_exit(void){unregister_chrdev_region(led_dev,count);//删除主从设备号cdev_del(&led_cdev);//cdev设备删除device_d
2016-10-28 10:43:13
552
原创 继电器电路设计
继电器左边的电路:1、三级管作为开关电路,b极高电平时,三极管导通,端点2接地。注意:电平输入会有一个波动,或者上升的时间,在e极跟b极之间并联一个RC并联电路。(RC并联是减少高频阻抗,RC串联是滤去高频),不管RC串联还是并联,电容的作用都是一样的,电容的作用就是防止电压突变,吸收尖峰状态的过电压,串联的电阻起阻尼作用,电阻消耗过电压的能量,从而抑制电路的振荡。并联的电阻吸收电容的电能
2016-10-19 15:05:23
10285
1
原创 光耦合器原理及作用
光耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦。光耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。
2016-10-19 13:56:32
7418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人