]> git.ipfire.org Git - thirdparty/glibc.git/blame - libio/iofwrite_u.c
Replace FSF snail mail address with URLs.
[thirdparty/glibc.git] / libio / iofwrite_u.c
CommitLineData
a7925a24 1/* Copyright (C) 1993, 1996-2000, 2002, 2008 Free Software Foundation, Inc.
41bdb6e2 2 This file is part of the GNU C Library.
ba9234d9 3
41bdb6e2
AJ
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
ba9234d9 8
41bdb6e2
AJ
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
ba9234d9 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2
AJ
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
59ba27a6
PE
15 License along with the GNU C Library; if not, see
16 <http://www.gnu.org/licenses/>.
41bdb6e2
AJ
17
18 As a special exception, if you link the code in this file with
19 files compiled with a GNU compiler to produce an executable,
20 that does not cause the resulting executable to be covered by
21 the GNU Lesser General Public License. This exception does not
22 however invalidate any other reasons why the executable file
23 might be covered by the GNU Lesser General Public License.
24 This exception applies to code released by its copyright holders
25 in files containing the exception. */
ba9234d9
UD
26
27#include "libioP.h"
8eaaffde 28#include <stdio.h>
ba9234d9 29
085320f5
UD
30#undef fwrite_unlocked
31
ba9234d9
UD
32_IO_size_t
33fwrite_unlocked (buf, size, count, fp)
34 const void *buf;
35 _IO_size_t size;
36 _IO_size_t count;
37 _IO_FILE *fp;
38{
39 _IO_size_t request = size * count;
d64b6ad0 40 _IO_size_t written = 0;
ba9234d9 41 CHECK_FILE (fp, 0);
ba9234d9 42 if (request == 0)
a27c96b0 43 return 0;
d64b6ad0
UD
44 if (_IO_fwide (fp, -1) == -1)
45 {
46 written = _IO_sputn (fp, (const char *) buf, request);
a7925a24
UD
47 /* We have written all of the input in case the return value indicates
48 this or EOF is returned. The latter is a special case where we
49 simply did not manage to flush the buffer. But the data is in the
50 buffer and therefore written as far as fwrite is concerned. */
51 if (written == request || written == EOF)
d64b6ad0
UD
52 return count;
53 }
54
55 return written / size;
ba9234d9 56}
3ba06713 57libc_hidden_def (fwrite_unlocked)