home *** CD-ROM | disk | FTP | other *** search
- /*-----------------------------------------------------------------------*
- * filename - setmode.c
- *
- * function(s)
- * setmode - sets mode of open file
- *-----------------------------------------------------------------------*/
-
- /*
- * C/C++ Run Time Library - Version 5.0
- *
- * Copyright (c) 1987, 1992 by Borland International
- * All Rights Reserved.
- *
- */
-
-
- #include <io.h>
- #include <_io.h>
- #include <fcntl.h>
- #include <RtlData.h>
-
- /*--------------------------------------------------------------------------*
-
- Name setmode - sets mode of open file
-
- Usage int setmode(int handle, int mode);
-
- Prototype in io.h
-
- Description setmode sets the mode of the open file associated with
- handle to either binary or text. The argument mode must
- have a value of either O_BINARY or O_TEXT, never both.
-
- Return value setmode returns 0 if successful; on error it returns -1 and
- sets errno to
- EINVAL Invalid argument
-
- *---------------------------------------------------------------------------*/
- int _FARFUNC setmode(int fildes, register int mode)
- {
- register int newmode;
- _QRTLDataBlock;
-
- if ((unsigned)fildes >= _QRTLInstanceData(_nfile))
- return(__IOerror (e_badHandle));
- if ((newmode = mode & (O_TEXT | O_BINARY)) == mode &&
- newmode != (int)(O_TEXT | O_BINARY))
- {
- mode = _QRTLInstanceData(_openfd) [fildes];
- _QRTLInstanceData(_openfd) [fildes] =
- (mode & ~(O_TEXT | O_BINARY)) | newmode;
- return((mode & (O_TEXT | O_BINARY)));
- }
- else
- return __IOerror(e_badFunction);
- }
-