Linux日志记录

经常系统某个进程出现异常,就会不自然地通过查看log日志来定位问题,大多数的信息都是通过用户进程调用syslog来产生日志信息

一般进程读取的是syslog.conf配置文件,这个配置文件决定了不同种类的信息会送往何处,但在CentOS6.4上找不到这个配置文件,但是有一个rsyslog.conf文件,而且传统的守护进程syslogd也没有,应该是RHEL做了相应的修改

接口函数,指定了送信息的位[……]

Read more

格式化输出

printf一系列函数能将各种不同类型的参数进行格式编排和输出,每个参数在输出流中的表现形式由格式参数format来控制,包含了需要输出的普通字符和转换控制符代码的字符串,转换控制符规定了其余参数的输出方式和输出地方

#include <stdio.h>

int printf(const char *format, ...);
int sprintf(char *s, const ch[......]

Read more

IO效率

ssize_t read(int filedes, void *buf, size_t nbytes);

read函数从打开的文件中读取数据;如果成功则返回读取的字节数,如果已经到文件结尾则返回0,如果出错则返回-1

nbytes是要求读取的字节数,读取之后存放在缓冲区buf中,同时文件读写位置后移;当函数返回,buf中前返回值个字节是读取来的,而实际读取的返回值字节数有可能会小于请求读取的字节数[……]

Read more

Cygwin生成APUE静态库

想将APUE里所有源文件编译成一个库,然后直接可以用,就直接Cygwin里操作:

1:vim Make.defines.linux 自定义修改绝对路径

WKDIR=/home/hui/apue.2e

2:vim std/linux.mk

将nawk修改成awk

看了下Makefile,需要遍历好多文件夹,想都没想,直接Make,然后最小化,让它慢慢搞就是了,可是突然搞着搞着,死机了!!!这是神马情[……]

Read more

Linux库文件

静态库一般后缀为.a,lib和.a之间就是库的名字,由于整个库的内容都被整到了目标代码中,因此编译出来的执行程序比较大,但是优点就是不需要再依赖外部的函数库,当然如果静态库内容变了,整个程序也必须得重新编译;使用静态库,链接器会找出程序所需要的函数,然后将他们完整copy到执行文件,因此一旦链接成功,静态库也就不需要了

动态库一半后缀为.so,lib和.so之间就是库的名字,当然有时候还包括版本号[……]

Read more

Linux查看进程启动时间

今天给客户定位问题,根据产生的log日志还无法确认结果,因为日志不完整,导致无法得知update的时候的进程号是多少,因此没法得知是否有过重启,后来想是否可以直接查到此刻运行的进程的启动时间,man了一下ps的命令,果然有:

1:查询进程pid

pgrep XXXX

其实通过命令ps aux | grep XXXX也会有一个粗略的起始时间,但是只显示到了日期以及后面一个不太清楚的数字:

[lihu[……]

Read more