摘要:
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。 从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞起来等待数据准备就绪返回,read函数会返回一个错误EAGAIN,提示你的应用程序现在没有数据可读请稍后再试。 又例如,当一个系统调用(比如fork)因为没有足够的资源(比如虚拟内存)而执行失败,返回EAGAI 阅读全文
摘要:
出错处理守护进程完全脱离了终端,因此不能只是写到标准出错上.通常使用的方法是使用syslog服务,将出错信息输入到”/var/log/message”系统日志文件中去.Syslog是Linux中的系统日志管理服务,通过守护进程syslogd来维护.处理过程<1>打开syslog<2>写入日志<3>关闭syslog头文件#include <syslog.h>函数原型:void openlog(char *ident, int option, int facility) ;参数:ident为自定义标识符,option如下LOG_CONS若日志消息,不 阅读全文
摘要:
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。 阅读全文