Markus Pitha: Mit C Programm auf Datei über Pfad zugreifen?

Beitrag lesen

Hallo,
Ich habe kurz mal eine kleine Frage zu einem Mini-C-Programm. Ich will eine Datei zum Lesen öffnen, und wenn diese nicht existiert, soll sie angelegt werden. Das funktioniert eigentlich auch ganz gut, solange ich im gleichen Verzeichnis bleibe, absolute oder relative Pfade angebe.
Gebe ich als Pfad aber so etwas an "~/ffconfig.txt" (wir nehmen jetzt an, dass dieser Pfad und die Datei tatsächlich unter /home/user/config.txt existiert), liefert die fopen Funktion trotzdem immer NULL zurück, auch wenn die Datei bereits existiert, da es anscheinend mit dem ~ nichts anfangen kann. Ich will aber ~ verwenden, da es theoretisch ein Programm sein könnte, das weitergegeben wird, und eben die Datei und/oder das Verzeichnis im Home Verzeichnis des aktuellen Users anlegen soll. Was kann ich hier tun?

#include <stdio.h>
#include <stdlib.h>

int main(void)    {
  FILE  *fp;
  char filepath[] = "~/ffconfig.txt";

if ((fp = fopen(filepath, "r")) == NULL)    {
    puts("\nFile was not found...File will be created");
                 if ((fp = fopen(filepath, "w")) == NULL)    {
                 puts ("An Error occurred while creating the config file.");
                 exit(1);
                 }
    }   else  {
    puts("File already exists.");
    fclose(fp);
    }

return 0;
}
Markus.

--
sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|