did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780738424545

C/C++ Applications on Z/OS and Os/390 Unix: International Technical Support Organization Decemaber 2001

by ; ; ; ; ; ;
  • ISBN13:

    9780738424545

  • ISBN10:

    0738424544

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2001-12-01
  • Publisher: Vervante
  • Purchase Benefits
List Price: $40.00
We're Sorry.
No Options Available at This Time.

Table of Contents

Contents iii
Preface ix
The team that wrote this redbook
ix
Special notice
x
IBM trademarks
xi
Comments welcome
xi
Summary of changes xiii
December 2001, Second Edition
xiii
Chapter 1. z/OS and OS/390 tools 1(18)
1.1 User access under z/OS
2(4)
1.1.1 JCL and batch
2(1)
1.1.2 JOB statement
2(1)
1.1.3 EXEC statement
2(1)
1.1.4 DD statement
2(1)
1.1.5 TSO/E
3(1)
1.1.6 ISPF/PDF
3(2)
1.1.7 SDSF
5(1)
1.2 z/OS system services
6(14)
1.2.1 WLM
6(4)
1.2.2 SMF
10(1)
1.2.3 RMF
10(5)
1.2.4 SMS
15(4)
Chapter 2. UNIX and C/C++ basics in z/OS 19(20)
2.1 The shell, ISHELL and OMVS interfaces
20(7)
2.1.1 Accessing z/OS UNIX shells
20(4)
2.1.2 Accessing the tcsh shell
24(1)
2.1.3 Accessing an alternate shell
25(1)
2.1.4 The ISHELL
25(2)
2.2 UNIX standards
27(1)
2.3 An overview of compile and bind operations
28(3)
2.3.1 The c89 utility
28(2)
2.3.2 JCL procedures for compile and bind
30(1)
2.4 Invoking an executable
31(2)
2.4.1 Execution from a shell
32(1)
2.4.2 Execution from TSO
32(1)
2.4.3 Execution via batch
33(1)
2.5 CICS
33(1)
2.6 DB2
34(3)
2.6.1 Background on a precompile operation
34(2)
2.6.2 DB2 precompile example
36(1)
2.6.3 Other DB2 considerations
37(1)
2.7 IMS
37(2)
Chapter 3. z/OS UNIX development tools 39(18)
3.1 Archiving, compression and text translation
40(2)
3.1.1 Archive formats
40(1)
3.1.2 Compression formats
40(1)
3.1.3 Text translation
40(1)
3.1.4 Archive, compression and text translation commands
41(1)
3.2 Compilers and associated tools
42(1)
3.2.1 z/OS C/C,++ compiler
42(1)
3.2.2 SAS/C and C++ Cross-Platform Compiler
42(1)
3.2.3 GNU's gcc and g++
42(1)
3.2.4 Lex and yacc
43(1)
3.2.5 Flex and bison
43(1)
3.3 Editors
43(1)
3.3.1 UNIX editors - vi, ed
43(1)
3.3.2 The MVS ISPF editor
43(1)
3.3.3 GNU's Emacs
44(1)
3.3.4 Nedit
44(1)
3.4 Make tools
44(2)
3.4.1 z/OS make
45(1)
3.4.2 GNU make
45(1)
3.4.3 Makedepend
45(1)
3.4.4 Autoconf, m4 and configure
45(1)
3.5 Source code control tools
46(1)
3.5.1 The UNIX Source Code Control System (SCCS)
46(1)
3.5.2 GNU's Revision Control System (RCS)
46(1)
3.5.3 CVS: A client/server source code control system
47(1)
3.6 Code analysis
47(1)
3.7 Debugging
47(1)
3.7.1 Dbx
47(1)
3.7.2 The Debug Tool
47(1)
3.7.3 Other debugging tools
48(1)
3.8 Shells and command languages
48(3)
3.8.1 Shell techniques
49(1)
3.8.2 Scripting tools and command languages
49(2)
3.9 Performance analysis and tuning tools
51(3)
3.9.1 z/OS C/C++ Performance Analyzer
51(2)
3.10 Open source software
53(1)
3.11 Development environments
54(61)
3.11.1 MicroEdge's Visual SlickEdit
54(1)
3.11.2 Bristol's Tributary
55(2)
Chapter 4. z/OS C/C++ compiler 57(26)
4.1 The C compiler
58(2)
4.1.1 z/OS-specific options
58(1)
4.1.2 K&R C
58(1)
4.1.3 Compilation phases
59(1)
4.1.4 Commonly used z/OS C/C++ options
59(1)
4.2 The C++ compiler
60(6)
4.2.1 ISO C++ 1998 features
61(4)
4.2.2 ObjectModel (IBM)
65(1)
4.2.3 Commonly used z/OS C++ options
65(1)
4.3 Dynamic Link Libraries (DLLs)
66(2)
4.3.1 Differences between C and C++
67(1)
4.3.2 Mixing DLL and non-DLL
67(1)
4.3.3 DLLRNAME utility
67(1)
4.4 C/C++ Compiler Interprocedural analysis (IPA)
68(2)
4.4.1 How IPA works
68(1)
4.4.2 How to invoke IPA
69(1)
4.4.3 Optimization levels in IPA
70(1)
4.5 Extra Performance Linkage (XPLink)
70(1)
4.6 Langyage feature issues
71(10)
4.6.1 Options
71(1)
4.6.2 Enum size
72(1)
4.6.3 Extern "C"
72(1)
4.6.4 Mixing signal handling and exceptions
73(1)
4.6.5 Bit fields
74(1)
4.6.6 Key differences between cc and c89
74(3)
4.6.7 Comparison between OS/390 V2R10 C++ and z/OS V1R2 C++ compilers
77(4)
4.7 Language Environment (LE) issues
81(1)
4.7.1 Changes to string and wide character function prototypes
81(1)
4.7.2 Standard C++ library header files
82(1)
4.7.3 Run Time Type identification (RTTI)
82(1)
4.8 Commonly used environment variables
82(1)
Chapter 5. Standard C++ Library 83(4)
5.1 Difference between ANSI STL and IBM Open Class (IOC) and SGI STLport
83(1)
5.1.1 lostream library
83(1)
5.1.2 Floating point numbers
84(1)
5.1.3 Character set: ASCII vs. EBCDIC
84(1)
5.1.4 Large file support
84(1)
5.2 Debugging applications using the STL
84(1)
5.3 Deciding between ANSI STL and IOC libraries
85(1)
5.4 Using C functions in C++ applications
85(1)
5.5 Difference between climits and limits
85(2)
Chapter 6. Adaptive Communication Environment (ACE) 87(6)
6.1 ACE components
88(2)
6.1.1 C API layer
88(1)
6.1.2 C++ wrappers layer
88(1)
6.1.3 Frameworks layer
88(1)
6.1.4 Distributed services layer
89(1)
6.1.5 Higher-level middleware components
89(1)
6.2 Installing ACE on OS/390
90(1)
6.2.1 Obtaining ACE
90(1)
6.2.2 Building ACE
90(1)
6.3 ACE resources
91(3)
6.3.1 Riverace
91(1)
6.3.2 OCI
91(1)
6.3.3 List servers
92(1)
Chapter 7. Performance and tuning techniques 93(8)
7.1 Environment variables related to spawn
94(2)
7.1.1 EDIT=NO bind option
95(1)
7.1.2 Prelinker
95(1)
7.1.3 ANSIALIAS compiler option
95(1)
7.2 Tuning OS/390 UNIX for compile-intensive systems
96(6)
7.2.1 System tuning: frequently used modules in LPA
96(2)
7.2.2 System tuning - I/O tips
98(1)
7.2.3 Programmer tuning
98(3)
Chapter 8. net.TABLES Application 101(8)
8.1 Introduction
102(1)
8.2 Components
102(1)
8.2.1 net.TABLES server
102(1)
8.2.2 C-API client
102(1)
8.2.3 net.LOGGER server
102(1)
8.2.4 net.DRIVER
102(1)
8.2.5 net.EDITOR
102(1)
8.3 How net.TABLES was developed
103(1)
8.4 Portability observations
104(2)
8.4.1 Standard Template Library
105(1)
8.4.2 #pragma
105(1)
8.4.3 Exceptions
105(1)
8.4.4 Threads
106(1)
8.5 ACE considerations
106(4)
8.5.1 ACE overloads main()
106(1)
8.5.2 CString Class does not use ACE_Allocator
106(1)
8.5.3 Overloading the delete operator
106(1)
8.5.4 Build time
107(2)
Chapter 9. Establishing a development environment 109(6)
9.1 OS/390 install
110(1)
9.2 Setting up open source tools on OS/390
110(1)
9.3 Setting up the clients
111(1)
9.3.1 A good telnet client
111(1)
9.3.2 An X server
112(1)
9.4 Move code from the PC to OS/390 UNIX
112(3)
9.4.1 The PC nttar command
113(1)
9.4.2 The Hummingbird FTP client
113(2)
Chapter 10. Porting net.TABLES 115(8)
10.1 Coding considerations
116(3)
10.1.1 64-bit integers - long long data type
116(1)
10.1.2 Signal handlers and pointers to C++ functions
116(1)
10.1.3 Enums
116(1)
10.1.4 Big-endian and little-endian byte ordering
117(1)
10.1.5 ASCII/EBCDIC conversions
117(2)
10.1.6 Bool data type not supported
119(1)
10.1.7 Non-standard header files
119(1)
10.1.8 Thread_id data type
119(1)
10.1.9 Overloading the delete operator
119(1)
10.2 Build considerations
119(2)
10.2.1 Failed bind and unusable executables
119(1)
10.2.2 Identifying the operating system in makefiles
120(1)
10.2.3 Generation of dependency files
121(1)
10.2.4 Creation of debug and release versions
121(1)
10.3 Run-time considerations
121(1)
10.3.1 LIBPATH
121(1)
10.3.2 _BPX_SHAREAS and _BPX_SPAWN_SCRIPT
122(1)
10.4 Reconciliation with original Linux version
122(1)
Chapter 11. Tuning net.TABLES 123(8)
11.1 Tuning for an improved performance
124(7)
11.1.1 Compiler/linker optimization techniques
124(1)
11.1.2 Performance Analyzer
124(1)
11.1.3 Effect of compiler optimization settings
125(1)
11.1.4 Other compiler/linker tuning techniques
125(1)
11.1.5 Runtime tuning techniques
126(5)
Chapter 12. Conclusions from net.TABLES port 131(4)
12.1 General
132(1)
12.2 Environment
132(1)
12.3 Coding
132(1)
12.3.1 Coding for portability
132(1)
12.3.2 Coding for client/server applications
132(1)
12.4 Building
133(1)
12.5 Tools
133(2)
Chapter 13. Porting Xalan-C++ 135(10)
13.1 Requirements
136(1)
13.2 Porting considerations
136(7)
13.2.1 Getting the source code on 390
136(1)
13.2.2 Changes required in the Xalan source code
136(3)
13.2.3 Building the application
139(1)
13.2.4 Binding a symbol name longer than 1024 characters
140(2)
13.2.5 Executing an application that calls the C++ Standard Library
142(1)
13.3 Conclusion
143(2)
Appendix A. Sample code 145(14)
C code with embedded SQL
146(8)
Precompile REXX EXEC
154(5)
Appendix B. Comparison of z/OS and GNU compilers and make tools 159(4)
GNU gcc vs. OS/390 C/C++ compiler options
160(1)
GNU make vs. OS/390 make
161(2)
Appendix C. OS/390 C/C++ compiler ASCII support 163(4)
Compile option and pragma
164(1)
Runtime library
165(2)
Appendix D. STLPort 167(6)
Downloading and extracting STLPort
167(1)
Using STLPort
167(6)
Include a path for new.h and iostream.h
169(1)
Changes to stlcomp.h
170(1)
Long long support
170(1)
Explicit template notation
170(1)
Extern "C"
171(1)
Function return types
171(2)
Appendix E. Dumps 173(6)
CEEDUMP
174(9)
The traceback
174(1)
Types of abends
175(1)
The rest of the CEEDUMP
176(1)
Pseudo-assembly listing
176(3)
Appendix F. Performance analyzer output 179(4)
Appendix G. Bit field 183(8)
A bit field program
184(7)
Appendix H. OS/390 UNIX Porting Guide - process management 191(14)
Process Management
192(7)
Processes
192(2)
Forking a new process
194(1)
Spawning a new process
195(1)
Replacing the program in a process
195(1)
UID/GID Assignment: Process Authorization
195(1)
Process groups and job control
196(1)
Process priorities
197(1)
Threads
197(1)
Limitation on the number of threads
198(1)
Stopping threads
198(1)
Porting applications with pthreads
198(1)
Shared memory
199(8)
Message queues
200(1)
Semaphores
201(1)
Memory mapping
201(1)
Signals
202(1)
Supported signals - POSIX(OFF)
202(1)
Supported signals - POSIX(ON)
203(2)
Special notices 205(2)
Related publications 207(2)
IBM Redbooks
207(1)
Other resources
207(1)
Referenced Web sites
208(1)
How to get IBM Redbooks
208(1)
IBM Redbooks collections
208(1)
Index 209

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program