C Neuen Ordner erstellen?
-
if ( mkdir( Pfad)) perror( "nixgeklappt");
rtfm.
-
Jonas OSDever schrieb:
Und selbst wenn: Diese veralteten (Nichtstandard-!)Funktionen solltest du nicht mehr verwenden. Benutz CreateDirectory und gut ist.
Ich glaube einige verwechseln hier was. mkdir() ist nicht veraltet und es ist auch standardisiert, in POSIX. Dass er das meint und nicht irgendwelchen alten Borland-Krempel ergibt sich aus dem Include der unistd.h.
Inwiefern es jetzt besser sein soll, wenn er irgendwelche (garantiert nicht standardisierten) Windows-spezifischen Funktionen benutzt, wie von dir vorgeschlagen, erschließt sich mir nicht. Eine POSIX-Implementierung scheint er ja installiert zu haben (wahrscheinlich Cygwin).
int mkdir(const char *path, mode_t mode);
Kann also so gar nicht funktionieren. Der Pfad sollte dann natürlich auch passend angegeben werden.
Näheres:
http://pubs.opengroup.org/onlinepubs/007904875/functions/mkdir.html
-
Ich würde villeicht auch dovon ausgehen, dass der gute "Programmierer" evtl. gar keine Rechte auf dem Rot Verzeichnis hat etwas zu ändern
-
Martin Richter schrieb:
Ich würde villeicht auch dovon ausgehen, dass der gute "Programmierer" evtl. gar keine Rechte auf dem Rot Verzeichnis hat etwas zu ändern
Deshalb könnte er ja mal ganz leicht und vorsichtig nachsehen was errno so dazu meint
-
stat schrieb:
Ich glaube einige verwechseln hier was. mkdir() ist nicht veraltet und es ist auch standardisiert, in POSIX. Dass er das meint und nicht irgendwelchen alten Borland-Krempel ergibt sich aus dem Include der unistd.h.
Inwiefern es jetzt besser sein soll, wenn er irgendwelche (garantiert nicht standardisierten) Windows-spezifischen Funktionen benutzt, wie von dir vorgeschlagen, erschließt sich mir nicht. Eine POSIX-Implementierung scheint er ja installiert zu haben (wahrscheinlich Cygwin).int mkdir(const char *path, mode_t mode);
Kann also so gar nicht funktionieren. Der Pfad sollte dann natürlich auch passend angegeben werden.
Näheres:
http://pubs.opengroup.org/onlinepubs/007904875/functions/mkdir.htmlSchön das du in einem WinApi-Forum Windowsspezifische Funktionen als Nicht-Standard bezeichnest. Es ist doch eigentliche so, das Posix der Nicht-Standard unter Windows ist.
CreateDirectory ist Windowsstandard, seit Anbeginn der WinApi und durch alle Windows-Systeme.
Der Threadstarter nutzt vermutlich das Posix-Subsystem von Windows. MS weist dieses als deprecated für ihre Betriebssysteme aus und verweist auf _mkdir().
Damit sich dir der Sinn von CreateDirectory erschliesst:BOOL WINAPI CreateDirectory( __in LPCTSTR lpPathName, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes );
Man achte auf den zweiten Parameter.
Einfach mal in den Raum geworfen: Mit Posix kann man die Möglichkeiten der Programmierung nicht ausschöpfen. Deshalb ist das für mich Blödsinn.
Und möchte man plattformübergreifend arbeiten, dann ist Qt für mich die erste Wahl.Nützlicher und interessanter für jemanden, der Windowsprogrammierung mit WinApi machen will, als dein Link ist:
http://msdn.microsoft.com/de-de/library/59ey50w6.aspx
bzw.
http://msdn.microsoft.com/en-us/library/ff818516%28VS.85%29.aspx
-
Der OP hat Windows nicht erwähnt. mkdir() ist eine C-Standardfunktion.
-
Deshalb postet er auch in einem WinApi-Forum?
Und das mkdir C-Standard sein soll, bezweifele ich.
Gib doch bitte eine Quelle an.
-
Shiba schrieb:
Deshalb postet er auch in einem WinApi-Forum?
Klar, um die Leute zu verwirren ...
-
Scheppertreiber schrieb:
Shiba schrieb:
Deshalb postet er auch in einem WinApi-Forum?
Klar, um die Leute zu verwirren ...
Machen die doch ständig.
-
Scheppertreiber schrieb:
mkdir() ist eine C-Standardfunktion.
In welchem Standard soll das stehen? C89? C99?
-
Shiba schrieb:
Scheppertreiber schrieb:
mkdir() ist eine C-Standardfunktion.
In welchem Standard soll das stehen? C89? C99?
In keinem.
-
Danke dot!
-
stat schrieb:
Jonas OSDever schrieb:
Bissel was von mir
Ich glaube einige verwechseln hier was. mkdir() ist nicht veraltet und es ist auch standardisiert, in POSIX.
Ok, mag sein, dass es in POSIX nicht veraltet ist, aber ich habe noch nie mit POSIX gearbeitet und die starke ähnlichkeit zum DOS-Befehl mkdir (bzw. md) hat mich etwas verwirrt.
Außerdem ist POSIX an sich zwar standardisiert, aber ein Standard-C(++)-Kompiler muss POSIX nicht zwangsläufig unterstützen. Es ist ein Quasi-Standard, aber Windows ist auch kein POSIX-kompatibles OS (zumindest nicht ohne Zusatzprogramme) und wie gehabt ist die WinAPI-Variante die beste.Und ich schließe mich dot und Shiba an: mkdir() steht nicht im C-Standard.
-
Shiba schrieb:
Deshalb postet er auch in einem WinApi-Forum?
Der Threadstarter hat nicht im Windowsforum gepostet. Sepp hat es einfach dorthin verschoben.
mfg Martin