0%

Here's something encrypted, password is required to continue reading.
阅读全文 »

SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。

阅读全文 »

7. GCC和gcc++编译器

7.1 gcc和 GCC是两个不同的东西
  • GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。
  • 因此gccGCC中的GUN C Compiler(C 编译器);g++GCC中的GUN C++ CompilerC++编译器)。二者都可以编译ccpp文件。只不过用gcc编译c++需要手动添加链接库
  • 在编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常使用用g++来编译以求自动完成链接。所以对于C语言程序的编译,我们应该使用gcc 指令,而编译C++程序则推荐使用g++指令
阅读全文 »

msys2是什么

  • Cygwin是运行于Windows平台的POSIX“子系统”,提供Windows下的类Unix环境,并提供将部分 Linux 应用“移植”到Windows平台的开发环境的一套软件。按照我经常开玩笑的话来讲,Cygwin 基本上就是传说中的 GNU/NT 系统(对照 GNU/Linux,GNU/BSD,GNU/HURD)。

  • MinGW,Minimalist GNU for Windows,用于开发原生(32位) Windows 应用的开发环境。它主要提供了针对 win32 应用的 GCC、GNU binutils 等工具,以及对等于 Windows SDK(的子集)的头文件和用于 MinGW 版本 linker 的库文件(so、a等,而不是 VC 的 lib)

  • MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件;

    MSYS2 是MSYS的一个升级版,是集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman(其实是与Cygwin的区别)。就是说MSYS2是Cygwin的升级版本

    它的一个优点就在于利用pacman包管理器,msys2可以使用pacman来安装软件包,我们可以比较轻松的使用Linux包管理器的方式来安装一整套可以在Windows上运行的Linux工具。显而易见,你可以在Msys shell执行Linux相关命令

阅读全文 »

1 Protobuf 概述

Protocol Buffer (简称Protobuf) 是Google出品的性能优异、跨语言、跨平台的序列化库。在网络通信和通用数据交换等应用场景中经常使用的技术是 JSONXML,在微服务架构中通常使用另外一个数据交换的协议的工具ProtoBuf

ProtoBuf也是我们做微服务开发,进行Go进阶实战中,必知必会的知道点。

ProtoBuf全称:protocol buffers,直译过来是:“协议缓冲区”,是一种与语言无关、与平台无关的可扩展机制,用于序列化结构化数据。

  • json\xml最大的区别是:json,ProtoBuf是二进制格式。
  • ProtoBuf相比于json\XML,更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
  • 我们只需要定义一次数据结构,就可以使用ProtoBuf生成源代码,轻松搞定在各种数据流和各种语言中写入、读取结构化数据。
阅读全文 »

7 lambda表达式

我们可以向一个算法传递任何类别可调用对象,如果可以对其使用调用运算符(),则称它为可调用的。c++中可调用对象有函数、函数指针、重载函数调用运算符类、lambda表达式。

一个lambda表达式表示一个可调用的代码单元,可将其理解为一个未命名的内联函数。一个lambda具有一个返回类型、一个参数列表和一个函数体(同函数一样)。与函数不同的是,lambda可定义在函数内部,有捕获列表:

1
[capture list] (parameter list)->return type{	function body 	};

  • captue list(捕获列表)是一个lambda所在函数中定义的局部变量列表(通常为空)
  • return type为返回类型,
  • parameter list为参数列表、
  • function body为函数体
阅读全文 »