Subversion Repositories Kolibri OS

Rev

Rev 4874 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4874 Rev 4921
Line 24... Line 24...
24
INDEX
24
INDEX
25
	_fwrite_r
25
	_fwrite_r
Line 26... Line 26...
26
 
26
 
27
ANSI_SYNOPSIS
27
ANSI_SYNOPSIS
28
	#include 
28
	#include 
29
	size_t fwrite(const void *<[buf]>, size_t <[size]>,
29
	size_t fwrite(const void *restrict <[buf]>, size_t <[size]>,
Line 30... Line 30...
30
		      size_t <[count]>, FILE *<[fp]>);
30
		      size_t <[count]>, FILE *restrict <[fp]>);
31
 
31
 
32
	#include 
32
	#include 
Line 33... Line 33...
33
	size_t _fwrite_r(struct _reent *<[ptr]>, const void *<[buf]>, size_t <[size]>,
33
	size_t _fwrite_r(struct _reent *<[ptr]>, const void *restrict <[buf]>, size_t <[size]>,
34
		      size_t <[count]>, FILE *<[fp]>);
34
		      size_t <[count]>, FILE *restrict <[fp]>);
35
 
35
 
36
TRAD_SYNOPSIS
36
TRAD_SYNOPSIS
Line 95... Line 95...
95
 */
95
 */
Line 96... Line 96...
96
 
96
 
97
size_t
97
size_t
98
_DEFUN(_fwrite_r, (ptr, buf, size, count, fp),
98
_DEFUN(_fwrite_r, (ptr, buf, size, count, fp),
99
       struct _reent * ptr _AND
99
       struct _reent * ptr _AND
100
       _CONST _PTR buf _AND
100
       _CONST _PTR __restrict buf _AND
101
       size_t size     _AND
101
       size_t size     _AND
102
       size_t count    _AND
102
       size_t count    _AND
103
       FILE * fp)
103
       FILE * __restrict fp)
104
{
104
{
-
 
105
  size_t n;
105
  size_t n;
106
#ifdef _FVWRITE_IN_STREAMIO
106
  struct __suio uio;
107
  struct __suio uio;
Line 107... Line 108...
107
  struct __siov iov;
108
  struct __siov iov;
108
 
109
 
Line 117... Line 118...
117
   * generally slow and since this occurs whenever size==0.
118
   * generally slow and since this occurs whenever size==0.
118
   */
119
   */
Line 119... Line 120...
119
 
120
 
Line 120... Line 121...
120
  CHECK_INIT(ptr, fp);
121
  CHECK_INIT(ptr, fp);
121
 
122
 
122
  _flockfile (fp);
123
  _newlib_flockfile_start (fp);
123
  ORIENT (fp, -1);
124
  ORIENT (fp, -1);
124
  if (__sfvwrite_r (ptr, fp, &uio) == 0)
125
  if (__sfvwrite_r (ptr, fp, &uio) == 0)
125
    {
126
    {
126
      _funlockfile (fp);
127
      _newlib_flockfile_exit (fp);
127
      return count;
128
      return count;
128
    }
129
    }
-
 
130
  _newlib_flockfile_end (fp);
-
 
131
  return (n - uio.uio_resid) / size;
-
 
132
#else
-
 
133
  size_t i = 0;
-
 
134
  _CONST char *p = buf;
-
 
135
  n = count * size;
-
 
136
  CHECK_INIT (ptr, fp);
-
 
137
 
-
 
138
  _newlib_flockfile_start (fp);
-
 
139
  ORIENT (fp, -1);
-
 
140
  /* Make sure we can write.  */
-
 
141
  if (cantwrite (ptr, fp))
-
 
142
    goto ret;
-
 
143
 
-
 
144
  while (i < n)
-
 
145
    {
-
 
146
      if (__sputc_r (ptr, p[i], fp) == EOF)
-
 
147
	break;
-
 
148
 
-
 
149
      i++;
-
 
150
    }
-
 
151
 
-
 
152
ret:
-
 
153
  _newlib_flockfile_end (fp);
129
  _funlockfile (fp);
154
  return i / size;
Line 130... Line 155...
130
  return (n - uio.uio_resid) / size;
155
#endif
131
}
156
}
132
 
157
 
133
#ifndef _REENT_ONLY
158
#ifndef _REENT_ONLY
134
size_t
159
size_t
135
_DEFUN(fwrite, (buf, size, count, fp),
160
_DEFUN(fwrite, (buf, size, count, fp),
136
       _CONST _PTR buf _AND
161
       _CONST _PTR __restrict buf _AND
137
       size_t size     _AND
162
       size_t size     _AND
138
       size_t count    _AND
163
       size_t count    _AND