
学习笔记
文章平均质量分 51
奶盖加芝士
这个作者很懒,什么都没留下…
展开
-
linux 查看运行进程的可执行文件所在目录
1 获取PID方法1:执行top命令,然后找到对应的进程方法2:执行ps -ef | grep 程序名2 进入proc目录下对应的进程路径cd /proc/3[sudo] ls -l//查看系统或者其他用户开启的进程需要sudo权限exe连接的即可执行文件的目录。...原创 2021-09-14 11:43:20 · 3396 阅读 · 0 评论 -
linux下:Shell学习指南
1 变量1.1 变量命名规则只能用英文字母、数字和下划线,首个字母不能以数字开头;不能使用bash里的关键字(help命令可查)。1.2 变量的定义与赋值使用” = “赋值:变量名与等号之间不能有空格;_var=123CurrentPath=`pwd`通过语句给变量赋值。for file in `ls /etc` do echo $filedone1.3 变量的使用使用一个定义过的变量,只需要在变量名前加 $ 。echo $_var_var2=$_var原创 2021-09-10 13:53:36 · 267 阅读 · 0 评论 -
jsoncpp之json和string互相转换
Json转stringJson::Value root;root["map_name"] = "test";root["position_name"] = "test1";Json::StreamWriterBuilder writerBuilder;std::unique_ptr<Json::StreamWriter> json_write(writerBuilder.newStreamWriter());std::ostringstream ss;json_write->原创 2020-06-29 17:45:11 · 8774 阅读 · 1 评论 -
GStreamer播放本地wav格式音频文件代码实现
1.安装GStreamer && 测试环境GStreamer官方教程如下图为各个平台的安装教程,按照教程装就好了装完测试一下电脑环境:gst-launch-1.0 filesrc location=/home/username/work/TestProgram/TestGstream/tts_sample.wav ! wavparse ! alsasink命令规则参考点这里能正常听到声音就继续往下看呀~没有声音的话就先解决这个问题吧。2.简单粗暴上代码QT在.pro文件配置原创 2020-07-04 17:18:50 · 1439 阅读 · 0 评论 -
宽字符与多字节字符相互转换
环境:c++11#include <locale>#include <codecvt>std::wstring szW{ L"Hello world." };std::string szA;std::wstring_convert<std::codecvt_utf8<wchar_t>> cv; // 声明一个用于转换的变量cv。所有的转换都经过此变量。szA = cv.to_bytes(szW);// 宽字节转多字节std::wstring sz转载 2020-11-05 11:14:02 · 267 阅读 · 0 评论 -
tinyxml2使用
1.从文件加载XMLDocument doc;int iRet = doc.LoadFile("./test.xml");2.XMLDocument转字符串XMLDocument doc;int iRet = doc.LoadFile("./test.xml"); XMLPrinter printer; doc.Print(&printer); std::string strXml = printer.CStr();3.字符串转XMLDocumentstd::string s原创 2020-12-23 10:14:59 · 135 阅读 · 0 评论 -
Linux获取本地时间
1.时间的表示方法参考链接Linux内核中表示时间的结构体和数据类型有5种, 具体其声明的头文件在:#include<sys/time.h> #include<sys/types.h>extern void do_gettimeofday(struct timeval *tv);//gettimeofday函数执行成功后返回0,失败后返回-1,错误代码存于errno中。extern int gettimeofday(struct timeval *__restrict _原创 2020-12-04 11:14:06 · 938 阅读 · 0 评论 -
C++优化建议
1.指针与引用在以下情况只能使用指针:存在不指向任何对象的可能(即空指针)可能改变指向的对象在以下情况推荐使用引用:重载某个操作符时,返回引用必须指向一个对象且不再改变指向2.类型转换使用C++风格的类型转换,如下:static_cast:静态类型转换,常用于基本类型转换const_cast:去除变量的const属性dynamic_cast:动态类型转换,安全的基类和子类之间转换;运行时类型检查reinterpret_cast:强制类型转换,重新解释操作数的位模式,很难保证原创 2021-05-25 16:20:37 · 116 阅读 · 0 评论 -
RTTI —— 运行阶段类型识别
RTTI —— 运行阶段类型识别1.多态定义:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现的。说明:无多态性示例class Base{public: Base(){} void FunOne(){std::cout << "This is Base" << std::endl;}};class SubOne : public Base原创 2021-04-08 13:48:12 · 170 阅读 · 0 评论 -
运算符重载
格式//ret:返回的类型//op:运算符 + * / [] ……//argument-list:参数列表ret operator op(argument-list);限制至少有一个参数是用户定义的类型,不能为标准类型重载运算符不能违反运算符原来的语句法则,也不能修改运算符的优先级不能创建新的运算符以下运算符不能被重载:sizeof . .*(成员指针) :: ?:(条件运算符) typeid const_cast dynamic_cast reinterpret_c原创 2021-01-25 19:51:54 · 128 阅读 · 2 评论