Open System Services Porting Guide (G06.24+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction to Porting
- 2 The Development Environment
- 3 Useful Porting Tools
- 4 Interoperating Between User Environments
- Purpose of Interoperability
- The OSS User Environment
- OSS Commands for the Guardian User
- Guardian Commands for the UNIX User
- OSS Pathname and Guardian Filename Conversions
- Running the OSS Shell and Commands From TACL
- Running Guardian Commands From the OSS Shell
- Running OSS Processes With Guardian Attributes
- Using OSS Commands to Manage Guardian Objects
- 5 Interoperating Between Programming Environments
- 6 OSS Porting Considerations
- 7 Porting UNIX Applications to the OSS Environment
- 8 Migrating Guardian Applications to the OSS Environment
- General Migration Guidelines
- C Compiler Issues for Guardian Programs
- Using New and Extended Guardian Procedures
- Using OSS Functions in a Guardian Program
- Interoperating With OSS Programs
- Starting an OSS Program From the Guardian Environment
- C Compiler Considerations for OSS Programs
- Porting a Guardian Program to the OSS Environment
- How Arguments Are Passed to the C or C++ Program
- Differences in the Two Run-Time Environments
- Which Run-Time Routines Are Available
- Use of Common Run-Time Environment (CRE) Functions
- Replacing Guardian Procedure Calls With Equivalent OSS Functions
- Which IPC Mechanisms Can Be Used
- Interactions Between Guardian and OSS Functions
- 9 Porting From Specific UNIX Systems
- 10 Native Migration Overview
- 11 Porting or Migrating Sockets Applications
- 12 Porting Threaded Applications
- A Equivalent OSS and UNIX Commands for Guardian Users
- B Equivalent Guardian Commands for OSS and UNIX Users
- C Equivalent Inspect Debugging Commands for dbx Commands
- D Equivalent Native Inspect Debugging Commands for dbx Commands
- E Standard POSIX Threads Functions: Differences Between the Previous and Current Standards
- Glossary
- Index
Introduction to Porting
Open System Services Porting Guide—520573-006
1-5
Porting Is Easier When Standards Are Used
ISO/ANSI C Features
Some ISO/ANSI C standard features are implementation-defined. The vendor can
choose what values to give to those features.
Table 1-1 lists new ISO/ANSI C features, not supported in Common C. New ISO/ANSI
C features are important only if your program is written in Common C.
Table 1-1. ISO/ANSI C Features Not Supported in Common C (page1of2)
Feature
Type ISO/ANSI C Feature
Preprocessor ## added for concatenation of tokens
# added for creation of strings
#pragma added (nonportable)
#elif added
Parameters inside strings are not replaced
Splicing lines with the backslash (\) is allowed everywhere
Character set Trigraphs added
wchar_t added for wide-character strings
Can be signed as well as unsigned
Identifiers Minimum significance of internal identifiers increased to 31 characters
Names beginning with underscore (_) followed by another underscore or a
capital letter are reserved by the system
Inclusion of the system header file might result in some names being
reserved
Keywords void
, const, volatile, signed, and enum
Operators Assignment operators -=, +=, and so on are treated as single tokens
unary + added
size of yields size_t instead of unsigned int
& operator can always be applied to arrays
& operator can never be used with an object declared as a register
Strings List of \x escapes expanded
Adjacent string literals are concatenated
String constants can be placed in read-only memory
Switch
statements
The controlling expression and case labels can have any integral type
Arithmetic Arithmetic conversions use the smallest type that can hold the result
Shifting by a long count does not coerce the shifted operands to long