-
提交学习stat(1)的截图
-
推导出实现stat(1)需要的系统调用,并给出实现stat(1)的伪代码
-
需要的系统调用:readdir() 、closedir()、fstat()、lstat()、fstatat()
-
伪代码
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/stat.h> #include <dirent.h> int main(int argc, char *argv[]) { if (argc < 2) { printf("Usage: %s <filename>\n", argv[0]); return 1; } struct stat stat_info; int lstat_result = lstat(argv[1], &stat_info); if (lstat_result == -1) { printf("Error: 无法获取 %s 的状态信息\n", argv[1]); return 1; } printf("File status for %s:\n", argv[1]); printf(" st_mode: %lu\n", stat_info.st_mode); printf(" st_size: %lu\n", stat_info.st_size); printf(" st_mtime: %lu\n", stat_info.st_mtime); printf(" st_ctime: %lu\n", stat_info.st_ctime); return 0; }
-
-
编写产品代码 mystate.c,提交代码
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/stat.h> #include <dirent.h> int main(int argc, char *argv[]) { if (argc < 2) { printf("Usage: %s <filename>\n", argv[0]); return 1; } struct stat stat_info; int lstat_result = lstat(argv[1], &stat_info); if (lstat_result == -1) { printf("Error: 无法获取 %s 的状态信息\n", argv[1]); return 1; } printf("File status for %s:\n", argv[1]); printf(" st_mode: %lu\n", stat_info.st_mode); printf(" st_size: %lu\n", stat_info.st_size); printf(" st_mtime: %lu\n", stat_info.st_mtime); printf(" st_ctime: %lu\n", stat_info.st_ctime); return 0; }
-
测试代码,mystat 与stat(1)对比,提交截图