Hi!
Ich habe ein C-Programm mit folgendem Code geschrieben:
#include
#include
int main()
{
printf("Momentanes Laufwerk: %c\n", getdisk()+'A');
setdisk(2);
printf("Jetziges Laufwerk: %c", getdisk()+'A');
return 0;
}
Das Programm liegt in dem Ordner „D:\dm\bin\diskset.exe“ und ich arbeite mit dem Digital Mars Compiler und Windows 8.1. Da ich ein DOS-Programm haben will, kompiliere ich mit folgendem Befehl:
dmc -ms diskset.c
Die Kompilierung läuft fehlerfrei.
Wenn ich das Programm aber ausführe (in der DOSBox, da ich 64 Bit habe), bekomme ich nur folgende Ausgabe:
Momentanes Laufwerk: D
Jetziges Laufwerk: D
Der setdisk(2)-Befehl bewirkt also nichts, obwohl ja eigentlich ausgeben werden müsste, dass ich mich auf Laufwerk C befinde.
Komischerweise funktioniert der Befehl, wenn ich auf Laufwerk A oder B zugreifen will, die auf meinem System aber gar nicht existieren. Der Befehl funktioniert aber auch nicht, wenn ich auf Laufwerk E zugreifen will, das es aber eigentlich gibt.
Wie kann ich jetzt also doch auf Laufwerk C oder E zugreifen?
Über eine hilfreiche Antwort wäre ich sehr dankbar.
Gruß,
nano99