Annotation of 43BSDReno/old/man/vread.2v, revision 1.1

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