home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
VRAC
/
CUJJUN93.ZIP
/
1106112A
< prev
next >
Wrap
Text File
|
1993-03-30
|
924b
|
44 lines
main()
{
char *error_ptr;
if ((error_ptr = initialize()) != NULL)
{
fprintf(stderr, "error during %s", error_ptr);
exit(1)
}
// processing ...
(void) cleanup(2, NULL);
exit(0);
}
int fd;
char *buf;
char *initialized(void)
{
if((buf = malloc(BUFSIZ)) == NULL)
return cleanup(0, "malloc");
// uses cleanup for consistency
if ((fd = open("filename", O_RDONLY)) < 0)
return cleanup(1, "open");
if (read(fd, buf, sizeof(buf) < 0)
return cleanup(2, "read");
return NULL;
}
char *cleanup(int start_from, char *where_failed)
{
switch (start_from)
{
case 2:
close(fd);
case 1:
free(buf);
}
// could instead print error message here
// if where_failed ! = Null
return where_failed;
}