
C++
文章平均质量分 63
unonoi
这个作者很懒,什么都没留下…
展开
-
【C++】gnustl_static 与 c++_shared 的区别
gnustl_static 与 c++_shared 的区别原创 2023-09-26 15:37:17 · 559 阅读 · 0 评论 -
【已解决】Mac 无法使用 GDB 进行调试的问题
解决 Mac 无法使用 GDB 进行调试的问题。原创 2023-01-10 15:13:28 · 1618 阅读 · 1 评论 -
【C++】epoll + socket 网络编程实现一个简单的 server
本着学习 epoll 的心理,本文使用 epoll + socket 实现了一个简单的 server ,可以接收多个客户端的连接并与之通信。话不多说,直接上代码,完整的代码见。原创 2022-10-20 19:25:21 · 1844 阅读 · 0 评论 -
【C++】全局变量释放导致进程崩溃的解决方法
方法的线程)在退出时,全局变量(包括static和non-static的全局变量)会被释放,此时如果子线程仍在访问该全局变量,则有可能访问的是已经被释放的全局变量,从而有可能导致进程崩溃。可以看到程序出现了Segmentationfault的崩溃,原因就是全局变量。delete并置空之后,子线程仍在访问。在进行析构时,将其成员变量。,从而导致进程崩溃。解决方法上文已经给出。...原创 2022-08-02 10:55:03 · 1546 阅读 · 0 评论 -
【C++】Linux inotify 文件监控机制介绍及使用
使用 Linux 进行文件监控。Linux 提供的 是一种异步文件监控机制,可以用来监控文件系统的事件,包括访问、读写、权限、删除、移动等事件。 既可以监控单个文件,也可以监控整个目录,当监控的对象是一个目录的时候,目录本身和目录下的文件/文件夹都是被监控的对象。但是不能递归监控子目录,如果想要监控子目录下的文件,需要自己通过递归的方法将所有子目录都添加到监控中。此种机制出现的目的是当内核空间发生某种事件之后,可以立即通知到用户空间,方便用户对此做出相应的操作。 是一个内核用于通知用户空间程序文件系统变原创 2022-07-12 20:13:43 · 8479 阅读 · 0 评论 -
【C++】C++ 类默认生成了哪些函数
本文主要是介绍 C++ 中的 构造、析构、赋值等运算。参考:《Effective C++ 3rd》Chapter 2目录文章目录目录在 C++ 中,如果没有自定义的话,编译器会默认生成如下函数:函数名默认构造函数拷贝构造函数拷贝赋值函数析构函数即,如果你写下:class A { };那么编译器会自动为类 A 生成如上函数(并且访问权限是 public 的):class A {public: A() = default; A(const A原创 2021-11-04 17:15:47 · 1265 阅读 · 0 评论 -
【C++】C++ 单例模式总结(5种单例实现方法)
C++ 单例模式的几种实现方式。原创 2021-11-04 11:12:52 · 111297 阅读 · 39 评论 -
【C++】C++ 如何进行代码覆盖率统计
C++ 覆盖率统计方法。原创 2021-09-23 16:06:38 · 2802 阅读 · 0 评论 -
【ProtoBuf】ProtoBuf 通过 proto 文件生成 cc/h 文件
本文简单介绍如何根据 protobuf 的 .proto 文件生成 C++ 使用的头文件和源文件。原创 2021-08-30 22:09:15 · 6132 阅读 · 1 评论 -
【C++】libgcc_s.so.1 must be installed for pthread_cancel to work
问题在 C++ 工程中,使用 dlopen() 函数打开一个动态库时,出现如下错误:2021-07-15 16:07:39 | dlopen() failed, lib: /mnt/aidot/libs/load/libAIDotBusiness.so, error: /mnt/aidot/libs/load/libAIDotBusiness.so: undefined symbol: _ZN8Workflow7finallyENSt7__cxx1112basic_stringIcSt11char_tr原创 2021-08-01 20:44:29 · 912 阅读 · 0 评论 -
【C++】HP-Socket 使用
1. HP-Socket 介绍HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 网络通信框架,提供 C/C++、C#、Java、Python 等编译语言接口。如果使用 HP-Socket 提供的 C++ 接口,需要使用 C++14 及以上的 C++ 版本。详细使用参考:HP-Socket 高性能网络通信框架伤神小怪兽 / HP-SocketHP-Socket GithubHP-Socket 官方例程解析HP-Socket 的 TCP 组件支持 PUSH、 PULL 和 P原创 2021-07-17 19:36:45 · 2368 阅读 · 1 评论 -
Linux 应用程序与 Android 应用程序之间如何通信
主题:Linux 应用程序与 Android 应用程序之间如何通信目录文章目录目录@[toc]前言方法1. Linux 端建立转发2. Android 端启动 server3. Linux 端启动 client前言本文前提条件:一台 Linux 设备一台 Android 设备Linux 设备与 Android 设备之间通过一根 USB 数据线物理连接在上述条件下,本文记录 Linux 应用和 Android 应用之间如何通信的步骤,仅供参考。方法参考:adb forward实现原创 2021-07-17 17:26:25 · 1662 阅读 · 0 评论 -
【C++】Linux 下使用 dlopen 加载动态库出现 Segmentation fault (core dumped)
背景最近需要运行时动态链接动态库,所以在代码中使用 dlopen() 函数动态加载动态库。同时,还存在一个动态库升级的业务背景,所以需要:先将升级的动态库下载到本地 upgrade 目录下然后进行版本号校验:判断 upgrade 目录下动态库的版本号是否高于本地 load 目录下的动态库的版本号,如是,则将 upgrade 下的动态库拷贝至 load 目录下最后 dlopen() 方式加载 load 目录下的动态库但是在操作过程中,动态库拷贝之后执行第 3 步时出现了 Segmentation原创 2021-07-06 15:17:02 · 3057 阅读 · 0 评论 -
【C++】nomember named ‘to_string‘ in namespace ‘std’
在使用 Android Studio 编写 C++ 代码时,出现如下错误:nomember named 'to_string' in namespace 'std'原因:这是因为 NDK 中默认使用的是最小的 STL 库,所以就会产生这个问题。解决方法:方法1:修改 gradle在 build.gradle 文件的 cmake 配置处配置 NDK 使用的 STL 库版本:externalNativeBuild { cmake { arguments "-DANDR原创 2021-05-08 15:58:25 · 5529 阅读 · 0 评论 -
【C++】C++11 vector 之 emplace_back() 使用场景简单剖析
emplace 关键字是 C++11 的一个新特性。amplace_back() 和 push_abck() 的区别是:push_back() 在向 vector 尾部添加一个元素时,首先会创建一个临时对象,然后再将这个临时对象移动或拷贝到 vector 中(如果是拷贝的话,事后会自动销毁先前创建的这个临时元素);而 emplace_back() 在实现时,则是直接在 vector 尾部创建这个元素,省去了移动或者拷贝元素的过程。但是 emplace_back() 的这个特性是在任何场景都生效的吗?本文原创 2021-03-11 22:05:03 · 48964 阅读 · 7 评论