读书人

学习sed源码第三天之malloc和异常处理

发布时间: 2013-01-28 11:49:56 作者: rapoo

学习sed源码第三天之malloc和错误处理

今天继续重写sed源码,

1. ck_malloc

处理malloc失败,简单的

2. panic

简单的错误处理, APUE中已经有差不多代码


总之第三天是个轻松天


添加了utils.c文件,在想是不是该写Makefile了,等等把。

/** *  filename: utils.c  * *  created by jeff *  date:   2013.1.25 *  reason: first version * ***********************************************************/#if __STDC__#define VOID void#else#define VOID char#endif#include <stdio.h>#include <unistd.h>#include <stdarg.h>VOID *ck_malloc(int size);VOID panic(char*, ...);char* myname;/** *  malloc 失败处理 * */VOID *ck_malloc(int size){    VOID *ret;    if(!size)      size++;    ret=malloc(size);    if(ret ==(VOID*)0)        panic("Couldnot allocate memory");        return ret;}/** *  错误处理代码 *   */void panic(char* str, ... ){    va_list ap;    fprintf(stderr, "%s: ", myname);    va_start(ap, str);    vfprintf(stderr, str, ap);     va_end(ap);    putc('\n', stderr);    exit(4);}


读书人网 >编程

热点推荐