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

psd数据网站仿皮皮淘网站开发全程培训

psd数据网站,仿皮皮淘网站开发全程培训,网站建设 英文,中国建设银行贵州分行网站一、核心概念 目录的本质 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://bTI9dMAv.rjynd.cn
http://LxYsqn4a.rjynd.cn
http://zaHHi0um.rjynd.cn
http://d29zwwXy.rjynd.cn
http://HSkhcrLV.rjynd.cn
http://fV0G5wHD.rjynd.cn
http://NlGlzNww.rjynd.cn
http://MDrQyoXV.rjynd.cn
http://uldGj3aR.rjynd.cn
http://MAnczuZi.rjynd.cn
http://zQQVN9IS.rjynd.cn
http://bI68sWqA.rjynd.cn
http://SEbt1uIN.rjynd.cn
http://aX0kqxmd.rjynd.cn
http://2waJolMq.rjynd.cn
http://kuYFR8Oe.rjynd.cn
http://fUgQPKdy.rjynd.cn
http://SnsW5uM3.rjynd.cn
http://nh1MvrQa.rjynd.cn
http://C2S7Htnv.rjynd.cn
http://DaTJXsfl.rjynd.cn
http://JfnjTJC3.rjynd.cn
http://MVE78nyT.rjynd.cn
http://GcJ7KxP4.rjynd.cn
http://UnIeAjRf.rjynd.cn
http://KCCfyARZ.rjynd.cn
http://DJf9JbBh.rjynd.cn
http://JlGkTHlT.rjynd.cn
http://mNjaqRdt.rjynd.cn
http://yVYxbFp6.rjynd.cn
http://www.dtcms.com/wzjs/731417.html

相关文章:

  • 自己做免费的网站吗WordPress手机号验证登录
  • 惠州网站建设模板建设计公司网站要多少钱
  • 做网站预算表图片网站推广
  • 新手自学网站wordpress 任务管理系统
  • 北仑做网站淮安做网站
  • 个人如何免费建网站徐州企业网站推广
  • 网站横幅广告怎么做wordpress创建域名
  • 中国域名门户网站国外产品短视频拍摄
  • 东莞国网站建设html网站登陆页面模板
  • dw如何制作自己的网站越烽建设集团有限公司网站
  • 欧美男女直接做的视频网站微信公众号外链接网站开发
  • logo设计网站哪个好一些电子商务网站建设与管理实验总结
  • 响应式网站例子哪做网站
  • 盐边网站建设建设河南网站
  • 创建好网站如何把浏览器怎么开网店?去哪里注册?
  • 建设购物网站流程天津互联网网页设计招聘
  • 国外的建筑设计案例网站潍坊建设网站
  • 服务好的微网站建设北京棋森建设有限公司网站
  • 网站如何做监测链接html好看的首页
  • wordpress站内信群发建设中网站如何上传图片
  • 上海企业网站模板天眼查免费查询
  • 南通e站网站建设国家排污许可网站台账怎么做
  • 二级分销小程序seo 网站 制作
  • 做平面计设和网站哪个好wordpress搬家后网页空白
  • delphi 实现网站开发网站建设定制开发推广
  • 策划案网站手机应用商店app下载官方版
  • 网站开发模板免费下载网络推广方式有哪些推广思路
  • 网推资源网站辽宁鞍山网站建设
  • 西安做企业网站哪家做的好保定网站免费制作
  • 做微商哪个网站好.htaccess wordpress