Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Linux/Unix ::  C: Herausfinden ob Datei oder Verzeichnis  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
Beitrag SeppJ Moderator 17:42:45 20.01.2012   Titel:              Zitieren

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:
stat(2)
BlubieKK
Unregistrierter




Beitrag BlubieKK Unregistrierter 18:01:07 20.01.2012   Titel:              Zitieren

Ok, das hat jetzt soweit hin:

C/C++ Code:
struct stat * infoBuf;
filePath = "./test.txt";
int statusK = lstat(filePath, infoBuf);
C/C++ Code:
struct stat * infoBuf;
filePath = "./test.txt";
int statusK = lstat(filePath, infoBuf);
C/C++ Code:
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 :(
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
Beitrag SeppJ Moderator 18:17:29 20.01.2012   Titel:              Zitieren

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?


Zuletzt bearbeitet von SeppJ am 18:18:38 20.01.2012, insgesamt 1-mal bearbeitet
Shiba
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2002
Beiträge: 199
Beitrag Shiba Mitglied 14:24:20 21.01.2012   Titel:              Zitieren

_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.
=> Windows
C/C++ Code:
if( stat.st_mode & _S_IFDIR)
C/C++ Code:
if( stat.st_mode & _S_IFDIR)
C/C++ Code:
if( stat.st_mode & _S_IFDIR)

=> Unix
C/C++ Code:
S_ISDIR(stat.st_mode)
C/C++ Code:
S_ISDIR(stat.st_mode)
C/C++ Code:
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.


Zuletzt bearbeitet von Shiba am 14:28:23 21.01.2012, insgesamt 2-mal bearbeitet
C/C++ Forum :: Linux/Unix ::  C: Herausfinden ob Datei oder Verzeichnis  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.