00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if 0
00021
00022 <lalVerbatim file="LALStdioHV">
00023 $Id: LALStdio.h,v 1.3 2007/09/21 19:24:56 jolien Exp $
00024 </lalVerbatim>
00025
00026 <lalLaTeX>
00027
00028 \section{Header \texttt{LALStdio.h}}
00029 \label{s:LALStdio.h}
00030
00031 Provides LAL functions similar to the non-file functions in \verb+<stdio.h>+.
00032
00033 \subsection*{Synopsis}
00034 \begin{verbatim}
00035 #include <lal/LALStdio.h>
00036 #include <lal/FileIO.h>
00037 \end{verbatim}
00038
00039 \noindent This header provides the LALsnprintf function.
00040
00041 \vfill{\footnotesize\input{LALStdioHV}}
00042 \newpage\input{LALStdC}
00043 </lalLaTeX>
00044 #endif
00045
00046 #ifndef _LALSTDIO_H
00047 #define _LALSTDIO_H
00048
00049 #include <stdio.h>
00050 #include <stdarg.h>
00051 #include <lal/LALConfig.h>
00052 #include <lal/LALRCSID.h>
00053
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057
00058 NRCSID( LALSTDIOH, "$Id: LALStdio.h,v 1.3 2007/09/21 19:24:56 jolien Exp $" );
00059
00060 #define LALFopen fopen
00061 #define LALFclose fclose
00062
00063
00064 #if LAL_SIZEOF_SHORT == 2
00065 #define __LAL_INT2_PRI_PREFIX__ ""
00066 #define __LAL_INT2_SCN_PREFIX__ "h"
00067 #elif LAL_SIZEOF_INT == 2
00068 #define __LAL_INT2_PRI_PREFIX__ ""
00069 #define __LAL_INT2_SCN_PREFIX__ ""
00070 #else
00071 #error "ERROR: NO 2 BYTE INTEGER FOUND"
00072 #endif
00073
00074 #if LAL_SIZEOF_INT == 4
00075 #define __LAL_INT4_PRI_PREFIX__ ""
00076 #define __LAL_INT4_SCN_PREFIX__ ""
00077 #elif LAL_SIZEOF_LONG == 4
00078 #define __LAL_INT4_PRI_PREFIX__ "l"
00079 #define __LAL_INT4_SCN_PREFIX__ "l"
00080 #else
00081 #error "ERROR: NO 4 BYTE INTEGER FOUND"
00082 #endif
00083
00084 #if LAL_SIZEOF_LONG == 8
00085 #define __LAL_INT8_PRI_PREFIX__ "l"
00086 #define __LAL_INT8_SCN_PREFIX__ "l"
00087 #elif LAL_SIZEOF_LONG_LONG == 8
00088 #define __LAL_INT8_PRI_PREFIX__ "ll"
00089 #define __LAL_INT8_SCN_PREFIX__ "ll"
00090 #else
00091 #error "ERROR: NO 8 BYTE INTEGER FOUND"
00092 #endif
00093
00094 #define LAL_INT2_PRId __LAL_INT2_PRI_PREFIX__ "d"
00095 #define LAL_INT2_PRIi __LAL_INT2_PRI_PREFIX__ "i"
00096 #define LAL_INT2_PRIo __LAL_INT2_PRI_PREFIX__ "o"
00097 #define LAL_INT2_PRIu __LAL_INT2_PRI_PREFIX__ "u"
00098 #define LAL_INT2_PRIx __LAL_INT2_PRI_PREFIX__ "x"
00099 #define LAL_INT2_PRIX __LAL_INT2_PRI_PREFIX__ "X"
00100
00101 #define LAL_INT4_PRId __LAL_INT4_PRI_PREFIX__ "d"
00102 #define LAL_INT4_PRIi __LAL_INT4_PRI_PREFIX__ "i"
00103 #define LAL_INT4_PRIo __LAL_INT4_PRI_PREFIX__ "o"
00104 #define LAL_INT4_PRIu __LAL_INT4_PRI_PREFIX__ "u"
00105 #define LAL_INT4_PRIx __LAL_INT4_PRI_PREFIX__ "x"
00106 #define LAL_INT4_PRIX __LAL_INT4_PRI_PREFIX__ "X"
00107
00108 #define LAL_INT8_PRId __LAL_INT8_PRI_PREFIX__ "d"
00109 #define LAL_INT8_PRIi __LAL_INT8_PRI_PREFIX__ "i"
00110 #define LAL_INT8_PRIo __LAL_INT8_PRI_PREFIX__ "o"
00111 #define LAL_INT8_PRIu __LAL_INT8_PRI_PREFIX__ "u"
00112 #define LAL_INT8_PRIx __LAL_INT8_PRI_PREFIX__ "x"
00113 #define LAL_INT8_PRIX __LAL_INT8_PRI_PREFIX__ "X"
00114
00115 #define LAL_INT2_SCNd __LAL_INT2_SCN_PREFIX__ "d"
00116 #define LAL_INT2_SCNi __LAL_INT2_SCN_PREFIX__ "i"
00117 #define LAL_INT2_SCNo __LAL_INT2_SCN_PREFIX__ "o"
00118 #define LAL_INT2_SCNu __LAL_INT2_SCN_PREFIX__ "u"
00119 #define LAL_INT2_SCNx __LAL_INT2_SCN_PREFIX__ "x"
00120
00121 #define LAL_INT4_SCNd __LAL_INT4_SCN_PREFIX__ "d"
00122 #define LAL_INT4_SCNi __LAL_INT4_SCN_PREFIX__ "i"
00123 #define LAL_INT4_SCNo __LAL_INT4_SCN_PREFIX__ "o"
00124 #define LAL_INT4_SCNu __LAL_INT4_SCN_PREFIX__ "u"
00125 #define LAL_INT4_SCNx __LAL_INT4_SCN_PREFIX__ "x"
00126
00127 #define LAL_INT8_SCNd __LAL_INT8_SCN_PREFIX__ "d"
00128 #define LAL_INT8_SCNi __LAL_INT8_SCN_PREFIX__ "i"
00129 #define LAL_INT8_SCNo __LAL_INT8_SCN_PREFIX__ "o"
00130 #define LAL_INT8_SCNu __LAL_INT8_SCN_PREFIX__ "u"
00131 #define LAL_INT8_SCNx __LAL_INT8_SCN_PREFIX__ "x"
00132
00133
00134
00135 #define LAL_INT2_FORMAT LAL_INT2_SCNd
00136 #define LAL_INT4_FORMAT LAL_INT4_SCNd
00137 #define LAL_INT8_FORMAT LAL_INT8_SCNd
00138 #define LAL_UINT2_FORMAT LAL_INT2_SCNu
00139 #define LAL_UINT4_FORMAT LAL_INT4_SCNu
00140 #define LAL_UINT8_FORMAT LAL_INT8_SCNu
00141 #define LAL_REAL4_FORMAT "g"
00142 #define LAL_REAL8_FORMAT "lg"
00143
00144 int
00145 LALSnprintf( char *, size_t, const char *, ... );
00146
00147 int
00148 LALVsnprintf( char *, size_t, const char *, va_list );
00149
00150 #ifdef __cplusplus
00151 }
00152 #endif
00153
00154 #endif