当我写这样的路径时,我的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;
}
答案 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 版本。