Dateien kopieren in einem C Programm
-
wob schrieb:
Ich habe keine Idee wie man sowas macht.
Wenn er weiß, dass er Linux nutzt, sollte er lieber ein
cp
forken. Wesentlich einfacher, kürzer und besser, als das selber zu programmieren.
-
Hallo SeppJ
Wie kann ich CP verschiedene Dateinamen übergeben ?
an CP hatte ich am Anfang auch gedacht.Gruß
Christian
-
chris74 schrieb:
Wie kann ich CP verschiedene Dateinamen übergeben ?
an CP hatte ich am Anfang auch gedacht.Ich verstehe deine Problembeschreibung nicht. Weil du dein Problem nicht beschreibst.
-
chris74 schrieb:
Wie kann ich CP verschiedene Dateinamen übergeben ?
Wie rufst du denn cp auf?
-
Wie wäre es denn mit einem loop über die Dateinamen und den cp je Datei aufrufen ?
-
Eine andere Möglichkeit (ohne Kopie)
http://en.cppreference.com/w/c/io/rename
-
Hallo SeppJ
CP test.txt /..../test.txt
wie kann man im C Programm den Befehl mit Variabeln schreiben ?
CP <Variable> in der Variable sollen die verschiedenen Dateinamen stehen die dann in einer Schlefe geändert werden.Ist das Problem nun deutlicher geworden.
-
1. Linux ist case sensitive.
- Der Befehl heißtcp
2. Wie sieht der Aufruf in deinem Code aus. Welche C-Funktion verwendest du dafür
- Ein CP test.txt /..../test.txt einfach so im C-Code mag der Compiler nicht.
-
Hallo DirkB
der Befehl wird so aufgerufen
system("cp test.txt /save/test.txt")ein Beispiel währe super.
-
Bau dir einen String mit
sprintf
zusammen.Das Beispiel für system:
char copy[1000]; // achte auf ausreichende Groesse ... sprintf(copy, "cp %s %s", quelle, ziel); system(copy);
-
Also ich habe bei System immer leichte Bauchschmerzen.
1. Wird das richtige executable aufgerufen? Sollte man nicht vielleicht besser "/bin/cp" angeben statt nur "cp"?
2. Sind Sonderzeichen wie zum Beispiel das Leerzeichen, der Backslash oder Anführungszeichen in den Dateinamen richtig gequotet? Man könnte fork+exec nehmen, um das Problem zu umgehen.