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
Porting UNIX Applications to the OSS Environment
Open System Services Porting Guide—520573-006
7-29
Using the OSS Internationalization Subsystem
Using the OSS Internationalization Subsystem
Internationalization is the process of developing software applications without making
assumptions about the language, encoding methods, and cultural data that the
applications are expected to handle. Internationalized applications support new
languages, cultures, and code sets without requiring changes to source code. Quite
simply, internationalized code is portable. The OSS Internationalization subsystem
follows POSIX standards and XPG4 specifications and is currently supported only in
the OSS environment.
This subsection gives an overview of the OSS Internationalization subsystem and
highlights some considerations when writing or porting for internationalization. For
details on developing an internationalized application, use the Software
Internationalization Guide, the C/C++ Programmer’s Guide, the Open System Services
Library Calls Reference Manual, and the X/Open Internationalization Guide Version 2.
Internationalization Design and Development Guidelines
You can minimize the effort of internationalizing applications by starting at the
development stages:
•
Code preparation: ensure data transparency, remove hard-coded messages, and
remove locale-dependent information and assumptions about character encoding.
See Porting Considerations for Locales on page 7-29.
•
POSIX standards and XPG specifications: use as a model for developing
internationalized programs where users specify a locale for the operating
environment.
A key task when beginning to internationalize an application is to separate the
program’s base function (algorithms, logic, and purpose) from its locale-sensitive data
(error messages, date formats, time formats, currency formats, collation schemes,
character sets, and code sets). Then when an internationalized program needs to
support a new locale, only the locale source file is localized.
Porting Considerations for Locales
For an internationalized program to support a variety of languages, cultures, and code
sets, the data for the source country must be transformed into data that is appropriate
for target countries. This porting consideration is known as “localization.”
A locale is the part of a user’s environment that defines the user’s language, cultural
conventions, and coded character set. When porting code for multiple locales, be
aware of character information considerations such as collating sequences, case-
conversion, and format of data—for example, date and time formats.
A program must be properly initialized before functions that support international
behavior can access locale-specific information. The setlocale() function call links
a program with the appropriate locale data, setting your locale environment variables.
For additional information on setting locale variables, refer to the sh(1) and