mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 08:26:27 +00:00
New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1795 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9d3e519b38
commit
fd70aa7c46
1 changed files with 83 additions and 0 deletions
83
Headers/gnustep/base/ostream.h
Normal file
83
Headers/gnustep/base/ostream.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
/* ostream.h - C-function interface to GNUstep Objective-C streams
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Adam Fedor <fedor@boulder.colorado.edu>
|
||||
Date: Jun 1996
|
||||
|
||||
This file is part of the GNUstep Base Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __objc_stream_h_GNUSTEP_BASE_INCLUDE
|
||||
#define __objc_stream_h_GNUSTEP_BASE_INCLUDE
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <objc/typedstream.h>
|
||||
|
||||
typedef struct _ostream
|
||||
{
|
||||
void* stream_obj;
|
||||
int flags;
|
||||
} ostream;
|
||||
|
||||
/* Access modes */
|
||||
#define OSTREAM_READONLY 1 /* read on stream only */
|
||||
#define OSTREAM_WRITEONLY 2 /* write on stream only */
|
||||
#define OSTREAM_READWRITE 4 /* do read & write */
|
||||
#define OSTREAM_APPEND 8 /* append (write at end of file) */
|
||||
|
||||
/* Seek modes */
|
||||
#define OSTREAM_SEEK_FROM_START 0
|
||||
#define OSTREAM_SEEK_FROM_CURRENT 1
|
||||
#define OSTREAM_SEEK_FROM_END 2
|
||||
|
||||
/* Private flags */
|
||||
#define OSTREAM_READFLAG 1 /* stream is for reading */
|
||||
#define OSTREAM_WRITEFLAG (1 << 1) /* stream is for writing */
|
||||
#define OSTREAM_ISBUFFER (1 << 2)
|
||||
#define OSTREAM_USER_OWNS_BUF (1 << 3)
|
||||
#define OSTREAM_CANSEEK (1 << 4)
|
||||
|
||||
extern int ostream_getc (ostream* s);
|
||||
extern void ostream_ungetc (ostream* s);
|
||||
extern int ostream_putc (ostream* s, int c);
|
||||
extern BOOL ostream_at_eos (ostream* s);
|
||||
extern char* ostream_gets (ostream* s, char* buf, int count);
|
||||
|
||||
extern int ostream_flush (ostream *s);
|
||||
extern void ostream_seek (ostream *s, long offset, int mode);
|
||||
extern long ostream_tell (ostream *s);
|
||||
extern int ostream_read (ostream* s, void* buf, int count);
|
||||
extern int ostream_write (ostream* s, const void* buf, int count);
|
||||
extern void ostream_printf (ostream *s, const char *format, ...);
|
||||
extern void ostream_vprintf (ostream *s, const char *format, va_list argList);
|
||||
extern int ostream_scanf (ostream *s, const char *format, ...);
|
||||
extern int ostream_vscanf (ostream *s, const char *format, va_list argList);
|
||||
|
||||
extern ostream *ostream_open_descriptor (int fd, int mode);
|
||||
extern ostream *ostream_open_memory (const char *addr, int size, int mode);
|
||||
extern ostream *ostream_map_file (const char *name, int mode);
|
||||
extern int ostream_save_to_file (ostream *s, const char *name);
|
||||
extern void ostream_get_memory_buffer (ostream *s, char **addr,
|
||||
int *len, int *maxlen);
|
||||
extern void ostream_close_memory (ostream *s, int option);
|
||||
extern void ostream_close (ostream *s);
|
||||
|
||||
#define OSTREAM_FREEBUFFER 0
|
||||
#define OSTREAM_TRUNCATEBUFFER 1
|
||||
#define OSTREAM_SAVEBUFFER 2
|
||||
|
||||
#endif /* __objc_stream_h_GNUSTEP_BASE_INCLUDE */
|
Loading…
Reference in a new issue