The aim of this document is to collect the experience of several people who have had to write and/or port programs written in C to more than one platform.
In order to keep this document within reasonable bounds, we must restrict ourselves to programs which must execute under Unix-like operating systems and those which implement a reasonable Unix-like environment. The only exception we will consider is VMS.
A wealth of information can be obtained from programs that have been written to run on several platforms. This is the case of publicly available software such as that developed by the Free Software Foundation and the MIT X Consortium.
When discussing portability, one focuses on two issues:
We include in our discussions the standardization efforts upon the language and the environment. Special attention will be given to floating-point representations and arithmetic, to limitations of specific compilers, and to VMS.
Our main focus will be boiler-plate problems. Systems programming, e.g., raw I/O from terminals, and twisted code associated with bizarre interpretations of the ANSI C Standard [13] -- henceforth referred to as the Standard -- are not extensively covered in this document. (2)
contents
Foreword
Standardization Efforts