Linux的read和write函数

这两个函数都是unbuffered的,也就是直接写入的。

读文件:

函数原型:

read函数尝试从fd所指的文件处读出count数量的字节,然后存到buf所指的缓冲区里。 继续阅读

lseek函数

lseek函数主要用来改变文件偏移量。

函数原型为:

其中whence有以下几种类型:

SEEK_SET 0 偏移值是offset
SEEK_CUR 1 偏移值是offset加当前位置
SEEK_END 2 偏移值是offset加文件大小

不建议直接用数值。 继续阅读

在CentOS(RedHat)6.2上安装mrtg

mrtg 是一个非常流行的流量统计工具。虽然看起来有点过时了,当然也有以下几点好处:

1.我只有一台机器要用,比如我的个人网站.为了一个小服务器搞个cacti不值.象这样MRTG还是很方便的.

2.就算大面积使用Cacti加RRD还是有必要在本机运行一个可以直接查看的网页比较方便.方便运维排错.
3.可以在一个节点的一台机器上装一个MRTG,然后加上那个节点后面所有的机器,这样可以显示每个节点的流量,方便节点排错.
MRTG的全称叫 Multi Router Traffic Grapher 可以监控很多东西,今天我们就用它来监控我小小的个人网站的流量.节点之类多设备的设置后面也可以参考一下. 继续阅读

Linux打开文件函数

man open 里东西好多,终于都看了一遍.

转载请注明出处

函数原型:

参数说明:

其中flags必须包括以下一些参数:

O_RDONLY 只读模式打开
O_WRONLY 只写模式打开
O_RDWR 读写都可以

还可以包括以下一些参数:

O_APPEND  当加入这个标志以后,每次写入文件的时候都会从末尾写入。
O_CREAT 当文件不存在的时候创建新文件。
O_EXCL 当O_CREAT标志存在且文件存在的时候输出错误。
O_TRUNC 当文件存在且被另一个程序以可写模式打开时,把文件的长度截短为0(不明白什么意思),如果是从FIFO(先入先出)设备读取的,那么忽略这个参数。
O_NOCTTY 如果pathname是一个终端,则不将该设备分配给进程作为控制终端
O_NONBLOCK 如果可以,比如打开一个FIFO文件,以非阻塞的形式打开文件(对文件进行写入的时候不暂停进程)。

注:当O_CREAT参数有效的时候,mode参数有效,用于表示创建的文件的权限; 继续阅读

Linux文件描述符

在Linux内核里,每个打开的文件都有一个对应的文件描述符。每个文件描述符是一个非负整数,当程序打开一个文件的时候,内核就把对应的文件描述符发给这个进程。而程序就通过这个文件描述符来识别不同的文件。

按照惯例,0被用来描述标准输入,1是标准输出,2是标准错误输出。

在程序里,最好用STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO

取代这三个数,这三个常数在<unistd.h>里定义。

文件描述符的最大值是 OPEN_MAX;