Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Programme wärend der laufzeit benutzen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.03.2003, 12:24 Uhr
~tesla
Gast


Hi ich versuche schon zeit längerem Gzip unter Linux in meinem Programm zum laufen zu bringen.. habe aber keine ahnung wie ich das anfangen solll.
Ich will das der Benutzer eine Datei oder einen ordner auswählen kann was maein erstes problem ist, und diese dann automatisch ge Gzipt werden, damit ich sie weiter verwenden kann....?
kann mir bitte jemand helfen?
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.03.2003, 13:23 Uhr
Pablo
Supertux
(Operator)


Also, unter WINDOWS und unter Linux funktioniert gleich (ich nehme an, du benutzt Linux, oder?)


C++:
#include <iostream.h> // cout
#include <stdlib.h> // system
#include <stdio.h> // sprintf

int main(int args, char* argv[])
{
    if(args != 2)
    {
        cout << "Usage: " << argv[0] << "Gzip Datei\n";
        return 0; // Um das Programm zu beenden
    }
    char* system_aufruf; // buffer initialisieren
    sprintf(system_aufruf = new char[0], "gzip -d %s", argv[1]); // gzip oder ein
                                                                                                  // anderes Programm benutzen
    system(system_aufruf);
    delete system_aufruf; // Speicherplatz freigeben
}


Wichtig ist hier der Aufruf vom system(char*).

Ruf gzip --help oder man gzip auf und dan erhählst du die ganze Information darüber.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 27.03.2003 um 14:12 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.03.2003, 13:23 Uhr
~dirweis
Gast


hallo tesla,

externprogramme kannst du mit der c-funktion system(char *string) aufrufen. (nähreres unter man system). in deinem fall muesste der string also "gzip [Zieldatei]" bzw. "gzip [Zielordner]" heißen. damit du den zielstring vom benutzer bekommst, kannst du scanf (für die standard-eingabe) verwenden mit
scanf("%s",ziel_string); /*auf keinen fall den &-operator verwenden!*/
am besten noch ein
fflush(stdin);
hinterher, damit kein chaos im speicher entsteht.
vorher erstellst du am elegantesten einen string mit
char *string="gzip";
und schnippelst die eingabe an diesen mit strcat
strcat(string,ziel_string);

aber was meinst du mit weiter verwenden? willst du wissen, wie man einen ordner mit gzip packt, das original aber trotzdem erhalten bleibt? dann ist das hier vielleicht nicht ganz die richtige kategorie, weil hier eigentlich nur programmierprobleme behandelt werden. aber bei solchen syntaxproblemen mit systemprogrammen sind die man-pages meistens eine echte hilfe. sorry, dass ich die syntax jetzt auch nicht auswändig weiss...

a lot of fun!
dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.03.2003, 14:32 Uhr
~Tesla
Gast


Genau das habe ich gebraucht danke wollte eigentlich garnicht mehr wissen....
Vielen vlielen dank an euch .....
johannes
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.09.2004, 15:19 Uhr
~Gomanza
Gast


Servus ich weiß das thema ist schon älter. Hoffe trotzdem das das noch jemand ließt. Für den Fall das ich z.b. den Browser aufrufen möchte mit int system(const char *string); könnt ihr mir hierfür ein kurzes bsp. machen danke.
danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.09.2004, 21:31 Uhr
typecast
aka loddab
(Operator)


Hmm. Es sei dir davon abgeraten das zu tun, aber


C++:
system("ausfuerbare_datei");



fuehrt dir jedes ausfuerbare Programm aus.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.09.2004, 21:34 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


besonders schlau ist es wenn du dem user erlaubst den namen der auszuführenden datei selber anzugeben...

z.b. "format... " oder "delete *.*"...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.09.2004, 07:13 Uhr
Tommix




Zitat von Windalf:
besonders schlau ist es wenn du dem user erlaubst den namen der auszuführenden datei selber anzugeben...

z.b. "format... " oder "delete *.*"...

Guten Morgen Windalf.
Dann hat der Nutzer außer mit 'format c:' auch noch mittels 'mein_eigener_programmstarter format c:' die Möglichkeit, die Festplatte zu formatieren, oder auch mit 'mein_eigener_programmstarter "mein_eigener_programmstarter format c:"'.
Nicht auszudenken.

Mal davon ab gibt es unter UNIX (und die Frage war auf das weitgehend davon abgekupferte Linux bezogen) Schutzmechanismen, die so etwas verhindern.

Gruß, Tommix

Dieser Post wurde am 17.09.2004 um 07:14 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: