Wie erstelle ich ein file in %windir% ?
-
Wie erstelle ich ein file in %windir% ?
habs mit
std::ofstream outFile("%windir%\\test.dat");
probiert... das klappt nicht.
Kan ja auch eigentlich nicht, da die Variable windir von der Shell interpretiert wird.
Aber Entwickler benutzen diese Variable auch, habe ich gehoert.
"C:\Windows" waere auch viel zu unsicher.
Wie kann ich den trotzdem immer genau das Windows-Verz. "treffen" ?(Konnte leider nicht nach meiner Frage im vornherein suchen.
Also bitte nicht schlagen.)
-
#include <cstdlib> #include <cstdio> int main(){ char *term = getenv("windir"); printf ("%s", term); }
-
hast du evtl. noch ein paar mehr infos dazu? ->websites
danke.
-
-
Siehe MSDN "GetWindowsDirectory".
-
operator void schrieb:
Siehe MSDN "GetWindowsDirectory".
ok, auf winapi ebene dann nach winapi verschieben lassen
-
Soweit ich weiss gehört das sogar zum Standard, das heisst funktioniert auch mit Linux-Umgebungsvariablen:
[cpp]
int main(int argc, char *argv[], char *envp[])
{
...
}
[/cpp]
In envp sind dann sämtliche Umgebungsvariablen (wie ja auch windir eine ist) gespeichert, die kann man in einer Schleife durchgehen
-
Deadlef schrieb:
das heisst funktioniert auch mit Linux-Umgebungsvariablen:
ja, getenv auch.. Aber windir wirste dort nicht finden
-
was ist denn char *envp[]) ???? Was kann man damit? Wofür ist das? ist das standard?? sagt es mir!!!! Was wird da drin stehen???
-
DrGreenthumb schrieb:
Deadlef schrieb:
das heisst funktioniert auch mit Linux-Umgebungsvariablen:
ja, getenv auch.. Aber windir wirste dort nicht finden
ach nee...
@***: Du kennst die beiden anderen Parameter? Gut. In envp steht genauso aufbereitet wie in argv die Liste der Umgebungsvariablen. Einziger Unterschied zur Arbeit mit argv ist, dass die Anzahl der Umgebungsvariablen nicht mitgeliefert wird, Du musst also die Parameter ungefähr so durchgehen (Hack hier im Post, deswegen ohne Gewähr)for (int i = 0;envp[i][0];i++) //!= '\0' { if (!strncmp(envp[i], "windir", 6)) //tu was }
Vielleicht ist getenv() ja einfacher, das kenne ich allerdings nicht...
-
getenv liefert nur Umgebungsvariablen, die von der Runtime-Library verarbeitet werden koennen und nicht auf dem Umgebungs-"Segment" fuer einen Prozess definiert wurden.
Daher koennen Variablen vom *env argument faelschliche Daten enthalten.
-
%SystemRoot%\... sollte in deinem Fall funktionieren.