自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 避免 inet_ntoa 的陷阱:使用 inet_ntop 安全转换IP地址

使用 inet_ntoa 时要注意它返回的是一个静态指针,连续调用会导致结果被覆盖。使用 inet_ntop 可以避免这个问题,因为它允许你指定一个缓冲区来存储转换后的字符串。希望这篇文章能帮助你更好地理解和使用 inet_ntoa 和 inet_ntop 函数。在处理网络编程任务时,选择正确的函数并正确使用它们是非常重要的。希望这篇文章对你有帮助!

2025-01-16 10:04:48 403

原创 分享一个std::string字节转换时的问题

std::string 在大多数实现中是使用 char 类型来存储字符的,而 char 在很多系统中是有符号的(signed)。将 unsigned char 数组的内容赋值给 std::string 时,如果 std::string 内部使用的是有符号的 char 类型,那么任何大于 127 的值都会变成负数。这是因为有符号 char 的最高位是符号位。在这个例子中,buff[2] 和 buff[3] 可能被解释为有符号的 char 类型,因此它们的值可能被错误地解释为负数。遇到了两种不同的输出结果。

2024-12-13 10:52:07 227

原创 QString处理UTF-8字符乱码问题

但是,如果在读取的数据中包含多字节字符(如 UTF-8 编码的中文),数据可能不是按完整的 UTF-8 字符边界被读取,这些字符被分割在两个或更多的 read() 调用之间,那么可能会遇到乱码问题。因此,如果一个中文字符被分割在两个 read() 调用之间,而你的缓冲区太小无法容纳这个字符的完整表示,那么在下一个 read() 调用时,之前的字符的剩余部分可能已经被新的数据覆盖,导致乱码。但是,即使增加了缓冲区的大小,也不能保证每次 read() 调用都会返回完整的 UTF-8 字符序列,

2024-07-19 17:08:04 948

原创 检测POSIX 线程是否运行结束

当信号参数为 0 时,该函数不会发送任何信号,而是用于检查线程的存在性。实现一个类似std::thread::joinable()函数,用于查看linux c/c++为 POSIX 线程线程是否运行结束,不能阻塞主进程。通常情况下,pthread_kill() 用于向线程发送取消信号 SIGCANCEL 或自定义的线程间通信信号。pthread_kill() 是 POSIX 线程库中的一个函数,用于向指定线程发送信号 sig。如果 sig 为 0,则不发送信号,但会检查线程是否存在。

2024-07-12 17:05:26 247

原创 使用libusb库实时监测usb设备插拔信息

使用libusb库实时监测usb设备插拔信息,信息包括USB插拔状态、USB接口号、设备名称iProduct、厂商名称iManufacturer、设备编号idProduct、厂商编号idVendor、接口编号、USB类型码bDeviceClass,与lsusb -v所获取的信息一致,接口号与lsusb -t显示信息一致,厂商名称id为0时,名称获取不到,用厂商编号填充。

2023-07-12 16:30:52 1378 1

原创 std::string类以值传递传入函数参数,源字符串被修改的情况

很明显,原字符串已经被修改,std::string::c_str() 返回一个 const char* 类型的指针,指向 std::string 内部存储的字符数组副本。分享一个std::string使用当中遇到的问题,众所周知,当std::string对象以值传递的方式传入函数参数时,会走拷贝构造函数,即生成一个副本传入函数,原始字符串的内容不会被修改。所以说,为了防止出现意外情况,修改 std::string 对象的内容最好使用 std::string 的成员函数来进行。

2023-07-12 16:12:55 539 1

原创 关于使用inotify监测文件目录发现的问题

使用inotify监测文件系统时需要注意的的事项

2023-05-17 10:33:07 467 1

原创 Qt重写事件过滤器实现密码输入显示隐藏

继承QLineEdit重写事件过滤器实现密码输入显示隐藏。

2022-10-14 14:19:44 730

原创 C++代码实现QLineEdit密码复杂度检测

QLineEdit密码复杂度检测。

2022-10-14 14:18:03 614

原创 sm4加密算法C/C++源码

* @brief 加密文件*/void Encrypt(std::string SrcPath);* @brief 解密文件*/void Decrypt(std::string SrcPath);* @brief 加密字符串 * @param SrcPath (传入) 需要加密的字符串 * @param DestPath (传出) 加密后的密文字符串 **********************************************************************

2022-09-27 00:02:28 6698 5

原创 QTableVIew表格数据实时更新时选中行光标消失的解决方法

模型由继承QAbstractItemModel重写实现,在数据更新前先记录选中行,数据更新后,重新设置选中行class Model : public QAbstractItemModel{ Q_OBJECTpublic: Model( ); ~Model(); int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelInd

2022-06-17 09:27:19 1494

原创 Qt一个主界面添加三个自定义QTableView,QTableView数据动态刷新,不拉伸,显示不全时主界面滚动条滑动查看

主界面继承QWidgettable继承QTableView 数据更新使用继承抽象类QAbstractItemModel考虑到多个表垂直布局,表中数据不同,表格会被拉伸或压缩,查看信息需要分别去滑动每个表的滚动条,所以,为了方便美观,做了如下处理,只拉伸主界面。table1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);//设置表水平可任意拉伸压缩,垂直不可拉升压缩table2->setSizePolicy(QSizePolicy::Ex

2022-06-15 12:11:53 2754

国密算法sm4,可加密数据支持中英文特殊字符,可加密文件或字符串,支持cbc和ecb模式

国密算法sm4,可加密数据支持中英文特殊字符,可加密文件或字符串,支持cbc和ecb模式

2022-10-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除