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

东莞响应式网站哪家好架设网站开发环境

东莞响应式网站哪家好,架设网站开发环境,郑州设计师网站,wordpress英文仿站一、核心概念 目录的本质 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/618278.html

相关文章:

  • 类似淘宝网站建设有哪些模板wordpress文章图片全屏浏览
  • 技术演进中的开发沉思-194 JavaScript: Prototype 框架
  • Windows MongoDB 安装与配置指南
  • Kafka客户端整合
  • 购物网站建设方案手机建立网站的软件
  • 力扣hot100----1day
  • 二叉树的前序遍历解题思路
  • python手写数字识别计分系统+CNN模型+YOLOv5模型 深度学习 计算机毕业设计(建议收藏)✅
  • 网站服务器租赁价格上海低价网站建设
  • 基于Python房价预测系统 数据分析 Flask框架 爬虫 随机森林回归预测模型、链家二手房 可视化大屏 大数据毕业设计(附源码)✅
  • linux服务-tomcat原理与安装
  • Kotlinx.serialization 对多态对象(sealed class )支持更好用
  • ArkTS接口与泛型在HarmonyOS应用开发中的深度应用
  • 4.4 跨越文本边界!多模态Agent开发实战,视觉+语言融合的新可能
  • 【数据结构】从零开始认识B树 --- 高效外查找的数据结构
  • 东莞seo网站排名优化建立外贸网站多少钱
  • 有没有什么做地堆的网站wordpress 文章摘要字数
  • stateflow和shareflow的区别
  • Qt QLibrary程序在运行时加载外部库
  • 电线电缆做销售哪个网站好海南哪家公司做网站做的好
  • 做it题的网站知名网站欣赏
  • 番禺做网站哪家强网站定位方案
  • 当AI学会叠衣服,我们才会真正需要它
  • Python中的输出函数
  • flash网站制作下载网站可以备案先提交类别后来改么
  • Maya 集成 pycharm(下载devkit、设置python运行环境、安装mayacharm插件、设置debug的配置)
  • AI工具在CTF中的战术应用
  • 乐清做网站建设行业管理信息系统官网
  • Rust 异步编程深度解析:从 Future 到运行时
  • Streaming ELT with Flink CDC · OceanBase Sink