Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)

Lists access control list entries for a file.getacl
Modifies the access control list for a file.setacl
For a detailed description of OSS ACLs and their use, see the Open System Services Programmer’s
Guide.
Other Extension Functions
In addition to the functions listed earlier in this chapter, HP supports other functions that are
extensions to the XPG4 specification. Examples include the lchmod() function, the
setfilepriv() function, and functions that support Standard POSIX Threads. To determine the
standards conformance for a function, special header files, if any, to include, and required
preprocessor directives, if any, see the reference page for the function.
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” (page 134).
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 locale(1) reference pages either online or in
the Open System Services Shell and Utilities Reference Manual and to the setlocale(3) and
134 Porting UNIX Applications to the OSS Environment