Und gleich noch einer. Prinzip ist der gleiche, die datei ik ersten argument wird überwacht, und ganz in die Datei des 2. arguments kopiert, nur dass die 2. datei bei jedem Speichern der 1. aktualisiert wird.
sorry für die schlechte formulierung
Code:
/*infinite_copy.c*/
#include <stdio.h>
#include <stdlib.h>
void infinite_copy(const char *q, const char *z);
int main(int argc, char *argv[])
{
char ziel_string[20];
if(argc >= 3)
infinite_copy(argv[1], argv[2]);
else if(argc == 2)
{
printf("Ziel:...");
scanf("%s", ziel_string);
infinite_copy(argv[1], ziel_string);
}
else
fprintf(stderr, "Usage : %s <Überwachungsdatei> <ziel>\n", *argv);
printf("Press ENTER to continue...\n");
getchar();
return 0;
}
void infinite_copy(const char *q, const char *z)
{
FILE *quelle, *ziel;
char c;
quelle = fopen(q, "r");
if(quelle == NULL)
{
fprintf(stderr, "Fehler beim Öffnen der zu lesenden Datei...\n");
return;
}
ziel = fopen(z, "a+");
if(ziel == NULL)
{
fprintf(stderr, "Fehler beim Öffnen der zu schreibenden Datei...\n");
return;
}
while(1)
{
ziel = fopen(z, "a+");
if(ziel == NULL)
{
fprintf(stderr, "Fehler beim Öffnen der zu schreibenden Datei...\n");
return;
}
c = fgetc(quelle);
if(c == EOF)
ungetc(c, quelle);
else
{
fputc(c, ziel);
fputc(c, stdout);
}
fclose(ziel);
}
}