Variable in Verbindung mit dem Befehl 'system'

Radhad

Erfahrenes Mitglied
Hallo Leute!

Ich wollte mir das mühselige net send batch-dateien erleichtern und ein C-Programm schreiben, dass net send ausführt. Problem ist allerdings dass der befehl 'system' die Variablen nicht akzeptiert. was kann ich da machen?

system("net send -sendip -sendtext");

das ist der aktuelle stand... vorher hatte ich statt -sendip %c dort stehen.

weiß jemand wie es richtig geht? :)

MfG Radhad
 
moin


das das so nicht geht ist doch klar!

erstell dir nen string, pack in den string alles rein was du brauchst und dann pack den string bei system() als argument rein!

in c würde das dann so ausshen:

char string[80];

strcpy(string, "net send ");
strcat(string, "- ");
strcat(string, sendip);
strcat(string, " - ");
strcat(string, sendtext);

system(string);


mfg
umbrasaxum
 
moin


*kopfschüttel*
ich nehme mal ganz stark an das du noch nie mit c/c++ gearbeitest hast und auch keine ahnung davon hast, wenn ich mich täusche sag es.

aber ok.

du musst oben im quellcode "#include <string.h>" einfügen!


mfg
umbrasaxum
 
doch habe ich, allerdings lernen wir das in der schule und die bibliothek string.h ist mir noch net bekannt ^^ ich kann zwar etwas mehr als das was wir bisher in der schule gemacht haben, aber man würde zu mir noch anfänger sagen ;) den system befehl hatten wir nur in verbindung mit cls bisher ^^
 
tag auch,

ich habe ein kleines anderes prog geschrieben und nutze diese funktionen ... allerdings kommt an folgender stelle immer ein "speicherzugriffsfehler":

strcat(string, sendip);



ausschnitt:
char* string = "ftp -v ";
printf("string: %s\n\n",string);

printf("Adresse: ");
scanf("%s",&tmp);
printf("\n\ntmp: %s\n\n",tmp);

strcat(string, tmp);

printf("string nach strcat: %s",string);


weiß jemand warum dem so ist?




p.s.: hab net sooo viel ahnung von C
 
Der Fehler tritt auf, weil die Schreibweise
Code:
char * string = ...
einen konstanten String erzeugt, der nicht mehr verändert werden kann. Abgesehen davon muss das Ziel von strcat (die Variable "string") genügend Speicher reservieren, damit auch der anzuhängende String noch hineinpasst. Mach's doch so, wie in diesem Thread schon beschrieben wurde:
C++:
char string[80]; 
strcpy(string, "ftp -v ");

// ... der Rest
Gruß
MCoder
 

Neue Beiträge

Zurück