Pathname open options

PPS objects support an extended syntax on the pathnames used to open them. Open options are added as suffixes to the pathname, following a question mark ("?"). That is, the PPS service uses any data that follows a question mark in a pathname to apply open options on the file descriptor used to access the object. Multiple options are separated by commas. For example:

Note: The syntax used for specifying PPS pathname open query options will be easily recognizable to anyone familiar with the getsubopt() library routine.

Supported pathname open options include:

Output the credentials for this object.
Designate the publisher as critical to the object. See Critical option.
Set the crypto domain for this object.
Open the object in delta mode. See Subscription Modes.

Return the names of all objects (files) in the directory—valid only on the special .all object in a directory.

If any objects in the directory are created or deleted, these changes are indicated by a "+" (created) or a "-" (deleted) sign prefixed to their names. This behavior allows you to effectively perform a readdir() within PPS and to monitor filesystem changes without having to also monitor attribute changes.

See Subscribing to multiple objects.

f=filter ...

Place a filter on notifications based on changes to the listed attributes.

See Filtering notifications.

Make the object nonpersistent. When the system restarts, the object won't exist. The default setting is for all objects to be persistent and reloaded on restart. See Object and attribute qualifiers.

Associate the opened file descriptor with the notification group specified by id. This id is returned on the first read from an open() on the ".notify" file in the root of the PPS mount point.

Reads of the ".notify" file will return the string: id:value whenever data is available on the file descriptor opened with the notify= query.

See Subscribing to multiple objects.

Update an _opens::rd,wr attribute when the open count changes.
Reflect attribute changes made on this object back to itself.
Designate the publisher as a "server" for the object. See Server objects for more information.
Open the file with the O_NONBLOCK flag clear so that read() calls wait until the object changes or a delta appears. See Subscribing for more information.