blob: 0876cd29a880d963441281eddaa0e0776b2861c9 [file] [log] [blame]
Guido van Rossumf70e43a1991-02-19 12:39:46 +00001
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00002/* File object interface */
3
Fred Drakeea9cb5a2000-07-09 00:20:36 +00004#ifndef Py_FILEOBJECT_H
5#define Py_FILEOBJECT_H
6#ifdef __cplusplus
7extern "C" {
8#endif
9
Martin v. Löwisf6eebbb2002-03-15 17:42:16 +000010typedef struct {
11 PyObject_HEAD
12 FILE *f_fp;
13 PyObject *f_name;
14 PyObject *f_mode;
15 int (*f_close)(FILE *);
16 int f_softspace; /* Flag used by 'print' command */
17 int f_binary; /* Flag which indicates whether the file is
18 open in binary (1) or test (0) mode */
19} PyFileObject;
20
Guido van Rossum051ab121995-02-27 10:17:52 +000021extern DL_IMPORT(PyTypeObject) PyFile_Type;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022
Tim Peters59c9a642001-09-13 05:38:56 +000023#define PyFile_Check(op) PyObject_TypeCheck(op, &PyFile_Type)
24#define PyFile_CheckExact(op) ((op)->ob_type == &PyFile_Type)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000025
Fred Drakeea9cb5a2000-07-09 00:20:36 +000026extern DL_IMPORT(PyObject *) PyFile_FromString(char *, char *);
27extern DL_IMPORT(void) PyFile_SetBufSize(PyObject *, int);
28extern DL_IMPORT(PyObject *) PyFile_FromFile(FILE *, char *, char *,
29 int (*)(FILE *));
30extern DL_IMPORT(FILE *) PyFile_AsFile(PyObject *);
31extern DL_IMPORT(PyObject *) PyFile_Name(PyObject *);
32extern DL_IMPORT(PyObject *) PyFile_GetLine(PyObject *, int);
33extern DL_IMPORT(int) PyFile_WriteObject(PyObject *, PyObject *, int);
34extern DL_IMPORT(int) PyFile_SoftSpace(PyObject *, int);
Tim Petersc1bbcb82001-11-28 22:13:25 +000035extern DL_IMPORT(int) PyFile_WriteString(const char *, PyObject *);
Andrew M. Kuchling06051ed2000-07-13 23:56:54 +000036extern DL_IMPORT(int) PyObject_AsFileDescriptor(PyObject *);
Guido van Rossuma3309961993-07-28 09:05:47 +000037
Mark Hammond26cffde42001-05-14 12:17:34 +000038/* The default encoding used by the platform file system APIs
39 If non-NULL, this is different than the default encoding for strings
40*/
41extern DL_IMPORT(const char *) Py_FileSystemDefaultEncoding;
42
Guido van Rossuma3309961993-07-28 09:05:47 +000043#ifdef __cplusplus
44}
45#endif
46#endif /* !Py_FILEOBJECT_H */