- 博客(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
8335
原创 Linux下ls命令颜色效果
在Linux下执行ls命令,通常显示如下图所示:如上图所示,不同的文件类型显示为不同的颜色,方便使用者查看。但是有的Linux服务器没有分辨的颜色到底是怎么回事呢,让我们回到ls命令本身,输入ls --help 查看会发现以下内容 -C list entries by columns --col
2015-06-12 09:54:10
5036
原创 使用动态库生成静态库
有一些程序我们需要依赖一些开元的库,但是有时候为了需求需要对这些库对应的源码进行修改。那么就需要我们在编译了修改后的源码后,由编译出的动态库生成我们需要的静态库。那么怎么由动态库生成动态库?我们可以借用ar命令。如对mysql源码修改后,编译后,生成对应的libmysqlpp.a静态库 ar -rus libmysqlpp.a `find . -name"mysqlpp*.o"`
2014-12-10 20:50:24
1829
原创 多线程 sleep usleep 阻塞问题
今天碰到一个问题,在多线程处理时,一个线程处理停止了,一开始以为是死锁了,但是过一段时间后,又正常运行了。又仔细看了下处理,才发现是usleep的问题。sleep和usleep都是使用alarm的信号机制实现等待。入股多线程同时usleep或者sleep时,就有可能造成程序阻塞。如果需要进行线程等待的话,使用nanosleep或者select来代替。select实现等待方式如下
2014-12-10 20:37:27
9026
4
原创 服务器远程root屏蔽以及登录端口设定(ssh)
为了安全考虑,有时候我们希望远程登录服务器时,防止使用超级用户(root)直接进行登录并且修改ssh默认登录端口。
2014-11-12 19:57:35
1044
原创 U盘安装Linux启动失败问题(grub)
使用U盘安装Linux系统时,当安装所有的包后,点击reboot重启(重启后还需要对系统进行时间,其他用户等等的设定),发现启动时进入了grub> 界面。原来是使用U盘进行Linux安装时,默认启动位置设在了U盘中。 因此重启系统,和安装系统时使用快捷键(一般为F11)选择USB方式启动。然后进行Linux系统的进一步设定(系统时间,其他用户名密码等)。设定好后,Linux系统
2014-11-12 19:55:22
12025
转载 Keepalived基础知识和基本配置
大纲: 一、什么是Keepalived? 二、VRRP协议简介. 三、Keepalived原理. 四、Keepalived配置文件详解. 五、Keepalived配置示例.一、什么是Keepalived?什么是Keepalived呢,keepalived观其名可知
2014-11-11 16:23:24
1232
原创 防止进程重新启动-keepalived源码解析
在上面一篇文章中,写了一种防止进程重新启动的方式:文件和记录锁(fcntl()和F_SETLK(设置记录锁))提供一种方法确保只有程序只被正在运行一次。
2014-11-09 20:08:49
1430
翻译 Linux下防止程序重新启动
有一些程序在同一服务器同一时间只能运行一个,因此这样的程序应该需要一个排外的处理。当程序再次运行时,检测到该程序已经运行了,那么程序停止结束。 文件和记录锁(fcntl()和F_SETLK(设置记录锁))提供一种方法确保只有程序只被正在运行一次。如果每一个程序对一个固定的文件进行加锁(写,只有这个锁)。连续对该文件追加记录锁会失败,也意味着该程序正在被运行。这个记录锁是互斥的,如果一个程序
2014-10-24 20:49:43
1551
原创 error: ‘for’ loop initial declaration used outside C99 mode 问题对应方式
使用gcc 编译出现如下问题:
2014-10-20 22:50:58
1369
原创 多线程编译时_REENTRANT宏定义的必要性以及pthread和lpthread的区别
在Linux程序设计第4版 12.3章节中说到:在编写多线程程序时,我们需要通过定义宏_REENTRANT来告诉编译器我们需要可重入功能,而这个宏定义必须位于程序中的任何#include语句之前。进行该宏定义后,我们能够以一种多线程安全的方式来访问一些函数或者一些值(如:stdio.h中的一些以宏形式实现的函数,errno.h中的变量errno)。 但是, 该_REENTRANT宏是必须的
2014-10-19 23:31:11
1901
原创 errno多线程安全问题
在学习Linux程序设计时,看到了这么一句话:最初的UNIX和POSIX库中,在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。如果是这样的话,当在一个线程中准备获取刚才的错误码时,该变量很容易被另外一个线程中的函数调用改变。然后特意去查了下资料,总结了一下Linux下errno的资料,希望对你有所帮助。如果有什么错误问题请多多包涵并留言,一起学习进步。 首先,我们查
2014-10-19 23:22:23
3631
原创 判断单链表中是否有环,计算出环的首地址 C语言实现
判断单链表中是否有环,如果有,得出进入环时首个节点的地址. 有环的定义是,链表的尾节点指向了链表中的某个节点。如:
2014-06-24 12:44:24
1486
转载 sscanf的用法
#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中
2014-06-12 13:29:33
884
原创 源代码安装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
1469
原创 VirtualBox安装linux以及远程连接接口的设定
打算在自己电脑上安装Linux服务器进行一些实验和学习.把安装的经验发出来希望对你有所帮助.一、VirtualBox的下载和安装。该软件是开源软件,直接进行下载和安装就可以了。二、VitualBox安装linux服务器1、 首先下载ISO File(如Redhat)2、 启动VitualBox,创建一个新的虚拟机 3、 参照安装过程依次设定VM Name 和OS
2014-06-05 11:47:41
1489
转载 C语言中static的作用
static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // g
2014-05-29 15:26:21
978
原创 使用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
1615
转载 gcc命令objdump用法
gcc命令之 objdump ---------------objdump是用查看目标文件或者可执行的目标文件的构成的GCC工具----------以下3条命令足够那些喜欢探索目标文件与源代码之间的丝丝的关系的朋友。objdump -x obj 以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出 objdump -t obj 输出目标文件的符号表()objdum
2014-05-27 10:20:40
688
转载 gdb中汇编调试
原标题名《gdb相关(gdb十分钟教程)》本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令
2014-05-23 14:36:28
1089
原创 ubuntu系统下安装glusterfs
准备在ubuntu环境中试验glusterfs的一些功能, 虽然安装的步骤很简单,不过因为本人刚开始接触ubuntu系统还有glusterfs,所以在安装过程中就走了很多的弯路,%>_ 1、下载glusterfs安装包glusterfs包下载网址:http://download.gluster.org/pub/gluster/glusterfs/选择需要的版本和系统(如3.5
2014-05-22 14:19:03
2989
原创 无外网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
19973
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
4604
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人