Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Datei erstellen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.12.2003, 12:46 Uhr
~Alfred
Gast


Hi,

ich möchte mit dem creat-Befehl, den ich unter Linux (Programmiersprache C) einsetzen möchte, zum Erstellen einer Datei verwednen.


Code:
creat("hallo.txt", S_IWUSR)



Im Prinzip klappt es auch, aber die Datei ist leider immer schreibgeschützt, was ich nicht haben will. Ich möchte haben, dass eine Datei zum Schreiben erstellt wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.12.2003, 12:55 Uhr
Pablo
Supertux
(Operator)


Sollte es nicht create heißen? Ich kenne keine solche Funktion in der Standard Librerie von C, also gehe ich davon aus, dass du sie selber geschrieben hast. Zeig mal den Code.

Es könnte auch sein, dass du eine falsche umask hast. Geh in die Konsole und tipp folgendes ein:

Code:
$ umask


Was kommt?

2. Ist das Verzeichnis, in das hallo.txt geschrieben werden muss, ein Verzeichnis, bei dem du Schreibe-Rechte hast?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.12.2003, 12:59 Uhr
~Alfred
Gast


Hi,

die Funktion creat gibt es. Gib einfach man 2 creat ein. Und in dem Verzeichnis habe ich Schreibrechte. Es ist mein eigenes Home-Verzeichnis.

mfg

Alfred
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.12.2003, 13:24 Uhr
Pablo
Supertux
(Operator)


Allerdings, sorry, habe ich nicht richtig gesucht. S_IWUSR scheint richtig zu sein. Vielleicht ist deine Makse falsch oder du darfst nur nicht auf dieses Verzeichnis schreiben.

Mach folgendes (Bsp nicht von mir):


C++:
#include <stdio.h>
#include <limits.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
    mode_t rechte;
    int fd;
    char dateiname[125];

    umask(0); // von shell gesetzte Mask überschreiben
    printf("Geben sie Dateiname und Maske ein: (bsp: datei1 755) ");
    while( scanf("%s %o", dateiname, &rechte) != EOF) {
        if ( (fd=creat(dateiname, rechte)) == -1 ) {
            fprintf(stderr, "kann %s nicht angelegt werden\n", dateiname);
            return -1;
        } else {
            printf("%s mit '%03o' angelegt\n", dateiname, rechte);
            close(fd);
        }
    }
    return 0;
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 14.12.2003 um 17:54 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.12.2003, 17:49 Uhr
~Alfred
Gast


Danke, werde es nacher gleich mal ausprobieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: