tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
168
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tom_Dalton Tom_Dalton ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    2
    Hallo Leute,
    ich habe mal eine kleine aber feine frage,
    vorab. Ich hatte mit C bislang nicht viel am Hut und habe nun nach Jahren mal ein Projekt angenommen bei dem ich von BASH in C Potieren soll. Ich bin soweit auch schon sehr gut durch gekommen. Nun stehe ich vor dem Problem das ich mittels "system" einen befehl aus führen muss der 2 variablen beinhalten muss.

    gedacht hatte ich mir das ganze so (kein Original auszug da 200 Zeilen zwichen den einzelen segmenten stehen ):
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    char firstuser[256];
    char firstpw[256];
     
    getp (firstuser);
    getp (firstpw);
     
    system ("./addhost.php %s %s 10", firstuser, firstpw);
    Beim Backen kommt allerdings
    Code :
    1
    
    error: too many arguments to function system

    Das ganze ist, wie durch BASH vermutlich selbst erklärend, UNIX/LINUX

    ich hoffe ihr könnt mir helfen, ich bin für alle Vorschläge offen
    Schon mal vielen dank
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Du müßtest zuerst mal die komplette Kommandozeile z.B. per sprintf zusammenbauen.

    Die Übergabe des Passworts auf der Kommandozeile ist allerdings unsicher, wenn möglich sollte man z.B. eine Pipe verwenden.

    Außerdem stellt sich die Frage was denn das Ziel der Portierung Bash -> C erreicht werden soll. C ist nicht unbedingt schneller...

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Tom_Dalton Tom_Dalton ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    2
    Hey Deepthroat,
    vielen dank für deine schnelle antwort.

    Das Passwort wird so oder so Plaintext über die Konsole eingegeben und durch das PHP Script verschlüsselt (MD5 glaub ich)

    In erster linie ist es eine Übung für mich. mit einem Projekt in C ein zu steigen. So konnte ich bis jetzt immer am besten in eine Sprache einsteigen, einige grundlagen habe ich bereits durch Bücher doch das ist entwerder nicht dabei gewesen oder ich stell mich zu blöde an.

    In BASH sieht es halt so aus:
    Code :
    1
    
    ./adduser.php $firstuser $firstpw 10
    nur dieses verfahren auf C zu bekommen ist für mich die größte Hürde. Da war sogar MySQL bis jetzt leichter Wobei ich mir erhoffe durch die Lösung dieses Problems, MySQL auch, mit User und Passwort durch Variablen zu versorgen.
     

  4. #4
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,

    Wie deepthroad oben schon beschrieben hat, kann dir system einen Befehl ans System absetzen. Dazu brauchst du aber zuerst den kompletten Befehl als String, inklusive Username und Passwort.
    Strings formtieren und zusammenhängen kannst du z.B.: mit sprinft oder mit einem stringstream.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.01.09, 22:47
  2. System::Byte => System::String
    Von dertobian im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 25.08.07, 18:57
  3. Variablen in system() übernehmen?
    Von Phantome_Phreak im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 08.12.06, 18:05
  4. MC mit AS "versorgen"
    Von Kebb im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 02.05.05, 21:45
  5. Antworten: 1
    Letzter Beitrag: 06.05.03, 13:22