diff options
Diffstat (limited to 'cfn.c')
-rw-r--r-- | cfn.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -0,0 +1,25 @@ +#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; + } +} + |