00001 /* 00002 ******************************************************************************* 00003 * 00004 * Copyright (C) 1998-1999, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ******************************************************************************* 00008 * 00009 * File ustdio.h 00010 * 00011 * Modification History: 00012 * 00013 * Date Name Description 00014 * 10/16/98 stephen Creation. 00015 * 11/06/98 stephen Modified per code review. 00016 * 03/12/99 stephen Modified for new C API. 00017 * 07/19/99 stephen Minor doc update. 00018 ******************************************************************************* 00019 */ 00020 00021 #ifndef USTDIO_H 00022 #define USTDIO_H 00023 00024 #include <stdio.h> 00025 #include <stdarg.h> 00026 00027 #include "unicode/utypes.h" 00028 #include <unicode/ucnv.h> 00029 00030 00031 #define U_EOF 0xFFFF 00032 00034 typedef struct UFILE UFILE; 00035 00036 00037 00055 U_CAPI UFILE* U_EXPORT2 00056 u_fopen(const char *filename, 00057 const char *perm, 00058 const char *locale, 00059 const char *codepage); 00060 00073 U_CAPI UFILE* U_EXPORT2 00074 u_finit(FILE *f, 00075 const char *locale, 00076 const char *codepage); 00077 00082 U_CAPI void U_EXPORT2 00083 u_fclose(UFILE *file); 00084 00090 U_CAPI FILE* U_EXPORT2 00091 u_fgetfile(UFILE *f); 00092 00100 U_CAPI const char* U_EXPORT2 00101 u_fgetlocale(UFILE *file); 00102 00110 U_CAPI int32_t U_EXPORT2 00111 u_fsetlocale(const char *locale, 00112 UFILE *file); 00113 00122 U_CAPI const char* U_EXPORT2 00123 u_fgetcodepage(UFILE *file); 00124 00136 U_CAPI int32_t U_EXPORT2 00137 u_fsetcodepage(const char *codepage, 00138 UFILE *file); 00139 00140 00146 U_CAPI UConverter U_EXPORT2 *u_fgetConverter(UFILE *f); 00147 00148 /* Output functions */ 00149 00157 U_CAPI int32_t U_EXPORT2 00158 u_fprintf( UFILE *f, 00159 const char *patternSpecification, 00160 ... ); 00161 00173 U_CAPI int32_t U_EXPORT2 00174 u_vfprintf( UFILE *f, 00175 const char *patternSpecification, 00176 va_list ap); 00177 00185 U_CAPI int32_t U_EXPORT2 00186 u_fprintf_u( UFILE *f, 00187 const UChar *patternSpecification, 00188 ... ); 00189 00201 U_CAPI int32_t U_EXPORT2 00202 u_vfprintf_u( UFILE *f, 00203 const UChar *patternSpecification, 00204 va_list ap); 00205 00214 U_CAPI int32_t U_EXPORT2 00215 u_fputs(const UChar *s, 00216 UFILE *f); 00217 00224 U_CAPI int32_t U_EXPORT2 00225 u_fputc(UChar uc, 00226 UFILE *f); 00227 00237 U_CAPI int32_t U_EXPORT2 00238 u_file_write(const UChar *chars, 00239 int32_t count, 00240 UFILE *f); 00241 00242 00243 /* Input functions */ 00244 00253 U_CAPI int32_t U_EXPORT2 00254 u_fscanf( UFILE *f, 00255 const char *patternSpecification, 00256 ... ); 00257 00270 U_CAPI int32_t U_EXPORT2 00271 u_vfscanf( UFILE *f, 00272 const char *patternSpecification, 00273 va_list ap); 00274 00283 U_CAPI int32_t U_EXPORT2 00284 u_fscanf_u( UFILE *f, 00285 const UChar *patternSpecification, 00286 ... ); 00287 00300 U_CAPI int32_t U_EXPORT2 00301 u_vfscanf_u( UFILE *f, 00302 const UChar *patternSpecification, 00303 va_list ap); 00304 00314 U_CAPI UChar* U_EXPORT2 00315 u_fgets(UFILE *f, 00316 int32_t n, 00317 UChar *s); 00318 00324 U_CAPI UChar U_EXPORT2 00325 u_fgetc(UFILE *f); 00326 00335 U_CAPI UChar U_EXPORT2 00336 u_fungetc(UChar c, 00337 UFILE *f); 00338 00348 U_CAPI int32_t U_EXPORT2 00349 u_file_read(UChar *chars, 00350 int32_t count, 00351 UFILE *f); 00352 00353 #endif 00354 00355 00356 00357 00358