-
Mit C/C++ Dateien kopieren, bzw. Befehle ausführen
Hi Leute,
bin nicht richtig fit in C/C++, aber ich hätte da mal eine Frage. Und zwar wie kann ich von C/C++ aus Befehle auf der Bash erledigen, z.B. eine Datei kopieren die dann in ein bestimmtes vom User festgelegtes Verzeichnis kopiert wird. Hat jemand ein Beispiel für so ein Programm? Wäre dankbar.
Have a nice and productive Day.
-
Befehle der Bash anzusprechen, ist u.a. mit "system" möglich. Als Argument benötigt der Befehl eine Zeichenkette. Ein Kopierprogramm könnte somit wie folgt aussehen:
<pre>
// Simples Kopieren über "cp":
#include <string>
int main(int argc, char** argv)
{
if (argc != 3) {
cerr << "Verwendung: " << argv[0] << " <source> <destination>\n"
return -1;
}
string command = "cp "+string(argv[1])+" "+string(argv[2]);
system(command.c_str());
}
</pre>
In reinem C musst Du nur den string durch ein genügend großes char-Feld ersetzen.
Besser - weil effizienter - ist aber die Verwendung der C++- bzw. C-Sprachmittel; das Kopierprogramm könnte in C++ so geschrieben werden:
<pre>
#include <fstream>
int main(int argc, char** argv)
{
if (argc != 3) {
cerr << "Verwendung: " << argv[0] << " <source> <destination>\n"
return -1;
}
ifstream source(argv[1]);
if ( source == NULL ){
cerr << "Kann Quelldatei nicht oeffnen\n";
return -1;
}
ofstream dest(argv[2]);
if ( dest == NULL ){
cerr << "Kann Zieldatei nicht oeffnen\n";
return -1;
}
char c;
while ( source.get(c) )
dest.put(c);
}
</pre>
Hoffe, es hilft Dir weiter...
Thomas
-
Thanx, für die megaschnelle Antwort. Ich hoffe ich komm damit klar.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen