17db96d56Sopenharmony_ci/* File object interface (what's left of it -- see io.py) */
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci#ifndef Py_FILEOBJECT_H
47db96d56Sopenharmony_ci#define Py_FILEOBJECT_H
57db96d56Sopenharmony_ci#ifdef __cplusplus
67db96d56Sopenharmony_ciextern "C" {
77db96d56Sopenharmony_ci#endif
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci#define PY_STDIOTEXTMODE "b"
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyFile_FromFd(int, const char *, const char *, int,
127db96d56Sopenharmony_ci                                     const char *, const char *,
137db96d56Sopenharmony_ci                                     const char *, int);
147db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int);
157db96d56Sopenharmony_ciPyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int);
167db96d56Sopenharmony_ciPyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *);
177db96d56Sopenharmony_ciPyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *);
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ci/* The default encoding used by the platform file system APIs
207db96d56Sopenharmony_ci   If non-NULL, this is different than the default encoding for strings
217db96d56Sopenharmony_ci*/
227db96d56Sopenharmony_ciPyAPI_DATA(const char *) Py_FileSystemDefaultEncoding;
237db96d56Sopenharmony_ci#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
247db96d56Sopenharmony_ciPyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors;
257db96d56Sopenharmony_ci#endif
267db96d56Sopenharmony_ciPyAPI_DATA(int) Py_HasFileSystemDefaultEncoding;
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
297db96d56Sopenharmony_ciPyAPI_DATA(int) Py_UTF8Mode;
307db96d56Sopenharmony_ci#endif
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci/* A routine to check if a file descriptor can be select()-ed. */
337db96d56Sopenharmony_ci#ifdef _MSC_VER
347db96d56Sopenharmony_ci    /* On Windows, any socket fd can be select()-ed, no matter how high */
357db96d56Sopenharmony_ci    #define _PyIsSelectable_fd(FD) (1)
367db96d56Sopenharmony_ci#else
377db96d56Sopenharmony_ci    #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE)
387db96d56Sopenharmony_ci#endif
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci#ifndef Py_LIMITED_API
417db96d56Sopenharmony_ci#  define Py_CPYTHON_FILEOBJECT_H
427db96d56Sopenharmony_ci#  include "cpython/fileobject.h"
437db96d56Sopenharmony_ci#  undef Py_CPYTHON_FILEOBJECT_H
447db96d56Sopenharmony_ci#endif
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci#ifdef __cplusplus
477db96d56Sopenharmony_ci}
487db96d56Sopenharmony_ci#endif
497db96d56Sopenharmony_ci#endif /* !Py_FILEOBJECT_H */
50