ONC+ Developer's Guide


The ONC+ Developer's Guide describes the programming interfaces to remote procedure call (RPC) and the network name service (NIS+), which belong to the ONC+TM distributed services developed at Sun Microsystems, Inc.

In this guide, the terms SunOSTM and SolarisTM are used interchangeably because the interfaces described in this manual are common to both. The Solaris 9 release is the Sun Microsystems distributed computing operating environment. It includes SunOS release 5.9 with the ONC+ technologies and the Common Desktop Environment (CDE), as well as other utilities.

All utilities, their options, and library functions in this manual reflect the current Solaris operating environment software developed by Sun Microsystems, Inc. If you are using a previous version of Solaris software, some utilities and library functions might function differently.

Who Should Use This Guide

The guide assists you in converting an existing single-computer application to a networked, distributed application, or developing and implementing distributed applications.

Use of this guide assumes basic competence in programming, a working familiarity with the C programming language, and a working familiarity with the UNIX® operating system. Previous experience in network programming is helpful, but is not required to use this manual.

How This Guide Is Organized

Chapter 1, Introduction to ONC+ Technologies gives a high-level introduction to the ONC+ distributed computing platform and services.

Chapter 2, Introduction to TI-RPC introduces TI-RPC.

Chapter 3, rpcgen Programming Guide describes how the rpcgen tool generates client and server stubs.

Chapter 4, Programmer's Interface to RPC describes the use of RPC in the programming environment.

Chapter 9, NIS+ Programming Guide describes the NIS + applications programming interface.

Appendix A, XDR Technical Note describes XDR and how it is used in data formatting and type conversion.

Appendix B, RPC Protocol and Language Specification describes the protocol of RPC usage, both syntax and limitations.

Appendix C, XDR Protocol Specification describes the XDR protocol and language.

Appendix D, RPC Code Examples contains complete functional listings of some of the code included in the document as examples.

Appendix E, portmap Utility describes the portmap utility and its function. This appendix is included in this document to aid in the migration of applications written to run on earlier SunOS releases.

Appendix F, Writing a Port Monitor With the Service Access Facility (SAF) describes the process of writing a port monitor application under the SAF and is included as a reference for applications development.

Related Books and Sites

For information on NFS distributed computing file system, see the following sources.

The following third-party books and articles provide information on network programming topics.

Accessing Sun Documentation Online

The docs.sun.comSM Web site enables you to access Sun technical documentation online. You can browse the docs.sun.com archive or search for a specific book title or subject. The URL is http://docs.sun.com.

Typographic Conventions

The following table describes the typographic changes used in this book.

Table P–1 Typographic Conventions

Typeface or Symbol 




 The names of commands, files, and directories; on-screen computer output

Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.


 What you type, contrasted with on-screen computer output

machine_name% su



 Command-line placeholder: replace with a real name or value

To delete a file, type rm filename.


Book titles, new words, or terms, or words to be emphasized. 

Read Chapter 6 in User's Guide.

These are called class options.

You must be root to do this.

Shell Prompts in Command Examples

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

Table P–2 Shell Prompts



 C shell promptmachine_name%
 C shell superuser promptmachine_name#
 Bourne shell and Korn shell prompt$
 Bourne shell and Korn shell superuser prompt#