Domovsky adresar C

Sekcia: Programovanie 15.07.2008 | 01:53
Xfcr   Návštevník
Cawte lidi ucim sa C a mam tu taky problem. Ked chcem otvorit textovy subor,ktory ma byt v domovskom adresari, tak musim vypisovat uplnu cestu. Problem je v tom ze ak to otvori iny uzivatel,tak cesta sa meni a nebudem mat prava na zapis a pod rootom to predsa nebudem pustat. Ako to teda sikovne urobim? Skusal som ~/ alebo $HOME, ale ani jedno nepomohlo. Ako to spravim v linuxe aj na platforme Windows?
FILE *f;
f=fopen("/home/uzivatel/text.txt", "r");
Prip.:
f=fopen("C:\\Documents...", "r") - pod win.
Predom dik.
    • Re: Domovsky adresar C 15.07.2008 | 14:21
      Avatar Dušan Ďurech Debian Lenny 5.0  Používateľ
      #define STR_PATH_SIZE 256

      char path[STR_PATH_SIZE];
      char *envHome;
      FILE *file;

      if( ( envHome = getenv("HOME") ) == NULL )
      {
      fprintf(stderr,"Environment HOME not found !\n");
      exit(0);
      }

      snprintf(path, STR_PATH_SIZE, "/home/%s/text.txt", envHome);

      file = fopen(path, "r");
      • Re: Domovsky adresar C 15.07.2008 | 14:30
            Návštevník
        getenv("HOME") vracia cestu už v tvare /home/user, takže len %s/test.txt.
        • Re: Domovsky adresar C 15.07.2008 | 14:56
          Avatar Dušan Ďurech Debian Lenny 5.0  Používateľ
          ops, tak to som sa sekol, dik za opravu :)