自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 Linux下查看和清空route cache

在Linux有时候为了排除问题以及必要的信息,我们需要查看或者清空route cache。在linux下,/proc/net/rt_cache文件存储route cache信息,但是ip地址是使用十六进制来表示的,所以看起来很不方便。一般情况下,我们使用以下命令来查看和删除route cache内容:ip route show cache显示ip route flush c

2015-06-12 15:55:09 7911

原创 Linux下ls命令颜色效果

在Linux下执行ls命令,通常显示如下图所示:如上图所示,不同的文件类型显示为不同的颜色,方便使用者查看。但是有的Linux服务器没有分辨的颜色到底是怎么回事呢,让我们回到ls命令本身,输入ls --help 查看会发现以下内容  -C                         list entries by columns      --col

2015-06-12 09:54:10 4959

原创 使用动态库生成静态库

有一些程序我们需要依赖一些开元的库,但是有时候为了需求需要对这些库对应的源码进行修改。那么就需要我们在编译了修改后的源码后,由编译出的动态库生成我们需要的静态库。那么怎么由动态库生成动态库?我们可以借用ar命令。如对mysql源码修改后,编译后,生成对应的libmysqlpp.a静态库 ar -rus libmysqlpp.a `find . -name"mysqlpp*.o"`

2014-12-10 20:50:24 1724

原创 多线程 sleep usleep 阻塞问题

今天碰到一个问题,在多线程处理时,一个线程处理停止了,一开始以为是死锁了,但是过一段时间后,又正常运行了。又仔细看了下处理,才发现是usleep的问题。sleep和usleep都是使用alarm的信号机制实现等待。入股多线程同时usleep或者sleep时,就有可能造成程序阻塞。如果需要进行线程等待的话,使用nanosleep或者select来代替。select实现等待方式如下

2014-12-10 20:37:27 8731 4

原创 服务器远程root屏蔽以及登录端口设定(ssh)

为了安全考虑,有时候我们希望远程登录服务器时,防止使用超级用户(root)直接进行登录并且修改ssh默认登录端口。

2014-11-12 19:57:35 1007

原创 U盘安装Linux启动失败问题(grub)

使用U盘安装Linux系统时,当安装所有的包后,点击reboot重启(重启后还需要对系统进行时间,其他用户等等的设定),发现启动时进入了grub> 界面。原来是使用U盘进行Linux安装时,默认启动位置设在了U盘中。         因此重启系统,和安装系统时使用快捷键(一般为F11)选择USB方式启动。然后进行Linux系统的进一步设定(系统时间,其他用户名密码等)。设定好后,Linux系统

2014-11-12 19:55:22 11890

转载 Keepalived基础知识和基本配置

大纲:       一、什么是Keepalived?   二、VRRP协议简介.       三、Keepalived原理.       四、Keepalived配置文件详解.       五、Keepalived配置示例.一、什么是Keepalived?什么是Keepalived呢,keepalived观其名可知

2014-11-11 16:23:24 1125

原创 syslog函数处理-keepalived源码解析

在keepalived日志处理中,使用syslog来进程日志的存储。

2014-11-09 20:17:20 1019

原创 防止进程重新启动-keepalived源码解析

在上面一篇文章中,写了一种防止进程重新启动的方式:文件和记录锁(fcntl()和F_SETLK(设置记录锁))提供一种方法确保只有程序只被正在运行一次。

2014-11-09 20:08:49 1368

原创 守护进程的创建-keepalived源码解析

在keepalived处理中,包含三个进程,

2014-11-09 18:38:03 1855

翻译 Linux下防止程序重新启动

有一些程序在同一服务器同一时间只能运行一个,因此这样的程序应该需要一个排外的处理。当程序再次运行时,检测到该程序已经运行了,那么程序停止结束。   文件和记录锁(fcntl()和F_SETLK(设置记录锁))提供一种方法确保只有程序只被正在运行一次。如果每一个程序对一个固定的文件进行加锁(写,只有这个锁)。连续对该文件追加记录锁会失败,也意味着该程序正在被运行。这个记录锁是互斥的,如果一个程序

2014-10-24 20:49:43 1481

原创 error: ‘for’ loop initial declaration used outside C99 mode 问题对应方式

使用gcc 编译出现如下问题:

2014-10-20 22:50:58 1294

原创 多线程编译时_REENTRANT宏定义的必要性以及pthread和lpthread的区别

在Linux程序设计第4版 12.3章节中说到:在编写多线程程序时,我们需要通过定义宏_REENTRANT来告诉编译器我们需要可重入功能,而这个宏定义必须位于程序中的任何#include语句之前。进行该宏定义后,我们能够以一种多线程安全的方式来访问一些函数或者一些值(如:stdio.h中的一些以宏形式实现的函数,errno.h中的变量errno)。 但是, 该_REENTRANT宏是必须的

2014-10-19 23:31:11 1834

原创 errno多线程安全问题

在学习Linux程序设计时,看到了这么一句话:最初的UNIX和POSIX库中,在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。如果是这样的话,当在一个线程中准备获取刚才的错误码时,该变量很容易被另外一个线程中的函数调用改变。然后特意去查了下资料,总结了一下Linux下errno的资料,希望对你有所帮助。如果有什么错误问题请多多包涵并留言,一起学习进步。 首先,我们查

2014-10-19 23:22:23 3555

原创 汉诺塔模拟_C语言源代码(递归和栈)

首先,先了解下,什么是汉诺塔。

2014-06-29 21:22:43 1096

原创 判断单链表中是否有环,计算出环的首地址 C语言实现

判断单链表中是否有环,如果有,得出进入环时首个节点的地址.  有环的定义是,链表的尾节点指向了链表中的某个节点。如:

2014-06-24 12:44:24 1437

原创 约瑟夫问题 C语言代码

一、约瑟夫问题的由来

2014-06-18 17:27:05 1588

转载 sscanf的用法

#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明  sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中

2014-06-12 13:29:33 818

原创 源代码安装glusterFS(gf-error-codes.h missing)问题巧解

准备在ubuntu环境中试验glusterfs的一些功能, 虽然安装的步骤很简单,不过因为本人刚开始接触ubuntu系统还有glusterfs,所以在安装过程中就走了很多的弯路,%>_ 1、下载glusterfs安装包glusterfs包下载网址:http://download.gluster.org/pub/gluster/glusterfs/下载glusterf

2014-06-06 16:59:45 1415

原创 VirtualBox安装linux以及远程连接接口的设定

打算在自己电脑上安装Linux服务器进行一些实验和学习.把安装的经验发出来希望对你有所帮助.一、VirtualBox的下载和安装。该软件是开源软件,直接进行下载和安装就可以了。二、VitualBox安装linux服务器1、 首先下载ISO File(如Redhat)2、 启动VitualBox,创建一个新的虚拟机 3、  参照安装过程依次设定VM Name 和OS

2014-06-05 11:47:41 1426

转载 C语言中static的作用

static的作用   在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // g

2014-05-29 15:26:21 913

原创 使用popen函数创建ping命令管道

首先介绍下popen函数。头文件:#include 函数定义:FILE *popen(const char *command, const char*type);关联函数:int pclose(FILE *stream); popen() 函数创建一个管道 ,调用fork建立一个 进程, 并调用shell。因为该函数的返回值是一个普通的标准I/0流,所以它只能用pc

2014-05-28 08:09:15 1569

转载 gcc命令objdump用法

gcc命令之 objdump ---------------objdump是用查看目标文件或者可执行的目标文件的构成的GCC工具----------以下3条命令足够那些喜欢探索目标文件与源代码之间的丝丝的关系的朋友。objdump -x obj 以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出    objdump -t obj 输出目标文件的符号表()objdum

2014-05-27 10:20:40 657

转载 gdb中汇编调试

原标题名《gdb相关(gdb十分钟教程)》本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令

2014-05-23 14:36:28 1047

原创 ubuntu系统下安装glusterfs

准备在ubuntu环境中试验glusterfs的一些功能, 虽然安装的步骤很简单,不过因为本人刚开始接触ubuntu系统还有glusterfs,所以在安装过程中就走了很多的弯路,%>_ 1、下载glusterfs安装包glusterfs包下载网址:http://download.gluster.org/pub/gluster/glusterfs/选择需要的版本和系统(如3.5

2014-05-22 14:19:03 2913

原创 无外网ubuntu系统下安装gcc make等

在已经安装好了的ubuntu系统下安装gcc make时,如果可以连接外网时,只需要执行  “sudo apt-get install make gcc g++”类似命令就可以了,但是服务器无法连接外网时,gcc等该怎么安装呢?这时我们只需要下载对应的deb包来安装就可以了。1、 可以从安装ubuntu的iso文件中获得获得方法:把iso文件上传如该ubuntu中,然后执行以下命令就可

2014-05-22 13:28:08 18918 2

原创 glusterfs安装和简单配置

在CentOS系统中安装glusterfs并进行简单的配置。 一  server端和client端 glusterfs安装1.    下载glusterfs对应的rpm包。下载地址: http://download.gluster.org/pub/gluster/glusterfs/注意:下载时需下载和系统相匹配的版本。在下载前执行rpm -qa |grep gluster

2014-05-20 10:17:23 4534

SIP协议详解pdf

sip协议详解 pdf 超全

2017-03-27

正则表达式入门教程

30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自 己的程序或网页里使用它

2014-05-27

linux下C语言俄罗斯方块代码

linux 下C语言俄罗斯方块代码 可以实现支持全部的方块类型,支持左右移动,图形的旋转变化,快速下降,分数统计,级别提升,暂停等功能

2014-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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