| #ifndef Py_FILEUTILS_H | 
 | #define Py_FILEUTILS_H | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 | 
 | PyAPI_FUNC(wchar_t *) Py_DecodeLocale( | 
 |     const char *arg, | 
 |     size_t *size); | 
 |  | 
 | PyAPI_FUNC(char*) Py_EncodeLocale( | 
 |     const wchar_t *text, | 
 |     size_t *error_pos); | 
 | #endif | 
 |  | 
 | #ifndef Py_LIMITED_API | 
 |  | 
 | PyAPI_FUNC(PyObject *) _Py_device_encoding(int); | 
 |  | 
 | #ifdef MS_WINDOWS | 
 | struct _Py_stat_struct { | 
 |     unsigned long st_dev; | 
 |     uint64_t st_ino; | 
 |     unsigned short st_mode; | 
 |     int st_nlink; | 
 |     int st_uid; | 
 |     int st_gid; | 
 |     unsigned long st_rdev; | 
 |     __int64 st_size; | 
 |     time_t st_atime; | 
 |     int st_atime_nsec; | 
 |     time_t st_mtime; | 
 |     int st_mtime_nsec; | 
 |     time_t st_ctime; | 
 |     int st_ctime_nsec; | 
 |     unsigned long st_file_attributes; | 
 | }; | 
 | #else | 
 | #  define _Py_stat_struct stat | 
 | #endif | 
 |  | 
 | PyAPI_FUNC(int) _Py_fstat( | 
 |     int fd, | 
 |     struct _Py_stat_struct *status); | 
 |  | 
 | PyAPI_FUNC(int) _Py_fstat_noraise( | 
 |     int fd, | 
 |     struct _Py_stat_struct *status); | 
 |  | 
 | PyAPI_FUNC(int) _Py_stat( | 
 |     PyObject *path, | 
 |     struct stat *status); | 
 |  | 
 | PyAPI_FUNC(int) _Py_open( | 
 |     const char *pathname, | 
 |     int flags); | 
 |  | 
 | PyAPI_FUNC(int) _Py_open_noraise( | 
 |     const char *pathname, | 
 |     int flags); | 
 |  | 
 | PyAPI_FUNC(FILE *) _Py_wfopen( | 
 |     const wchar_t *path, | 
 |     const wchar_t *mode); | 
 |  | 
 | PyAPI_FUNC(FILE*) _Py_fopen( | 
 |     const char *pathname, | 
 |     const char *mode); | 
 |  | 
 | PyAPI_FUNC(FILE*) _Py_fopen_obj( | 
 |     PyObject *path, | 
 |     const char *mode); | 
 |  | 
 | PyAPI_FUNC(Py_ssize_t) _Py_read( | 
 |     int fd, | 
 |     void *buf, | 
 |     size_t count); | 
 |  | 
 | PyAPI_FUNC(Py_ssize_t) _Py_write( | 
 |     int fd, | 
 |     const void *buf, | 
 |     size_t count); | 
 |  | 
 | PyAPI_FUNC(Py_ssize_t) _Py_write_noraise( | 
 |     int fd, | 
 |     const void *buf, | 
 |     size_t count); | 
 |  | 
 | #ifdef HAVE_READLINK | 
 | PyAPI_FUNC(int) _Py_wreadlink( | 
 |     const wchar_t *path, | 
 |     wchar_t *buf, | 
 |     size_t bufsiz); | 
 | #endif | 
 |  | 
 | #ifdef HAVE_REALPATH | 
 | PyAPI_FUNC(wchar_t*) _Py_wrealpath( | 
 |     const wchar_t *path, | 
 |     wchar_t *resolved_path, | 
 |     size_t resolved_path_size); | 
 | #endif | 
 |  | 
 | PyAPI_FUNC(wchar_t*) _Py_wgetcwd( | 
 |     wchar_t *buf, | 
 |     size_t size); | 
 |  | 
 | PyAPI_FUNC(int) _Py_get_inheritable(int fd); | 
 |  | 
 | PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable, | 
 |                                     int *atomic_flag_works); | 
 |  | 
 | PyAPI_FUNC(int) _Py_dup(int fd); | 
 |  | 
 | #ifndef MS_WINDOWS | 
 | PyAPI_FUNC(int) _Py_get_blocking(int fd); | 
 |  | 
 | PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking); | 
 | #endif   /* !MS_WINDOWS */ | 
 |  | 
 | #endif   /* Py_LIMITED_API */ | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* !Py_FILEUTILS_H */ |