Annotation of 42BSD/usr.lib/libI77/endfile.c, revision 1.1

1.1     ! root        1: /*
        !             2: char id_endfile[] = "@(#)endfile.c     1.7";
        !             3:  *
        !             4:  * endfile
        !             5:  */
        !             6: 
        !             7: #include "fio.h"
        !             8: 
        !             9: static char    endf[]  = "endfile";
        !            10: 
        !            11: f_end (a)
        !            12: alist  *a;
        !            13: {
        !            14:        unit    *b;
        !            15: 
        !            16:        lfname = NULL;
        !            17:        elist = NO;
        !            18:        errflag = a->aerr;
        !            19:        lunit = a->aunit;
        !            20:        if (not_legal(lunit))
        !            21:                err (errflag, F_ERUNIT, endf)
        !            22:        b = &units[lunit];
        !            23:        if (!b->ufd)
        !            24:                err (errflag, F_ERNOPEN, endf)
        !            25:        if (b->uend)
        !            26:                return(0);
        !            27:        lfname = b->ufnm;
        !            28:        b->uend = YES;
        !            29:        return ( t_runc (b, errflag, endf) );
        !            30: }
        !            31: 
        !            32: t_runc (b, flag, str)
        !            33: unit   *b;
        !            34: ioflag flag;
        !            35: char   *str;
        !            36: {
        !            37:        long    loc;
        !            38: 
        !            39:        if (b->uwrt)
        !            40:                fflush (b->ufd);
        !            41:        if (b->url || !b->useek || !b->ufnm)
        !            42:                return (OK);    /* don't truncate direct access files, etc. */
        !            43:        loc = ftell (b->ufd);
        !            44:        if (truncate (b->ufnm, loc) != 0)
        !            45:                err (flag, errno, str)
        !            46:        if (b->uwrt && ! nowreading(b))
        !            47:                err (flag, errno, str)
        !            48:        return (OK);
        !            49: }

unix.superglobalmegacorp.com

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