- 浏览: 21843 次
- 性别:
- 来自: 贵阳
最新评论
文章列表
C++11应用:规范日志打印
- 博客分类:
- C/C++
#pragma once
#include <chrono>
static std::string getTimeStr()
{
std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tpNow = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
auto tmpNow=std::chrono ...
C++11应用:单例模式
- 博客分类:
- C/C++
Singleton.hpp:
#pragma once
template <typename T>
class Singleton
{
private:
Singleton();
virtual ~Singleton() {};
Singleton(const Singleton&);
Singleton& operator=(const Singleton&) {};
static T* mInstance;
public:
template <typename... Args>
...
C++11应用:观察者模式(多函数对象回调)
- 博客分类:
- C/C++
CallbackNotify.hpp
#pragma once
#include <map>
template <typename Func>
class CallbackNotify
{
private:
CallbackNotify(const CallbackNotify&) = delete; // 禁用复制函数
CallbackNotify& operator= (const CallbackNotify&) = delete; // 禁用赋值构造
int m_observerId = 0; ...
执行shell:
int runCommand(string cmd, char* result=NULL, int readLen=0){
FILE *fp;
const char *sysCommand = cmd.data();
MY_LOGE("runCommand:%s\n", sysCommand);
if ((fp = popen(sysCommand, "r")) == NULL) {
MY_LOGE("---runCommand error...\n") ...
转自:https://download.csdn.net/download/u013033015/10244526
#include <string.h>
#include<unistd.h>
#include<signal.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
# ...
一、linux下进程间通讯主要有以下几种手段:1、管道(pipe)和命名管道(named pipe)
管道可用于具有亲缘关系进程间的通讯,命名管道克服了管道没有名称的限制,从而允许无亲缘关系进程间的通信。管道的特点:
1)只支持单向数据流,管道两端,一端只能读,一端只能写。这意味要双向通讯,需要建立两个管道。读取和写入是阻塞的,当管道中没有信息的时候,读取进程会等待,直到写入进程放入信息;当管道被放满信息的时候,写入进程会等待,直到读取进程取出信息。当两个进程都终结时,管道也自动消失。
2)匿名管道(pipe)只能用于具有亲缘关系的进程间通讯,有名管道(name ...
一,重载类对象的toString函数:
#include <iostream>
#include <string.h>
#include <sstream> // std::to_string需要的头文件
using namespace std;
class MyBase {
private:
int age = 10;
std::string tostring; // 必须要全局变量
public:
MyBase() {
cout << "MyBase construct.. ...
YUV420的四种排列:
1) i420: YYYYUUVV (YUV420P)
2) YV12: YYYYVVUU
3) NV12: YYYYUVUV (YUV420SP)
4) NV21: YYYYVUVU
一、explicit构造函数显示调用声明,指定这个构造器只能被明确地调用/使用,不能作为类型转换操作符被隐含地使用:
class Test1
{
public:
Test1(int n)
{
num=n;
}//普通构造函数
private:
int num;
};
class Test2
{
public:
explicit Test2(int n)
{
num=n;
}//explicit(显式)构造函数
private:
int num;
};
in ...
https://blog.csdn.net/shan165310175/article/details/86624119
一,C++11引入列表初始化来禁止缩窄(长度数据类型强转小长度类型引起的数据丢失)。可将用于初始化的变量或值放到大括号{}内:
int largeNum = 500000;
short anotherNum{largeNum }; // error! Amend types
int anotherNum{largeNum}; // OK!
float someFloat{largeNum}; // error! An int may be narrowed
float someFloat{500000}; //OK! 500000 can be accomodated
...
resin4在eclipse中的非插件启动
- 博客分类:
- web
以Java Application方式新增启动配置:
用-conf参数指定配置文件地址:
配置文件内容:
<resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core">
<log name="" level="info" path="stdout:"/>
<cluste ...
unique_ptr+char*
- 博客分类:
- C/C++
int len1 = 6;
unique_ptr<char[]> bbc1(new char[len1]{0});
cout << "bbc1:" << bbc1.get() << endl;
char *abcd = bbc1.get();
unique_ptr<string> bbc2 = make_unique<string>("abcde");
cout << "bbc2:" << bbc2->data() & ...
linux:
#pragma once
#include <chrono>
static std::time_t getTimeStamp()
{
std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
auto tmp=std::ch ...