Annotation of researchv10dc/man/manb/vread.2v, revision 1.1

1.1     ! root        1: .TH VREAD 2V deprecated
        !             2: .UC 4
        !             3: .SH NAME
        !             4: vread \- read virtually
        !             5: .SH SYNOPSIS
        !             6: .nf
        !             7: .B vread(fildes, buffer, nbytes)
        !             8: .B char *buffer;
        !             9: .fi
        !            10: .SH DESCRIPTION
        !            11: .B N.B.:
        !            12: This call is likely to be replaced by more general virtual memory facilities
        !            13: in the near future.
        !            14: .PP
        !            15: A file descriptor is a word returned from a successful
        !            16: .I open,
        !            17: .I creat,
        !            18: .I dup
        !            19: or
        !            20: .I pipe
        !            21: call.
        !            22: .I Buffer
        !            23: is the location of
        !            24: .I nbytes
        !            25: contiguous bytes into which the input will be placed.
        !            26: It is not guaranteed that all
        !            27: .I nbytes
        !            28: will be read (see
        !            29: .IR read (2)).
        !            30: In particular, if the returned value is 0, then end-of-file has been reached.
        !            31: .PP
        !            32: Unlike
        !            33: .IR read (2),
        !            34: .I vread
        !            35: does not necessarily or immediately fetch the data requested from
        !            36: .I fildes,
        !            37: but merely insures that the data will be fetched from the file descriptor
        !            38: .I "sometime before"
        !            39: the first reference to the data, at the system's discretion.
        !            40: Thus
        !            41: .I vread
        !            42: allows the system, among other possibilities,
        !            43: to choose to read data on demand,
        !            44: with whatever granularity is allowed by the memory management hardware,
        !            45: or to just read it in immediately as with
        !            46: .I read.
        !            47: A companion
        !            48: .IR vwrite (2)
        !            49: call may be used with
        !            50: .I vread
        !            51: to provide an efficient mechanism for updating large files.
        !            52: The behavior of
        !            53: .I vread
        !            54: if other processes are writing to
        !            55: .I fildes
        !            56: is not defined.
        !            57: .PP
        !            58: Both the address of
        !            59: .I buffer
        !            60: and the current offset in
        !            61: .I fildes
        !            62: (as told by
        !            63: .IR tell (2))
        !            64: must be aligned to a multiple of VALSIZ (defined in
        !            65: .B <valign.h> ).
        !            66: The library routine
        !            67: .IR valloc (3)
        !            68: allocates properly aligned blocks from the free list.
        !            69: .PP
        !            70: Note for non-virtual systems: the
        !            71: .I vread
        !            72: system call can be simulated (exactly, if less efficiently) by
        !            73: .I read.
        !            74: If the unit on which a
        !            75: .I vread
        !            76: is done is not capable of supporting efficient demand initialization
        !            77: (e.g. a terminal or a pipe), then the system may choose to treat a call to
        !            78: .I vread
        !            79: as if it were a call to
        !            80: .I read
        !            81: at its discretion.
        !            82: .SH SEE ALSO
        !            83: read(2), write(2), vwrite (2), valloc(3)
        !            84: .SH DIAGNOSTICS
        !            85: A 0 is returned at end-of-file.  If the read was otherwise unsuccessful,
        !            86: a -1 is returned.  Physical I/O errors, non-aligned or bad buffer addresses,
        !            87: preposterous
        !            88: .I nbytes,
        !            89: file descriptor not that of an input file, and file offset not properly
        !            90: aligned can all generate errors.
        !            91: .SH BUGS
        !            92: You can't
        !            93: .I close
        !            94: a file descriptor which you have
        !            95: .I vread
        !            96: from while there are still pages in the file which haven't been fetched by the
        !            97: system into your address space.  In no case can a file descriptor which had
        !            98: such pages at the point of a
        !            99: .I vfork
        !           100: be closed during the
        !           101: .I vfork.
        !           102: .PP
        !           103: The system refuses to truncate a file to which any process has a pending
        !           104: .I vread.
        !           105: .PP
        !           106: There is no primitive inverting
        !           107: .I vread
        !           108: to release the binding
        !           109: .I vread
        !           110: sets up so that the file may be closed.
        !           111: This can be only be done, clumsily, by reading another (plain) file onto the
        !           112: buffer area, or pulling the break back with
        !           113: .IR break (2)
        !           114: to completely release the pages.
        !           115: .PP
        !           116: This call is peculiar to this version of UNIX.
        !           117: It will be superseded by more general
        !           118: virtual memory facilities in future versions of the system.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.