Annotation of 43BSDReno/sys/hpstand/copy.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution is only permitted until one year after the first shipment
                      6:  * of 4.4BSD by the Regents.  Otherwise, redistribution and use in source and
                      7:  * binary forms are permitted provided that: (1) source distributions retain
                      8:  * this entire copyright notice and comment, and (2) distributions including
                      9:  * binaries display the following acknowledgement:  This product includes
                     10:  * software developed by the University of California, Berkeley and its
                     11:  * contributors'' in the documentation or other materials provided with the
                     12:  * distribution and in all advertising materials mentioning features or use
                     13:  * of this software.  Neither the name of the University nor the names of
                     14:  * its contributors may be used to endorse or promote products derived from
                     15:  * this software without specific prior written permission.
                     16:  * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     17:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     18:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     19:  *
                     20:  *     @(#)copy.c      7.1 (Berkeley) 5/8/90
                     21:  */
                     22: 
                     23: /*
                     24:  * Copy from to in 10K units.
                     25:  * Intended for use in system
                     26:  * installation.
                     27:  */
                     28: main()
                     29: {
                     30:        int from, to;
                     31:        char fbuf[50], tbuf[50];
                     32:        char buffer[10240];
                     33:        register int record;
                     34:        extern int errno;
                     35: 
                     36:        from = getdev("From", fbuf, 0);
                     37:        to = getdev("To", tbuf, 1);
                     38:        for (record = 0; ; record++) {
                     39:                int rcc, wcc;
                     40: 
                     41:                rcc = read(from, buffer, sizeof (buffer));
                     42:                if (rcc == 0)
                     43:                        break;
                     44:                if (rcc < 0) {
                     45:                        printf("Record %d: read error, errno=%d\n",
                     46:                                record, errno);
                     47:                        break;
                     48:                }
                     49:                if (rcc < sizeof (buffer))
                     50:                        printf("Record %d: read short; expected %d, got %d\n",
                     51:                                record, sizeof (buffer), rcc);
                     52:                /*
                     53:                 * For bug in ht driver.
                     54:                 */
                     55:                if (rcc > sizeof (buffer))
                     56:                        rcc = sizeof (buffer);
                     57:                wcc = write(to, buffer, rcc);
                     58:                if (wcc < 0) {
                     59:                        printf("Record %d: write error: errno=%d\n",
                     60:                                record, errno);
                     61:                        break;
                     62:                }
                     63:                if (wcc < rcc) {
                     64:                        printf("Record %d: write short; expected %d, got %d\n",
                     65:                                record, rcc, wcc);
                     66:                        break;
                     67:                }
                     68:        }
                     69:        printf("Copy completed: %d records copied\n", record);
                     70:        /* can't call exit here */
                     71: }
                     72: 
                     73: getdev(prompt, buf, mode)
                     74:        char *prompt, *buf;
                     75:        int mode;
                     76: {
                     77:        register int i;
                     78: 
                     79:        do {
                     80:                printf("%s: ", prompt);
                     81:                gets(buf);
                     82:                i = open(buf, mode);
                     83:        } while (i <= 0);
                     84:        return (i);
                     85: }

unix.superglobalmegacorp.com

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