Your Search Results

    I/O Types

    This chapter describes the most common NSPR types, enumerations, and structures used with the functions described in Chapter 10 "I/O Functions" and Chapter 11 "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

    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 term files 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 term normal 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.

    File Info Types

    Network Address Types

    Types Used with Socket Options Functions

    Type Used with Memory-Mapped I/O

    Offset Interpretation for Seek Functions

    Document Tags and Contributors

    Contributors to this page: Sheppy, teoli, trevorh, Rappo
    Last updated by: Sheppy,