使用 perror 函数打印错误信息,或者检查 errno 变量来获取更多的错误信息。另外,您还可以考虑使用其他的文件系统状态查询函数,如 statvfs 函数,使用c++编码
时间: 2023-11-27 15:50:42 浏览: 203
C++获得文件状态信息的方法
在C++中,可以使用 `std::perror` 函数打印错误信息,该函数的声明在 `<cstdio>` 头文件中。
```c++
#include <cstdio>
#include <cstring>
#include <cerrno>
int main() {
FILE* file = fopen("non-existing-file.txt", "r");
if (file == nullptr) {
std::perror("Error opening file");
}
return 0;
}
```
该程序尝试打开一个不存在的文件,并在失败时使用 `std::perror` 打印错误信息。
如果您想获取更多的错误信息,可以检查 `errno` 变量,该变量在 `<cerrno>` 头文件中声明。例如:
```c++
#include <cstdio>
#include <cstring>
#include <cerrno>
int main() {
FILE* file = fopen("non-existing-file.txt", "r");
if (file == nullptr) {
std::perror("Error opening file");
std::fprintf(stderr, "Error code: %d\n", errno);
}
return 0;
}
```
在这个例子中,我们还打印了 `errno` 的值,以获取更具体的错误信息。
另外,您还可以考虑使用其他的文件系统状态查询函数,如 `statvfs` 函数。该函数在 `<sys/statvfs.h>` 头文件中声明。例如:
```c++
#include <cstdio>
#include <cstring>
#include <cerrno>
#include <sys/statvfs.h>
int main() {
struct statvfs fs_info;
if (statvfs("/", &fs_info) != 0) {
std::perror("Error querying file system information");
}
else {
std::printf("File system block size: %lu\n", fs_info.f_frsize);
}
return 0;
}
```
在这个例子中,我们使用 `statvfs` 函数查询根目录所在的文件系统信息,并打印文件系统块大小。
阅读全文