Programming Interfaces Guide


The Programming Interfaces Guide describes the SunOSTM 5.10 network and system interfaces used by application developers.

SunOS 5.10 is the core of the SolarisTM 10 Operating System (Solaris OS), and conforms to the third edition of the System V Interface Description (SVID) and to the Single UNIX Specification, version 3 (SUSv3). SunOS 5.10 is fully compatible with UNIX System V, Release 4 (SVR4), and supports all System V network services.

Note –

This Solaris release supports systems that use the SPARC® and x86 families of processor architectures: UltraSPARC®, SPARC64, AMD64, Pentium, Xeon, and Intel® 64. The supported systems appear in the Solaris OS: Hardware Compatibility Lists at This document cites any implementation differences between the platform types.

In this document these x86 related terms mean the following:

For supported systems, see the Solaris OS: Hardware Compatibility Lists.


This book is intended for programmers who are new to the SunOS platform or want more familiarity with some portion of the interfaces provided. Additional interfaces and facilities for networked applications are described in the ONC+ Developer’s Guide.

This manual assumes basic competence in programming, a working familiarity with the C programming language, and familiarity with the UNIX operating system, particularly networking concepts. For more information on UNIX networking basics, see W. Richard Stevens' UNIX Network Programming, second edition, Upper Saddle River, Prentice Hall, 1998.

Organization of the Manual

The services and capabilities of the basic system interfaces and basic network interfaces of the Solaris OS platform are described in the following chapters.

Chapter 1, Memory and CPU Management describes the interfaces that create and manage memory mappings, do high performance file I/O, and control other aspects of memory management.

Chapter 2, Remote Shared Memory API for Solaris Clusters describes the Application Programming Interface (API) framework and library functions for remote shared memory.

Chapter 3, Session Description Protocol API describes the API framework and library functions for the Solaris implementation of the Session Description Protocol (SDP).

Chapter 4, Process Scheduler describes the operation of the SunOS process scheduler, modification of the scheduler's behavior, the scheduler's interactions with process management interfaces, and performance effects.

Chapter 5, Locality Group APIs describes the interfaces used to control the behavior and structure of locality groups and resource priority for threads within those groups.

Chapter 6, Input/Output Interfaces describes basic and old-style buffered file I/O and other elements of I/O.

Chapter 7, Interprocess Communication describes older forms of non-networked interprocess communication.

Chapter 8, Socket Interfaces describes the use of sockets, which are the basic mode of networked communication.

Chapter 9, Programming With XTI and TLI describes the use of XTI and TLI to do transport-independent networked communication.

Chapter 10, Packet Filtering Hooks describes interfaces for developing network solutions at the kernel level such as security (packet filtering and firewall) solutions and network address translation (NAT) solutions.

Chapter 11, Transport Selection and Name-to-Address Mapping describes the network selection mechanisms used by applications to select a network transport and its configuration.

Chapter 12, Real-time Programming and Administration describes real-time programming facilities in the SunOS environment and their use.

Chapter 13, The Solaris ABI and ABI Tools describes the Solaris Application Binary Interface (ABI) and the tools used to verify an application's compliance with the Solaris ABI, appcert and apptrace.

Appendix A, UNIX Domain Sockets describes UNIX domain sockets.

Documentation, Support, and Training

The Sun web site provides information about the following additional resources:

Sun Welcomes Your Comments

Sun is interested in improving its documentation and welcomes your comments and suggestions. To share your comments, go to and click Feedback.

Typographic Conventions

The following table describes the typographic conventions that are used in this book.

Table P–1 Typographic Conventions





The names of commands, files, and directories, and onscreen computer output 

Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.


What you type, contrasted with onscreen computer output 

machine_name% su



Placeholder: replace with a real name or value 

The command to remove a file is rm filename.


Book titles, new terms, and terms to be emphasized 

Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.

Note: Some emphasized items appear bold online.

Shell Prompts in Command Examples

The following table shows the default UNIX® system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.

Table P–2 Shell Prompts



C shell 


C shell for superuser 


Bourne shell and Korn shell 


Bourne shell and Korn shell for superuser