37 lines
621 B
C
37 lines
621 B
C
#ifndef lint
|
|
static char sccsid[] = "@(#)freeze.c 1.1 92/07/30 SMI"; /* from S5R2 */
|
|
#endif
|
|
|
|
#include "stdio.h"
|
|
freeze(s) char *s;
|
|
{ int fd;
|
|
unsigned int *len;
|
|
len = (unsigned int *)sbrk(0);
|
|
if((fd = creat(s, 0666)) < 0) {
|
|
perror(s);
|
|
return(1);
|
|
}
|
|
write(fd, &len, sizeof(len));
|
|
write(fd, (char *)0, len);
|
|
close(fd);
|
|
return(0);
|
|
}
|
|
|
|
thaw(s) char *s;
|
|
{ int fd;
|
|
unsigned int *len;
|
|
if(*s == 0) {
|
|
fprintf(stderr, "empty restore file\n");
|
|
return(1);
|
|
}
|
|
if((fd = open(s, 0)) < 0) {
|
|
perror(s);
|
|
return(1);
|
|
}
|
|
read(fd, &len, sizeof(len));
|
|
(void) brk(len);
|
|
read(fd, (char *)0, len);
|
|
close(fd);
|
|
return(0);
|
|
}
|