Compare commits
3 commits
96f9ded185
...
main
Author | SHA1 | Date | |
---|---|---|---|
9e6e2457e2 | |||
8c09af80fb | |||
08d65b254e |
2 changed files with 66 additions and 49 deletions
6
README.md
Normal file
6
README.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# multif
|
||||
|
||||
a multiplexer for distributing lines over a
|
||||
directory of files
|
||||
|
||||
|
109
multif.c
109
multif.c
|
@ -8,61 +8,72 @@
|
|||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc < 2)
|
||||
{
|
||||
fprintf(stderr, "Error : You must specify a directory\n");
|
||||
return 1;
|
||||
}
|
||||
DIR* FD;
|
||||
struct dirent* in_file;
|
||||
FILE *entry_file;
|
||||
char buffer[BUFSIZ];
|
||||
char *line = NULL;
|
||||
size_t len = 0;
|
||||
ssize_t lineSize = 0;
|
||||
DIR* FD;
|
||||
struct dirent* in_file;
|
||||
FILE *entry_file;
|
||||
char buffer[BUFSIZ];
|
||||
char *line = NULL;
|
||||
size_t len = 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];
|
||||
strcat(directory, "/");
|
||||
|
||||
//lineSize = getline(&line, &len, stdin);
|
||||
while (lineSize != -1)
|
||||
{
|
||||
/* Scanning the in directory */
|
||||
if (NULL == (FD = opendir (argv[1])))
|
||||
{
|
||||
char *directory = argv[1];
|
||||
strcat(directory, "/");
|
||||
/* Scanning the in directory */
|
||||
if (NULL == (FD = opendir (argv[1])))
|
||||
{
|
||||
fprintf(stderr, "Error : Failed to open input directory - %s\n", strerror(errno));
|
||||
|
||||
return 1;
|
||||
}
|
||||
while ((in_file = readdir(FD)))
|
||||
{
|
||||
}
|
||||
|
||||
char *line = NULL;
|
||||
if (!strcmp (in_file->d_name, ".") || !strcmp (in_file->d_name, ".."))
|
||||
continue;
|
||||
|
||||
char entry_path[4096];
|
||||
strcpy(entry_path,directory);
|
||||
strcat(entry_path,in_file->d_name);
|
||||
|
||||
entry_file = fopen(entry_path, "a");
|
||||
if (entry_file == NULL)
|
||||
while (lineSize != -1)
|
||||
{
|
||||
while ((in_file = readdir(FD)))
|
||||
{
|
||||
fprintf(stderr, "Error : Failed to open entry file - %s\n", strerror(errno));
|
||||
|
||||
return 1;
|
||||
if (!strcmp (in_file->d_name, ".") || !strcmp (in_file->d_name, ".."))
|
||||
continue;
|
||||
|
||||
char entry_path[4096];
|
||||
strcpy(entry_path,directory);
|
||||
strcat(entry_path,in_file->d_name);
|
||||
|
||||
int c;
|
||||
for (c = 0; c < burst; c++) {
|
||||
char *line = NULL;
|
||||
entry_file = fopen(entry_path, "a");
|
||||
if (entry_file == NULL)
|
||||
{
|
||||
fprintf(stderr, "Error : Failed to open entry file - %s\n", strerror(errno));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
lineSize = getline(&line, &len, stdin);
|
||||
if (lineSize == -1)
|
||||
return 0;
|
||||
|
||||
fprintf(entry_file, line);
|
||||
|
||||
/* When you finish with the file, close it */
|
||||
fclose(entry_file);
|
||||
free(line);
|
||||
}
|
||||
}
|
||||
|
||||
lineSize = getline(&line, &len, stdin);
|
||||
if (lineSize == -1)
|
||||
return 0;
|
||||
|
||||
fprintf(entry_file, line);
|
||||
|
||||
/* When you finish with the file, close it */
|
||||
fclose(entry_file);
|
||||
free(line);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
rewinddir(FD);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue