Fehler beim Schreiben von Umgebunbgsvariablen
-
Hallo zusammen,
habe ein kleines C-Programm geschrieben, welches beim Aufruf Umgebungsvariablen übergeben bekommt:
Bsp:
MeinProgramm.exe %User% %Systemdrive% %LMUSER% %LMPASSWORD%Dieses C-Programm soll dann eine Batchdatei erstellen, die den Inhalt hat:
SET LMUSER=Benutzer
SET LMPASSWORD=Password123
%User% %Systemdrive% %LMUSER% %LMPASSWORD%
------------Am Schluss startet das C-Programm die erstellte Batch.
Hier bekomme ich die Fehlermeldung: "Zu wenig Speicherplatz im Umgebungsbereich"
Die beiden Umgebungsvariablen werden nicht gesetzt.Starte ich hingegen die BAtchdatei von Hand, so werden die beiden Umgebungsvar. problemlos gesetzt.
[Edit:] Das C-Programm soll in einer 16Bit MS DOs Umgebung laufen.
Der Programmcode sieht woe folgt aus:
#include <stdlib.h> #include <stdio.h> #include <dos.h> #include <unistd.h> int main(int argc, char *argv[]) { int i; FILE *fp; if(!argc>1){ printf("Fehler"); } else{ if ((fp=fopen("Doit.bat","w"))==NULL){ printf("Fehler"); } else{ fprintf(fp,"@ECHO OFF\n"); fprintf(fp,"SET LMUSER=Benutzer\n"); fprintf(fp,"SET LMPASSWD=Password123\n"); for(i=1;i<argc;i++){ fprintf(fp,"%s ",argv[i]); } fclose(fp); } } system("Doit.bat"); //system("DEL doit.bat"); return EXIT_SUCCESS; }
Woran könnte es nun liegen, dass das C-Programm die Batch zwar startet, diese aber die beiden Variablen nicht setzen kann ?
Bin für jeden Tip dankbar.
PS:Hab im Kontext dieses Quelltextes bereits schon einmal Probleme gehabt, diese aber in einem anderen Thread gepostet, weil die Probleme nicht direkt MS DOS betrafen. Jetzt schon
-
Das mit den hardcoded-Environment-String-Einträgen sieht mir nicht koscha aus. Gibts keine Funktion setEnv() oder Ähnliches?
MfG SideWinder
-
Doch diese Fkt. gibt es.
Wenn ich jedoch die Umgebungsvariablen mit C setze, dann kann die danach erstellte CMD nicht mehr auf diese zugreifen, da sie -so meine ich- eine "neue" cmd für Ihre Ausführung aufmacht. ´
Jedenfalls kann die Batch nicht auf die Umgebungsvariablen zugreifen.
Deswegen lasse ich die Batch diese Variablen selber setzen, um diesem Problem aus dem Weg zu gehen.
Leider mit genanntem Ergebnis...Ich bekomme immer wieder den Fehler "Zu wenig Speicherplatz im Umgebungsbereich".
Ich glaube ich geb auf und lasse das Rätsel für immer ungelöst