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-6
Porting Is Easier When Standards Are Used
Reserved Words
:
Constants
•
U and L added as integer suffixes
•
F and L added for floating constants
•
L can be used to specify a wide-character constant or a string of wide characters
ISO/ANSI C Header Files
Header files contain declarations for related library functions and macros, as well as
variables and types that complete that set. The ISO/ANSI C header files are kept in
/usr/include and are:
<assert.h>
<ctype.h>
<locale.h>
<math.h>
<setjmp.h>
<signal.h>
<stdarg.h>
<stddef.h>
Headers <limits.h>, <float.h>, and <stddef.h> added
<locale.h> and its defined functions added
Headers are self-sufficient
Headers are important
Pointers Void * added as generic pointer type
Pointer to a function can be used without an explicit *
Pointers can point just beyond end of array
Functions Structures can be passed to functions and returned by functions
Function prototypes and type checking added
Reserved by
C language
auto, break, ..., volatile, while
Reserved by
header files
All symbols start with a unique set of characters, for example:
d_, E, LC_, pw_, ...
Reserved by
C library
functions
abort(), abs(), acos(), ..., log(), log10(), longjmp(), malloc()
,
mblen(), mbstowcs(), ..., vsprintf(), wctombs()
Reserved by
POSIX
library
functions
access(), alarm(), ..., lsatty(), kill(), link()
, longjmp(),
lseek(), ..., utime(), waitpid(), write()
Table 1-1. ISO/ANSI C Features Not Supported in Common C (page2of2)
Feature
Type ISO/ANSI C Feature