Archiv verlassen und diese Seite im Standarddesign anzeigen : 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. http://www.linuxforen.de/ubb/wink.gif
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.