Caution: This version of this document is no longer maintained. For the latest documentation, see

About This Guide

This chapter includes:

What you'll find in this guide

This guide will help you create a resource manager, a process that registers a name in the filesystem name space, which other processes then use to communicate with the resource manager.

The following table may help you find information quickly:

For information about: Go to:
What's a resource manager Overview
The overall structure of a resource manager The Bones of a Resource Manager
Adding some “meat” to the basic structure Fleshing Out the Skeleton
Data structures that the POSIX-layer routines use POSIX-Layer Data Structures
Reading and writing data Handling Read and Write Messages
Atomic operations Combine Messages
Adding your own data to resource-manager structures Extending the POSIX-Layer Data Structures
Handling other types of messages Handling Other Messages
Handling signals, timeouts, and interrupts Signals, Timeouts, and Interrupts
Handling more than one message at once Multithreaded Resource Managers
Taking over a directory Filesystem Resource Managers
Terms used in QNX docs Glossary

For another perspective on resource managers, see the Resource Managers chapter of Getting Started with QNX Neutrino. In particular, this chapter includes a summary of the handlers for the connect and I/O messages that a resource manager will receive; see Alphabetical listing of connect and I/O functions in it.

Note: This book assumes that you're familiar with message passing. If you're not, see the Interprocess Communication (IPC) chapter in the System Architecture guide as well as the MsgSend(), MsgReceivev(), and MsgReply() series of calls in the QNX Neutrino Library Reference.

For information about programming in Neutrino, see Getting Started with QNX Neutrino: A Guide for Realtime Programmers and the Neutrino Programmer's Guide.

Typographical conventions

Throughout this manual, we use certain typographical conventions to distinguish technical terms. In general, the conventions we use conform to those found in IEEE POSIX publications. The following table summarizes our conventions:

Reference Example
Code examples if( stream == NULL )
Command options -lR
Commands make
Environment variables PATH
File and pathnames /dev/null
Function names exit()
Keyboard chords Ctrl-Alt-Delete
Keyboard input something you type
Keyboard keys Enter
Program output login:
Programming constants NULL
Programming data types unsigned short
Programming literals 0xFF, "message string"
Variable names stdin
User-interface components Cancel

We use an arrow (→) in directions for accessing menu items, like this:

You'll find the Other... menu item under Perspective-->Show View.

We use notes, cautions, and warnings to highlight important messages:

Note: Notes point out something important or useful.

Caution: Cautions tell you about commands or procedures that may have unwanted or undesirable side effects.

WARNING: Warnings tell you about commands or procedures that could be dangerous to your files, your hardware, or even yourself.

Note to Windows users

In our documentation, we use a forward slash (/) as a delimiter in all pathnames, including those pointing to Windows files.

We also generally follow POSIX/UNIX filesystem conventions.

Navigation buttons

At the top and bottom of our HTML docs, you'll see some or all of these buttons:

Use this button: To move:
Previous To the previous part of the document.
Contents “Up” in the document:
  • In a prose book, this typically takes you to About This Guide.
  • In a reference book, it takes you to the listing of items that start with a given letter. For example, if you're looking at the docs for abs(), this button takes you to the listing of the functions that start with A.
Keyword index To the keyword index.
Next To the next part of the document.

Technical support

To obtain technical support for any QNX product, visit the Support + Services area on our website ( You'll find a wide range of support options, including community forums.

Copyright © 2008–2009, QNX Software Systems GmbH & Co. KG. All rights reserved.