#include <unistd.h>
#include "file_size.h"
-void filecopy(const char *fsource,
- const char *ftarget) {
- FILE *source; FILE *target;
+void filecopy(const char * fsource,
+ const char *ftarget)
+{
+ FILE *source;
+ FILE *target;
char ch;
source = fopen(fsource, "r");
fclose(target);
}
-int exists(const char *fname) {
+int exists(const char *fname)
+{
struct stat buffer;
- if (stat(fname, &buffer) == 0) {
+ if (stat(fname, &buffer) == 0)
return 0;
- } else {
+ else
return 1;
- }
}
-void printHumanReadSize(const char *output, unsigned long long int splitgroesse) {
+void printHumanReadSize(const char *output,
+ unsigned long long int splitgroesse)
+{
unsigned long long humanread;
char einheit = 'B';
char i = 0;
humanread /= 1024;
switch (i) {
- case 1:
- einheit = 'K';
- break;
- case 2:
- einheit = 'M';
- break;
- case 3:
- einheit = 'G';
- break;
+ case 1:
+ einheit = 'K';
+ break;
+ case 2:
+ einheit = 'M';
+ break;
+ case 3:
+ einheit = 'G';
+ break;
}
}
- printf("Restlicher Platz in Bytes(%s): %lld (%lld %c)\n", output, splitgroesse, humanread, einheit);
+ printf("Restlicher Platz in Bytes(%s): %lld (%lld %c)\n",
+ output, splitgroesse, humanread, einheit);
}
void splitter(const char *input,
- char *output, const char *rest,
- unsigned long long splitgroesse) {
- FILE *in; FILE *out; FILE *re;
+ char *output,
+ const char *rest,
+ unsigned long long splitgroesse)
+{
+ FILE *in;
+ FILE *out;
+ FILE *re;
in = fopen(input, "r");
out = fopen(output, "w");
splitgroesse -= filesize;
fprintf(out, "%s\n", pfad);
} else {
- if (exists(rest) == 1) {
+ if (exists(rest) == 1)
re = fopen(rest, "w");
- }
fprintf(re, "%s\n", pfad);
}
fclose(in);
fclose(out);
- if (exists(rest) == 0) {
+ if (exists(rest) == 0)
fclose(re);
- }
printHumanReadSize(output, splitgroesse);
}
int cmpfunc(const void *filea,
- const void *fileb) {
+ const void *fileb)
+{
long long unsigned int a = ((const struct file_size*) filea)->fsize;
long long unsigned int b = ((const struct file_size*) fileb)->fsize;
- if (a < b) {
+ if (a < b)
return 1;
- } else if (a > b) {
+ else if (a > b)
return -1;
- } else if (a == b) {
+ else if (a == b)
return 0;
- } else {
+ else
return -2;
- }
}
void filesize_sort(const char *input,
- const char *output,
- const long long unsigned int split) {
+ const char *output,
+ const long long unsigned int split)
+{
// in: input Textdatei; out: output Textdatei;
// ignore: output Textdatei; zugrosse Dateien
- FILE *in; FILE *out; FILE *ignore;
+ FILE *in;
+ FILE *out;
+ FILE *ignore;
char pfad[255];
struct stat st;
int lines = 0;
lines++;
} else {
// irgnore List erstellen
- if (exists("ignore") == 1) {
+ if (exists("ignore") == 1)
ignore = fopen("ignore", "w");
- }
fprintf(ignore, "%s\n", pfad);
}
// schliesse alle Textdateien
fclose(in);
fclose(out);
- if (exists("ignore") == 0) {
+ if (exists("ignore") == 0)
fclose(ignore);
- }
}
-void usage() {
+void usage()
+{
printf("\nUsage: discspan <input> <output> <option>\n\n");
printf(" <input>\tTextdatei enthält alle Dateipfade, die auf den Datenträger sollen\n");
printf(" <output>\tTextdatei enthält alle Dateipfade, die auf den Datenträger passen\n\n");
printf(" -f <Größe>\tOption zur Größenangabe in Bytes\n\n");
}
-int main(int argc, char *argv[]) {
+int main(int argc, char *argv[])
+{
// input: Textdatei mit Quellpfaden
const char *input = argv[1];
// output: gesplittete Textdatei mit Quellpfaden
int c;
while ((c = getopt(argc, argv, ":59bdcf:")) != -1) {
switch(c) {
- case '5':
- split = dvd5;
- break;
- case '9':
- split = dvd9;
- break;
- case 'c':
- split = cd;
- break;
- case 'f':
- split = atoll(optarg);
- break;
- case '?':
- usage();
- return 1;
- break;
+ case '5':
+ split = dvd5;
+ break;
+ case '9':
+ split = dvd9;
+ break;
+ case 'c':
+ split = cd;
+ break;
+ case 'f':
+ split = atoll(optarg);
+ break;
+ case '?':
+ usage();
+ return 1;
+ break;
}
}