Compare commits

...

3 commits

Author SHA1 Message Date
9e6e2457e2 fix indention
no more mixing tabs and spaces lol
2022-01-03 13:24:37 -05:00
8c09af80fb add option for bursting lines 2022-01-02 21:15:45 -05:00
08d65b254e fix file descriptor leak 2021-12-31 16:59:25 -05:00
2 changed files with 66 additions and 49 deletions

6
README.md Normal file
View file

@ -0,0 +1,6 @@
# multif
a multiplexer for distributing lines over a
directory of files

View file

@ -8,11 +8,6 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc < 2)
{
fprintf(stderr, "Error : You must specify a directory\n");
return 1;
}
DIR* FD; DIR* FD;
struct dirent* in_file; struct dirent* in_file;
FILE *entry_file; FILE *entry_file;
@ -20,13 +15,22 @@ int main(int argc, char *argv[])
char *line = NULL; char *line = NULL;
size_t len = 0; size_t len = 0;
ssize_t lineSize = 0; ssize_t lineSize = 0;
int burst = 1;
if (argc < 2)
{
fprintf(stderr, "Error : You must specify a directory\n");
return 1;
}
if (argc >= 3)
burst = atoi(argv[2]);
if (burst <= 0)
{
fprintf(stderr, "Error : burst must be an integer greater than 0\n");
return 1;
}
char *directory = argv[1]; char *directory = argv[1];
strcat(directory, "/"); strcat(directory, "/");
//lineSize = getline(&line, &len, stdin);
while (lineSize != -1)
{
/* Scanning the in directory */ /* Scanning the in directory */
if (NULL == (FD = opendir (argv[1]))) if (NULL == (FD = opendir (argv[1])))
{ {
@ -34,10 +38,12 @@ int main(int argc, char *argv[])
return 1; return 1;
} }
while (lineSize != -1)
{
while ((in_file = readdir(FD))) while ((in_file = readdir(FD)))
{ {
char *line = NULL;
if (!strcmp (in_file->d_name, ".") || !strcmp (in_file->d_name, "..")) if (!strcmp (in_file->d_name, ".") || !strcmp (in_file->d_name, ".."))
continue; continue;
@ -45,6 +51,9 @@ int main(int argc, char *argv[])
strcpy(entry_path,directory); strcpy(entry_path,directory);
strcat(entry_path,in_file->d_name); strcat(entry_path,in_file->d_name);
int c;
for (c = 0; c < burst; c++) {
char *line = NULL;
entry_file = fopen(entry_path, "a"); entry_file = fopen(entry_path, "a");
if (entry_file == NULL) if (entry_file == NULL)
{ {
@ -64,5 +73,7 @@ int main(int argc, char *argv[])
free(line); free(line);
} }
} }
rewinddir(FD);
}
return 0; return 0;
} }