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 |