linux 系统 stat() 方法工作不正常
linux system stat() method is not working correctly
当我这样写路径时,我的 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() 总是 returns -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;
}
如何设置homePath和target?
格式看起来不错:http://linux.die.net/man/2/stat
路径的第一个字符可能无法打印。使用 strcpy。更安全的是,使用 strncpy 和 strncat.
strncpy(path, homePath, sizeof(path));
strncat(path, target, sizeof(path) - strnlen(path, sizeof(path)));
阅读 Linux 手册页了解为什么首选 strn 版本。
当我这样写路径时,我的 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() 总是 returns -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;
}
如何设置homePath和target?
格式看起来不错:http://linux.die.net/man/2/stat
路径的第一个字符可能无法打印。使用 strcpy。更安全的是,使用 strncpy 和 strncat.
strncpy(path, homePath, sizeof(path));
strncat(path, target, sizeof(path) - strnlen(path, sizeof(path)));
阅读 Linux 手册页了解为什么首选 strn 版本。