X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fstdio.h;h=afadd9124a847dfdf6b407049c7e0a32d9f389f4;hb=6d47488e8616dfc24e58aeb56db520ac7c80421e;hp=fe7ff51d4b524fe6dbacc2051019d4cc18e6648d;hpb=a3e2f3c2b15053a2f9faccc62947b82f2219599f;p=musl diff --git a/include/stdio.h b/include/stdio.h index fe7ff51d..afadd912 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -21,7 +21,11 @@ extern "C" { #include +#ifdef __cplusplus #define NULL 0L +#else +#define NULL ((void*)0) +#endif #undef EOF #define EOF (-1) @@ -38,13 +42,14 @@ extern "C" { #define _IONBF 2 #define BUFSIZ 1024 -#define FILENAME_MAX 4095 +#define FILENAME_MAX 4096 #define FOPEN_MAX 1000 #define TMP_MAX 10000 #define L_tmpnam 20 -typedef union { +typedef union _G_fpos64_t { char __opaque[16]; + long long __lldata; double __align; } fpos_t; @@ -178,6 +183,20 @@ int vasprintf(char **, const char *, __isoc_va_list); #ifdef _GNU_SOURCE char *fgets_unlocked(char *, int, FILE *); int fputs_unlocked(const char *, FILE *); + +typedef ssize_t (cookie_read_function_t)(void *, char *, size_t); +typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t); +typedef int (cookie_seek_function_t)(void *, off_t *, int); +typedef int (cookie_close_function_t)(void *); + +typedef struct _IO_cookie_io_functions_t { + cookie_read_function_t *read; + cookie_write_function_t *write; + cookie_seek_function_t *seek; + cookie_close_function_t *close; +} cookie_io_functions_t; + +FILE *fopencookie(void *, const char *, cookie_io_functions_t); #endif #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)