摘要:一、宏 #define AV_ESCAPE_FLAG_WHITESPACE (1 << 0) 考虑空间特别,甚至在字符串的中间逃避他们。 这相当于将空格字符添加到特殊字符列表中,除了它保证使用完全相同的空格字符列表作为libavutil的其余部分。 #define AV_ESCAPE_FLAG_ST
阅读全文
11 2021 档案
摘要:今天在生产环境遇到了一个奇怪的网络现象,通过抓包发现,SYN包没有ACK。可以ping通,防火墙开放的情况下,基本确定对方服务器问题。首先排除端口是否已经耗尽,发现仍有很多富余那么可能就是linux内核网络参数tcp_tw_recycle捣鬼。登录对方主机发现这个参数的确被设置成1. # sysct
阅读全文
摘要:对于tcp连接 TIME_WAIT使用建议使用以下优化方式: 1.修改net.ipv4.ip_local_port_range参数,增加客户端端口可用范围。2.或服务器IP,让服务器能容纳足够多的TIME-WAIT状态连接。在我们常见的互联网架构中(NGINX反代跟NGINX,NGINX跟FPM,F
阅读全文
摘要:本文为翻译英文BLOG《Coping with the TCP TIME-WAIT state on busy Linux servers》,但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同。翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许
阅读全文
摘要:首先,问题中描述的65535个连接指的是客户端连接数的限制。 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少呢? 如何标识一个TCP连接 在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系
阅读全文
摘要:本文实例讲述了C++实现string存取二进制数据的方法,分享给大家供大家参考。具体方法分析如下:一般来说,STL的string很强大,用起来也感觉很舒服,这段时间在代码中涉及到了用string存取二进制数据的问题,这里记录一下,以供以后参考。首先提一下STL中string的参考资料:http://
阅读全文
摘要:FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中。 一、设置log等级 1、设置日志级别 日志默认级别是AV_LOG_INFO static int av_log_level = AV_LOG_INFO; 使用av_log_set_level将日志级别设置为调
阅读全文
摘要:环境变量配置文件 用户 环境变量配置文件 所有用户 /ect/profile /etc/bashrc /etc/environment root ~/.bashrc ~/.bash-profile 非root用户 /home/非root用户名/.bashrc /ect/profile /etc/ba
阅读全文
摘要:因为这一段要集成代码,除了组内的,还有组间的,还有第三方的,这里面都采用动态库的方式进行链接,但是在集成的时候经常出现so文件找不到的问题,使用ldd查看,也是某些so文件找不到。有的文件明明就在那里,但是却找不到,针对这些麻烦,我们头疼医头脚疼医脚,暂时解决了这些问题,但是并没有从根本上了解清楚,
阅读全文
摘要:-Wl,-rpath=linux中真实运行的路径 重点:编译时两个路径 (一个是编译用到的库的路径,另外一个是linux真实运行环境时用到的路径)如何编译? 不要用绝对路径,编译用到的库的路径比如是/output/mt_ls2k1000/lib/文件夹下的,则可以按照下面(1)的方式加载进来,而真实
阅读全文
摘要:分为三种情况: 还未将变更从工作区加入到暂存区,即未执行git add 命令前,如: 此时可以使用git checkout命令来撤销修改,如: git checkout -- rainbow.txt start.txt git checkout -- * git checkout -- *.txt
阅读全文
摘要:最近需要在AWSIOT shadow添加设备状态,很明显JSON这种数据状态很明显每个状态都是Key-Value这种数据类型,很自然的想到使用MAP去实现这种状态。而代码又是跑在嵌入式设备中很明显是C语言,这里就带来一个问题,C语言原生是没有MAP实现的。作为生产环境使用,自己手搓轮子难免有考虑不周
阅读全文
摘要:1、system(执行shell 命令)相关函数:fork,execve,waitpid,popen表头文件:#include<stdlib.h>函数原型:int system(const char * string);函数说明 :system()会调用fork()产生子进程,由子进程来调用/bin
阅读全文
摘要:在linux系统下,用C++程序执行shell命令有多种方式 管道方式 #include <iostream>#include <unistd.h>#include <sys/types.h> int main(){ FILE *pp = popen("cd /xxxx && ls -l", "r"
阅读全文
摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上
阅读全文
摘要:1. append函数 常用的函数原型: basic_string &append( const basic_string &str ); basic_string &append( const char *str ); basic_string &append( const basic_strin
阅读全文
摘要:编译程序时,编译器报错error: jump to case label [-fpermissive] , error: crosses initialization of 'xxxx',对相关内容进行简单的梳理 一、问题代码 int main() { int test = 2; switch(te
阅读全文
摘要:一. 配置文件的存储位置 Git相关的配置文件有三个 1. /etc/gitconfig:包含了适用于系统所有用户和所有项目的值。 2.~/.gitconfig:只适用于当前登录用户的配置。 3. 位于git项目目录中的.git/config:适用于特定git项目的配置。 对于同一配置项,三个配置文
阅读全文
摘要:在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类: 1、仓库级别 local 【优先级最高】 2、用户级别 global【优先级次之】 3、系统级别 system【优先级最低】 通常: git 仓库级别对应的配置文件是当前仓库下的.git/conf
阅读全文
摘要:名称 dos2unix - DOS/Mac - Unix文件格式转换器 概要 dos2unix [选项] [文件 …] [-n 输入文件 输出文件 ...] unix2dos [选项] [文件 …] [-n 输入文件 输出文件 ...] 说明 Dos2unix软件包包括工具"dos2unix" 和
阅读全文
摘要:前言 很多时候,我们需要在linux(ubuntu,centos等)、mac和windows之间共享一些文件,但是因为各个平台自带支持的编码不一致,有的是GB2312(window默认),有的是utf-8。导致跨平台无法正确打开文件,比如windows下的GB2312编码文件放到mac下,如果mac
阅读全文
摘要:今天执行git diff filename ,出现 old mode 100644 new mode 100755 的提示,如下图: 但是发现文件内容并没有发生改变 想起来中间执行过chmod 的操作, 产生这个问题的原因就是: filemode的变化,文件chmod后其文件某些位是改变了的,如果严
阅读全文
摘要:情况一:目前本地还没拉代码,直接拉分支代码 git clone -b ac git@gitlab.yopoint.vip:ac/YoPointSwift.git 情况二:本地已经拉取了代码,想拉取远程某一分支的代码到本地 git checkout -b ac_branch origin/ac_bra
阅读全文
摘要:问题 Linux 环境执行一些脚本出错,查找原因,发现是文件在Windows环境修改并上传,格式被转换为MS-Dos格式(换行符不同),这样的文件在Linux中运行会出错(shell 解释器把换行符作为一个命令的提交)。 背景 很久以前,老式的电传打字机使用两个字符来另起新行。回车符(CR)把滑动架
阅读全文
摘要:git 的隐藏文件 .gitattributes本文以 Spring 在 github 中的代码为例,介绍 git 的几个隐藏文件的作用、写法、含义。 文章目录git 的隐藏文件 `.gitattributes``.gitattributes`介绍.gitattributes 文件中可以定义的属性t
阅读全文
摘要:背景信息 由于操作系统不兼容的缘故,在跨平台上查看文本文件会因为换行符不同而造成障碍,使用版本控制系统也同样存在换行符的问题。 操作步骤 (可选)默认Git不对core.autocrlf进行配置,请设置如下值来辨别并对文本文件执行换行符转换: Windows系统设置配置变量“core.autocrl
阅读全文
摘要:雷神写了一系列的结构体的分析的文章,在这里列一个列表: 雷神写了一系列的结构体的分析的文章,在这里列一个列表: FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContextFFMPEG结构体分析:AVIOContex
阅读全文
摘要:上一篇介绍了YUV格式,并给出了一个YUYV422转RGB24的例子。其实,FFmpeg有一个函数专门进行图像格式转换的。本文就介绍怎么用FFmpeg转换,因为在转换时还要用到AVFrame这个结构体,所以这里也会介绍AVFrame。在FFmpeg中,AVFrame是一个比较重要的结构体。 AVFr
阅读全文
摘要:尝试解答以下问题: 1.为什么cp的方式更新运行中进程的so,程序会coredump 2.采用什么方式更新已经加载了的so,就可以避免coredump 我们的公共组件绝大部分都支持so形式的自定义插件,比如s++,qzhttp,ttc。在不停进程更新so的时候往往会产生coredump,并且肯定co
阅读全文
摘要:问题的起因在来源于周会上老板提出的一个问题,cp新的so文件替换老的so,会导致程序core掉。这个问题引起了大家的热烈讨论,其中提及了的名词有inode,dentry,buserror等,比较混乱,由于功力浅薄,当时也没有十分清楚引起core掉的原因。于是乎趁着10.1的休息时间,闲里偷忙,理一理
阅读全文
摘要:对于线上的服务,经常会出现xxx服务的某一段逻辑里面有bug,需要紧急修复。对于无状态的服务,可以修复之后,直接重启。但是,对于有状态的服务,重启意味着内存状态丢失和长连接断开。比如,如果魔兽的服务器要重启,那么已经登录上来的玩家就会出现连接中断。对于不能容忍重启的有状态的服务,可以采取热更新的方式
阅读全文
摘要:我正在尝试从Casey Muratori受欢迎的Handmade Hero系列中复制一个很酷的技巧。在win32上,Casey能够重新加载DLL,并且仅几毫秒的延迟就可以看到他的代码更改。 我正在尝试使用dlopen,dlsym,dlclose和stat在linux上复制此行为,但是我遇到了以下行为
阅读全文
摘要:1.为什么cp的方式更新运行中进程的so,程序会coredump 2.采用什么方式更新已经加载了的so,就可以避免coredump我们的公共组件绝大部分都支持so形式的自定义插件,比如s++,qzhttp,ttc。在不停进程更新so的时候往往会产生coredump,并且肯定core得莫名其妙,cor
阅读全文