Anzeige:
Ergebnis 1 bis 8 von 8

Thema: [c] probs mit open()

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496

    [c] probs mit open()

    ich erzeuge mit:
    Code:
    char *home, path[250];
    char *file = "/.sa-calc";
    
    home = getenv("HOME");
    
    strcpy(path, home);
    strcat(path, file);
    fh = open(path, O_CREAT|O_WRONLY|S_IRUSR|S_IWUSR);
    eine config file im home verzeichnis, nur dass die rechte nicht richtig sind ;(
    ls -la | grep sa gibt:
    ---xr----T bla bla bla .sa-calc

    wie kann ich die denn mit 644 erzeugen?
    danke für jeden tip!
    greetz

  2. #2
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    05.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Also damit kannst die Berechtigungen nach dem Erzeugen ändern:
    fchmod(2) (bzw. chmod(2) mit PFadnamen statt filediscriptor).
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  3. #3
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    habs nun anders gelöst...
    ich öffne nun mit fopen, dies macht des erstellen wenigstens wirklich richtig, und tu dann mit fileno den filepointer umwandeln..

    ist vielleicht nicht die schönste lösung, aber es funzt...

    trotzdem danke für die antwort!

  4. #4
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    27.04.2001
    Beiträge
    180
    man 2 open

    Code:
           int open(const char *pathname, int flags);
           int open(const char *pathname, int flags, mode_t mode);
    Also einfach:

    Code:
    fh = open(path, O_CREAT|O_WRONLY|S_IRUSR|S_IWUSR, 0644);

  5. #5
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    ja und genauso hab ichs gemacht, und beim erstellen kommen die falschen rechte bei raus:
    ---rx----T wie ich oben geschildert habe...
    brauche aber 644...

    greetz

  6. #6
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    05.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Original geschrieben von quinte17
    ja und genauso hab ichs gemacht, und beim erstellen kommen die falschen rechte bei raus:
    ---rx----T wie ich oben geschildert habe...
    brauche aber 644...

    greetz
    Sicher das't es so gemacht hast?
    Code:
    fh = open(path, O_CREAT|O_WRONLY|S_IRUSR|S_IWUSR, 0644);
    Oben hattest das stehn (ohne 0644):
    Code:
    fh = open(path, O_CREAT|O_WRONLY|S_IRUSR|S_IWUSR);
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  7. #7
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    ahhh!
    ich hab des 0644 übersehen! da hast du recht, des werd ich heute gleich mal ausprobieren... sowas aba auch..

    sorry dass ich zu dumm zum lesen war...

    danke für die hilfe!
    greetz

  8. #8
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    27.04.2001
    Beiträge
    180

    Talking

    Hehe, np

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •