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
Interoperating Between User Environments
Open System Services Porting Guide—520573-006
4-20
Starting an OSS Shell Script
Starting an OSS Shell Script
You can start an OSS shell script in either of the ways shown in the previous two
examples. The results produced by the script can differ depending on the login
initialization.
A script that depends on any login initialization such as aliases or functions can only
execute correctly with the -c option specified. The following command executes the
shell script /home/stu01/process_report:
osh -c "/home/stu01/process_report"
Redirecting Input and Output to a File
You can redirect input from a file to a command in the OSS environment using the left
angle bracket (<) operator. Output from a command, program, or script can be
redirected to a file in the OSS environment using the right angle bracket (>) operator.
The two commands shown next redirect their output: the first to an OSS file, and the
second to a Guardian file in the /G file system. The -nowait parameter is used to
return control to the user immediately after the commands are initiated:
osh -nowait -p /bin/ls /home/stu01 > /home/stu01/myfiles
osh -nowait -p /bin/ls /home/stu01 >
/G/DATA01/STU01/MYFILES
In the following example, input is redirected from the Guardian file system (myfiles)
with the left angle bracket. Output is redirected to the user’s Guardian subvolume to a
file called NEWFILE:
osh -p cat < /G/data01/stu01/myfiles > newfile
Redirecting Input and Output to the Guardian Environment
You can redirect the OSS standard files (stdin, stdout, stderr) to Guardian processes
and EDIT files by using the OSSTTY facility. OSSTTY can be used as a target for data
redirection, providing a capability similar to the UNIX pseudo-TTY feature ptty.
The following example starts OSSTTY, then starts an OSS shell and executes a single
command. Output sent to /G/tty/#stdout is received by OSSTTY and redirected
to the EDIT file editfil.
TACL> run osstty /name $tty, out editfil, nowait/
TACL> osh -c "ls /home/stu01/testfil" > /G/tty/#stdout
The -nowait parameter is used to return control to the user immediately after the run
command is entered.