c ++ - I Windows, hvornår er det nødvendigt at tilføje \ til en mappebane til, at \_stat skal lykkes?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har testet \_stat under VS2010 & VS2002:
biblioteket c: \ system \ findes allerede i min pc.


struct \_stat filestat;
unsigned int n1 = \_stat("c:\system",&filestat);
unsigned int n2 = \_stat("c:\",&filestat);
unsigned int n3 = \_stat("c:\system\",&filestat);
unsigned int n4 = \_stat("c:",&filestat);


Resultat:


n1=0;
n2=0;
n3=0xffffffff;
n4=0xffffffff;


Kan nogen vide hvorfor og hvornår jeg har brug for at sætte '\' i katalogvej?

Bedste reference


På Windows mener jeg, at ingen af disse stat opkald burde have mislykkedes (forudsat at c:system -mappen eksisterer som du siger.


Kør venligst følgende testprogram og rediger dets output i dit spørgsmål:


#include <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

static void test\_stat(const char *path)
{
    struct \_stat st;
    if (\_stat(path, &st))
        printf("\%s: \%s
", path, strerror(errno));
    else
        printf("\%s: success, mode=\%x
", path, st.st\_mode);
}

int main(void)
{
    test\_stat("c:");
    test\_stat("c:\");
    test\_stat("c:\system");
    test\_stat("c:\system\");
    return 0;
}


(Hvis du ikke har forstået, at du kan redigere dit spørgsmål, skal du straks se under den blå 'c ++' tag til en række små grå ord. Disse er knapper. En af dem skal være 'redigere'.)