Thread View: micro.unix
1 messages
1 total messages
Started by mbs
Mon, 05 Mar 1984 01:38
A slower and better download source
Author: mbs
Date: Mon, 05 Mar 1984 01:38
Date: Mon, 05 Mar 1984 01:38
75 lines
2221 bytes
2221 bytes
<>
For those of you who don't have protocol oriented file transder programs
and whose micro has trouble keeping up with a downloaded cat may want
to consider using the following program to download your sources. It
reads the file you wish to download 2 lines at a time, writes the
output to STDOUT, and then sleeps for 1 second. For me, it has
prevented the loss of a lot of data, since my micro has difficulty
keeping up. For those on the ecsvax machine, a copy of the object
code is in the directory /ecs/pub/misc under the name "copy", and
the source file is in the same directory, but named "copy.c".
--- Michael Smith
{ittvax!ittral, akgua!mcnc, decvax!mcnc}!ecsvax!mbs
main(argc, argv)
int argc;
char **argv;
{
char *p;
short fin;
extern char *get_line();
if( argc != 2 )
{
printf("invalid number of arguments\n");
exit(1);
}
if( (fin = open(argv[1], 0)) < 0 )
{
printf("cannot open: %s \n", argv[1]);
exit(1);
}
while( 1 )
{
p = get_line(fin);
write(1, p, strlen(p));
p = get_line(fin);
if( *p == '\0' )
{
close(fin); /* this condition signifies end-of-file */
exit(0);
}
write(1, p, strlen(p));
sleep(1);
}
}
char get_char(fyle)
short fyle;
{
char c;
if( read(fyle, &c, 1) != 1 ) return( -1 );
else return( c );
}
char *get_line(fyle)
short fyle;
{
char c;
register char *pb;
static char buf[512];
pb = buf;
while( (c = get_char(fyle)) > 0 )
if( c == '\n' )
{
*pb++ = '\n';
break;
}
else if ( c < 0 ) break;
else *pb++ = c;
*pb = '\0';
if( c < 0 ) return( pb );
else return( buf );
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads