xmalloc.c
上传用户:xxcykj
上传日期:2007-01-04
资源大小:727k
文件大小:1k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. /*
  2.  * xmalloc.c -- allocate space or die 
  3.  *
  4.  * Copyright 1998 by Eric S. Raymond.
  5.  * For license terms, see the file COPYING in this directory.
  6.  */
  7. #include "config.h"
  8. #include <stdio.h>
  9. #include <errno.h>
  10. #include <string.h>
  11. #if defined(STDC_HEADERS)
  12. #include  <stdlib.h>
  13. #endif
  14. #include "fetchmail.h"
  15. #include "i18n.h"
  16. #if defined(HAVE_VOIDPOINTER)
  17. #define XMALLOCTYPE void
  18. #else
  19. #define XMALLOCTYPE char
  20. #endif
  21. XMALLOCTYPE *
  22. xmalloc (int n)
  23. {
  24.     XMALLOCTYPE *p;
  25.     p = (XMALLOCTYPE *) malloc(n);
  26.     if (p == (XMALLOCTYPE *) 0)
  27.     {
  28. report(stderr, _("malloc failedn"));
  29. exit(PS_UNDEFINED);
  30.     }
  31.     return(p);
  32. }
  33. XMALLOCTYPE *
  34. xrealloc (XMALLOCTYPE *p, int n)
  35. {
  36.     if (p == 0)
  37. return xmalloc (n);
  38.     p = (XMALLOCTYPE *) realloc(p, n);
  39.     if (p == (XMALLOCTYPE *) 0)
  40.     {
  41. report(stderr, _("realloc failedn"));
  42. exit(PS_UNDEFINED);
  43.     }
  44.     return p;
  45. }
  46. char *xstrdup(const char *s)
  47. {
  48.     char *p;
  49.     p = (char *) xmalloc(strlen(s)+1);
  50.     strcpy(p,s);
  51.     return p;
  52. }
  53. /* xmalloc.c ends here */