Linux静态库生成指南

Linux上的静态库,其实是目标文件的归档文件。 在Linux上创建静态库的步骤如下: 写源文件,通过 gcc -c xxx.c 生成目标文件。用 ar 归档目标文件,生成静态库。配合静态库,写一个使用静态库中函数的头文件。使用静态库时,在源码中包含对应的头文件,链接时记得链接自己的库...

2018-01-31 22:45:56

阅读数:78

评论数:0

STL中的Traits编程技法

最近在看读《STL源码剖析》,看到Traits编程技法这节时,不禁感慨STL源码作者的创新能力。那么什么是Traits编程技法呢?且听我娓娓道来:   我们知道容器的许多操作都是通过迭代器展开的。其中容器类似于数组,迭代器类似于指针。我们用数组来写个例子: 1 int arr[5] =...

2018-01-29 17:04:51

阅读数:58

评论数:0

《STL源码剖析》学习之traits编程

侯捷老师在《STL源码剖析》中说到:了解traits编程技术,就像获得“芝麻开门”的口诀一样,从此得以一窥STL源码的奥秘。如此一说,其重要性就不言而喻了。        之前已经介绍过迭代器,知道了不同的数据结构都有自己专属的迭代器,不同的迭代器也有不同的特性,由于算法的接口是统一的,通过迭代...

2018-01-29 17:02:56

阅读数:49

评论数:0

Linux下调试core文件的方法

在开发和使用Linux程序时,引擎有时会莫名其妙的core掉,在网上查了一下,整理了一个简单的调试core文件的方法 1、什么是core dump? Core,即core memory, 指由一系列小当纳圈形的磁性材料组成的存储器,这里不过是沿用了这一称呼,而dump就是堆放的意思。core ...

2018-01-25 18:54:03

阅读数:193

评论数:0

LINUX ulimit命令

linux下默认是不产生core文件的,要用ulimit -c unlimited放开 概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是...

2018-01-24 22:17:43

阅读数:37

评论数:0

Linux基础 30分钟GDB调试快速突破

前言  gdb 开始调试开始上手 1. 开启core, 采集程序崩溃的状态   首先你跟着我做开启core崩溃状态采集. 可以通过 ulimit -c 查看 如果是0表示没有开启. 开启按照下面操作 su root vi /etc/profile Shift + G i #...

2018-01-23 22:10:10

阅读数:72

评论数:0

Linux gdb调试器用法全面解析

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。当程序被停住时,可以检查此时程序中所发生的事,并追索上文。动态...

2018-01-23 21:03:59

阅读数:49

评论数:0

g++基本用法

用法:g++[选项]文件... g++编译流程:       [cpp] view plain copy main.cxx   #include <iostream>      using namespace std;      ...

2018-01-22 22:48:59

阅读数:72

评论数:0

Linux awk命令详解

一.  AWK 说明   awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。   ...

2018-01-22 22:09:44

阅读数:58

评论数:0

Linux tr命令

tr命令可以对来自标准输入的字符进行替换、压缩和删除。tr只能接收来自标准的输入流,不能接收参数。 语法 tr [OPTION]... SET1 [SET2] 注意:SET2是可选项 OPTION: 不带参数:将SET2中的每个字符替换SET1中的每个...

2018-01-22 21:41:50

阅读数:1246

评论数:0

extern与头文件(*.h)的区别和联系

个人认为有一些道理:所以转过来学习了。 用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字?         如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include (xxx.h包含了a的声明)不就可以了么,为什么还要用extern...

2018-01-16 17:16:20

阅读数:44

评论数:0

神秘的40毫秒延迟与 TCP_NODELAY

最近的业余时间几乎全部献给 breeze 这个多年前挖 下的大坑—— 一个异步 HTTP Server。努力没有白费,项目已经逐渐成型了, 基本的框架已经有了,一个静态 文件模块也已经实现了。 写 HTTP Server,不可免俗地一定要用 ab 跑一下性能,结果一跑不打紧,出现了一个困扰了...

2018-01-15 23:52:28

阅读数:71

评论数:0

进程和线程关系与区别

简言之:   进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。   线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程...

2018-01-15 15:16:51

阅读数:53

评论数:0

c++ 类覆盖方法中的协变返回类型

在C++中,只要原来的返回类型是指向类的指针或引用,新的返回类型是指向派生类的指针或引用,覆盖的方法就可以改变返回类型。这样的类型称为协变返回类型(Covariant returns type).   协变(covariant),如果它保持了子类型序关系≦。该序关系是:子类型≦基类型。...

2018-01-12 17:18:57

阅读数:126

评论数:0

TCP和UDP的最完整的区别

TCP UDP TCP与UDP基本区别   1.基于连接与无连接   2.TCP要求系统资源较多,UDP较少;    3.UDP程序结构较简单    4.流模式(TCP)与数据报模式(UDP);    5.TCP保证数据正确性,UDP可能丢包    6.TCP保证数据顺序,UDP不保...

2018-01-12 17:11:17

阅读数:75

评论数:0

Keepalived实现高可用架构集群的搭建

1. keepalived介绍 在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果(比如,切换不及时)keepalived通过 VRRP(Virtual Router Redundancy Protocl)虚拟路由冗余协议 来...

2018-01-09 22:42:42

阅读数:121

评论数:0

基于软件的负载均衡(Nginx与ZooKeeper解析)

什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。 现在使用最多的基于...

2018-01-09 21:43:42

阅读数:555

评论数:0

Nginx/ZooKeeper 负载均衡的差异

Nginx是著名的反向代理服务器,也被广泛的作为负载均衡服务器 ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡 那么他们的区别是什么?如何选择呢? 下面从实际场景看下他们的关系 Nginx的负载均衡配置非常简单,把多个web server配置到nginx中,...

2018-01-09 21:01:45

阅读数:86

评论数:0

Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Web服务器集群

前言 终于到这篇文章了,心情是有点激动的。因为这篇文章会集中以前博客讲到的所有Nginx功能点,包括基本的负载均衡,还有动静分离技术再加上这篇文章的重点,通过Keepalived实现的HA(High Available),为什么要实现高可用呢?以前在搭建的时候只用了一台Nginx服务器,这样...

2018-01-09 17:17:05

阅读数:158

评论数:0

keepalived+nginx双机热备+负载均衡

keepalived+nginx双机热备+负载均衡 最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡)。同时结合keepalived 对前端nginx实现HA。 nginx进程基于于Master+Slave(worker)多进程模...

2018-01-09 16:35:00

阅读数:89

评论数:0

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