Incitsisoiec 989920112012 Programming Languages C Ansi download
Incitsisoiec 989920112012 Programming Languages C Ansi download
C Ansi download
https://ebookbell.com/product/incitsisoiec-989920112012-
programming-languages-c-ansi-6766368
https://ebookbell.com/product/incits-5652020-information-technology-
next-generation-access-control-ngac-april-10-2020-ansi-incits-19856798
Ieee Standard For Standard Systemc Language Reference Manual Ieee Std
16662011 1st Edition Incitsc
https://ebookbell.com/product/ieee-standard-for-standard-systemc-
language-reference-manual-ieee-std-16662011-1st-edition-
incitsc-50143562
Ataatapi Command Set 4 Acs4 R14 R14 Incits Technical Committee T13
https://ebookbell.com/product/ataatapi-command-
set-4-acs4-r14-r14-incits-technical-committee-t13-7353632
https://ebookbell.com/product/scsi-multimedia-
commands-6-mmc6-r02g-r02g-william-p-mcferrin-7353508
Scsi Primary Commands 5 Spc5 R19 R19 T10 Technical Committee
https://ebookbell.com/product/scsi-primary-
commands-5-spc5-r19-r19-t10-technical-committee-7353456
https://ebookbell.com/product/scsi-block-
commands-4-sbc4-r15-r15-william-martin-7353472
https://ebookbell.com/product/serial-attached-
scsi-4-sas4-r10b-r10b-6777-7353478
https://ebookbell.com/product/sas-protocol-
layer-5-spl5-r06-r06-t10-technical-committee-7353486
Scsi Pci Express Queuing Interface Pqi R07 R07 T10 Technical Committee
https://ebookbell.com/product/scsi-pci-express-queuing-interface-
pqi-r07-r07-t10-technical-committee-7353496
INCITS/ISO/IEC 9899-2011[2012]
Information Technology
Programming Languages
C
INCITS/ISO/IEC 9899-2011[2012]
(ISO/IEC 9899-2011, IDT)
Adopted by INCITS (InterNational Committee for Information Technology Standards) as an American National Standard.
1. Scope
1 This International Standard specifies the form and establishes the interpretation of
programs written in the C programming language.1) It specifies
— the representation of C programs;
— the syntax and constraints of the C language;
— the semantic rules for interpreting C programs;
— the representation of input data to be processed by C programs;
— the representation of output data produced by C programs;
— the restrictions and limits imposed by a conforming implementation of C.
2 This International Standard does not specify
— the mechanism by which C programs are transformed for use by a data-processing
system;
— the mechanism by which C programs are invoked for use by a data-processing
system;
— the mechanism by which input data are transformed for use by a C program;
— the mechanism by which output data are transformed after being produced by a C
program;
— the size or complexity of a program and its data that will exceed the capacity of any
specific data-processing system or the capacity of a particular processor;
— all minimal requirements of a data-processing system that is capable of supporting a
conforming implementation.
1) This International Standard is designed to promote the portability of C programs among a variety of
data-processing systems. It is intended for use by implementors and programmers.
§1 General 1
2. Normative references
1 The following referenced documents are indispensable for the application of this
document. For dated references, only the edition cited applies. For undated references,
the latest edition of the referenced document (including any amendments) applies.
2 ISO/IEC 2382−1:1993, Information technology — Vocabulary — Part 1: Fundamental
terms.
3 ISO 4217, Codes for the representation of currencies and funds.
4 ISO 8601, Data elements and interchange formats — Information interchange —
Representation of dates and times.
5 ISO/IEC 10646, Information technology — Universal Coded Character Set (UCS).
6 IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems (previously
designated IEC 559:1989).
7 ISO 80000−2, Quantities and units — Part 2: Mathematical signs and symbols to be used
in the natural sciences and technology.
2 General §2
3. Terms, definitions, and symbols
1 For the purposes of this document, the following terms and definitions apply. Other
terms are defined where they appear in italic type or on the left side of a syntax rule.
Terms explicitly defined in this International Standard are not to be presumed to refer
implicitly to similar terms defined elsewhere. Terms not defined in this International
Standard are to be interpreted according to ISO/IEC 2382−1. Mathematical symbols not
defined in this International Standard are to be interpreted according to ISO 80000−2.
3.1
1 access
〈execution-time action〉 to read or modify the value of an object
2 NOTE 1 Where only one of these two actions is meant, ‘‘read’’ or ‘‘modify’’ is used.
3 NOTE 2 ‘‘Modify’’ includes the case where the new value being stored is the same as the previous value.
3.2
1 alignment
requirement that objects of a particular type be located on storage boundaries with
addresses that are particular multiples of a byte address
3.3
1 argument
actual argument
actual parameter (deprecated)
expression in the comma-separated list bounded by the parentheses in a function call
expression, or a sequence of preprocessing tokens in the comma-separated list bounded
by the parentheses in a function-like macro invocation
3.4
1 behavior
external appearance or action
3.4.1
1 implementation-defined behavior
unspecified behavior where each implementation documents how the choice is made
2 EXAMPLE An example of implementation-defined behavior is the propagation of the high-order bit
when a signed integer is shifted right.
3.4.2
1 locale-specific behavior
behavior that depends on local conventions of nationality, culture, and language that each
implementation documents
§3.4.2 General 3
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
2 EXAMPLE An example of locale-specific behavior is whether the islower function returns true for
characters other than the 26 lowercase Latin letters.
3.4.3
1 undefined behavior
behavior, upon use of a nonportable or erroneous program construct or of erroneous data,
for which this International Standard imposes no requirements
2 NOTE Possible undefined behavior ranges from ignoring the situation completely with unpredictable
results, to behaving during translation or program execution in a documented manner characteristic of the
environment (with or without the issuance of a diagnostic message), to terminating a translation or
execution (with the issuance of a diagnostic message).
3.4.4
1 unspecified behavior
use of an unspecified value, or other behavior where this International Standard provides
two or more possibilities and imposes no further requirements on which is chosen in any
instance
2 EXAMPLE An example of unspecified behavior is the order in which the arguments to a function are
evaluated.
3.5
1 bit
unit of data storage in the execution environment large enough to hold an object that may
have one of two values
2 NOTE It need not be possible to express the address of each individual bit of an object.
3.6
1 byte
addressable unit of data storage large enough to hold any member of the basic character
set of the execution environment
2 NOTE 1 It is possible to express the address of each individual byte of an object uniquely.
3 NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which is implementation-
defined. The least significant bit is called the low-order bit; the most significant bit is called the high-order
bit.
3.7
1 character
〈abstract〉 member of a set of elements used for the organization, control, or
representation of data
3.7.1
1 character
single-byte character
〈C〉 bit representation that fits in a byte
4 General §3.7.1
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
3.7.2
1 multibyte character
sequence of one or more bytes representing a member of the extended character set of
either the source or the execution environment
2 NOTE The extended character set is a superset of the basic character set.
3.7.3
1 wide character
value representable by an object of type wchar_t, capable of representing any character
in the current locale
3.8
1 constraint
restriction, either syntactic or semantic, by which the exposition of language elements is
to be interpreted
3.9
1 correctly rounded result
representation in the result format that is nearest in value, subject to the current rounding
mode, to what the result would be given unlimited range and precision
3.10
1 diagnostic message
message belonging to an implementation-defined subset of the implementation’s message
output
3.11
1 forward reference
reference to a later subclause of this International Standard that contains additional
information relevant to this subclause
3.12
1 implementation
particular set of software, running in a particular translation environment under particular
control options, that performs translation of programs for, and supports execution of
functions in, a particular execution environment
3.13
1 implementation limit
restriction imposed upon programs by the implementation
3.14
1 memory location
either an object of scalar type, or a maximal sequence of adjacent bit-fields all having
nonzero width
§3.14 General 5
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
2 NOTE 1 Two threads of execution can update and access separate memory locations without interfering
with each other.
3 NOTE 2 A bit-field and an adjacent non-bit-field member are in separate memory locations. The same
applies to two bit-fields, if one is declared inside a nested structure declaration and the other is not, or if the
two are separated by a zero-length bit-field declaration, or if they are separated by a non-bit-field member
declaration. It is not safe to concurrently update two non-atomic bit-fields in the same structure if all
members declared between them are also (non-zero-length) bit-fields, no matter what the sizes of those
intervening bit-fields happen to be.
3.15
1 object
region of data storage in the execution environment, the contents of which can represent
values
2 NOTE When referenced, an object may be interpreted as having a particular type; see 6.3.2.1.
3.16
1 parameter
formal parameter
formal argument (deprecated)
object declared as part of a function declaration or definition that acquires a value on
entry to the function, or an identifier from the comma-separated list bounded by the
parentheses immediately following the macro name in a function-like macro definition
3.17
1 recommended practice
specification that is strongly recommended as being in keeping with the intent of the
standard, but that may be impractical for some implementations
3.18
1 runtime-constraint
requirement on a program when calling a library function
2 NOTE 1 Despite the similar terms, a runtime-constraint is not a kind of constraint as defined by 3.8, and
need not be diagnosed at translation time.
3 NOTE 2 Implementations that support the extensions in annex K are required to verify that the runtime-
constraints for a library function are not violated by the program; see K.3.1.4.
6 General §3.18
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
3.19
1 value
precise meaning of the contents of an object when interpreted as having a specific type
3.19.1
1 implementation-defined value
unspecified value where each implementation documents how the choice is made
3.19.2
1 indeterminate value
either an unspecified value or a trap representation
3.19.3
1 unspecified value
valid value of the relevant type where this International Standard imposes no
requirements on which value is chosen in any instance
2 NOTE An unspecified value cannot be a trap representation.
3.19.4
1 trap representation
an object representation that need not represent a value of the object type
3.19.5
1 perform a trap
interrupt execution of the program such that no further operations are performed
2 NOTE In this International Standard, when the word ‘‘trap’’ is not immediately followed by
‘‘representation’’, this is the intended usage.2)
3.20
1 ⎡ x⎤
ceiling of x: the least integer greater than or equal to x
2 EXAMPLE ⎡2. 4⎤ is 3, ⎡−2. 4⎤ is −2.
3.21
1 ⎣ x⎦
floor of x: the greatest integer less than or equal to x
2 EXAMPLE ⎣2. 4⎦ is 2, ⎣−2. 4⎦ is −3.
2) For example, ‘‘Trapping or stopping (if supported) is disabled...’’ (F.8.2). Note that fetching a trap
representation might perform a trap but is not required to (see 6.2.6.1).
§3.21 General 7
4. Conformance
1 In this International Standard, ‘‘shall’’ is to be interpreted as a requirement on an
implementation or on a program; conversely, ‘‘shall not’’ is to be interpreted as a
prohibition.
2 If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint or runtime-
constraint is violated, the behavior is undefined. Undefined behavior is otherwise
indicated in this International Standard by the words ‘‘undefined behavior’’ or by the
omission of any explicit definition of behavior. There is no difference in emphasis among
these three; they all describe ‘‘behavior that is undefined’’.
3 A program that is correct in all other aspects, operating on correct data, containing
unspecified behavior shall be a correct program and act in accordance with 5.1.2.3.
4 The implementation shall not successfully translate a preprocessing translation unit
containing a #error preprocessing directive unless it is part of a group skipped by
conditional inclusion.
5 A strictly conforming program shall use only those features of the language and library
specified in this International Standard.3) It shall not produce output dependent on any
unspecified, undefined, or implementation-defined behavior, and shall not exceed any
minimum implementation limit.
6 The two forms of conforming implementation are hosted and freestanding. A conforming
hosted implementation shall accept any strictly conforming program. A conforming
freestanding implementation shall accept any strictly conforming program in which the
use of the features specified in the library clause (clause 7) is confined to the contents of
the standard headers <float.h>, <iso646.h>, <limits.h>, <stdalign.h>,
<stdarg.h>, <stdbool.h>, <stddef.h>, <stdint.h>, and
<stdnoreturn.h>. A conforming implementation may have extensions (including
additional library functions), provided they do not alter the behavior of any strictly
conforming program.4)
3) A strictly conforming program can use conditional features (see 6.10.8.3) provided the use is guarded
by an appropriate conditional inclusion preprocessing directive using the related macro. For example:
#ifdef _ _STDC_IEC_559_ _ /* FE_UPWARD defined */
/* ... */
fesetround(FE_UPWARD);
/* ... */
#endif
4) This implies that a conforming implementation reserves no identifiers other than those explicitly
reserved in this International Standard.
8 General §4
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
§4 General 9
5. Environment
1 An implementation translates C source files and executes C programs in two data-
processing-system environments, which will be called the translation environment and
the execution environment in this International Standard. Their characteristics define and
constrain the results of executing conforming C programs constructed according to the
syntactic and semantic rules for conforming implementations.
Forward references: In this clause, only a few of many possible forward references
have been noted.
5.1 Conceptual models
5.1.1 Translation environment
5.1.1.1 Program structure
1 A C program need not all be translated at the same time. The text of the program is kept
in units called source files, (or preprocessing files) in this International Standard. A
source file together with all the headers and source files included via the preprocessing
directive #include is known as a preprocessing translation unit. After preprocessing, a
preprocessing translation unit is called a translation unit. Previously translated translation
units may be preserved individually or in libraries. The separate translation units of a
program communicate by (for example) calls to functions whose identifiers have external
linkage, manipulation of objects whose identifiers have external linkage, or manipulation
of data files. Translation units may be separately translated and then later linked to
produce an executable program.
Forward references: linkages of identifiers (6.2.2), external definitions (6.9),
preprocessing directives (6.10).
5.1.1.2 Translation phases
1 The precedence among the syntax rules of translation is specified by the following
phases.6)
1. Physical source file multibyte characters are mapped, in an implementation-
defined manner, to the source character set (introducing new-line characters for
end-of-line indicators) if necessary. Trigraph sequences are replaced by
corresponding single-character internal representations.
6) Implementations shall behave as if these separate phases occur, even though many are typically folded
together in practice. Source files, translation units, and translated translation units need not
necessarily be stored as files, nor need there be any one-to-one correspondence between these entities
and any external representation. The description is conceptual only, and does not specify any
particular implementation.
10 Environment §5.1.1.2
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
7) As described in 6.4, the process of dividing a source file’s characters into preprocessing tokens is
context-dependent. For example, see the handling of < within a #include preprocessing directive.
8) An implementation need not convert all non-corresponding source characters to the same execution
character.
§5.1.1.2 Environment 11
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
5.1.1.3 Diagnostics
1 A conforming implementation shall produce at least one diagnostic message (identified in
an implementation-defined manner) if a preprocessing translation unit or translation unit
contains a violation of any syntax rule or constraint, even if the behavior is also explicitly
specified as undefined or implementation-defined. Diagnostic messages need not be
produced in other circumstances.9)
2 EXAMPLE An implementation is required to issue a diagnostic for the translation unit:
char i;
int i;
because in those cases where wording in this International Standard describes the behavior for a construct
as being both a constraint error and resulting in undefined behavior, the constraint error shall be diagnosed.
9) The intent is that an implementation should identify the nature of, and where possible localize, each
violation. Of course, an implementation is free to produce any number of diagnostics as long as a
valid program is still correctly translated. It may also successfully translate an invalid program.
12 Environment §5.1.2.2
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
10) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
char ** argv, and so on.
§5.1.2.2.2 Environment 13
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
11) In accordance with 6.2.4, the lifetimes of objects with automatic storage duration declared in main
will have ended in the former case, even where they would not have in the latter.
12) The IEC 60559 standard for binary floating-point arithmetic requires certain user-accessible status
flags and control modes. Floating-point operations implicitly set the status flags; modes affect result
values of floating-point operations. Implementations that support such floating-point state are
required to regard changes to it as side effects — see annex F for details. The floating-point
environment library <fenv.h> provides a programming facility for indicating when these side
effects matter, freeing the implementations in other cases.
13) The executions of unsequenced evaluations can interleave. Indeterminately sequenced evaluations
cannot interleave, but can be executed in any order.
14 Environment §5.1.2.3
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
overflow, or with overflow wrapping silently to produce the correct result, the actual execution need only
produce the same result, possibly omitting the promotions.
13 EXAMPLE 4 Implementations employing wide registers have to take care to honor appropriate
semantics. Values are independent of whether they are represented in a register or in memory. For
example, an implicit spilling of a register is not permitted to alter the value. Also, an explicit store and load
is required to round to the precision of the storage type. In particular, casts and assignments are required to
perform their specified conversion. For the fragment
double d1, d2;
float f;
d1 = f = expression;
d2 = (float) expression;
the values assigned to d1 and d2 are required to have been converted to float.
16 Environment §5.1.2.3
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
while the original expression would not; nor can the expression be rewritten either as
a = ((a + 32765) + b);
or
a = (a + (b + 32765));
since the values for a and b might have been, respectively, 4 and −8 or −17 and 12. However, on a machine
in which overflow silently generates some value and where positive and negative overflows cancel, the
above expression statement can be rewritten by the implementation in any of the above ways because the
same result will occur.
16 EXAMPLE 7 The grouping of an expression does not completely determine its evaluation. In the
following fragment
#include <stdio.h>
int sum;
char *p;
/* ... */
sum = sum * 10 - '0' + (*p++ = getchar());
the expression statement is grouped as if it were written as
sum = (((sum * 10) - '0') + ((*(p++)) = (getchar())));
but the actual increment of p can occur at any time between the previous sequence point and the next
sequence point (the ;), and the call to getchar can occur at any point prior to the need of its returned
value.
Forward references: expressions (6.5), type qualifiers (6.7.3), statements (6.8), floating-
point environment <fenv.h> (7.6), the signal function (7.14), files (7.21.3).
5.1.2.4 Multi-threaded executions and data races
1 Under a hosted implementation, a program can have more than one thread of execution
(or thread) running concurrently. The execution of each thread proceeds as defined by
the remainder of this standard. The execution of the entire program consists of an
execution of all of its threads.14) Under a freestanding implementation, it is
implementation-defined whether a program can have more than one thread of execution.
2 The value of an object visible to a thread T at a particular point is the initial value of the
object, a value stored in the object by T , or a value stored in the object by another thread,
according to the rules below.
3 NOTE 1 In some cases, there may instead be undefined behavior. Much of this section is motivated by
the desire to support atomic operations with explicit and detailed visibility constraints. However, it also
implicitly supports a simpler view for more restricted programs.
4 Two expression evaluations conflict if one of them modifies a memory location and the
other one reads or modifies the same memory location.
14) The execution can usually be viewed as an interleaving of all of the threads. However, some kinds of
atomic operations, for example, allow executions inconsistent with a simple interleaving as described
below.
§5.1.2.4 Environment 17
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
5 The library defines a number of atomic operations (7.17) and operations on mutexes
(7.26.4) that are specially identified as synchronization operations. These operations play
a special role in making assignments in one thread visible to another. A synchronization
operation on one or more memory locations is either an acquire operation, a release
operation, both an acquire and release operation, or a consume operation. A
synchronization operation without an associated memory location is a fence and can be
either an acquire fence, a release fence, or both an acquire and release fence. In addition,
there are relaxed atomic operations, which are not synchronization operations, and
atomic read-modify-write operations, which have special characteristics.
6 NOTE 2 For example, a call that acquires a mutex will perform an acquire operation on the locations
composing the mutex. Correspondingly, a call that releases the same mutex will perform a release
operation on those same locations. Informally, performing a release operation on A forces prior side effects
on other memory locations to become visible to other threads that later perform an acquire or consume
operation on A. We do not include relaxed atomic operations as synchronization operations although, like
synchronization operations, they cannot contribute to data races.
7 All modifications to a particular atomic object M occur in some particular total order,
called the modification order of M. If A and B are modifications of an atomic object M,
and A happens before B, then A shall precede B in the modification order of M, which is
defined below.
8 NOTE 3 This states that the modification orders must respect the ‘‘happens before’’ relation.
9 NOTE 4 There is a separate order for each atomic object. There is no requirement that these can be
combined into a single total order for all objects. In general this will be impossible since different threads
may observe modifications to different variables in inconsistent orders.
13 NOTE 6 The specifications of the synchronization operations define when one reads the value written by
another. For atomic variables, the definition is clear. All operations on a given mutex occur in a single total
order. Each mutex acquisition ‘‘reads the value written’’ by the last mutex release.
15) The ‘‘carries a dependency’’ relation is a subset of the ‘‘sequenced before’’ relation, and is similarly
strictly intra-thread.
18 Environment §5.1.2.4
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
16) The ‘‘dependency-ordered before’’ relation is analogous to the ‘‘synchronizes with’’ relation, but uses
release/consume in place of release/acquire.
§5.1.2.4 Environment 19
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
21 NOTE 9 This states that operations on ordinary variables are not visibly reordered. This is not actually
detectable without data races, but it is necessary to ensure that data races, as defined here, and with suitable
restrictions on the use of atomics, correspond to data races in a simple interleaved (sequentially consistent)
execution.
22 The visible sequence of side effects on an atomic object M, with respect to a value
computation B of M, is a maximal contiguous sub-sequence of side effects in the
modification order of M, where the first side effect is visible with respect to B, and for
every subsequent side effect, it is not the case that B happens before it. The value of an
atomic object M, as determined by evaluation B, shall be the value stored by some
operation in the visible sequence of M with respect to B. Furthermore, if a value
computation A of an atomic object M happens before a value computation B of M, and
the value computed by A corresponds to the value stored by side effect X, then the value
computed by B shall either equal the value computed by A, or be the value stored by side
effect Y , where Y follows X in the modification order of M.
23 NOTE 10 This effectively disallows compiler reordering of atomic operations to a single object, even if
both operations are ‘‘relaxed’’ loads. By doing so, we effectively make the ‘‘cache coherence’’ guarantee
provided by most hardware available to C atomic operations.
24 NOTE 11 The visible sequence depends on the ‘‘happens before’’ relation, which in turn depends on the
values observed by loads of atomics, which we are restricting here. The intended reading is that there must
exist an association of atomic loads with modifications they observe that, together with suitably chosen
modification orders and the ‘‘happens before’’ relation derived as described above, satisfy the resulting
constraints as imposed here.
25 The execution of a program contains a data race if it contains two conflicting actions in
different threads, at least one of which is not atomic, and neither happens before the
other. Any such data race results in undefined behavior.
26 NOTE 12 It can be shown that programs that correctly use simple mutexes and
memory_order_seq_cst operations to prevent all data races, and use no other synchronization
operations, behave as though the operations executed by their constituent threads were simply interleaved,
with each value computation of an object being the last value stored in that interleaving. This is normally
referred to as ‘‘sequential consistency’’. However, this applies only to data-race-free programs, and data-
race-free programs cannot observe most program transformations that do not change single-threaded
program semantics. In fact, most single-threaded program transformations continue to be allowed, since
any program that behaves differently as a result must contain undefined behavior.
20 Environment §5.1.2.4
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
27 NOTE 13 Compiler transformations that introduce assignments to a potentially shared memory location
that would not be modified by the abstract machine are generally precluded by this standard, since such an
assignment might overwrite another assignment by a different thread in cases in which an abstract machine
execution would not have encountered a data race. This includes implementations of data member
assignment that overwrite adjacent members in separate memory locations. We also generally preclude
reordering of atomic loads in cases in which the atomics in question may alias, since this may violate the
"visible sequence" rules.
28 NOTE 14 Transformations that introduce a speculative read of a potentially shared memory location may
not preserve the semantics of the program as defined in this standard, since they potentially introduce a data
race. However, they are typically valid in the context of an optimizing compiler that targets a specific
machine with well-defined semantics for data races. They would be invalid for a hypothetical machine that
is not tolerant of races or provides hardware race detection.
§5.1.2.4 Environment 21
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
22 Environment §5.2.1
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
17) The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set as
described in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set.
§5.2.1.2 Environment 23
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
18) Implementations should avoid imposing fixed translation limits whenever possible.
§5.2.4.1 Environment 25
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
26 Environment §5.2.4.2.1
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
§5.2.4.2.1 Environment 27
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
28 Environment §5.2.4.2.2
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
arithmetic operand.22)
4 An implementation may give zero and values that are not floating-point numbers (such as
infinities and NaNs) a sign or may leave them unsigned. Wherever such values are
unsigned, any requirement in this International Standard to retrieve the sign shall produce
an unspecified sign, and any requirement to set the sign shall be ignored.
5 The minimum range of representable values for a floating type is the most negative finite
floating-point number representable in that type through the most positive finite floating-
point number representable in that type. In addition, if negative infinity is representable
in a type, the range of that type is extended to all negative real numbers; likewise, if
positive infinity is representable in a type, the range of that type is extended to all positive
real numbers.
6 The accuracy of the floating-point operations (+, -, *, /) and of the library functions in
<math.h> and <complex.h> that return floating-point results is implementation-
defined, as is the accuracy of the conversion between floating-point internal
representations and string representations performed by the library functions in
<stdio.h>, <stdlib.h>, and <wchar.h>. The implementation may state that the
accuracy is unknown.
7 All integer values in the <float.h> header, except FLT_ROUNDS, shall be constant
expressions suitable for use in #if preprocessing directives; all floating values shall be
constant expressions. All except DECIMAL_DIG, FLT_EVAL_METHOD, FLT_RADIX,
and FLT_ROUNDS have separate names for all three floating-point types. The floating-
point model representation is provided for all values except FLT_EVAL_METHOD and
FLT_ROUNDS.
8 The rounding mode for floating-point addition is characterized by the implementation-
defined value of FLT_ROUNDS:23)
-1 indeterminable
0 toward zero
1 to nearest
2 toward positive infinity
3 toward negative infinity
All other values for FLT_ROUNDS characterize implementation-defined rounding
behavior.
22) IEC 60559:1989 specifies quiet and signaling NaNs. For implementations that do not support
IEC 60559:1989, the terms quiet NaN and signaling NaN are intended to apply to encodings with
similar behavior.
23) Evaluation of FLT_ROUNDS correctly reflects any execution-time change of rounding mode through
the function fesetround in <fenv.h>.
§5.2.4.2.2 Environment 29
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
9 Except for assignment and cast (which remove all extra range and precision), the values
yielded by operators with floating operands and values subject to the usual arithmetic
conversions and of floating constants are evaluated to a format whose range and precision
may be greater than required by the type. The use of evaluation formats is characterized
by the implementation-defined value of FLT_EVAL_METHOD:24)
-1 indeterminable;
0 evaluate all operations and constants just to the range and precision of the
type;
1 evaluate operations and constants of type float and double to the
range and precision of the double type, evaluate long double
operations and constants to the range and precision of the long double
type;
2 evaluate all operations and constants to the range and precision of the
long double type.
All other negative values for FLT_EVAL_METHOD characterize implementation-defined
behavior.
10 The presence or absence of subnormal numbers is characterized by the implementation-
defined values of FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, and
LDBL_HAS_SUBNORM:
-1 indeterminable25)
0 absent26) (type does not support subnormal numbers)
1 present (type does support subnormal numbers)
11 The values given in the following list shall be replaced by constant expressions with
implementation-defined values that are greater or equal in magnitude (absolute value) to
those shown, with the same sign:
— radix of exponent representation, b
FLT_RADIX 2
24) The evaluation method determines evaluation formats of expressions involving all floating types, not
just real types. For example, if FLT_EVAL_METHOD is 1, then the product of two float
_Complex operands is represented in the double _Complex format, and its parts are evaluated to
double.
25) Characterization as indeterminable is intended if floating-point operations do not consistently interpret
subnormal representations as zero, nor as nonzero.
26) Characterization as absent is intended if no floating-point operations produce subnormal results from
non-subnormal inputs, even if the type format includes representations of subnormal numbers.
30 Environment §5.2.4.2.2
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
§5.2.4.2.2 Environment 31
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
— minimum negative integer such that 10 raised to that power is in the range of
normalized floating-point numbers, ⎡log10 b emin −1 ⎤
⎢ ⎥
FLT_MIN_10_EXP -37
DBL_MIN_10_EXP -37
LDBL_MIN_10_EXP -37
— maximum integer such that FLT_RADIX raised to one less than that power is a
representable finite floating-point number, emax
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
— maximum integer such that 10 raised to that power is in the range of representable
finite floating-point numbers, ⎣log10 ((1 − b− p )b emax )⎦
FLT_MAX_10_EXP +37
DBL_MAX_10_EXP +37
LDBL_MAX_10_EXP +37
12 The values given in the following list shall be replaced by constant expressions with
implementation-defined values that are greater than or equal to those shown:
— maximum representable finite floating-point number, (1 − b− p )b emax
FLT_MAX 1E+37
DBL_MAX 1E+37
LDBL_MAX 1E+37
13 The values given in the following list shall be replaced by constant expressions with
implementation-defined (positive) values that are less than or equal to those shown:
— the difference between 1 and the least value greater than 1 that is representable in the
given floating point type, b1− p
FLT_EPSILON 1E-5
DBL_EPSILON 1E-9
LDBL_EPSILON 1E-9
— minimum normalized positive floating-point number, b emin −1
FLT_MIN 1E-37
DBL_MIN 1E-37
LDBL_MIN 1E-37
32 Environment §5.2.4.2.2
© ISO/IEC 2011 − All rights reserved ISO/IEC 9899:2011 (E)
FLT_RADIX 16
FLT_MANT_DIG 6
FLT_EPSILON 9.53674316E-07F
FLT_DECIMAL_DIG 9
FLT_DIG 6
FLT_MIN_EXP -31
FLT_MIN 2.93873588E-39F
FLT_MIN_10_EXP -38
FLT_MAX_EXP +32
FLT_MAX 3.40282347E+38F
FLT_MAX_10_EXP +38
16 EXAMPLE 2 The following describes floating-point representations that also meet the requirements for
single-precision and double-precision numbers in IEC 60559,28) and the appropriate values in a
<float.h> header for types float and double:
24
x f = s2e Σ
k=1
f k 2−k , −125 ≤ e ≤ +128
53
x d = s2e Σ
k=1
f k 2−k , −1021 ≤ e ≤ +1024
FLT_RADIX 2
DECIMAL_DIG 17
FLT_MANT_DIG 24
FLT_EPSILON 1.19209290E-07F // decimal constant
FLT_EPSILON 0X1P-23F // hex constant
FLT_DECIMAL_DIG 9
27) If the presence or absence of subnormal numbers is indeterminable, then the value is intended to be a
positive number no greater than the minimum normalized positive number for the type.
28) The floating-point model in that standard sums powers of b from zero, so the values of the exponent
limits are one less than shown here.
§5.2.4.2.2 Environment 33
ISO/IEC 9899:2011 (E) © ISO/IEC 2011 − All rights reserved
FLT_DIG 6
FLT_MIN_EXP -125
FLT_MIN 1.17549435E-38F // decimal constant
FLT_MIN 0X1P-126F // hex constant
FLT_TRUE_MIN 1.40129846E-45F // decimal constant
FLT_TRUE_MIN 0X1P-149F // hex constant
FLT_HAS_SUBNORM 1
FLT_MIN_10_EXP -37
FLT_MAX_EXP +128
FLT_MAX 3.40282347E+38F // decimal constant
FLT_MAX 0X1.fffffeP127F // hex constant
FLT_MAX_10_EXP +38
DBL_MANT_DIG 53
DBL_EPSILON 2.2204460492503131E-16 // decimal constant
DBL_EPSILON 0X1P-52 // hex constant
DBL_DECIMAL_DIG 17
DBL_DIG 15
DBL_MIN_EXP -1021
DBL_MIN 2.2250738585072014E-308 // decimal constant
DBL_MIN 0X1P-1022 // hex constant
DBL_TRUE_MIN 4.9406564584124654E-324 // decimal constant
DBL_TRUE_MIN 0X1P-1074 // hex constant
DBL_HAS_SUBNORM 1
DBL_MIN_10_EXP -307
DBL_MAX_EXP +1024
DBL_MAX 1.7976931348623157E+308 // decimal constant
DBL_MAX 0X1.fffffffffffffP1023 // hex constant
DBL_MAX_10_EXP +308
If a type wider than double were supported, then DECIMAL_DIG would be greater than 17. For
example, if the widest type were to use the minimal-width IEC 60559 double-extended format (64 bits of
precision), then DECIMAL_DIG would be 21.
34 Environment §5.2.4.2.2
Exploring the Variety of Random
Documents with Different Content
However, there are dangerous mountain-top winds of one kind, or,
more properly, numerous local air-blasts, that are sometimes created
within these high winds, that do not appear to have any habits. It
would be easier to tell where the next thunderbolt would fall than
where the next one of these would explode. One of these might be
called a cannon wind. An old prospector, who had experienced
countless high winds among the crags, once stated that high, gusty
winds on mountain-slopes "sometimes shoot off a cannon." These
explosive blasts touch only a short, narrow space, but in this they
are almost irresistible.
Isolated clouds often soften and beautify the stern heights as they
silently float and drift among peaks and passes. Flocks of these sky
birds frequently float about together. On sunny days, in addition to
giving a charm to the peaks, their restless shadows never tire of
readjusting themselves and are ever trying to find a foundation or a
place of rest upon the tempestuous topography of the heights
below. Now and then a deep, dense cloud-stratum will cover the
crests and envelop the summit slopes for days. These vapory strata
usually feel but little wind and they vary in thickness from a few
hundred to a few thousand feet. Sometimes one of these rests so
serenely that it suggests an aggregation of clouds pushed off to one
side because temporarily the sky does not need them elsewhere for
either decorative or precipitative purposes. Now and then they do
drop rain or snow, but most of the time they appear to be in a
procrastinating mood and unable to decide whether to precipitate or
to move on.
Commonly the upper surfaces of cloud-strata appear like a
peaceful silver-gray sea. They appear woolly and sometimes fluffy,
level, and often so vast that they sweep away beyond the horizon.
Peaks and ridges often pierce their interminable surface with
romantic continents and islands; along their romantic shores, above
the surface of the picturesque sea, the airship could sail in safe
poetic flight, though the foggy depths below were too dense for any
traveler to penetrate.
One spring the snow fell continuously around my cabin for three
days. Reports told that the storm was general over the Rocky
Mountain region. Later investigations showed that that cloud and
storm were spread over a quarter of a million square miles. Over this
entire area there was made a comparatively even deposit of thirty
inches of snow.
All over the area, the bottom, or under surface, of the cloud was
at an altitude of approximately nine thousand feet. My cabin, with an
altitude of nine thousand, was immersed in cloud, though at times it
was one hundred feet or so below it. Fully satisfied of the
widespread and general nature of the storm, and convinced of the
comparatively level line of the bottom surface of the cloud, I
determined to measure its vertical depth and observe its slow
movements by climbing above its silver lining. This was the third day
of the storm. On snowshoes up the mountainside I went through
this almost opaque sheep's-wool cloud. It was not bitterly cold, but
cloud and snow combined were blinding, and only a ravine and
instinct enabled me to make my way.
At an altitude of about twelve thousand feet the depth of the
snow became suddenly less, soon falling to only an inch or so.
Within a few rods of where it began to grow shallow I burst through
the upper surface of the cloud. Around me and above there was not
a flake of snow. Over the entire storm-area of a quarter of a million
square miles, all heights above twelve thousand had escaped both
cloud and snow. The cloud, which thus lay between the altitudes of
nine thousand and twelve thousand feet, was three thousand feet
deep.
When I rose above the surface of this sea the sun was shining
upon it. It was a smooth sea; not a breath of wind ruffled it. The top
of Long's Peak rose bald and broken above. Climbing to the top of a
commanding ridge, I long watched this beautiful expanse of cloud
and could scarcely realize that it was steadily flinging multitudes of
snowflakes upon slopes and snows below. Though practically
stationary, this cloud expanse had some slight movements. These
were somewhat akin to those of a huge raft that is becalmed in a
quiet harbor. Slowly, easily, and almost imperceptibly the entire mass
slid forward along the mountains; it moved but a short distance,
paused for some minutes, then slowly slid back a trifle farther than it
had advanced. After a brief stop the entire mass, as though
anchored in the centre, started to swing in an easy, deliberate
rotation; after a few degrees of movement it paused, hesitated, then
swung with slow, heavy movement back. In addition to these
shifting horizontal motions there was a short vertical one. The entire
mass slowly sank and settled two or three hundred feet, then, with
scarcely a pause, rose easily to the level from which it sank. Only
once did it rise above this level.
During all seasons of the year there are oft-recurring periods when
the mountains sit in sunshine and all the winds are still. In days of
this kind the transcontinental passengers in glass-bottomed airships
would have a bird's-eye view of sublime scenes. The purple forests,
the embowered, peaceful parks, the drifted snows, the streams that
fold and shine through the forests,—all these combine and cover
magnificently the billowed and broken distances, while ever floating
up from below are the soft, ebbing, and intermittent songs from
white water that leaps in glory.
Though the summits of the Rocky Mountains are always cool, it is
only in rare, brief times that they fall within the frigid spell of
Farthest North and become cruelly cold. The climate among these
mountain-tops is much milder than people far away imagine.
The electrical effects that enliven and sometimes illuminate these
summits are peculiar and often highly interesting. Thunderbolts—
lightning-strokes—are rare, far less frequent than in most lowland
districts. However, when lightning does strike the heights, it appears
to have many times the force that is displayed in lowland strokes. My
conclusions concerning the infrequency of thunderbolts on these
sky-piercing peaks are drawn chiefly from my own experience. I
have stood through storms upon more than a score of Rocky
Mountain summits that were upward of fourteen thousand feet
above the tides. Only one of these peaks was struck; this was Long's
Peak, which rises to the height of 14,256 feet above the sea.
Seventy storms I have experienced on the summit of this peak,
and during these it was struck but three times to my knowledge.
One of these strokes fell a thousand feet below the top; two struck
the same spot on the edge of the summit. The rock struck was
granite, and the effects of the strokes were similar; hundreds of
pounds of shattered rock fragments were flung horizontally afar. Out
of scores of experiences in rain-drenched passes I have record of
but two thunderbolts. Both of these were heavy. In all these
instances the thunderbolt descended at a time when the storm-cloud
was a few hundred feet above the place struck.
During the greater number of high-altitude storms the cloud is in
contact with the surface or but little removed from it. Never have I
known the lightning to strike when the clouds were close to the
surface or touching it. It is, however, common, during times of low-
dragging clouds, for the surface air to be heavily charged with
electrical fluid. This often is accompanied with strange effects.
Prominent among these is a low pulsating hum or an intermittent
buz-z-z-z, with now and then a sharp zit-zit! Sometimes
accompanying, at other times only briefly breaking in, are subdued
camp-fire cracklings and roarings. Falling snowflakes, during these
times, are occasionally briefly luminous, like fireflies, the instant they
touch the earth. Hair-pulling is the commonest effect that people
experience in these sizzling electrical storms. There is a straightening
of the hairs and apparently a sharp pull upon each. As John Muir has
it, "You are sure to be lost in wonder and praise and every hair of
your head will stand up and hum and sing like an enthusiastic
congregation." Most people take very gravely their first experience of
this kind; especially when accompanied, as it often is, with apparent
near-by bee-buzzings and a purplish roll or halo around the head.
During these times a sudden finger movement will produce a
crackling snap or spark.
On rare occasions these interesting peculiarities become irritating
and sometimes serious to one. In "A Watcher on the Heights," in
"Wild Life on the Rockies," I have described a case of this kind. A
few people suffer from a muscular cramp or spasm, and occasionally
the muscles are so tensed that breathing becomes difficult and
heart-action disturbed. I have never known an electrical storm to be
fatal. Relief from the effects of such a storm may generally be had
by lying between big stones or beneath shelving rocks. On one
occasion I saw two ladies and four gentlemen lay dignity aside and
obtain relief by jamming into a place barely large enough for two. In
my own case, activity invariably intensified these effects; and the
touching of steel or iron often had the same results. For some years
a family resided upon the slope of Mt. Teller, at an altitude of twelve
thousand feet. Commonly during storms the stove and pipe were
charged with fluid so heavily that it was a case of hands off and let
dinner wait, and sometimes spoil, until the heavens shut off the
current.
The sustaining buoyancy of the air to aerial things decreases with
altitude. In this "light" air some motor machinery is less efficient
than it is in the lowlands. It is probable that aviators will always find
the air around uplifted peaks much less serviceable than this
element upon the surface of the sea. But known and unknown
dangers in the air will be mastered, and ere long the dangers to
those who take flight through the air will be no greater than the
dangers to those who go down to the sea in ships. Flying across the
crest of the continent, above the crags and cañons, will be
enchanting, and this journey through the upper air may bring to
many the first stirring message from the rocks and templed hills.
Rob of the Rockies
Sierra Blanca
I was rambling alone on snowshoes, doing some winter
observations in the alpine heights of the Sangre de Cristo range. It
was miles to the nearest house. There was but little snow upon the
mountains, and, for winter, the day was warm. I was thirsty, and a
spring which burst forth among the fragments of petrified wood was
more inviting than the water-bottle in my pocket. The water was
cool and clear, tasteless and, to all appearances, pure.
As I rose from drinking, a deadly, all-gone feeling overcame me.
After a few seconds of this, a violent and prolonged nausea came
on. Evidently I had discovered a mineral spring! Perhaps it was
arsenic, perhaps some other poison. Poison of some kind it must
have been, and poisonous mineral springs are not unknown.
The sickness was very like seasickness, with a severe internal pain
and a mental stimulus added. After a few minutes I partly recovered
from these effects and set off sadly for the nearest house of which I
had heard. This was eight or ten miles distant and I hoped to find it
through the guidance of a crude map which a prospector had
prepared for me. I had not before explored this mountainous
section.
SIERRA BLANCA IN WINTER
The gulches and ridges which descended the slope at right angles
to my course gave me a rough sea which kept me stirred up. I
advanced in tottering installments; a slow, short advance would be
made on wobbly legs, then a heave-to, as pay for the advance
gained.
Now and then there was smoothness, and I took an occasional
look at severe Sierra Blanca now looming big before me. It was
mostly bare and brown with a number of icy plates and ornaments
shining in the sun.
At last in the evening light, from the top of a gigantic moraine, I
looked down upon the river and a log ranch-house nestling in a
grassy open bordered with clumps of spruces. An old lady and
gentleman with real sympathy in their faces stood in the doorway
and for a moment watched me, then hastened to help me from the
pole fence to the door.
While giving them an incoherent account of my experience, I fell
into a stupor, and although I had evidently much to say concerning
drinking and apparently showed symptoms of too much drink, these
old people did not think me drunk. Waking from a fantastic dream I
heard, "Does he need any more sage tea?" The Western pioneers
have faith in sage tea and many ascribe to it all the life-saving, life-
extending qualities usually claimed for patent medicines. The
following morning I was able to walk about, while my slightly
bloated, bronzed face did not appear so badly. Altogether, I looked
much better than I felt.
These good old people declared that they had not seen better
days, but that they were living the simple life from choice. They
loved the peace of this isolated mountain home and the
companionship of the grand old peak. In the Central States the wife
had been a professor in a State school, while the husband had been
a State's Attorney.
The nearest neighbor was four miles downstream, and no one
lived farther up the mountain. The nearest railroad station was
seventy rough mountain-road miles away. It appeared best to hasten
to Denver, but two days in a jarring wagon to reach the railroad
seemed more than I could endure. I had not planned even to try for
the top of Colorado's highest peak in midwinter, but the way across
Sierra Blanca was shorter and probably much easier than the way
around. Across the range, directly over the shoulder of Sierra Blanca,
lay historic Fort Garland. It was only thirty miles away, and I
determined to cross the range and reach it in time for the midnight
train. On hearing this resolution the old people were at first
astonished, but after a moment they felt that they at last knew who
I was.
"You must be the Snow Man! Surely no one but he would try to do
this in winter."
They, with scores of other upland-dwellers, had heard numerous
and wild accounts of my lone, unarmed camping-trips and winter
adventures in the mountain snows.
The misgivings of the old gentleman concerning the wisdom of my
move grew stronger when he perceived how weak I was, as we
proceeded on mule-back up the slope of Sierra Blanca. The ice
blocked us at timber-line, and in his parting handclasp I felt the
hope and fear of a father who sees his son go away into the world.
He appeared to realize that I was not only weak, but that at any
moment I might collapse. He knew the heights were steep and
stern, and that in the twenty-odd miles to Fort Garland there was
neither house nor human being to help me. Apparently he hoped
that at the last moment I would change my mind and turn back.
Up the northern side of the peak I made my way. Now and then it
was necessary to cut a few steps in the ice-plated steeps. The
shoulder of the peak across which I was to go was thirteen thousand
feet above the sea, and in making the last climb to this it was
necessary to choose between a precipitous ice-covered slope and an
extremely steep rock-slide,—more correctly a rock glacier. I picked
my way up this with the greatest caution. To start a rock avalanche
would be easy, for the loose rocks lay insecure on a slope of perilous
steepness. From time to time in resting I heard the entire mass
settling, snarling, and grinding its way with glacier slowness down
the steep.
Just beneath the shoulder the tilting steepness of this rocky débris
showed all too well that the slightest provocation would set a
grinding whirlpool of a stone river madly flowing. The expected at
last happened when a boulder upon which I lightly leaped settled
and then gave way. The rocks before made haste to get out of the
way, while those behind began readjusting themselves. The liveliest
of foot-work kept me on top of the now settling, hesitating, and
inclined-to-roll boulder. There was nothing substantial upon which to
leap.
Slowly the heavy boulder settled forward with a roll, now right,
now left, with me on top trying to avoid being tumbled into the
grinding mill hopper below. At last, on the left, a sliding mass of
crushed, macadamized rock offered a possible means of escape. Not
daring to risk thrusting a leg into this uncertain mass, I allowed
myself to fall easily backwards until my body was almost horizontal,
and then face upwards I threw myself off the boulder with all my
strength. The rock gave a great plunge, and went bounding down
the slope, sending the smaller stuff flying before at each contact
with the earth.
Though completely relaxed, and with the snowshoes on my back
acting as a buffer, the landing was something of a jolt. For a few
seconds I lay limp and spread out, and drifted slowly along with the
slow-sliding mass of macadam. When this came to rest, I rose up
and with the greatest concern for my foundation, made my way
upwards, and at last lay down to breathe and rest upon the solid
granite shoulder of Sierra Blanca.
In ten hours the midnight train would be due in Fort Garland, and
as the way was all downgrade, I hoped that my strength would hold
out till I caught it. But, turning my eyes from the descent to the
summit, I forgot the world below, and also my poison-weakened
body. Suddenly I felt and knew only the charm and the call of the
summit. There are times when Nature completely commands her
citizens. A splendid landscape, sunset clouds, or a rainbow on a
near-by mountain's slope,—by these one may be as completely
charmed and made as completely captive as were those who heard
the music of Orpheus' lyre. My youthful dream had been to scale
peak after peak, and from the earthly spires to see the scenic world
far below and far away. All this had come true, though of many trips
into the sky and cloudland, none had been up to the bold heights of
Blanca. Thinking that the poisoned water might take me from the list
of those who seek good tidings in the heights, I suddenly
determined to reach those wintry wonder-heights while yet I had the
strength. I rose from relaxation, laid down my snowshoes, and
started for the summit.
Blanca is a mountain with an enormous amount of material in it,—
enough for a score of sizable peaks. Its battered head is nearly two
thousand feet above its rugged shoulder. The sun sank slowly as I
moved along a rocky skyline ridge and at last gained the summit.
Beyond an infinite ocean of low, broken peaks, sank the sun. It
was a wonderful sunset effect in that mountain-dotted, mountain-
walled plain, the San Luis Valley. Mist-wreathed peaks rose from the
plain, one side glowing in burning gold, the other bannered with
black shadows. The low, ragged clouds dragged slanting shadows
across the golden pale. A million slender silver threads were flung
out in a measureless horizontal fan from the far-away sun. The
sunset from the summit of Sierra Blanca was the grandest that I
have ever seen. The prismatic brilliancy played on peak and cloud,
then changed into purple, fading into misty gray, while the light of
this strong mountain day slowly vanished in the infinite silence of a
perfect mountain night.
Then came the serious business of getting down and off the rough
slope and out of the inky woods before darkness took complete
possession. After intense vigilance and effort for two hours, I
emerged from the forest-robed slope and started across the easy,
sloping plain beneath a million stars.
The night was mild and still. Slowly, across the wide brown way, I
made my course, guided by a low star that hung above Fort Garland.
My strength ran low, and, in order to sustain it, I moved slowly, lying
down and relaxing every few minutes. My mind was clear and
strangely active. With pleasure I recalled in order the experiences of
the day and the wonderful sunset with which it came triumphantly to
a close. As I followed a straight line across the cactus-padded plains,
I could not help wondering whether the Denver physicians would tell
me that going up to see the sunset was a serious blunder, or a
poison-eliminating triumph. However, the possibility of dying was a
thought that never came.
At eleven o'clock, when instinctively and positively I felt that I had
traveled far enough, I paused; but from Fort Garland neither sound
nor light came to greet me in the silent, mysterious night. I might
pass close to the low, dull adobes of this station without realizing its
presence. So confident was I that I had gone far enough that I
commenced a series of constantly enlarging semicircles, trying to
locate in the darkness the hidden fort. In the midst of these, a
coyote challenged, and a dog answered. I hastened toward the dog
and came upon a single low adobe full of Mexicans who could not
understand me. However, their soft accents awakened vivid
memories in my mind, and distinctly my strangely stimulated brain
took me back through fifteen years to the seedling orange groves in
the land of to-morrow where I had lingered and learned to speak
their tongue. An offer of five dollars for transportation to Fort
Garland in time for the midnight train sent Mexicans flying in all
directions as though I had hurled a bomb.
Two boys with an ancient, wobbling horse and buckboard landed
me at the platform as the headlight-glare of my train swept across it.
The big, good-natured conductor greeted me with "Here's the Snow
Man again,—worse starved than ever!"
The Wealth of the Woods
ebookbell.com