efreopen.c 950 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*====================================================================*
  2. *
  3. * FILE *efreopen(char const *filename, char const *openmode, FILE *fp);
  4. *
  5. * files.h
  6. *
  7. * attempt to reopen a file using freopen(); return a valid file
  8. * pointer on success; print an error message to stderr and then
  9. * return NULL on failure;
  10. *
  11. * Motley Tools by Charles Maier <cmaier@cmassoc.net>;
  12. * Copyright (c) 2001-2006 by Charles Maier Associates;
  13. * Licensed under the Internet Software Consortium License;
  14. *
  15. *--------------------------------------------------------------------*/
  16. #ifndef EFREOPEN_SOURCE
  17. #define EFREOPEN_SOURCE
  18. #include <stdio.h>
  19. #include <errno.h>
  20. #include "../tools/files.h"
  21. #include "../tools/error.h"
  22. FILE * efreopen (char const * filename, char const * openmode, FILE * fp)
  23. {
  24. if ((fp = freopen (filename, openmode, fp)) == (FILE *) (0))
  25. {
  26. error (0, errno, "%s", filename);
  27. }
  28. return (fp);
  29. }
  30. #endif