0%

1
2
3
4
5
6
7
8
9
10
#include <unistd.h>

int dup(int oldfd);
int dup2(int oldfd, int newfd);

#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fcntl.h> /* Obtain O_* constant definitions */
#include <unistd.h>

int dup3(int oldfd, int newfd, int flags);

目的
给旧的文件描述符再添一个文件描述符,两个描述符都能指向同一个文件

dup(): 就给旧的再打开一个文件描述符
dup2(oldfd, newfd):指定一个新的描述符,新的如果原先有文件,就先关闭
dup3(oldfd, newfd, flags): 可以指定O_CLOEXEC标志

1. 语法

1
2
awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)

常用选项

  • -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
  • -v var=value 赋值一个用户定义变量,将外部变量传递给awk
  • -f scripfile 从脚本文件中读取awk命令

1
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'

在c++03及之前,临时值被认为不可被修改, 跟const T&无法区分开; c++11引入的一个新类型: 右值引用, 之前只有:

  • 左值: int a = 3;;
  • 左值引用: int a = 3; int& b = a;, b是右值引用;
  • 右值: 3;, 也是临时值, 包含临时值和纯右值;
阅读全文 »

1. 好处

  • 提升DSO(dynamic shared object)加载时间
  • 让优化器产生更好的代码。
  • 减小DSO大小
  • 降低符号冲突的可能
阅读全文 »

1. 介绍

https://github.com/gabime/spdlog.git

  • c++11
  • 只有头文件
  • 跨平台,linux,windows,macos,android
  • 丰富的格式化,自定义格式化
  • 异步模式
  • 多/单线程logger
  • 多日志目标:滚动,按天分类,控制台彩色,syslog,windows event log/debugger, 自定义扩展
  • 日志过滤
  • 从参数和环境变量中加载日志等级
  • backtrace支持
  • 支持1条日志入多个sink
阅读全文 »

1.基本介绍

  • 地址: https://github.com/zsummer/log4z
  • 支持 windows/linux/mac/android/iOS
  • 一个头文件,一个cpp
  • 日志滚动, 可以按月分文件夹
  • 线程安全
  • 彩色输出
  • 格式化或流形式的记录
  • 热更新配置
  • 多日志分流,可以输出到多个位置(logger)
  • MIT协议,基本没限制
阅读全文 »