当前位置: 首页 > wzjs >正文

网站域名和密码招代理

网站域名和密码,招代理,北京最新发布信息,wordpress做个SNS一、核心概念 目录的本质 Linux中目录是一种特殊文件,存储当前目录下的文件及子目录信息。根目录为/,所有文件和目录均从根目录开始组织。 目录操作核心函数 打开目录:DIR *opendir(const char *name)读取目录项:struct dirent *…

一、核心概念
  1. 目录的本质

    • Linux中目录是一种特殊文件,存储当前目录下的文件及子目录信息。
    • 根目录为/,所有文件和目录均从根目录开始组织。
  2. 目录操作核心函数

    • 打开目录DIR *opendir(const char *name)
    • 读取目录项struct dirent *readdir(DIR *dir)
    • 关闭目录int closedir(DIR *dir)
    • 创建目录int mkdir(const char *pathname, mode_t mode)
    • 删除空目录int rmdir(const char *dirname)
    • 重命名/删除文件int rename(const char *oldpath, const char *newpath)int remove(const char *pathname)

二、关键数据结构
1. DIR结构体
typedef struct __dirstream DIR;  // 表示目录流,用于操作目录
  • 通过opendir返回的DIR*指针管理目录流。
2. dirent结构体
struct dirent {ino_t d_ino;           // 索引节点号off_t d_off;           // 目录文件中的偏移unsigned short d_reclen; // 记录长度unsigned char d_type;   // 文件类型标识char d_name[256];      // 文件名(最长255字符)
};
  • d_type取值
    enum {DT_UNKNOWN = 0,    // 未知类型DT_FIFO = 1,        // 管道文件DT_CHR = 2,         // 字符设备文件DT_DIR = 4,         // 目录DT_BLK = 6,         // 块设备文件DT_REG = 8,         // 普通文件DT_LNK = 10,        // 符号链接DT_SOCK = 12        // 套接字文件
    };
    

三、目录操作函数详解
1. 遍历目录并输出文件信息
#include <dirent.h>
#include <stdio.h>int main() {DIR *dir = opendir(".");  // 打开当前目录if (!dir) {perror("目录打开失败");return 1;}struct dirent *entry;while ((entry = readdir(dir)) != NULL) {  // 逐项读取目录内容printf("文件名: %-20s 类型: ", entry->d_name);switch (entry->d_type) {case DT_REG:  printf("普通文件\n"); break;case DT_DIR: printf("目录\n"); break;case DT_LNK: printf("符号链接\n"); break;default:      printf("其他类型\n");}}closedir(dir);  // 关闭目录return 0;
}

输出示例

文件名: .                  类型: 目录
文件名: ..                 类型: 目录
文件名: test.txt          类型: 普通文件
文件名: link              类型: 符号链接

2. 创建目录并检查权限
#include <sys/stat.h>
#include <stdio.h>int main() {if (mkdir("new_dir", 0755) == -1) {  // 创建目录,权限为rwxr-xr-xperror("目录创建失败");return 1;}printf("目录创建成功\n");return 0;
}

输出

目录创建成功

四、综合例题

题目:实现类似ls -l的功能,输出目录下文件的详细信息(名称、类型、inode号)。

#include <dirent.h>
#include <stdio.h>
#include <sys/stat.h>int main() {DIR *dir = opendir(".");if (!dir) {perror("目录打开失败");return 1;}struct dirent *entry;struct stat st;while ((entry = readdir(dir)) != NULL) {if (stat(entry->d_name, &st) == -1) {perror("stat失败");continue;}printf("文件名: %-15s Inode: %-8lu 类型: ", entry->d_name, st.st_ino);switch (entry->d_type) {case DT_REG:  printf("普通文件\n"); break;case DT_DIR: printf("目录\n"); break;case DT_LNK: printf("符号链接\n"); break;default:      printf("其他类型\n");}}closedir(dir);return 0;
}

输出示例

文件名: .               Inode: 123456   类型: 目录
文件名: test.txt        Inode: 789012   类型: 普通文件
文件名: link            Inode: 345678   类型: 符号链接

五、常见问题
  1. 目录遍历遗漏readdir不会自动过滤.(当前目录)和..(上级目录),需手动处理。
  2. 文件类型判断d_type可能返回DT_UNKNOWN(如某些文件系统不支持),此时需用stat函数进一步检查。
  3. 权限不足:创建目录时需确保父目录有写权限。

总结

  1. 核心操作:打开、遍历、关闭目录是目录操作的基础,需熟练使用opendirreaddirclosedir
  2. 数据结构dirent结构体提供文件名和类型,结合stat可获取更详细属性(如inode、大小)。
  3. 应用场景
    • 文件管理器开发
    • 批量文件处理(如备份、清理)
    • 系统工具实现(如lsfind

通过结合目录操作函数和文件属性查询,可实现复杂的文件系统管理功能。


文章转载自:

http://DciY3Y36.gmjbp.cn
http://pEPaChSB.gmjbp.cn
http://i3U6j9gc.gmjbp.cn
http://oFN9iXNf.gmjbp.cn
http://iUMe2z4q.gmjbp.cn
http://ErgGTKHK.gmjbp.cn
http://LGp8mdfy.gmjbp.cn
http://zGvlMoVX.gmjbp.cn
http://nW5qZtGl.gmjbp.cn
http://GrMD4h8h.gmjbp.cn
http://BkIeLCpG.gmjbp.cn
http://sQ6Wpc7F.gmjbp.cn
http://8muIMzWD.gmjbp.cn
http://n42XfYmi.gmjbp.cn
http://MpfGyfo3.gmjbp.cn
http://judCnkOj.gmjbp.cn
http://7kicAsWI.gmjbp.cn
http://FPOWFG0l.gmjbp.cn
http://50mxoe21.gmjbp.cn
http://BEEcUkY0.gmjbp.cn
http://yHqNbWwl.gmjbp.cn
http://ZKk5ZtBU.gmjbp.cn
http://MAzA4Sep.gmjbp.cn
http://dLobJNWF.gmjbp.cn
http://IWhUXc4G.gmjbp.cn
http://PhNRIxd9.gmjbp.cn
http://VfyPGLJB.gmjbp.cn
http://m6Zv21bU.gmjbp.cn
http://iakIQdrD.gmjbp.cn
http://T46lZlTd.gmjbp.cn
http://www.dtcms.com/wzjs/637134.html

相关文章:

  • 大连个人做网站做炭化料的网站
  • 易尔通网站建设wordpress怎么样
  • 做网站网页尺寸是多少钱大连甘井子区社区工作者招聘
  • 网站访客qq抓取原理佛山建站模板厂家
  • 广州安全教育平台视频免费优化网站的软件
  • 散热器 东莞网站建设重庆前十装修公司排名
  • 设计网络网站建设电子书网站搭建教程
  • 网站建设与服务技能实训心得体会google play store
  • 网站推广优化c重庆漳州本地企业网站建设服务
  • 长沙建站价格效果图制作多少钱一张
  • 建设公司网站需要什么科目江苏省昆山市网站制作
  • 唐山市城乡建设局网站北京天润建设工程有限公司网站
  • 品牌手机网站开发公司哪家好域名服务器是什么意思
  • 网站拓展关键词怎么做免费的企业名录
  • 网站设计常州益阳市网站建设
  • 网站建设公司找上海站霸水果网站建设规划书
  • 网站该如何做品牌设计 品牌标志设计
  • 做外贸单网上都做的那些网站网站内连接
  • 国家对网站建设补补贴智慧团建学生登录入口手机版
  • 网站建设费分多少期摊销阿里云企业邮箱入口
  • 佛山建设公司网站什么叫网站策划书
  • 网站seo链接购买H5网站整站
  • 在线做头像网站有哪些免费浏览的不良网站
  • 昆山市建设局招投标网站网站搭建教学
  • 青岛公路建设集团有限公司网站怎样建立自己网站难吗
  • 非织梦做的网站能仿吗做网站的论坛
  • 西部数码成品网站后台百安居装修口碑怎么样
  • 电子商务网站平台建设织梦网站选空间
  • 广州企业网站排名网站建设收费标准策划
  • 山西城乡和建设厅网站演员王野天