man: --nbi, not --NBI
[wraplinux.git] / cwrite.c
1 /* ----------------------------------------------------------------------- *
2  *
3  *   Copyright 2008 rPath, Inc. - All Rights Reserved
4  *
5  *   This program is free software; you can redistribute it and/or modify
6  *   it under the terms of the GNU General Public License as published by
7  *   the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
8  *   Boston MA 02110-1301, USA; either version 2 of the License, or
9  *   (at your option) any later version; incorporated herein by reference.
10  *
11  * ----------------------------------------------------------------------- */
12
13 /*
14  * cwrite.c
15  *
16  * Conditional fwrite and writezero
17  */
18
19 #include "wraplinux.h"
20
21 size_t c_fwrite(const void *ptr, size_t bytes, FILE *stream)
22 {
23         if (!stream)
24                 return bytes;
25
26         return fwrite(ptr, 1, bytes, stream);
27 }
28
29 size_t c_writezero(size_t n, FILE *stream)
30 {
31         static const char zerobuf[BUFSIZ]; /* All zero */
32         size_t r, o = 0;
33
34         if (!stream)
35                 return n;
36
37         while (n) {
38                 size_t w = (n < BUFSIZ) ? n : BUFSIZ;
39                 r = fwrite(zerobuf, 1, w, stream);
40                 o += r;
41                 n -= r;
42                 if (r < w)
43                         break;
44         }
45         return o;
46 }