]> git.ipfire.org Git - thirdparty/glibc.git/blame - libio/iofwrite.c
Update.
[thirdparty/glibc.git] / libio / iofwrite.c
CommitLineData
bbdef797
UD
1/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003
2 Free Software Foundation, Inc.
41bdb6e2 3 This file is part of the GNU C Library.
96aa2d94 4
41bdb6e2
AJ
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
96aa2d94 9
41bdb6e2
AJ
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
40a55d20 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2
AJ
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA.
19
20 As a special exception, if you link the code in this file with
21 files compiled with a GNU compiler to produce an executable,
22 that does not cause the resulting executable to be covered by
23 the GNU Lesser General Public License. This exception does not
24 however invalidate any other reasons why the executable file
25 might be covered by the GNU Lesser General Public License.
26 This exception applies to code released by its copyright holders
27 in files containing the exception. */
96aa2d94
RM
28
29#include "libioP.h"
30
31_IO_size_t
32_IO_fwrite (buf, size, count, fp)
40a55d20 33 const void *buf;
96aa2d94
RM
34 _IO_size_t size;
35 _IO_size_t count;
36 _IO_FILE *fp;
37{
40a55d20 38 _IO_size_t request = size * count;
d64b6ad0 39 _IO_size_t written = 0;
96aa2d94
RM
40 CHECK_FILE (fp, 0);
41 if (request == 0)
a27c96b0 42 return 0;
68dbb3a6 43 _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
7c713e28 44 _IO_flockfile (fp);
bbdef797 45 if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
d64b6ad0 46 written = _IO_sputn (fp, (const char *) buf, request);
c0fb8a56
UD
47 _IO_funlockfile (fp);
48 _IO_cleanup_region_end (0);
96aa2d94
RM
49 if (written == request)
50 return count;
51 else
40a55d20 52 return written / size;
96aa2d94 53}
77fe0b9c 54INTDEF(_IO_fwrite)
96aa2d94 55
ca34d7a7 56#ifdef weak_alias
b9b91868 57# include <stdio.h>
96aa2d94 58weak_alias (_IO_fwrite, fwrite)
b9b91868 59libc_hidden_weak (fwrite)
66f8fa9b
UD
60# ifndef _IO_MTSAFE_IO
61weak_alias (_IO_fwrite, fwrite_unlocked)
bf2cc5fb 62libc_hidden_weak (fwrite_unlocked)
66f8fa9b 63# endif
ca34d7a7 64#endif