utils.c 985 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #define _GNU_SOURCE
  2. #include <stdio.h>
  3. #include "utils.h"
  4. #include <string.h>
  5. #include <limits.h>
  6. #include <stdint.h>
  7. #include <stdlib.h>
  8. #include <unistd.h>
  9. #include <errno.h>
  10. #include <err.h>
  11. #include <assert.h>
  12. #include "utils.h"
  13. void * palloc(int size)
  14. {
  15. void *p;
  16. p = malloc(size);
  17. if(p == NULL) {
  18. printf("Error Malloc does not allocate\n");
  19. exit(1);
  20. }
  21. return p;
  22. }
  23. char *aprintf(const char *fmt, ...)
  24. {
  25. char *ret;
  26. va_list arglist;
  27. va_start(arglist, fmt);
  28. vasprintf(&ret, fmt, arglist);
  29. va_end(arglist);
  30. return ret;
  31. }
  32. void strreplace(char * str, char src, char dest)
  33. {
  34. int i;
  35. for(i = 0; str[i]; i++)
  36. if(str[i] == src)
  37. str[i] = dest;
  38. }
  39. void *_realloc_array(void *ptr, size_t size, size_t num)
  40. {
  41. if (num >= SIZE_MAX/size)
  42. return NULL;
  43. return realloc_nofail(ptr, size * num);
  44. }
  45. void *realloc_nofail(void *ptr, size_t size)
  46. {
  47. ptr = realloc(ptr, size);
  48. if (ptr)
  49. return ptr;
  50. err(1, "realloc of %zu failed", size);
  51. }