C: Herausfinden ob Datei oder Verzeichnis
-
Und wie wäre es, wenn du uns mal verraten würdest, welche(s) System(e) das Ziel sein soll(en)?
-
Ja, das ist eine Funktion aus dem Standard-Library. Aber das würde doch funktionieren, oder?
-
Ubuntu und Solaris oder allgemein Unix-Systeme
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wenn es nur für Unix-Systeme sein soll, braucht es nicht plattformunabhängig sein.
-
BlubieKK schrieb:
Ja, das ist eine Funktion aus dem Standard-Library. Aber das würde doch funktionieren, oder?
Nein, das ist eine Funktion aus der POSIX-Bibliothek. Ist zwar eng mit der Standardbibliothek verwachsen, gibt es aber nicht überall.
BlubieKK schrieb:
Ubuntu und Solaris oder allgemein Unix-Systeme
Dann igbt es opendir. Und die Antwort auf deine Ursprungsfrage ist stat:
man: stat(2)
-
Ok, das hat jetzt soweit hin:
struct stat * infoBuf; filePath = "./test.txt"; int statusK = lstat(filePath, infoBuf);
statusK ist immer = -1. Ich weiß nicht warum. Ich habe schon alle möglichen Pfadangaben versucht aber das ändert nichts
-
1. Dein infoBuf zeigt ins Nirwana.
2. Wenn du -1 als Rückgabewert bekommst, dann werte doch mal errno aus.
3. Da du mit infoBuf schon Mist gemacht hast, frag ich besser nach: Was genau ist filePath?
-
_stat(Windows) bzw stat (Posix) ist schon richtig.
Unter Windows und Unix kann man damit die File-Eigenschaftn erhalten.
In der Struktur stat gibt gibt es das Member st_mode.
Und über das das Flag _S_IFDIR (Windows) oder die Posix (UNIX) Funktion S_ISDIR() bekommt man raus ob es ein Directory ist.
=> Windowsif( stat.st_mode & _S_IFDIR)
=> Unix
S_ISDIR(stat.st_mode)
Ansonsten gilt das 7. Gebot des C-Proggers
Thou shalt study thy libraries and strive not to reinvent them without cause, that thy code may be short and readable and thy days pleasant and productive.
Wie ich grade sehe hat SeppJ ja schon so schön auf die manpage zu stat verlinkt.
Das sage ich nur: 2.
-
kannst du mir bitte deine lösung zeigen ?!