主页

linux下非特权用户安装软件

Linux下非特权用户安装软件 下载源码 编译可执行程序 设置用户环境变量 安装tree # 下载源码 wget http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz # 解压 tar zxvf tree-1.7.0.tgz # 编译 cd tree-1.7.0 make # 设置环境变量 vi ~/.bashrc # 添加内容 export PATH=/home/user/tree-1.7.0:$PATH # 生效 source ~/.bashrc 安装 ncurses-devel # 下载 wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar...

阅读更多

linux下网络编程

网络编程 通信协议 TCP协议 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。即客户端和服务器之间在交换数据之前会先建立一个TCP连接,才能相互传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 TCP的优点 :可靠,稳定 ,TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点 :慢,效率低,占用系统资源高,易被攻击 ,TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有...

阅读更多

linux下IO多路复用

I/O多路复用 Linux下select详解 select、poll和epoll优缺点和比较 IO模型: 同步阻塞IO(Blocking IO) 同步非阻塞IO(Non-blocking IO) IO多路复用(IO Multiplexing) 异步IO(Asynchronous IO) 信号驱动IO(Signal Driven IO) IO 多路复用是一种同步IO模型,实现一个线程可以监视多个文件句柄; 一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作; 没有文件句柄就绪就会阻塞到超时timeout退出或者一直阻塞。 select 概述 允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个时间发生或经历一段指...

阅读更多

json简析

概述 JSON是 JavaScript Object Notation的缩写,它是一种数据交换格式。也是 JavaScript的一个子集,表示对象。 JSON 是存储和交换文本信息的语法,类似于 XML ,但是它比 XML更小,更快,更易解析。 JSON 规定字符集必须是 UTF-8,字符串必须用双引号 “”,Object的键也必须用双引号 ""。 因为 JSON有着上面的规定,使得 JSON在其它编程语言也可以轻易解析。 JSON vs XML 相同之处: JSON 和 XML 数据都是 “自我描述” ,都易于理解。 JSON 和 XML 数据都是有层次的结构 JSON 和 XML 数据可以被大多数编程语言...

阅读更多

git常用命令及场景

git常用命令 基本操作 建立本地仓库 git init 本地仓库和远端仓库相关联 git remote add origin <git地址> 查看当前版本与上个版本的不同 git diff <file_name> 查看当前仓库的配置信息(用户名、邮箱等) git config --list 查看状态 git status 查看diff(具体修改行) git diff <!-- 所以修改 --> git diff <f...

阅读更多

ffmpeg结构体分析之AVFrame

概述 基于ffmpeg 4.3.2 AVFrame结构体一般用于存储原始数据(即非压缩数据,例如对视频来说是YUV,RGB,对音频来说是PCM),此外还包含了一些相关的信息。比如说,解码的时候存储了宏块类型表,QP表,运动矢量表等数据。编码的时候也存储了相关的数据。 参考1-雷神 参考2 定义 typedef struct AVFrame { #define AV_NUM_DATA_POINTERS 8 /** * 指针指向图像/通道平面。 * 这可能与第一个被分配的字节不同 * * 一些解码器访问0,0以外的区域--宽度、高度,请 * 见avcodec_align_dimensions2()。一些滤波器和sw...

阅读更多

ffmpeg之音频重采样

ffmpeg之音频重采样 头文件 #include <libswresample/swresample.h> 定义 #define SWR_FLAG_RESAMPLE 1 ///< Force resampling even if equal sample rate //TODO use int resample ? //long term TODO can we enable this dynamically? /** Dithering algorithms */ enum SwrDitherType { SWR_DITHER_NONE = 0, SWR_DITHER_RECTANGULAR, SWR_DITHER_TRIANG...

阅读更多