Linux数据管理——文件锁定

一、什么是文件锁定
对于锁这个字,大家一定不会陌生,因为我们生活中就存在着大量的锁,它们各个方面发挥着它的作用,现在世界中的锁的功能都可归结为一句话,就是阻止某些人做某些事,例如,门锁就是阻止除了屋主之外的人进入这个房子,你进入不到这个房子,也就不能使用房子里面的东西。

继续阅读 »

Linux 文件操作——系统调用和标准I/O库

一、什么是文件
在讲述文件操作之前,我们首先要知道什么是文件。看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等。但是在Linux中,文件的概念还远不止于这些,在Linux中,一切(或几乎一切)都是文件。文件包括很多的内容,例如:大家知道的普通文件是文件,目录也是一个文件,设备也是一个文件,管道也是一个文件等等。对于目录、设备这些的操作也可以完全等同于对纯文本文件的操作,这也是Linux非常成功的特性之一吧。

继续阅读 »

基于Linux的多线程安全队列

线程队列头文件 ThreadQueue.h
继续阅读 »

mysql 编程笔记

要进行linux下的mysql的C编程,需要安装mysql及mysql的开发包,ubuntu下直接apt-get install libmysql++安装开发包。
#include <mysql.h>
相关函数:
继续阅读 »

更改codeblocks的配色方案

codeblocks默认只有一种配色方案, 不过我们可以手动添加.

在终端下输入如下命令:

cd ~/.codeblocks

sudo gedit default.conf

在打开的配置文件中, 找到如下代码块:
继续阅读 »

libevent-2.0.21笔记

参看http://www.wangafu.net/~nickm/libevent-book/ 和libevent-2.0.21源码

其中有部分我认为比较简单的,就没有记录在这里了。

关于源码,可以主要关注,evutil.c evbuffer.c event.c bufferevent.c bufferevent_sock.c 这几个文件。
继续阅读 »

使用libevent编写linux服务

 libevent简介

libevent是一个支持Windowslinuxbsd等平台的网络事件驱动程序库。它支持多种I/O服用机制,按照优先级从高到低依次为:evportkqueueepolldevpollrtsigpollselect。它可根据操作系统,按照优先级从高到底自主选择驱动。

     用户可以通过http://www.monkey.org/~provos/libevent/来获取libevent的源码、libevent出现的背景、以及其他一些详细资料。
继续阅读 »

gcc的ar,nm,objdump,objcopy

OBJ文件格式分析工具: objdump, nm,ar

 

首先简要阐述关于gcc、glibc和 binutils模块之间的关系

一、关于gcc、glibc和binutils模块之间的关系
继续阅读 »

Linux下查看.so和可执行文件是否debug编译

今天同事问我, 如何判断一个.so是否是debug编译的.

我记得以前自己是用file来查看一个.so, 根据是否包含”not stripped”来判断该.so是否是debug编译的, 于是就没做实验就回答.

然而, stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后, 得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了.
继续阅读 »

关于SVN 目录结构

   Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是

   svn://proj/
   |
   +-trunk
   +-branches
   +-tags 
   这 是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使 用,svn并没有明确的规范,更多的还是用户自己的习惯。
    对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发 (比如freebsd),因为互联网的开发模式是完全不一样的。
继续阅读 »