[C] system mit 2 Variablen versorgen

Tom_Dalton

Grünschnabel
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:
char firstuser[256];
char firstpw[256];

getp (firstuser);
getp (firstpw);

system ("./addhost.php %s %s 10", firstuser, firstpw);
Beim Backen kommt allerdings
Code:
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
 
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ß
 
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:
./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.
 
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.
 
Zurück