linux系统stat()方法无法正常工作

时间:2015-05-23 17:07:37

标签: linux string system stat strcat

当我写这样的路径时,我的stat()正在工作。

char homePath[] = "../../usr/http/";

if(stat("usr/bin",&file_info) == -1)
{
    strcat(sendMessage, path);
    strcat(sendMessage, "\n\nHTTP/1.1 400 Not Found\n");
    return 0;
}

但下面的代码无效。 stat()始终返回-1。 我认为strcat是个问题。但是当我检查合并的路径字符串时,似乎没问题。请让我知道如何解决它。

    strcat(path, homePath);
    strcat(path, target);


    if(stat(path,&file_info) == -1)
    {
        strcat(sendMessage, path);
        strcat(sendMessage, "\n\nHTTP/1.1 400 Not Found\n");
        return 0;
    }

2 个答案:

答案 0 :(得分:0)

如何设置homePath和target?

格式化看起来很好:http://linux.die.net/man/2/stat

答案 1 :(得分:0)

路径的第一个字符可能无法打印。使用 strcpy 。更安全的是,使用 strncpy strncat

strncpy(path, homePath, sizeof(path));
strncat(path, target, sizeof(path) - strnlen(path, sizeof(path)));

阅读Linux手册页,了解为什么首选 strn 版本。