This chapter describes the most common NSPR types, enumerations, and structures used with the functions described in I/O Functions and Network Addresses. These include the types used for system access, normal file I/O, and socket (network) I/O.
Types unique to a particular function are described with the function itself.
For sample code that illustrates basic I/O operations, see Introduction to NSPR.
- Directory Type
- File Descriptor Types
- File Info Types
- Network Address Types
- Types Used with Socket Options Functions
- Type Used with Memory-Mapped I/O
- Offset Interpretation for Seek Functions
Directory Type
File Descriptor Types
NSPR represents I/O objects, such as open files and sockets, by file descriptors of type PRFileDesc
. This section introduces PRFileDesc
and related types.
Note that the NSPR documentation follows the Unix convention of using the termfiles to refer to many kinds of I/O objects. To refer specifically to the files in a file system (that is, disk files), this documentation uses the termnormal files.
PRFileDesc
has an object-oriented flavor. An I/O function on a PRFileDesc
structure is carried out by invoking the corresponding "method" in the I/O methods table (a structure of type PRIOMethods
) of the PRFileDesc
structure (the "object"). Different kinds of I/O objects (such as files and sockets) have different I/O methods tables, thus implementing different behavior in response to the same I/O function call.
NSPR supports the implementation of layered I/O. Each layer is represented by a PRFileDesc
structure, and the PRFileDesc
structures for the layers are chained together. Each PRFileDesc
structure has a field (of type PRDescIdentity
) to identify itself in the layers. For example, the Netscape implementation of the Secure Sockets Layer (SSL) protocol is implemented as an I/O layer on top of NSPR's socket layer.