在Windows上,何时需要将\ _追加到_stat的目录路径才能成功?

时间:2017-03-02 01:55:19

标签: c++ windows

我在VS2010&下测试了_stat VS2002: 目录c:\ system \已存在于我的电脑中。

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);

结果:

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

任何人都可以知道为什么以及何时需要放置" \"在目录路径?

1 个答案:

答案 0 :(得分:0)

在Windows上,我认为那些stat调用的 none 应该失败(正如你所说,假设c:\system目录确实存在)。

请运行以下测试程序并将其输出编辑到您的问题中:

#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\n", path, strerror(errno));
    else
        printf("%s: success, mode=%x\n", path, st.st_mode);
}

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

(如果你没有意识到你可以编辑你的问题,请立即在蓝色&#34; c ++&#34;标签下查看一行微小的灰色字。这些是按钮。它们应该是&#34;编辑&#34;。)

相关问题