xref: /original-bsd/old/awk/freeze.c (revision 7a4e9f34)
1 /*	freeze.c	4.1	82/05/07	*/
2 
3 #include "stdio.h"
4 freeze(s) char *s;
5 {	int fd;
6 	unsigned int *len;
7 	len = (unsigned int *)sbrk(0);
8 	if((fd = creat(s, 0666)) < 0) {
9 		perror(s);
10 		return(1);
11 	}
12 	write(fd, &len, sizeof(len));
13 	write(fd, (char *)0, len);
14 	close(fd);
15 	return(0);
16 }
17 
18 thaw(s) char *s;
19 {	int fd;
20 	unsigned int *len;
21 	if(*s == 0) {
22 		fprintf(stderr, "empty restore file\n");
23 		return(1);
24 	}
25 	if((fd = open(s, 0)) < 0) {
26 		perror(s);
27 		return(1);
28 	}
29 	read(fd, &len, sizeof(len));
30 	(void) brk(len);
31 	read(fd, (char *)0, len);
32 	close(fd);
33 	return(0);
34 }
35