Veitch Kyrie's Blog

Thinking will not overcome fear but action will.

[转]可变参数的宏定义 #include<stdio.h> #define LOG(format, ...) printf(""format"\n",##__VA_ARGS__) int main() { LOG("%d %d %d",1,2,3); return 0; } 输出结果 $ 1 2 3

C++语法之override

c++语法笔记

C++语法之override 如果不写@override注解去直接重写方法,编译器是不会判断你是不是正确重写了父类中的方法的。如重写方法时参数与父类不同,程序是不会提示报错的。这会留下一个潜在的bug。当你写了@override注解时,程序会判断你是否正确的重写了父类的对应方法。而且加上此注解后,程序会自动屏蔽父类的方法。 简而言之,只要子类定义了和父类一样的方法名,不管是直接重载还是o...

OPENMP实现多线程计算,提高运行速度

多线程编程

OPENMP实现多线程计算,提高运行速度 如下是测试的代码: //OpenMP version. Edit and submit only this file. /* Enter your details below * Name : * UCLA ID : * Email : */ #include <stdlib.h> #include <stdio.h...

GDB的使用设置

问题分析及解决

GDB的使用设置 gdb的设置与使用简介 ##1 打开coredump文件的生成: echo "/tmp/corefile-%e-%p" >/proc/sys/kernel/core_pattern ulimit -c unlimited #(limit coredumpsize unlimit) #临时设置 #or #永久设置coredump size大小 # echo "...

关于std::this_thread::yield()的理解和sleep_for区别

问题分析及解决

std::this_thread::yield()和sleep_for() 区别 引自stack overflow: std::this_thread::yield tells the implementation to reschedule the execution of threads, that should be used in a case where you are ...

线程锁之unique_lock

多线程编程

多线程 unique_lock的使用 unique_lock的特点: 1,灵活。可以在创建unique_lock的实例时,不锁,然后手动调用lock_a.lock()函数,或者std::lock(lock_a, …),来上锁。当unique_lock的实例被析构时,会自动调用unlock函数,释放锁。 unique_lock<mutex> lock_a(d1.m, std:...

从 linux pthread 转换到 std::thread

多线程编程

从 linux pthread 转换到 std::thread 以前一直都是用pthread的API写C++的多线程程序。虽然很早之前就听说,从C++11开始,标准库里已经包含了对线程的支持,不过一直没有拿来用,最近刚好有空,借着pthread的经验学习下std::thread的用法。 1.1 Thread std::thread的构造函数方便得出人意料,这得感谢std::bind这个...

Linux特殊文件及链式重定向

标准输出

Linux特殊文件/dev/null及链式重定向 /dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null这个设备通常也被称为位桶(bit bucket)或黑洞。 所以,2>/dev/null的意思就是将标准错误stderr删掉。 Linux中的标准输入输出 标准输入0    从键盘获得输入 /proc/self/fd/0  标准输出1    输出...

遇到问题---‘apt-add-repository:找不到命令错误’

问题分析及解决

遇到的问题—apt-add-repository:找不到命令错误。 在linux中有时候需要使用ppa源来安装一些软件,默认并不支持ppa添加命令add-apt-repository,要解决此问题可以参考以下内容。 Ubuntu安装过程提示 $ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa $ apt-add-repos...

遇到问题--- Linux MQTT 修改端口后拒绝访问问题

问题分析及解决

遇到问题—Linux MQTT 修改端口后拒绝访问问题 1.1 问题分析: 端口已成功配置,但建立连接时总是拒绝访问,推测是新的端口没有在防火墙中开放。 1.2 解决方法: 1.2.1 防火墙工具的安装 新版本上的系统,firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config。 $ apt-get i...