3.获取“姓名.txt”文件的文3.获取“姓名.txt”文件的文件类型、用户id、文件长度、最后访问时间和最后修改时间。件类型、用户id、文件长度、最后访问时间和最后修改时间。linux虚拟机下C语言用stat函数写
时间: 2024-11-06 07:14:17 浏览: 7
在Linux虚拟机下的C语言环境中,可以使用`stat()`函数来获取文件的信息,包括文件类型(通常称为"file mode")、用户ID、文件大小(即文件长度)、最后访问时间和最后修改时间。以下是使用`stat()`函数获取这些信息的基本步骤:
```c
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
int main() {
char filename[] = "姓名.txt";
struct stat file_info;
// 使用stat()函数获取文件信息
if (stat(filename, &file_info) != 0) {
perror("Failed to get file info");
return 1;
}
// 文件类型(mode)
printf("File type/mode: %o\n", file_info.st_mode);
// 用户ID
printf("User ID: %d\n", file_info.st_uid);
// 文件长度(以字节为单位)
printf("File size: %lu bytes\n", file_info.st_size);
// 最后访问时间(struct timespec结构,需要转换)
struct timespec atime;
clock_gettime(CLOCK_REALTIME, &atime);
atime.tv_sec -= file_info.st_atime; // 时间戳减去文件的访问时间
printf("Last access time: %ld seconds ago\n", atime.tv_sec);
// 最后修改时间
struct timespec mtime;
clock_gettime(CLOCK_REALTIME, &mtime);
mtime.tv_sec -= file_info.st_mtime;
printf("Last modification time: %ld seconds ago\n", mtime.tv_sec);
return 0;
}
```
注意,这个例子假设你的程序有权限访问文件,并且你需要手动将`st_atime`和`st_mtime`转换为人类可读的时间。在实际应用中,你可能还需要包含适当的错误处理和日期格式化代码。
阅读全文