Hallo ihr "Codegurus"
ich habe mal Frage zu Pointern, die ich in Bezug auf VDR in ein Plugin benutzen will (daher die Frage hier und nicht in einem reinen C Forum).
Folgendes: Ich möchte eine Variable bzw. einen char Pointer mit Dateinamen füllen (so hintereinander weg ... kein Array ... fragt bitte nicht warum :)).
Die Definition erfolgt in der Funktion "ReadFiles".
Das Befüllen soll aber in zwei unterschiedlichen Funktionen geschehen.
Folgendes habe ich gebastelt:
Code
void ReadFiles()
{
char * files = NULL;
ReadFileType1(&files);
ReadFileType2(&files);
...Mach was mit files ...
}
void ReadFileType1(char **files)
{
...
FILE *p = popen(cmd, "r");
if (p)
{
cReadLine ReadLine;
char *s;
while ((s = ReadLine.Read(p)) != NULL)
{
if (*files == NULL)
asprintf(files, "%s", s);
else
asprintf(files, "%s%s", *files, s);
}
pclose(p);
}
...
}
void ReadFileType2(char **files)
{
...
FILE *p = popen(cmd, "r");
if (p)
{
cReadLine ReadLine;
char *s;
while ((s = ReadLine.Read(p)) != NULL)
{
if (*files == NULL)
asprintf(files, "%s", s);
else
asprintf(files, "%s%s", *files, s);
}
pclose(p);
}
...
}
Alles anzeigen
Das scheint auch zu funktionieren. Da ich aber immer noch Schwierigkeiten mit Pointern habe, wollte ich Euch mal fragen, ob ich hier vielleicht irgendwas dummes zusammengesetzt habe, was u.u. nen schwerwiegenden Fehler verursachen kann.
Danke schon mal.
Bye
Andreas