1 /* io.c -- io functions
3 This file is part of the UCL data compression library.
5 Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
8 The UCL library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of
11 the License, or (at your option) any later version.
13 The UCL library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with the UCL library; see the file COPYING.
20 If not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 Markus F.X.J. Oberhumer
24 <markus@oberhumer.com>
25 http://www.oberhumer.com/opensource/ucl/
31 #if !defined(NO_STDIO_H)
34 #include <ucl/uclutil.h>
40 /***********************************************************************
42 ************************************************************************/
45 ucl_fread(FILE *f
, ucl_voidp s
, ucl_uint len
)
47 #if 1 && (UCL_UINT_MAX <= SIZE_T_MAX)
48 return fread(s
,1,len
,f
);
50 ucl_byte
*p
= (ucl_byte
*) s
;
54 unsigned char buf
[512];
58 k
= len
- l
> sizeof(buf
) ? sizeof(buf
) : (size_t) (len
- l
);
63 b
= buf
; do *p
++ = *b
++; while (--k
> 0);
70 /***********************************************************************
72 ************************************************************************/
75 ucl_fwrite(FILE *f
, const ucl_voidp s
, ucl_uint len
)
77 #if 1 && (UCL_UINT_MAX <= SIZE_T_MAX)
78 return fwrite(s
,1,len
,f
);
80 const ucl_byte
*p
= (const ucl_byte
*) s
;
84 unsigned char buf
[512];
88 k
= len
- l
> sizeof(buf
) ? sizeof(buf
) : (size_t) (len
- l
);
89 b
= buf
; n
= k
; do *b
++ = *p
++; while (--n
> 0);
90 k
= fwrite(buf
,1,k
,f
);
100 #endif /* !defined(NO_STDIO_H) */