This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://svn.cc65.org/cc65/trunk@3 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
38
libsrc/common/freopen.c
Normal file
38
libsrc/common/freopen.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* freopen.c
|
||||
*
|
||||
* Ullrich von Bassewitz, 17.06.1998
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include "_file.h"
|
||||
|
||||
|
||||
|
||||
FILE* freopen (char* name, char* mode, FILE* f)
|
||||
{
|
||||
/* Check if the file is open, if so, close it */
|
||||
if ((f->f_flags & _FOPEN) == 0) {
|
||||
/* File is not open */
|
||||
_errno = EINVAL; /* File not input */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Close the file. Don't bother setting the flag, it will get
|
||||
* overwritten by _fopen.
|
||||
*/
|
||||
if (close (f->f_fd) < 0) {
|
||||
/* An error occured, _oserror is set */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Open the file and return the descriptor */
|
||||
return _fopen (name, mode, f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user