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

东莞响应式网站哪家好淘宝详情页设计模板

东莞响应式网站哪家好,淘宝详情页设计模板,怎样做企业网站宣传,超级搜索引擎一、核心概念 目录的本质 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://www.dtcms.com/a/479315.html

相关文章:

  • 站长之家ping检测易语言怎么用网站做背景音乐
  • phpcmsv9手机网站企业网站托管公司
  • 说一下数据库中的NULL
  • 游戏怎么做充值网站网站开发好后要做什么
  • 基于PostGIS的相邻图形方位计算,东南西北相邻计算
  • FPGA强化-串口RS485
  • 2025深圳国际传感器技术与应用展览会效果如何,有啥亮点?
  • 房产交易网站建设策划案微信网站开发技术
  • 网站域名续费怎么做网站 配色方案
  • LSTM自然语言处理情感分析项目(三)定义模型结构与模型训练评估测试
  • STM32MP1开发流程
  • 利用小偷程序做网站中国工程建设交易信息网站
  • 上海做网站公司qinmoo企业网站推广可以选择哪些方法
  • 怎么配置网站服务器网站联盟名词解释
  • 做网站需要学啥中国网站用Cn域名
  • 企业网站优化推广方法个人性质的网站
  • 美食网站建设宠物网站项目
  • 青岛做网站服务商活动网页怎么做
  • Rokid YodaOS-Master 空间渲染技术深度解析:双目立体显示与光照模拟的实现逻辑
  • ups国际快递网站建设小说网站的网编具体做哪些工作
  • 英孚教育Write Spark青少儿创新写作征集活动正式启动
  • 润商网站建设服务抖音带运营3种合作方式
  • GESP等级认证C++三级17-位运算5-2
  • 济南做网站的公司成都市建设二维码检测网站
  • 基于MATLAB的FY-3B MWRI数据处理
  • 2025年优化算法:多策略改进蛇优化算法( Improved Snake Optimizer,ISO)
  • 苹果软件混淆与 iOS 应用加固白皮书,IPA 文件加密、反编译防护与无源码混淆方案全解析
  • wordpress 建网站视频深圳网络推广
  • 做购物网站支付需要怎么做关于建筑工程的网站
  • 网站做多长时间才会逐渐成功网站定制开发一般多久