From Jason Turner

[c.files]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp2nr4bq4x/{from.md → to.md} +46 -13
tmp/tmp2nr4bq4x/{from.md → to.md} RENAMED
@@ -1,10 +1,12 @@
1
  ## C library files <a id="c.files">[[c.files]]</a>
2
 
3
  ### Header `<cstdio>` synopsis <a id="cstdio.syn">[[cstdio.syn]]</a>
4
 
5
  ``` cpp
 
 
6
  namespace std {
7
  using size_t = see [support.types.layout];
8
  using FILE = see below;
9
  using fpos_t = see below;
10
  }
@@ -15,10 +17,11 @@ namespace std {
15
  #define _IONBF see below
16
  #define BUFSIZ see below
17
  #define EOF see below
18
  #define FOPEN_MAX see below
19
  #define FILENAME_MAX see below
 
20
  #define L_tmpnam see below
21
  #define SEEK_CUR see below
22
  #define SEEK_END see below
23
  #define SEEK_SET see below
24
  #define TMP_MAX see below
@@ -76,15 +79,19 @@ namespace std {
76
  ```
77
 
78
  The contents and meaning of the header `<cstdio>` are the same as the C
79
  standard library header `<stdio.h>`.
80
 
 
 
 
 
81
  Calls to the function `tmpnam` with an argument that is a null pointer
82
  value may introduce a data race [[res.on.data.races]] with other calls
83
  to `tmpnam` with an argument that is a null pointer value.
84
 
85
- See also: ISO C 7.21
86
 
87
  ### Header `<cinttypes>` synopsis <a id="cinttypes.syn">[[cinttypes.syn]]</a>
88
 
89
  ``` cpp
90
  #include <cstdint> // see [cstdint.syn]
@@ -101,75 +108,89 @@ namespace std {
101
 
102
  constexpr intmax_t abs(intmax_t); // optional, see below
103
  constexpr imaxdiv_t div(intmax_t, intmax_t); // optional, see below
104
  }
105
 
 
 
106
  #define PRIdN see below
107
  #define PRIiN see below
108
  #define PRIoN see below
109
  #define PRIuN see below
110
  #define PRIxN see below
111
  #define PRIXN see below
 
 
112
  #define SCNdN see below
113
  #define SCNiN see below
114
  #define SCNoN see below
115
  #define SCNuN see below
116
  #define SCNxN see below
 
117
  #define PRIdLEASTN see below
118
  #define PRIiLEASTN see below
119
  #define PRIoLEASTN see below
120
  #define PRIuLEASTN see below
121
  #define PRIxLEASTN see below
122
  #define PRIXLEASTN see below
 
 
123
  #define SCNdLEASTN see below
124
  #define SCNiLEASTN see below
125
  #define SCNoLEASTN see below
126
  #define SCNuLEASTN see below
127
  #define SCNxLEASTN see below
 
128
  #define PRIdFASTN see below
129
  #define PRIiFASTN see below
130
  #define PRIoFASTN see below
131
  #define PRIuFASTN see below
132
  #define PRIxFASTN see below
133
  #define PRIXFASTN see below
 
 
134
  #define SCNdFASTN see below
135
  #define SCNiFASTN see below
136
  #define SCNoFASTN see below
137
  #define SCNuFASTN see below
138
  #define SCNxFASTN see below
 
139
  #define PRIdMAX see below
140
  #define PRIiMAX see below
141
  #define PRIoMAX see below
142
  #define PRIuMAX see below
143
  #define PRIxMAX see below
144
  #define PRIXMAX see below
 
 
145
  #define SCNdMAX see below
146
  #define SCNiMAX see below
147
  #define SCNoMAX see below
148
  #define SCNuMAX see below
149
  #define SCNxMAX see below
 
150
  #define PRIdPTR see below
151
  #define PRIiPTR see below
152
  #define PRIoPTR see below
153
  #define PRIuPTR see below
154
  #define PRIxPTR see below
155
  #define PRIXPTR see below
 
 
156
  #define SCNdPTR see below
157
  #define SCNiPTR see below
158
  #define SCNoPTR see below
159
  #define SCNuPTR see below
160
  #define SCNxPTR see below
 
161
  ```
162
 
163
  The contents and meaning of the header `<cinttypes>` are the same as the
164
  C standard library header `<inttypes.h>`, with the following changes:
165
 
166
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
167
  `<stdint.h>`, and
168
- - `intmax_t` and `uintmax_t` are not required to be able to represent
169
- all values of extended integer types wider than `long long` and
170
- `unsigned long long`, respectively, and
171
  - if and only if the type `intmax_t` designates an extended integer type
172
  [[basic.fundamental]], the following function signatures are added:
173
  ``` cpp
174
  constexpr intmax_t abs(intmax_t);
175
  constexpr imaxdiv_t div(intmax_t, intmax_t);
@@ -184,11 +205,13 @@ See also: ISO C 7.8
184
  Each of the `PRI` macros listed in this subclause is defined if and only
185
  if the implementation defines the corresponding *typedef-name* in 
186
  [[cstdint.syn]]. Each of the `SCN` macros listed in this subclause is
187
  defined if and only if the implementation defines the corresponding
188
  *typedef-name* in  [[cstdint.syn]] and has a suitable `fscanf` length
189
- modifier for the type.
 
 
190
 
191
  <!-- Link reference definitions -->
192
  [adjustfield.manip]: #adjustfield.manip
193
  [allocator.requirements.general]: library.md#allocator.requirements.general
194
  [basefield.manip]: #basefield.manip
@@ -203,22 +226,24 @@ modifier for the type.
203
  [c.files]: #c.files
204
  [char.traits]: strings.md#char.traits
205
  [char.traits.specializations]: strings.md#char.traits.specializations
206
  [character.seq]: library.md#character.seq
207
  [cinttypes.syn]: #cinttypes.syn
208
- [container.requirements.general]: containers.md#container.requirements.general
209
  [cpp17.copyassignable]: #cpp17.copyassignable
210
  [cpp17.copyconstructible]: #cpp17.copyconstructible
211
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
212
  [cpp17.destructible]: #cpp17.destructible
213
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
214
  [cstdint.syn]: support.md#cstdint.syn
215
  [cstdio.syn]: #cstdio.syn
 
216
  [defns.ntcts]: intro.md#defns.ntcts
217
  [enumerated.types]: library.md#enumerated.types
218
  [error.reporting]: #error.reporting
219
  [ext.manip]: #ext.manip
 
220
  [file.streams]: #file.streams
221
  [filebuf]: #filebuf
222
  [filebuf.assign]: #filebuf.assign
223
  [filebuf.cons]: #filebuf.cons
224
  [filebuf.general]: #filebuf.general
@@ -228,12 +253,16 @@ modifier for the type.
228
  [filebuf.virtuals]: #filebuf.virtuals
229
  [filesystems]: #filesystems
230
  [floatfield.manip]: #floatfield.manip
231
  [fmtflags.manip]: #fmtflags.manip
232
  [fmtflags.state]: #fmtflags.state
233
- [format.err.report]: utilities.md#format.err.report
 
 
 
234
  [fpos]: #fpos
 
235
  [fpos.members]: #fpos.members
236
  [fpos.operations]: #fpos.operations
237
  [fs.class.directory.entry]: #fs.class.directory.entry
238
  [fs.class.directory.entry.general]: #fs.class.directory.entry.general
239
  [fs.class.directory.iterator]: #fs.class.directory.iterator
@@ -317,10 +346,13 @@ modifier for the type.
317
  [fs.path.concat]: #fs.path.concat
318
  [fs.path.construct]: #fs.path.construct
319
  [fs.path.cvt]: #fs.path.cvt
320
  [fs.path.decompose]: #fs.path.decompose
321
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
 
 
 
322
  [fs.path.gen]: #fs.path.gen
323
  [fs.path.generic]: #fs.path.generic
324
  [fs.path.generic.obs]: #fs.path.generic.obs
325
  [fs.path.hash]: #fs.path.hash
326
  [fs.path.io]: #fs.path.io
@@ -350,10 +382,11 @@ modifier for the type.
350
  [input.iterators]: iterators.md#input.iterators
351
  [input.output]: #input.output
352
  [input.output.general]: #input.output.general
353
  [input.streams]: #input.streams
354
  [input.streams.general]: #input.streams.general
 
355
  [intro.multithread]: basic.md#intro.multithread
356
  [intro.races]: basic.md#intro.races
357
  [iomanip.syn]: #iomanip.syn
358
  [ios]: #ios
359
  [ios.base]: #ios.base
@@ -414,12 +447,12 @@ modifier for the type.
414
  [istringstream.cons]: #istringstream.cons
415
  [istringstream.general]: #istringstream.general
416
  [istringstream.members]: #istringstream.members
417
  [istringstream.swap]: #istringstream.swap
418
  [lex.charset]: lex.md#lex.charset
419
- [locale.codecvt.virtuals]: localization.md#locale.codecvt.virtuals
420
- [locale.num.get]: localization.md#locale.num.get
421
  [namespace.std]: library.md#namespace.std
422
  [narrow.stream.objects]: #narrow.stream.objects
423
  [numeric.limits]: support.md#numeric.limits
424
  [ofstream]: #ofstream
425
  [ofstream.cons]: #ofstream.cons
@@ -534,12 +567,12 @@ modifier for the type.
534
  [views.span]: containers.md#views.span
535
  [wide.stream.objects]: #wide.stream.objects
536
 
537
  [^1]: Typically `long long`.
538
 
539
- [^2]: Most places where `streamsize` is used would use `size_t` in ISO
540
- C, or `ssize_t` in POSIX.
541
 
542
  [^3]: It is the implementation’s responsibility to implement headers so
543
  that including `<iosfwd>` and other headers does not violate the
544
  rules about multiple occurrences of default arguments.
545
 
@@ -551,11 +584,11 @@ modifier for the type.
551
  mixed arbitrarily with operations on the corresponding stdio stream.
552
  In practical terms, synchronization usually means that a standard
553
  iostream object and a standard stdio object share a buffer.
554
 
555
  [^6]: An implementation is free to implement both the integer array
556
- pointed at by `iarray` and the pointer array pointed at by `parray`
557
  as sparse data structures, possibly with a one-element cache for
558
  each.
559
 
560
  [^7]: For example, because it cannot allocate space.
561
 
@@ -588,11 +621,11 @@ modifier for the type.
588
  ways to implement `xsgetn()` and `xsputn()` by overriding these
589
  definitions from the base class.
590
 
591
  [^16]: That is, for each class derived from a specialization of
592
  `basic_streambuf` in this Clause [[stringbuf]], [[filebuf]],
593
- a specification of how consuming a character effects the associated
594
  output sequence is given. There is no requirement on a
595
  program-defined class.
596
 
597
  [^17]: Typically, `overflow` returns `c` to indicate success, except
598
  when `traits::eq_int_type(c, traits::eof())` returns `true`, in
 
1
  ## C library files <a id="c.files">[[c.files]]</a>
2
 
3
  ### Header `<cstdio>` synopsis <a id="cstdio.syn">[[cstdio.syn]]</a>
4
 
5
  ``` cpp
6
+ #define __STDC_VERSION_STDIO_H__ 202311L
7
+
8
  namespace std {
9
  using size_t = see [support.types.layout];
10
  using FILE = see below;
11
  using fpos_t = see below;
12
  }
 
17
  #define _IONBF see below
18
  #define BUFSIZ see below
19
  #define EOF see below
20
  #define FOPEN_MAX see below
21
  #define FILENAME_MAX see below
22
+ #define _PRINTF_NAN_LEN_MAX see below
23
  #define L_tmpnam see below
24
  #define SEEK_CUR see below
25
  #define SEEK_END see below
26
  #define SEEK_SET see below
27
  #define TMP_MAX see below
 
79
  ```
80
 
81
  The contents and meaning of the header `<cstdio>` are the same as the C
82
  standard library header `<stdio.h>`.
83
 
84
+ The return from each function call that delivers data to the host
85
+ environment to be written to a file (See also: ISO C 7.23.3) is an
86
+ observable checkpoint [[intro.abstract]].
87
+
88
  Calls to the function `tmpnam` with an argument that is a null pointer
89
  value may introduce a data race [[res.on.data.races]] with other calls
90
  to `tmpnam` with an argument that is a null pointer value.
91
 
92
+ See also: ISO C 7.23
93
 
94
  ### Header `<cinttypes>` synopsis <a id="cinttypes.syn">[[cinttypes.syn]]</a>
95
 
96
  ``` cpp
97
  #include <cstdint> // see [cstdint.syn]
 
108
 
109
  constexpr intmax_t abs(intmax_t); // optional, see below
110
  constexpr imaxdiv_t div(intmax_t, intmax_t); // optional, see below
111
  }
112
 
113
+ #define __STDC_VERSION_INTTYPES_H__ 202311L
114
+
115
  #define PRIdN see below
116
  #define PRIiN see below
117
  #define PRIoN see below
118
  #define PRIuN see below
119
  #define PRIxN see below
120
  #define PRIXN see below
121
+ #define PRIbN see below
122
+ #define PRIBN see below
123
  #define SCNdN see below
124
  #define SCNiN see below
125
  #define SCNoN see below
126
  #define SCNuN see below
127
  #define SCNxN see below
128
+ #define SCNbN see below
129
  #define PRIdLEASTN see below
130
  #define PRIiLEASTN see below
131
  #define PRIoLEASTN see below
132
  #define PRIuLEASTN see below
133
  #define PRIxLEASTN see below
134
  #define PRIXLEASTN see below
135
+ #define PRIbLEASTN see below
136
+ #define PRIBLEASTN see below
137
  #define SCNdLEASTN see below
138
  #define SCNiLEASTN see below
139
  #define SCNoLEASTN see below
140
  #define SCNuLEASTN see below
141
  #define SCNxLEASTN see below
142
+ #define SCNbLEASTN see below
143
  #define PRIdFASTN see below
144
  #define PRIiFASTN see below
145
  #define PRIoFASTN see below
146
  #define PRIuFASTN see below
147
  #define PRIxFASTN see below
148
  #define PRIXFASTN see below
149
+ #define PRIbFASTN see below
150
+ #define PRIBFASTN see below
151
  #define SCNdFASTN see below
152
  #define SCNiFASTN see below
153
  #define SCNoFASTN see below
154
  #define SCNuFASTN see below
155
  #define SCNxFASTN see below
156
+ #define SCNbFASTN see below
157
  #define PRIdMAX see below
158
  #define PRIiMAX see below
159
  #define PRIoMAX see below
160
  #define PRIuMAX see below
161
  #define PRIxMAX see below
162
  #define PRIXMAX see below
163
+ #define PRIbMAX see below
164
+ #define PRIBMAX see below
165
  #define SCNdMAX see below
166
  #define SCNiMAX see below
167
  #define SCNoMAX see below
168
  #define SCNuMAX see below
169
  #define SCNxMAX see below
170
+ #define SCNbMAX see below
171
  #define PRIdPTR see below
172
  #define PRIiPTR see below
173
  #define PRIoPTR see below
174
  #define PRIuPTR see below
175
  #define PRIxPTR see below
176
  #define PRIXPTR see below
177
+ #define PRIbPTR see below
178
+ #define PRIBPTR see below
179
  #define SCNdPTR see below
180
  #define SCNiPTR see below
181
  #define SCNoPTR see below
182
  #define SCNuPTR see below
183
  #define SCNxPTR see below
184
+ #define SCNbPTR see below
185
  ```
186
 
187
  The contents and meaning of the header `<cinttypes>` are the same as the
188
  C standard library header `<inttypes.h>`, with the following changes:
189
 
190
  - The header `<cinttypes>` includes the header `<cstdint>` instead of
191
  `<stdint.h>`, and
 
 
 
192
  - if and only if the type `intmax_t` designates an extended integer type
193
  [[basic.fundamental]], the following function signatures are added:
194
  ``` cpp
195
  constexpr intmax_t abs(intmax_t);
196
  constexpr imaxdiv_t div(intmax_t, intmax_t);
 
205
  Each of the `PRI` macros listed in this subclause is defined if and only
206
  if the implementation defines the corresponding *typedef-name* in 
207
  [[cstdint.syn]]. Each of the `SCN` macros listed in this subclause is
208
  defined if and only if the implementation defines the corresponding
209
  *typedef-name* in  [[cstdint.syn]] and has a suitable `fscanf` length
210
+ modifier for the type. Each of the `PRIB` macros listed in this
211
+ subclause is defined if and only if `fprintf` supports the `B`
212
+ conversion specifier.
213
 
214
  <!-- Link reference definitions -->
215
  [adjustfield.manip]: #adjustfield.manip
216
  [allocator.requirements.general]: library.md#allocator.requirements.general
217
  [basefield.manip]: #basefield.manip
 
226
  [c.files]: #c.files
227
  [char.traits]: strings.md#char.traits
228
  [char.traits.specializations]: strings.md#char.traits.specializations
229
  [character.seq]: library.md#character.seq
230
  [cinttypes.syn]: #cinttypes.syn
231
+ [container.reqmts]: containers.md#container.reqmts
232
  [cpp17.copyassignable]: #cpp17.copyassignable
233
  [cpp17.copyconstructible]: #cpp17.copyconstructible
234
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
235
  [cpp17.destructible]: #cpp17.destructible
236
  [cpp17.equalitycomparable]: #cpp17.equalitycomparable
237
  [cstdint.syn]: support.md#cstdint.syn
238
  [cstdio.syn]: #cstdio.syn
239
+ [defns.character.container]: intro.md#defns.character.container
240
  [defns.ntcts]: intro.md#defns.ntcts
241
  [enumerated.types]: library.md#enumerated.types
242
  [error.reporting]: #error.reporting
243
  [ext.manip]: #ext.manip
244
+ [file.native]: #file.native
245
  [file.streams]: #file.streams
246
  [filebuf]: #filebuf
247
  [filebuf.assign]: #filebuf.assign
248
  [filebuf.cons]: #filebuf.cons
249
  [filebuf.general]: #filebuf.general
 
253
  [filebuf.virtuals]: #filebuf.virtuals
254
  [filesystems]: #filesystems
255
  [floatfield.manip]: #floatfield.manip
256
  [fmtflags.manip]: #fmtflags.manip
257
  [fmtflags.state]: #fmtflags.state
258
+ [format.err.report]: text.md#format.err.report
259
+ [format.functions]: text.md#format.functions
260
+ [format.string]: text.md#format.string
261
+ [format.string.escaped]: text.md#format.string.escaped
262
  [fpos]: #fpos
263
+ [fpos.general]: #fpos.general
264
  [fpos.members]: #fpos.members
265
  [fpos.operations]: #fpos.operations
266
  [fs.class.directory.entry]: #fs.class.directory.entry
267
  [fs.class.directory.entry.general]: #fs.class.directory.entry.general
268
  [fs.class.directory.iterator]: #fs.class.directory.iterator
 
346
  [fs.path.concat]: #fs.path.concat
347
  [fs.path.construct]: #fs.path.construct
348
  [fs.path.cvt]: #fs.path.cvt
349
  [fs.path.decompose]: #fs.path.decompose
350
  [fs.path.fmt.cvt]: #fs.path.fmt.cvt
351
+ [fs.path.fmtr]: #fs.path.fmtr
352
+ [fs.path.fmtr.funcs]: #fs.path.fmtr.funcs
353
+ [fs.path.fmtr.general]: #fs.path.fmtr.general
354
  [fs.path.gen]: #fs.path.gen
355
  [fs.path.generic]: #fs.path.generic
356
  [fs.path.generic.obs]: #fs.path.generic.obs
357
  [fs.path.hash]: #fs.path.hash
358
  [fs.path.io]: #fs.path.io
 
382
  [input.iterators]: iterators.md#input.iterators
383
  [input.output]: #input.output
384
  [input.output.general]: #input.output.general
385
  [input.streams]: #input.streams
386
  [input.streams.general]: #input.streams.general
387
+ [intro.abstract]: intro.md#intro.abstract
388
  [intro.multithread]: basic.md#intro.multithread
389
  [intro.races]: basic.md#intro.races
390
  [iomanip.syn]: #iomanip.syn
391
  [ios]: #ios
392
  [ios.base]: #ios.base
 
447
  [istringstream.cons]: #istringstream.cons
448
  [istringstream.general]: #istringstream.general
449
  [istringstream.members]: #istringstream.members
450
  [istringstream.swap]: #istringstream.swap
451
  [lex.charset]: lex.md#lex.charset
452
+ [locale.codecvt.virtuals]: text.md#locale.codecvt.virtuals
453
+ [locale.num.get]: text.md#locale.num.get
454
  [namespace.std]: library.md#namespace.std
455
  [narrow.stream.objects]: #narrow.stream.objects
456
  [numeric.limits]: support.md#numeric.limits
457
  [ofstream]: #ofstream
458
  [ofstream.cons]: #ofstream.cons
 
567
  [views.span]: containers.md#views.span
568
  [wide.stream.objects]: #wide.stream.objects
569
 
570
  [^1]: Typically `long long`.
571
 
572
+ [^2]: Most places where `streamsize` is used would use `size_t` in C, or
573
+ `ssize_t` in POSIX.
574
 
575
  [^3]: It is the implementation’s responsibility to implement headers so
576
  that including `<iosfwd>` and other headers does not violate the
577
  rules about multiple occurrences of default arguments.
578
 
 
584
  mixed arbitrarily with operations on the corresponding stdio stream.
585
  In practical terms, synchronization usually means that a standard
586
  iostream object and a standard stdio object share a buffer.
587
 
588
  [^6]: An implementation is free to implement both the integer array
589
+ pointed at by *iarray* and the pointer array pointed at by *parray*
590
  as sparse data structures, possibly with a one-element cache for
591
  each.
592
 
593
  [^7]: For example, because it cannot allocate space.
594
 
 
621
  ways to implement `xsgetn()` and `xsputn()` by overriding these
622
  definitions from the base class.
623
 
624
  [^16]: That is, for each class derived from a specialization of
625
  `basic_streambuf` in this Clause [[stringbuf]], [[filebuf]],
626
+ a specification of how consuming a character affects the associated
627
  output sequence is given. There is no requirement on a
628
  program-defined class.
629
 
630
  [^17]: Typically, `overflow` returns `c` to indicate success, except
631
  when `traits::eq_int_type(c, traits::eof())` returns `true`, in