Open System Services Porting Guide (G06.24+, H06.03+)

Table Of Contents
Open System Services Porting Guide520573-006
7-1
7
Porting UNIX Applications to the
OSS Environment
Many application programs have been written for the UNIX environment. As UNIX
standards have developed, popular UNIX environments have been brought into
conformance with these standards. UNIX programs that use these standard interfaces
should be easy to port to the OSS environment.
However, many UNIX environments still support old system interfaces for backward
compatibility, and have added proprietary extensions of their own. To the degree that
UNIX programs still use these old system interfaces and vendor-specific extensions,
these programs can take some additional effort to port to the OSS environment or
other UNIX environments.
ISO/ANSI C has been a standard for the C language for many years. Most new UNIX
application programs are being written in the ISO/ANSI C language, making these
programs very portable to environments, such as OSS, that support the C standard.
However, because UNIX programs written in Common C still exist, most compiler
vendors support an option that enables the compilation of these older programs.
This section is intended for UNIX C or C++ programmers interested in porting C or C++
programs from a UNIX environment to the OSS environment. It provides guidelines for
performing a port, an overview of the basic differences between the UNIX and OSS
programming environments, and a description of the rich set of functions offered by the
OSS environment.
The topics for this section are:
General Porting Guidelines on page 7-1
Using Functional Equivalents on page 7-6
Differences Between OSS and UNIX Environments on page 7-7
OSS C Programming Considerations on page 7-10
Using HP Extensions on page 7-25
Using the OSS Internationalization Subsystem on page 7-29
General Porting Guidelines
There are a number of issues you must take into consideration when porting a UNIX
application program to the OSS environment. Obviously, if a program is originally
written to be portable to multiple environments, the porting of the UNIX program to the
OSS environment should be easy. However, this compatibility is not always the case.
Before highlighting specific considerations for porting between the OSS and UNIX
environments, the following general issues are discussed:
Scope of Portability on page 7-2
Levels of Portability on page 7-2