自己建网站怎样建,帮别人建设网站多少利润,wordpress 图片放在哪里,运行时间 wordpress注意文件的名字、路径是如何输入的。
函数opendir打开目录#xff0c;struct dirent#xff0c;struct stat这些结构体的含义。 readdir()函数是一个用于读取目录内容的系统调用或库函数#xff0c;在类Unix操作系统中#xff08;如Linux#xff09;广泛使用。它用于遍历…注意文件的名字、路径是如何输入的。
函数opendir打开目录struct direntstruct stat这些结构体的含义。 readdir()函数是一个用于读取目录内容的系统调用或库函数在类Unix操作系统中如Linux广泛使用。它用于遍历目录并逐个获取目录中的条目文件和子目录。 lstat和stat是用于获取文件信息的系统调用主要在处理符号链接时存在差异。以下是它们之间的主要区别
1. 处理符号链接 lstat当使用lstat函数获取一个符号链接的信息时它返回的是符号链接本身的信息而不是链接所指向文件的信息。这使得你能够查看链接本身的属性而不用跟随链接指向的文件。 stat当使用stat函数获取一个符号链接的信息时它会自动跟随链接返回链接指向的文件的信息而不是链接本身的信息。
2. 跟随链接 lstat对于符号链接lstat不会自动跟随链接它会返回链接本身的属性包括链接指向的路径。 stat对于符号链接stat会自动跟随链接返回链接指向的文件的属性。 对于符号链接lstat返回了链接本身的信息而stat返回了链接指向的文件的信息。
/*
* 文件名称stat.c
* 创 建 者WM
* 创建日期2023年08月24日
* 描 述文件目录下除了隐藏文件查看
*/
#include stdio.h
#include sys/types.h
#includesys/stat.h
#includeunistd.h
#includestring.h
#includepwd.h
#includegrp.h
#includetime.h
#includedirent.h
int main(int argc, char *argv[])
{ char path[100]{0};if(2!argc){printf(error\n);return -1;}DIR * dirpopendir(argv[1]);//获取所有的目录下的文件名struct dirent *a;//接收strcpy(path,argv[1]);while (NULL!(areaddir(dirp)))//从第一个文件名开始遍历到最后。{struct stat st;strcpy(path,argv[1]);strcat(path,/);strcat(path,a-d_name);if(a-d_name[0].)//去除隐藏文件continue;lstat(path,st);//链接文件读取if(S_ISREG(st.st_mode))//判断文件类型printf(-);else if (S_ISDIR(st.st_mode))printf(d);else if(S_ISLNK(st.st_mode))printf(l);for ( int i8; i 0; i-3)//查看文件的权限{if(st.st_mode 1i)printf(r);elseprintf(-);if(st.st_mode1(i-1))printf(w);elseprintf(-);if(st.st_mode1(i-2))printf(x);elseprintf(-);}//链接数printf( %ld,st.st_nlink);//用户名struct passwd *pwgetpwuid(st.st_uid);printf( %s ,pw-pw_name);//用户组名struct group *gr getgrgid(st.st_gid);printf( %s,gr-gr_name);//大小printf( %ld,st.st_size);//去除换行char arr[100]{0};strcpy(arr,ctime(st.st_mtime));if(arr[strlen(arr)-1]\n)arr[strlen(arr)-1]\0;printf( %s ,arr);printf( %s ,a-d_name);puts();}return 0;
}