diff options
Diffstat (limited to 'fileutil.c')
| -rw-r--r-- | fileutil.c | 55 |
1 files changed, 49 insertions, 6 deletions
@@ -1,17 +1,60 @@ +/* + * fileutil.c + * + * Alexander Occhipinti + * Student ID: 29994705 + * Created: 3 Sep 2020 + * Last Modified: 3 Sep 2020 + * + * fileutil is a program which is a utility for files. It combines the functionality of cat cp and mv. + * This program allows you to copy the contents of a given file to stdout or to a another file. + * It also allows you to delete the original (i.e. mv) if you please. + * +*/ + #include <unistd.h> +#include <sys/file.h> +#include <stdlib.h> #include "fileutil.h" +#define FILE_BUF_SIZE 1024 +/* + * Prints a given string to stdout. Returns nothing. +*/ +void to_stdout(char *string) { + write(1, string, sizeof(string)); +} -void to_stdout(char *string, ssize_t size) { - write(0, string, size); +/* + * Prints a given string to stderr. Returns nothing. +*/ +void to_stderr(char *string) { + write(2, string, sizeof(string)); } -void to_stderr(char *string, ssize_t size) { - write(1, string, size); +/* + * Prints the contents of a given file (provided a path) to stdout. + * Returns nothing. +*/ +void print_file(char *read_path) { + int infile, bytes_read; + + // Read the input file + if ((infile = open(read_path, O_RDONLY)) <= 2){ + to_stderr(read_path); + exit(1); // Exit if an error occurs + } + + // Write contents to stdout using a buffer + char buffer[FILE_BUF_SIZE]; + while ((bytes_read = read(infile, buffer, FILE_BUF_SIZE))) { + write(1, buffer, bytes_read); + } + + close(infile); } int main(int argc, char const *argv[]) { - /* code */ - to_stdout("Testing\n", 9); + print_file("logfile.txt"); return 0; } |
