Ist der GEMDOS-Bug, dass Pfadangaben keine doppelten Backslashes enthalten dürfen, bekannt? Ich habe nirgendwo etwas darüber finden können. Wenn versucht wird, mit Fopen eine Datei zu öffnen, und in der Pfadangabe doppelte Backslashes verwendet werden, wird diese Datei nicht gefunden und Fopen liefert EFILNF zurück.
Dabei scheint es egal zu sein, an welcher Stelle im Pfad bzw. bei welcher Verzeichnisbaumtiefe der doppelte Backslash vorkommt.
Getestet habe ich das ganze mit Hatari und TOS 3.06, 2.06, 1.04 und KAOS (14121990) sowie auf meinem MegaSTE mit TOS 2.06. Im Emulator tritt der Fehler übrigens nicht bei GEMDOS-Laufwerken auf, sondern nur bei Festplatten- (und vermutlich Disketten-) Images.
Hier ein kleines Beispiel in GFA-Basic:
path$="C:\\NEWDESK.INF"+CHR$(0)
pathaddr%=VARPTR(path$)
handle%=GEMDOS(61,L:pathaddr%,0)
IF handle%<0
PRINT "Fehler ";handle%
ELSE
VOID GEMDOS(62,handle%)
ENDIF
Passend dazu liefert fopen() in C natürlich einen NULL-Pointer:
#include <stdio.h>
#include <errno.h>
int main()
{
FILE *fp = fopen("C:\\\\NEWDESK.INF", "r");
if (fp == NULL) {
printf("Fehler %d\n", errno);
} else {
fclose(fp);
}
return 0;
}