自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 一个简单可执行队列(ExecutableQueue)实现的注意事项

#ifndef EXECUTABLE_QUEUE_H#define EXECUTABLE_QUEUE_H#include <condition_variable>#include <mutex>#include <queue>#include <thread>class ExecutableQueue final {public: void start() { thread_ = std::thread([this]() {

2021-04-11 21:22:35 166

转载 解决VMware虚拟机桥接模式无法上网

步骤1:查看本地以太网属性是否安装VMware Bridge Protocol控制面板>>网络和Internet>>网络连接>>以太网右键属性>>查看是否有安装VMware Bridge Protocol步骤2:查看VMware虚拟网络编辑器的VMnet0桥接模式设置编辑>>虚拟网络编辑器>>桥接模式>>桥接到默认自动,修改为你本地实际的Controller步骤3:禁用并启动虚拟机本地连接.

2020-10-11 11:56:55 1892

原创 vscode 配置g++ 逗号参数

"args": [ "-g", "${file}", "-std=c++17", "-Wall", "-static", "-Wl,--whole-archive", "-lrt", "-lpthread", "-Wl,--no-whole-archive", "-o", "${fileDirname}/a.out"],网上搜了很久没找到正确了,隔了几天自己试成功了,给大家参考。...

2020-10-07 20:32:53 486 1

原创 vscode 远程 Ubuntu 静态连接 pthread,执行报错:segmentation fault

参考链接:https://stackoverflow.com/questions/58848694/gcc-whole-archive-recipe-for-static-linking-to-pthread-stopped-working-in-recvscode task.json 设置:"args": [ "-g", "${file}", "-std=c++17", "-Wall", "-static", "-Wl,--whole-archive", "-lrt",

2020-10-07 20:30:39 353

原创 lock_guard 与 unique_lock 区别

lock_guard 非常简单,源码没超过20行。就是相当于 mutex 自动资源管理器。unique_lock 功能多一些,可以进行 lock, unlock, try_lock 等。源码也不复杂。其实觉得没必要搞一个lock_guard,用一个不就行了,还能减少程序员记忆负担。...

2020-09-21 16:10:21 255

原创 undefined reference to `mysql_init‘

出现这个错误原因是没有连接到mysql开发库。如果没有安装,网上可以搜索怎么安装。我遇到的情况是把源文件放到了库文件的后边:gcc $(mysql_config --include) $(mysql_config --libs) xxx.c这样编译就会出问题。如果像下面这样写,就可以解决这个问题,如下:gcc $(mysql_config --include) conn_mysql.c $(mysql_config --libs)...

2020-09-18 12:08:38 606

原创 C++ 单例模式

static Singleton& instance() { static Singleton s; return s; }这种方式在 C++11 之前是有线程安全问题的,C++ 11 之后没有线程安全问题。具体编译哪个版本开始这次这个特性,可以在网上搜索。当有多个线程同时进入这个函数的时候,只有一个线程会构造 Singleton 对象,其他线程会阻塞等待,等对象构造完后,唤醒所有等待的线程。...

2020-09-17 14:30:48 103

原创 关闭另一个线程的窗口

PostThreadMessage 发送的消息都不会发送到窗口,因为没有窗口句柄。只有 WM_QUIT 起作用,除非消息循环自己来写。SendMessage可以发送消息,然后当前线程阻塞,窗口(主线程)会在队列中得到这个消息,这个是看调用栈看的,具体原理有待研究。例如:SendMessage(dlgMain.m_hWnd, WM_COMMAND, (WPARAM)(IDCANCEL), 0);还有,在 WTL 中,如果发送 WM_DESTROY,会导致 dlgMain 析构的时候 m_hwnd 没有

2020-09-15 17:39:39 232

原创 makefile 后缀规则例子

今天看书讲 makefile 老式的“后缀规则”,没怎么看明白,在网上找例子找了半天也没找到,后来自己琢磨写了一个,记录一下:.SUFFIXES: .cxx.cxx.o: @echo 'suffix rule' gcc -c $<app: foo.outfoo.out: foo.o gcc foo.ofoo.o: foo.cxx这个规则已经被淘汰了,不推荐使用,只是看书的时候不弄明白心里难受。...

2020-09-10 21:18:00 657 1

原创 mysql source 语法错误

mysql 错误提示:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '---create table if not exists cd ( id INTEGER AUTO_INCREMENT NOT NULL' at line 1搜索有

2020-09-08 10:41:06 979

原创 Windows 设置程序开机启动

最近有一个需求,要在 windows 上设置一个 exe 开机启动。这个按照通常的做法,只需在注册表中添加一项即可实现。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run具体可参考:How to Add, Delete, Enable, or Disable Startup Items in Windows 10写好代码后,把一个测试 exe 设置成开机启动,重启机器。测试 exe 顺利的开机重启了。一切都 ok 后,交个测

2020-08-21 16:46:49 733

转载 Linux下getopt()函数的简单使用

最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。好了,虽然啰嗦了点,但确实是忠告。步入正题:我们的主角----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。再来看一下这家伙的原型(不是六耳猕猴):int getopt(int argc,char * const argv[ ],const char * optstring);前两个参数大家不会陌...

2020-08-19 13:18:43 142

原创 EINTR 在 Ubuntu 16.04 哪个文件中定义的?

/usr/include/errno.h -> /usr/include/x86_64-linux-gnu/bits/errno.h -> /usr/include/linux/errno.h -> /usr/include/x86_64-linux-gnu/asm/errno.h -> /usr/include/asm-generic/errno.h -> /usr/include/asm-generic/errno-base.h一路跟下去,找到在 /usr/include

2020-08-19 09:05:28 462

原创 sh 与 bash 执行 for 不一样

在 ubuntu 16.04 下,/bin/sh 指向 -> dash*,导致如果在脚本开头写 #!/bin/sh 执行的是 /bin/dash。我在脚本中写一个 for 遍历:for i in {1..5}do echo 'aa'done执行的时候提示语法错误。脚本开头改成 #!/bin/bash 执行就能成功。...

2020-08-16 13:53:34 250

原创 SQL 查找缺失的序号

SELECT D1.digit + (D2.digit*10) AS seqFROM Digits D1 CROSS JOIN Digits D2ORDER BY seq;SELECT D1.digit + (D2.digit10) + (D3.digit100) AS seqFROM Digits D1 CROSS JOIN Digits D2 CROSS JOIN Digits D3WHERE seq BETWEEN 1 AND 542ORDER BY seq;CREATE VIEW Se

2020-08-13 16:13:28 974

转载 How to search a non-ASCII character in a c++ string?

https://stackoverflow.com/questions/31396151/how-to-search-a-non-ascii-character-in-a-c-string

2020-07-21 17:22:24 134

原创 std::string utf8 find

应该是可以的,因为 utf8 编码每个字符肯定不会相同。

2020-07-21 17:06:02 259

转载 字符编码笔记:ASCII,Unicode 和 UTF-8

今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。我尽量写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte

2020-07-21 16:58:31 114

原创 SQL 记录

UPDATE user_info SET user_domain=TRIM(user_domain, '[]');

2020-07-08 17:10:27 150 1

原创 ubuntu 16.04 xinetd 无法通过配置文件关闭 telnet

通过命令安装 xinetd:sudo apt-get install xinetd -y通过命令安装 telnet:sudo apt-get install telnetd -y这两个安装好后,执行命令来重启 xinetd:sudo service xinetd restart其实这个时候 /etc/xinetd.d./ 目录下并没有 telnet 的配置文件,但是 xinetd 自己已经监视了 telnet(23) 端口号。通过如下命令查看某个端口号被某个进程监听:sudo nets

2020-07-05 09:38:36 800

原创 win32 不显示 console

Link->Subsystem->Not Set并且调用 FreeConsole

2020-06-28 16:16:15 223

原创 io_context.stop 后不要调用 io_context.reset

io_context.reset 内部会把 stopped_ 变量设置成 0,也就是没有 stop 的意思。等到 io_context.run 判断的时候就不会返回。#include <thread>#include <boost/asio.hpp>#include <boost/asio/io_context.hpp>#include <iostream>#include <memory>#include <Windows.

2020-06-11 15:56:37 973

原创 C++ 条件变量

条件变量的 wait 或者 wait_for 是理解条件变量的关键。wait_for 可以设置超时时间。所以只拿 wait 说。wait 调用后,先去判断后边的条件(lambda)是否满足,如果满足了直接就返回了,如果不满足就等待被唤醒。当被唤醒后,wait 先把第一个参数加锁,这样其他线程就不能进入关键区,也就不能再次唤醒这个条件变量。wait 检查条件是否满足,如果不满足,释放锁,并继续等待,让其他线程有机会执行。参考文章:https://segmentfault.com/a/1190000006

2020-06-11 12:29:07 740

原创 string 记录

string WavReader::toString(int8_t* bytes, unsigned int size) { return string{(char*)bytes, size};}来源于 《C++ 测试驱动开发》那本书,上边代码片段把一个buf 变成一个 string 类型。

2020-06-03 10:16:19 137

原创 记录 Visual Studio 隐式使用 dll

demo_dll.h#pragma once#ifdef DEMO_DLL #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif DLL_API int add(int a, int b);DLL_API int substract(int a, int b);demo_dll.cpp#include "demo_dll.h"DLL_API int ad

2020-06-01 21:00:50 208

原创 C++ regex 总结

regex_match 完整匹配一个字符串,如果字符串与正则完整匹配,那么函数返回 true,否则返回 false。这个是最简单常用的函数。

2020-05-21 15:52:25 230

原创 VMWare Ubuntu 虚拟机忘记 root 密码

https://blog.csdn.net/ezconn/article/details/89328024上述出现错误,可以参考下面网站解决问题:https://askubuntu.com/questions/91188/authentication-token-manipulation-error

2020-05-10 10:06:50 849

原创 MFC CDateTimeCtrl Show None 模式

创建的时候,添加 DTS_SHOWNONE

2020-05-08 16:42:54 296

原创 VMWare Ubuntu 共享文件夹失效解决办法

sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000我解决这个的时候找了半天,终于找到了,分享给需要的人。我当前的 Ubuntu 是 16.04。来源:https://askubuntu.com/questions/29284/how-do-i-mount-shared-folders-in-ubuntu-usin...

2020-05-06 12:25:56 2639 4

原创 stdafx.cpp 文件的预编译属性是创建 Create (/Yc)

如果重新创建stdafx.cpp 的话,直接编译工程会失败,提示没有找到预编译头文件生产的代码。这时候,右键 stdafx.cpp 文件,设置它的预编译属性为 Create,再次编译就会成功了。...

2019-09-16 10:31:56 228

原创 shared_from_this 崩溃问题

class foo : public enable_shared_from_this<foo>{public: shared_ptr<foo> test() { return shared_from_this(); }};int main(int argc, char* argv[]){ foo* p = new ...

2019-09-06 18:23:33 1939

转载 IO设计模式:Reactor和Proactor对比

转载地址:https://segmentfault.com/a/1190000002715832平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;反应器ReactorReactor模式结构Reactor包含如下角色:Han...

2019-07-25 19:48:46 105

转载 高性能IO模型浅析

转载地址:https://www.cnblogs.com/fanzhidongyzby/p/4098546.html服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOC...

2019-07-25 19:30:57 78

转载 linux下close 掉socket 之后 阻塞的recv 不会立即返回

转载地址:https://www.cnblogs.com/wainiwann/p/3942203.html在开发的一个基于rtmp聊天的程序时发现了一个很奇怪的现象。在windows下当我们执行 closesocket 的操作之后,阻塞的 recv 会立即返回 -1 。而在linux 下 当我们执行 close 操作之后 阻塞的recv 会出现不能立即返回的现象。后来在网上一搜发现很多遇到类...

2019-07-25 13:53:59 759

转载 窥探try ... catch与__try ... __except的区别

VC中的这两个东西肯定谁都用过, 不过它们之间有什么区别, 正好有时间研究了一下, 如果有错误欢迎拍砖.基于VC2005, 32位XP 平台测试通过. 估计对于其他版本的VC和操作系统是不通用的.try … catch这个是C++语言定义的, 每个C++都有对其的不同的实现. 使用也很简单. 比如我们有一个函数, 读入年龄. 如果<=0 或者 >=100, 抛出异常:int...

2019-07-04 18:17:33 855

原创 Windows 10 即时(Just-In-Time)调试器设置

参考文章:https://docs.microsoft.com/en-us/visualstudio/debugger/debug-using-the-just-in-time-debugger?view=vs-2019#jit_errors在注册表键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebu...

2019-07-04 09:48:53 3944

2013 duilib入门简明教程 整个工程(含资源、代码).zip

2013 duilib入门简明教程系列的所有资源和代码。 2013 duilib入门简明教程系列的所有资源和代码。 2013 duilib入门简明教程系列的所有资源和代码。 2013 duilib入门简明教程系列的所有资源和代码。

2019-05-29

空空如也

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

TA关注的人

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