diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-06-20 11:08:06 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-06-20 11:08:06 +0200 |
| commit | e1f3547e236671697c66e27ba02b6a151e59af04 (patch) | |
| tree | 342e3cfdc26697c7ef4c54346070dc646e3e1362 /src | |
| download | tar-e1f3547e236671697c66e27ba02b6a151e59af04.tar.gz tar-e1f3547e236671697c66e27ba02b6a151e59af04.tar.bz2 tar-e1f3547e236671697c66e27ba02b6a151e59af04.zip | |
Initial commit
Diffstat (limited to 'src')
| -rw-r--r-- | src/header.c | 3 | ||||
| -rw-r--r-- | src/main.c | 52 |
2 files changed, 55 insertions, 0 deletions
diff --git a/src/header.c b/src/header.c new file mode 100644 index 0000000..a0cf2fb --- /dev/null +++ b/src/header.c @@ -0,0 +1,3 @@ +#include "tar.h" + +/* int header_write(int fd, */ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..d6df9d7 --- /dev/null +++ b/src/main.c @@ -0,0 +1,52 @@ +#include "tar.h" + +int main(int argc, char **argv) +{ + int opt; + char *output_file_name = NULL; + + while ((opt = getopt(argc, argv, "cvtf:")) != -1) + { + switch (opt) + { + case 'c': + break; + case 'f': + output_file_name = optarg; + break; + case 'v': + break; + case 't': + break; + default: + return 1; + } + } + int fd = -1; + if (output_file_name == NULL) + fd = STDOUT_FILENO; + else + { + fd = open(output_file_name, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd == -1) + { + perror(NULL); + return 1; + } + } + + // pipe to fd + printf("out: %s\n", output_file_name); + char **files = argv + optind; + for (; *files != NULL; files++) + { + // stat file + // write header to pipe + // if dir + // recursion on files in dir + // else + // write content to pipe + printf("%s\n", *files); + } + return 0; +} |
