#include "cat.h" /* Function opens and writes the contents of a named file to stdout; * effectively a wrapper around cfd() */ int cfn(const char *fn, void *buf) { int fd; /* Open the file to get a read-only file descriptor */ if ((fd = open(fn, O_RDONLY)) == -1) { perror(__FUNCTION__); return -1; } /* Pass the opened descriptor to cfd() to read it; we keep going even if * there are problems, because we need the descriptor closed even if we * couldn't read it */ cfd(fd, buf); /* Close the descriptor, since we should now be done with it */ if (close(fd) == -1) { perror(__FUNCTION__); return -1; } }