ubuntuusers.de

Lib's, welche, woher? Funktionen? C++

Status: Gelöst | Ubuntu-Version: Ubuntu 7.04 (Feisty Fawn)
Antworten |

yvesdaeschle

Anmeldungsdatum:
3. Oktober 2006

Beiträge: 27

Hallo,

ich hab eine Verständnisfrage.

Ich möchte unter Linux mit C++ programmieren. Das C++ selbst ist klar. Aber wie steht es jetzt mit "Funktionalität"? Ich weiß, dass es in Linux für fast jede Funktionalität eine Lib gibt, welche man über das -dev Paket und der Header Datei dann benutzen kann.

Aber woher weiß ich, welche Lib ich brauche? Und wie man diese benutzt?

Beispiel: (nur Beispiel, das mit XML würde ich finden über google... gibt ne libxml irgendwas...)
Ich möchte XML Dateien lesen + schreiben- Welche Lib?
Oder ich möchte Dateien auf Datum auslesen, Dateien kopieren.

Wie weiß ich, wenn ich vor solch ein Problem stoße, woher ich die Lösung, oder die Lib bekomme?
Hab gar keinen Bezug dazu. Unter Windows hab ich einfach in der MSDN gesucht.

Wäre für Hilfe dankbar!

Danke, Yves

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Du solltest Dir einen Überblick über die C++-Standardbibliothek verschaffen, da gibt es schon einiges was man so braucht. Dann natürlich über die Standard Template Library (STL). Alles was in diesen beiden Bibliotheken zu finden ist, ist recht weit verbreitet, weil eben Standard. Ebenfalls recht verbreitet sind die Bibliotheken, die boost so zu bieten hat. Falls Du ein GUI-Toolkit verwendest, finden sich in dessen Umfeld oft auch Bibliotheken mit allgemeineren, nützlichen Funktionen. Qt bietet zum Beispiel auch Klassen für XML.

Darüber hinaus musst Du halt schauen was es so gibt. Oft findet man auch C++ Anbindungen an C-Bibliotheken. Für XML ist zum Beispiel die libxml2 sehr verbreitet, die mit libxml++ auch eine API für C++ hat.

Daten über Dateien auslesen und kopieren geht natürlich mit Funktionalität aus der Standardbibliothek, das ist schliesslich sehr grundlegend.

yvesdaeschle

(Themenstarter)

Anmeldungsdatum:
3. Oktober 2006

Beiträge: 27

Und das ist die C++ Standardbibliothek? Die libc?

Ja ich habe vor mit Gtkmm zu arbeiten, da kann ich dann auch noch einmal schauen.

Aber diese Hinweise sind schon mal sehr gut!

EDIT: Gibt es eine Doku für die C++ Standardlibrary? Hab bis jetzt nicht gefunden wie man das Datum einer Datei auslesen kann. Kopieren, schrieben lesen hab ich gefunden.

uljanow

Anmeldungsdatum:
21. Dezember 2005

Beiträge: 72

yvesdaeschle

(Themenstarter)

Anmeldungsdatum:
3. Oktober 2006

Beiträge: 27

Ich habe jetzt gefunden, dass man mit

stat

Die Datumsinformationen auslesen kann.
Wie ist dies aber Dokumentiert. (z.B. welche Struktur, welche Übergabeparameter...)

http://www.gnu.org/software/libc/manual/html_node/index.html
http://cppreference.com

Hier habe ich die Funktion nicht gefunden.

Sehe ich den Wald vor lauter Bäumen nicht??

yvesdaeschle

(Themenstarter)

Anmeldungsdatum:
3. Oktober 2006

Beiträge: 27

Ok "stat" auch gefunden, in der libc.

So langsam verstehe ich das ganze.

Wie ist es mit dem kompilieren. Wird die libc automatisch referenziert? (Es trifft ja auch zusätzlich C auf C++ Code)

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Bei C++ werden die libc und die libstdc++ automatisch mit eingebunden.

In den Boost-Bibliotheken gibt's Alternativen zu stat:

#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/filesystem/operations.hpp>

using namespace std;
using namespace boost::filesystem;
using namespace boost::posix_time;

int main()
{
    string file_name = "test.cpp";
    
    cout << "Dateiname: " << file_name << endl
         << "Groesse: " << file_size(file_name) << endl
         << "Datum: " << from_time_t(last_write_time(file_name)) << endl;
    
    return 0;
} 

Übersetzt mit g++ -O3 -Wall -ansi -pedantic -lboost_filesystem -o test test.cpp

Ausgabe:

Dateiname: test.cpp
Groesse: 461
Datum: 2007-Aug-09 14:27:03

yvesdaeschle

(Themenstarter)

Anmeldungsdatum:
3. Oktober 2006

Beiträge: 27

Wow das ist ja klasse.

Das muss ich mir mal anschauen!

Vielen Dank!

Antworten |