Ich muss eine Datei in einen Pfad gzip. Was ich tun möchte, ist dies:Execute in C mit gzip
gzip -9c example.txt > /home/paulo/new_name
Wenn ich dies tun, indem und es funktioniert perfekt in Ordnung, aber ich bin mit einem execlp dies in c auszuführen:
execlp("gzip","gzip","-9c",file,">",path,NULL);
Aber wenn ich diese execlp ich bekomme zufällige Zeichen auf stdout. Ich drucke nur Datei- und Pfad zu überprüfen, ob beide richtig war:
printf("%s, %s\n",file,path);
Und ich habe dies:
example.txt, /home/paulo/new_name
Kann mir jemand sagen, was ich falsch mache?
Der Shell-Umleitungsbefehl ">" ist kein * Argument zu 'execlp' * und ist höchstwahrscheinlich Ihr Fehler. – usr2564301
Die Umleitung, wie Sie es versuchen, ist eine Funktion einiger * Shells *. Es ist nicht etwas, das 'exec' tut. Wenn Sie Ihre eigenen Prozesse "ausführen" möchten, müssen Sie stdout selbst wieder öffnen. –
Gibt es eine Möglichkeit, eine Datei in einen Pfad zu komprimieren und die ursprüngliche Datei ohne Umleitung zu behalten? –