- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 python日志库封装
我怕我把握不住,占位符必须和参数一一对应,不一致或者类型不一致都可能是抛出异常,这样写还会割裂阅读感,占位符形式的日志就是**。其中inspect主要是为了拿到调用者的文件名、方法名、代码所在行等信息,方便排查问题。不用管参数匹配,不用管参数类型,顺序打印,随时添加修改。
2023-08-30 17:36:18
166
原创 python3.6.8匹配的ssl
下载地址:http://rpmfind.net/linux/centos/7.9.2009/updates/x86_64/Packages/openssl-1.0.2k-25.el7_9.x86_64.rpm。安装:强制覆盖 rpm -i --force packagename.rpm openssl-1.0.2k-25.el7_9.x86_64.rpm。最终将openssl的软连接等修复下,关联到新安装的openssl,确保没有旧残留。对应版本:openssl-1.0.2k。
2023-06-01 20:09:54
380
原创 输入法打字英文字母间距很大?
效果: fgdgjfigdfggdjhidjgiewrewor。按下SHIFT+空格切换全角半角即可。主要是全角和半角切换问题,
2023-05-26 17:22:55
636
原创 wireshark分析rtmp包出现unknown问题
在linux下tcpdump抓包获得pcap文件,然后在wireshark上打开,发现视频数据(video data)全部都变成了unknown(0x0)。发现一个规律,如果直接用wireshark在windows抓包,当时是有video data数据的,但是保存为.pcap文件后再打开就变成了unknown。所以发现一个触发点就是pcap文件格式可能影响。解决方案是:wireshark保存为.pcapng文件。tcpdump还没有尝试是否能输出pcapng文件。另外网上说出
2022-01-14 14:37:47
4828
原创 licode编译
licode官方文档:From Source - Documentation (licode.readthedocs.io)按照官方步骤执行,ubuntu使用20.04的镜像虚拟机。1 下载代码sudo apt install gitgit clone https://github.com/lynckia/licode.gitcd licode2 执行安装依赖的脚本sudo ./scripts/installUbuntuDeps.sh这里可能会遇到许许多多的问题,需要仔
2021-10-18 19:12:57
415
原创 linux文件锁
linux文件锁使用fcntl函数实现,可以实现进程间同步。本例只讲互斥方式,示例代码如下:#include <iostream>#include <memory.h>#include<fcntl.h>#include <unistd.h>using namespace std;static int LockOrUnlock(int fd, bool lock) { errno = 0; struct flock f; me
2021-08-18 15:12:11
313
原创 wireshark抓取rtp音频并播放
调试音视频时需要抓包并调试,音频抓包后直接播放最直观。具体方法是:右键随意一个音频包,点击decode as,选择rtp协议点击后,整个udp流就会被识别为rtp音频然后点击:电话-RTP-流分析点击播放即可:...
2021-07-14 11:45:02
6387
原创 vscode如何添加右键菜单-打开目录和文件
其他方法为添加注册表等。这里有个简单方法,查看vscode版本下载该版本或者下载最新版本,重装勾选对应右键菜单选项,其他什么都不会变。比较傻瓜式的就可以完成,比注册表简单。
2021-07-01 16:57:20
790
原创 vscode remote shh出现 open failed:administratively prohibited:open failed 问题
一直使用windows+centos7虚拟机进行linux后台开发。所以使用的方案是:代码放在虚拟机,windows通过vscode的remote-ssh打开,此方法是win开发linux较好的方法。ssh配置免密登录,每次打开vscode就会自动打开远端代码。前天突然出现打开vscode,提示远端打开失败。open failed:administratively prohibited:open failed但是普通ssh登录时正常的。经过百度和google后各种尝试:1 回
2021-06-25 09:56:43
6199
1
原创 libcurl编程教程
毕业设计翻译了一部分libcurl的编程教程,包含中文翻译及英文原文。现在分享出来以供大家参考。libcurl编程教程1 名称libcurl-tutorial —— libcurl编程教程2 目的本文档尝试描述使用libcurl进行编程时要考虑的一般原则和一些基本方法。本文将主要集中在基于C的接口上,但是在其他接近C语言的接口上也能很好地应用,通常它们跟C一样。
2017-07-02 23:44:58
759
原创 QT项目相关问题
在使用QT开发时遇到了许多问题,在解决后在本文中记录下这些问题及解决方法。1.QT使用第三方库以SDL和ffmpeg为例,建立的目录如下:由于qtCreator会在其项目目录外的目录下简历build的目录,为使该build目录可以使用lib和include,所以在外层再添加一级目录。然后在pro文件中添加库目录和包含目录,pro文件是和平台无关的工程文件。添加库有多
2017-04-28 17:52:58
379
原创 小根堆实现
C++实现一个小根堆的基本操作//Heap.h#pragma once#includeusing namespace std;//一个小根堆templateclass Heap{public: //默认构造 构造一个空的堆 小根堆 Heap() {} //用数组构造一个堆 Heap(const T * arr, size_t size) { for
2016-03-22 23:47:16
1340
原创 C++二叉树的实现
实现了简单的通过字符串构造二叉树//BinaryTree.h#pragma once//类型定义//2016 .3 .2#include#includeusing namespace std;#ifndef NULL#define NULL (0)#endif#pragma onceenum ChildType {LEFT,RIGHT};templates
2016-03-14 23:33:26
541
转载 (转)多角度分析为什么 Linux 的硬连接不能指向目录
原文:http://blog.youkuaiyun.com/longerzone/article/details/23870297译者注: 最近在看文件系统相关的,每当读到inode相关的东西时,书上或者博客上都会涉及硬链接/软链接相关的内容,于是今天专门针对硬链接翻译了几篇英文,弄懂它!一、硬链接本节翻译自:http://c2.com/cgi/wiki?HardLink
2016-03-13 16:30:43
456
原创 稀疏矩阵的转置和快速转置
稀疏矩阵压缩存储:代码:#pragma once#includeusing namespace std;templatestruct Triple{ Triple() {} Triple(T & v, int r, int c) :_value(v) , _row(r) , _col(c) {} size_t _row; size_t _col; T _v
2016-03-11 01:23:00
1058
原创 C++实现简单的双向链表
vs2013下编译运行,实现了双向链表类List 的 构造函数,拷贝构造、析构函数、赋值运算符重载、清空、头插、头删、尾插、尾删、插入、删除、逆序和删除链表中重复的数据值函数等。直接贴代码:DuList.h 类声明、定义、成员函数定义。#pragma once//双向链表#include#includeusing namespace std;typed
2015-12-14 23:19:44
582
原创 memcmp,memcpy,memmove,memset,strcat,strcmp,strcpy,strlen 8个函数的实现
为区别库函数,函数名首字母大写。Memcmp函数://内存区域内容比较函数 int Memcmp(const void *buf1,const void *buf2,unsigned int count){ unsigned int i=0; while(i<count) { if( ((char*)buf1)[i]!= ((char*)buf2)[i] )
2015-11-30 22:44:18
770
原创 C语言实现printf的部分功能
代码:头文件 MyPrintf.cpp 函数的声明//MyPrintf.h#pragma once//使用putchar实现printf的功能#include#include//函数声明void Int_Print(int out); //打印整数void Float_Print(float out); //打印浮点数void X_Print(long out);
2015-11-30 15:18:35
917
原创 Android编程中求两个GPS坐标的距离
利用Location 的静态函数实现,直接返回以米为单位的距离值。代码: //计算两个纬度间的距离,返回距离 单位公里 private double GetDistance(double Latitude1,double Longitude1,double Latitude2,double Longitude2) { float[] res=new float[1];
2015-11-29 23:36:18
1394
原创 C++实现的简单日期类
主要实现了Date类的一些运算符重载 全部代码:头文件 Date.h 类定义 成员函数声明#include#includeusing namespace std;class Date{public: //使用构造函数初始值列表来初始化 默认1900年1月1日 Date(int y=1900, int m=1, int d=1); //拷贝构造函数 必须引
2015-11-29 18:30:29
423
原创 C语言闰年判断函数
bool IsLeapYear(int year){ return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);}year的值 是闰年返回真, 不是闰年返回假。
2015-11-29 16:39:12
1834
原创 简单的复数Complex类实现
实现一个很简单的复数类Complex 主要实现了几个运算符重载。具体代码如下:头文件Complex.h 函数声明和类定义//Complex.h#include#pragma onceclass Complex{public: Complex(double real = 0.0, double image = 0.0); ~Complex(); Complex(Co
2015-11-29 15:50:14
5322
原创 vim简单配置 缩进
安装好vim打开终端键入命令 vim .vimrc 回车 进入后按“i”键,键入下面的内容set nuset tabstop=4set softtabstop=4set shiftwidth=4set autoindentset cindentset hlsearchset backspace=2syntax on完成后,按【ESC】键
2015-11-27 23:10:12
473
原创 C++构造函数初始化列表 委托构造函数
(一)构造函数允许使用构造函数初始值列表,来为变量初始化 适用于成员变量有构造函数的任何情况代码示例:#includeusing namespace std;class Date {public: //构造函数初始化列表 Date(int y, int m, int d) :_year(y), _month(m), _day(d){} //默认
2015-11-27 22:26:51
1334
原创 C++ 的this指针
this指针用于类的非静态成员函数在访问非静态成员变量时由编译器自动加入的一个参数,this是指向调用函数的对象的指针。怎么理解呢?首先,this只能是一个类的对象在需要访问自己的成员变量时调用成员函数,这时候编译器会为函数自动加入一个名字叫做this的参数,类型为【类名的指针】举例:#includeusing namespace std;class Date {pub
2015-11-27 18:32:45
442
原创 C++类的构造函数、析构函数
C++为了实现对象的创建时的自动初始化和自动销毁,提供了两种特殊的函数:构造函数和析构函数代码举例:#include#include"Test.h"using namespace std;class Date {public: Date():_year(1970),_month(1),_day(1){} Date(int y, int m, int d) :_ye
2015-11-27 17:11:17
389
原创 xshell连接本地虚拟机的步骤
1.首先下载xshell2.打开VMware开启linux虚拟机 这里以centos为例进入后打开终端,输入ifconfig,记录下这个虚拟机的ip地址。如图:3.打开xshell 文件--新建在主机处填写刚才的虚拟机ip地址 ,点击确定 。如图:4.在弹出的会话窗口中点击连接按钮 如图:5.在弹出的窗口中,输入你的虚拟机的用户名,点击确定
2015-11-24 22:12:27
4736
原创 C++引用的探究
引用是C++里面的一种新的类型,C语言里没有。C++提出引用这种类型是为了使得函数传递参数时减少参数的复制(像指针那样)又能使函数需要改变参数值时,调用的写法更为简洁、直观(如果是C语言,要改变参数的值,就需要传它的指针,多么麻烦,要是直接能传递变量多好!)同时更为安全的去实现那些用指针修改值的做法。那么:1.为什么传递引用参数就可以改变参数的值?引用在很多书上都会被描述为别名,一个对
2015-11-23 23:12:18
394
原创 为什么String类的值是常量,但内容可以修改?
一直在想String类的实体是一个常量,为什么却可以对它进行修改呢 例如代码:public class Test { public static void main(String[] args) { String str="aaa"; str+="bbb"; System.out.println(str); }}这里str的实体是"aaa",已经不能变了
2015-11-23 00:33:55
5222
3
原创 复杂链表的拷贝实现
算法借鉴互联网1.头文件一些声明://ComplexList.h/***************************************复杂链表的复制实现*****************************************/#pragma once#include#include#include#include//类型定义typedef int
2015-11-22 02:00:36
436
原创 C++实现单链表(2) 一些函数的实现
void PrintTailtoHead(ListNode * pHead) //逆向输出链表{if (pHead == NULL){return;}else{PrintTailtoHead(pHead->_next);printf("%d->", pHead->_data);}/*if(pHead){PrintTailtoHead(pHea
2015-11-20 00:46:45
442
转载 【转载】Linux必学的60个命令
Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个
2015-11-18 17:17:25
607
原创 计算机底层实现的一些理解思路
很久都在纠结,学计算机知识例如一个编程语言)只知道这么做是对的,但不能说出来为什么?基础不好,从中间学起,前后搭不上,知其然不知其所以然!先说点最底层的实现的一些理解思路。从底层用“叠加”的方式叙述,可能更能理解点这里的“叠加”不是指普通的数目堆积,而是想形象的表示出各个实现之间的简单关系。1.三极管的外特性实现了 与或非 门电路2.而通过某些晶体管
2015-11-18 13:40:45
3254
原创 把CentOS设置为中文
1.首先安装CentOs系统2.打开终端(Terminal)3..输入命令:sudo yum groupinstall chinese-support 回车按照提示完成下载安装 注意:需要联网4.在终端中输入命令:vim /etc/sysconfig/i18n 回车使用vim编辑,进去后按 "i" 进入编辑模式 键盘操纵光标修改内容将LANG=
2015-11-17 18:31:08
492
原创 C++实现单链表
分3个文件SList.h是函数声明、数据定义的头文件SList.cpp是函数实现的源文件Main.cpp是测试用例具体代码如下://SList.h#pragma once#include#include#include#include//数据类型定义typedef int DataType;//结点类型定义typedef struct
2015-11-14 21:48:49
606
原创 C语言函数调用传递参数时的类型退化
首先看一个例子:#includevoid test(int a[10]);int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};printf("%d\n",sizeof(a)); //40test(a);return 0;}void test(int a[10]) // int * a; {printf("
2015-11-09 15:38:23
979
原创 C语言预处理 # 和## 运算符
我觉得不能称之为运算符,应该叫做“标记符”,标记一个宏,则这个宏就可以被预处理器进行相关处理。那么这种相关处理,就取决于不同的标记符。#标记符 标记后面的宏变为该宏的字符串形式 1. #标记符#include#define check(exp) (exp) //表达式原封不动的替换#define ToString(exp) #exp // 相当于给表达
2015-11-02 22:44:10
973
原创 可变参数列表(2)
可变参数列表的4个宏解释:首先,stdarg.h里定义了va_list:typedef char * va_list; 说明va_list 是一个指针char * 类型 ,下面会用到。///////////////////////////////////////////////////////////////////////////////////////////////
2015-11-02 14:08:53
383
原创 C语言可变参数列表(1)
尝试使用C语言可变参数列表对于一些函数有的时候,我们不希望它只能传递固定参数,例如如果我们想计算2个整数数之和写一个int sum(int ,int );的函数,但是如果想计算3个数之和呢?n个数之和呢?不可能去定义无限多个函数,也不能让函数的参数太多,形如int sum(int ,int ,int ,int ,int ,int ,int ,int ,int ,int );10个数求和
2015-10-20 22:09:57
647
1
原创 C语言求两个整数最大值
上代码:#include#define Max(a,b) ((a>b)?(a):(b)) //预处理实现int max(int a,int b) //函数实现{return a>b?a:b;}int main(){printf("%d\n",Max(18,19));printf("%d\n",Max(19,18));printf("\n");p
2015-10-19 23:19:58
6036
C++课设万年历显示程序
2015-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人