linux
文章平均质量分 54
samxfb
码出不一样的烟火
展开
-
Protobuf 编码规则及c++使用详解
包含了常用的整形,字符串,枚举,结构体,repeated(数组)类型。原创 2023-12-22 16:02:38 · 1237 阅读 · 0 评论 -
linux应用卡死(anr)并行堆栈dump方法
linux应用程序未响应后使用gdb保存并行堆栈排查卡死原因。原创 2023-12-18 17:02:30 · 480 阅读 · 0 评论 -
ubuntu docker镜像制作及常用命令
ubuntu docker镜像制作及常用命令原创 2023-12-18 14:02:19 · 764 阅读 · 0 评论 -
QT应用启动失败排查方法
打开QT Plugin加载调试开关, 会得到QT应用启动过程中更详细的错误信息。原创 2023-09-12 13:53:47 · 1370 阅读 · 0 评论 -
Linux系统下Web文件系统搭建
在/var/www/html目录创建软链接文件files指向自定义文件目录,如下total 12游览器访问http://ip地址/files即可访问自定义目录, 如下total 4drwxrwxr-x 3 netease netease 4096 Jul 14 10:34 反垃圾sdk-api-4.4.10.4。原创 2023-08-31 16:11:50 · 595 阅读 · 2 评论 -
Linux系统下获取系统、BIOS、进程、网络等相关信息的方法和工具
Linux系统下可以使用API和内核通信或者直接读取文件系统来获取所需信息。此外,还有一些命令行工具可供使用,但我们建议优先使用API和文件系统。通过获取设备的一些静态信息,例如系统和BIOS信息,可以帮助我们挖掘Top机型。通过进程和网络等动态信息,可以指导我们进行应用性能测试和优化实践。原创 2023-06-20 14:21:10 · 2096 阅读 · 0 评论 -
Linux x86_64平台同时编译x86_64和arm64两个架构的Qt应用程序出现XRes库无法找到
在ubuntu x86_64平台上需要同时编译x86_64和arm64两个架构的Qt应用程序。在实践过程中,发现XRes库只能安装在其中一个平台。原创 2023-06-16 11:53:00 · 1641 阅读 · 0 评论 -
基于opencv实现两路yuv数据拼接合成一张大图
实时音视频通话(RTC)越来越注重安全审核,特别是在1v1娱乐社交场景中,对于视频反垃圾的需求也越来越大。随之而来的是客户对审核成本降低的诉求日益强烈。针对1v1场景,将两路视频拼接成一张图片进行审核相比于分别审核两路视频可以降低约50%的成本。然而,这种方法存在缺点:某些检测细节准确度会稍微降低一些,因为同一个特征在合成图里尺寸会变小。原创 2023-05-31 15:50:31 · 1027 阅读 · 0 评论 -
linux系统下如何获取进程和系统的cpu占用率
在开发SDK的过程中,需要收集进程和系统相关的负载信息。其中,CPU占用率是一个非常关键的指标。在早期阶段,我们使用管道方式获取top命令返回结果。但后来发现在线上存在一些异常情况,即上报的CPU占用率为0。考虑到top命令会带来较大的开销,并且管道使用不当容易出现问题,最终我们采用了proc文件系统方式获取CPU占用率。原创 2023-05-19 20:03:17 · 1811 阅读 · 0 评论 -
基于netlink的Linux Network Monitor实现
来源于产品开发需求,需要在linux系统下实现网络状类型查询及网络类型变更通知,比如从Ethernet变为Wifi,从Wifi变为Ethernet等。原创 2023-03-11 20:00:02 · 306 阅读 · 0 评论 -
[编译问题解决]error: ‘atomic_int32_t’ in namespace ‘std’ does not name a type
[编译问题解决]errorr: ‘atomic_int32_t’ in namespace ‘std’ does not name a typehttps://en.cppreference.com/w/cpp/atomic/atomic c++标准没有规定atomic_int32_t必须实现(只是optional),如下:解决方案:namespace std{ typedef atomic<std::int32_t> atomic_int32_t;}在[GCC5.4.0]c原创 2021-08-13 16:00:16 · 3355 阅读 · 0 评论 -
Ubuntu 18.04 (gcc 7.5.0) 编译 gcc5.4.0工具问题解决方案
Ubuntu 18.04 (gcc 7.5.0) 编译 gcc5.4.0工具问题解决方案Bug 81066 - sanitizer_stoptheworld_linux_libcdep.cc:276:22: error: aggregate ‘sigaltstack handler_stack’ has incomplete type and cannot be definedgcc5.4编译源码感谢以上作者的分享!...原创 2021-08-13 14:41:40 · 341 阅读 · 0 评论 -
嵌入式开发之交叉编译工具链制作
5. ct-ng build执行命令ct-ng build, 其它会下载一些源码,比如linux内核,gnu工具等,如果在公司内网可能无法下成功(速度过慢或者网站被过滤了),这个时候就需要发挥自己网络上寻找资源的能力了,最终会用到的源码资源如下:给出笔者花的时间最多的几个资源:duma_2_5_15.tar.gzhttps://github.com/johnsonjh/duma/releases/tag/VERSION_2_5_15...原创 2021-07-01 22:41:31 · 1909 阅读 · 1 评论 -
简单网络管理协议SNMP在嵌入式设备中的子代理实现
简单网络管理协议SNMP在嵌入式设备中的子代理实现摘要:简单网络管理协议(SNMP:Simple Network Management Protocol)IETF定义的一套网络管理协议。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。当前物联网设备增长迅速,物联网设备总数已达到百亿数量级,由此网络设备的管理尤为重要。除了常规意义上的路由器、交换机和服务器等网络设备,还包括各行各业的嵌入式设备,这些设备也可以实现SNMP.原创 2021-06-22 19:16:40 · 1992 阅读 · 0 评论 -
十大排序算法C++实现
#include <iostream>#include <memory>#include <functional>//O(n^2) stablevoid bubbleSort(int *data, int size){ for (int i = 0; i < size - 1; ++i) { for (int j = 0; j < size - 1 - i; ++j) { if (data[j] >原创 2021-05-25 00:11:53 · 67 阅读 · 0 评论 -
memcpy和memmove c/c++实现
memcpy和memmove c/c++源码实现当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确。//memcpyvoid *memcpy(void *dst, const void *src, size_t n){ assert(dst != nullptr && src != nullptr); char *d = (char *)dst; char *s = (char *)src; while原创 2021-05-23 23:07:39 · 176 阅读 · 0 评论