1 | |
---|
2 | /* File object interface */ |
---|
3 | |
---|
4 | #ifndef Py_FILEOBJECT_H |
---|
5 | #define Py_FILEOBJECT_H |
---|
6 | #ifdef __cplusplus |
---|
7 | extern "C" { |
---|
8 | #endif |
---|
9 | |
---|
10 | typedef 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 text (0) mode */ |
---|
19 | char* f_buf; /* Allocated readahead buffer */ |
---|
20 | char* f_bufend; /* Points after last occupied position */ |
---|
21 | char* f_bufptr; /* Current buffer position */ |
---|
22 | char *f_setbuf; /* Buffer for setbuf(3) and setvbuf(3) */ |
---|
23 | int f_univ_newline; /* Handle any newline convention */ |
---|
24 | int f_newlinetypes; /* Types of newlines seen */ |
---|
25 | int f_skipnextlf; /* Skip next \n */ |
---|
26 | PyObject *f_encoding; |
---|
27 | PyObject *weakreflist; /* List of weak references */ |
---|
28 | } PyFileObject; |
---|
29 | |
---|
30 | PyAPI_DATA(PyTypeObject) PyFile_Type; |
---|
31 | |
---|
32 | #define PyFile_Check(op) PyObject_TypeCheck(op, &PyFile_Type) |
---|
33 | #define PyFile_CheckExact(op) ((op)->ob_type == &PyFile_Type) |
---|
34 | |
---|
35 | PyAPI_FUNC(PyObject *) PyFile_FromString(char *, char *); |
---|
36 | PyAPI_FUNC(void) PyFile_SetBufSize(PyObject *, int); |
---|
37 | PyAPI_FUNC(int) PyFile_SetEncoding(PyObject *, const char *); |
---|
38 | PyAPI_FUNC(PyObject *) PyFile_FromFile(FILE *, char *, char *, |
---|
39 | int (*)(FILE *)); |
---|
40 | PyAPI_FUNC(FILE *) PyFile_AsFile(PyObject *); |
---|
41 | PyAPI_FUNC(PyObject *) PyFile_Name(PyObject *); |
---|
42 | PyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int); |
---|
43 | PyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int); |
---|
44 | PyAPI_FUNC(int) PyFile_SoftSpace(PyObject *, int); |
---|
45 | PyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *); |
---|
46 | PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); |
---|
47 | |
---|
48 | /* The default encoding used by the platform file system APIs |
---|
49 | If non-NULL, this is different than the default encoding for strings |
---|
50 | */ |
---|
51 | PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; |
---|
52 | |
---|
53 | /* Routines to replace fread() and fgets() which accept any of \r, \n |
---|
54 | or \r\n as line terminators. |
---|
55 | */ |
---|
56 | #define PY_STDIOTEXTMODE "b" |
---|
57 | char *Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *); |
---|
58 | size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *); |
---|
59 | |
---|
60 | #ifdef __cplusplus |
---|
61 | } |
---|
62 | #endif |
---|
63 | #endif /* !Py_FILEOBJECT_H */ |
---|