|
|
UNIX System Interface Programming teaches you to write C programs with the most commonly used system and library calls in the Solaris 2.x operating system and Solaris 7 operating system. It is designed for C programmers who will be writing applications that use the services of the Solaris 2.x operating system and Solaris 7 operating system. This course contains an introduction to the ANSI C, POSIX, and SVID-3 standards included in Solaris 2.x operating system and Solaris 7 operating system. It describes the use of the most popular system calls and library calls in the Solaris 2.x and Solaris 7 operating systems (including the standard I/O library and the low-level calls to use files and directories). The course also covers the calls to create a new process and run a new program, signals, and Solaris 2.x operating system and Solaris 7 operating system inter-process communication facilities, including pipes, mmap, system VIPC, and sockets.
Who Can Benefit
Back to top
Prerequisites
To succeed fully in this course, students should be able to:- Write correct C programs that use command-line arguments, pointers, and structure
- Create and edit text files using vi or the OpenWindows Text Editor
- Use basic Solaris operating system commands
Back to top
Skills Gained
Upon completion of this course, you should be able to:- Define the terms Portable Operating System Interface for Computer Environments (POSIX) and System V Interface Definition (SVID)
- Understand the relationship of the Solaris operating system to POSIX and SVID
- Write applications that perform basic file operations
- Use file and record locking
- Identify the differences between system and library functions
- Query and modify process attributes and resource limits
- Write applications that use memory-management facilities for dynamic memory allocation
- Understand the directory structure and write applications that can read directory hierarchies
- Compose applications that can generate other processes and exercise some control over the new processes
- Write applications that use the signal handling facilities and virtual memory facilities to improve performance and that exchange data through pipes, message queues, and shared memory
- Synchronize processes with the use of semaphores
- Write a simple client-server application using socket functions
Back to top
Related Courses
Before:
-
C++ and Object Oriented Programming (SL-240)
After:
Back to top
Course Content
Module 1 - System Interface Overview
- POSIX and SVID
- Programming environments available in the SunOS 5.x operating system
- Differences between system calls and library calls, and how to find information on them
- How to handle error returns
- Standard I/O and memory functions
Module 2 - Spawning New Tasks
- The need for creating processes
- Creating a process
- Running a new program
- Terminating the current process
- Waiting for a process to terminate
Module 3 - System and Process Information
- How to gain access to the system name and identification number
- How to gain access to information about files and system limits
- Fields in a password entry
- How the Solaris operating system keeps time, and the routines used to translate between various forms of time
- Definition of a process and a process virtual address space
- How to use arguments and environment variables
- Dynamically allocate memory
- Attributes of a process
- The difference between real and effective user IDs
- Retrieving the time resource usage information about a process and its children
Module 4 - Files
- Describing a Solaris operating system file
- Listing the information the system keeps about a file
- How to read and write to regular files
- The difference between open ( ) and dup ( )
- Some advanced standard I/O calls, and why they should not be mixed with system I/O calls
- Creating temporary files
- Performing simple file control
- Use anonymous pipes
Module 5 - Directories
- The format of a directory
- Reading the contents of a directory
- How to create and remove a directory
- The difference between hard and symbolic links
- Renaming files
Module 6 - Signals
- The uses of signals
- Sending signals
- Signal sets
- The difference between blocking and catching a signal
- Writing a signal handler
- The different timers that are available
Module 7 - Programming with Threads
- Describe the importance of a lightweight process in thread programming
- Explain the advantages of multiple threads and LWPs for a process
- Write code to create threads and communicate with other threads
Module 8 - Overview of IPC
- Describe the characteristics of inter-process communications
- Describe IPC methods
- Explain how to list and remove IPC objects from the command line
Module 9 - Short Messages
- Using named pipes
- Use message queues for inter-process communication
Module 10 - Shared Memory
- Use mmap() to map files into memory
- Explain the need to synchronize memory with backing store
- Share a memory region using System V shared memory region
Module 11 - Synchronization
- Understand why locking and synchronization are necessary
- Understand test-and-set
- Understand the available locking types, their applications and their differences
- Understand the application the different kinds of locks to inter-process and intra-process threads accessing shared data
Module 12 - Sockets
- The socket client-server model
- Differences between stream and datagram sockets
- Differences between UNIX and Internet sockets
- The need for network byte-order functions
- Translating a host name to an Internet protocol (IP) address
- How to connect the client and server
- How to send and receive data
- Doing simple asynchronous I/O
- How to use select ( ) on sockets
Back to top
Browse Other Course Topic Areas
|
Can't Travel for Training?
Sun eLearning and On Demand Labs give you easy access to the training you need.
Get an iPod touch
For a limited time: order qualifying Sun training and get an iPod touch®.
|