user-0 提问: 用c对文件指定内容进行扫描提取特定内容  求帮忙

回复:
user: user-0
content: 引用 6 楼 ctrigger的回复:[quote=引用 5 楼 yxj3515001663 的回复:][quote=引用 4 楼 ctrigger的回复:][quote=引用 3 楼 yxj3515001663 的回复:]我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊  man文档中的定义： struct dirent {     ino_t          d_ino;       /* inode number */     off_t          d_off;       /* offset to the next dirent */     unsigned short d_reclen;    /* length of this record */     unsigned char  d_type;      /* type of file; not supported                                    by all file system types */     char           d_name[256]; /* filename */ };[/quote] 这不是系统定义的结构体吗[/quote]  d_type 注释中，就是有些文件系统不支持。我的windows和fedora系统都有。[/quote] 要是不支持的话就用不了吗？还是说可以定义使用

user: user-0
content: 引用 6 楼 ctrigger的回复:[quote=引用 5 楼 yxj3515001663 的回复:][quote=引用 4 楼 ctrigger的回复:][quote=引用 3 楼 yxj3515001663 的回复:]我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊  man文档中的定义： struct dirent {     ino_t          d_ino;       /* inode number */     off_t          d_off;       /* offset to the next dirent */     unsigned short d_reclen;    /* length of this record */     unsigned char  d_type;      /* type of file; not supported                                    by all file system types */     char           d_name[256]; /* filename */ };[/quote] 这不是系统定义的结构体吗[/quote]  d_type 注释中，就是有些文件系统不支持。我的windows和fedora系统都有。[/quote] 不支持的话就没办法使用了吗

user: user-1
content: 引用 5 楼 yxj3515001663 的回复:[quote=引用 4 楼 ctrigger的回复:][quote=引用 3 楼 yxj3515001663 的回复:]我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊  man文档中的定义： struct dirent {     ino_t          d_ino;       /* inode number */     off_t          d_off;       /* offset to the next dirent */     unsigned short d_reclen;    /* length of this record */     unsigned char  d_type;      /* type of file; not supported                                    by all file system types */     char           d_name[256]; /* filename */ };[/quote] 这不是系统定义的结构体吗[/quote]  d_type 注释中，就是有些文件系统不支持。我的windows和fedora系统都有。

user: user-0
content: 引用 4 楼 ctrigger的回复:[quote=引用 3 楼 yxj3515001663 的回复:]我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊  man文档中的定义： struct dirent {     ino_t          d_ino;       /* inode number */     off_t          d_off;       /* offset to the next dirent */     unsigned short d_reclen;    /* length of this record */     unsigned char  d_type;      /* type of file; not supported                                    by all file system types */     char           d_name[256]; /* filename */ };[/quote] 这不是系统定义的结构体吗

user: user-1
content: 引用 3 楼 yxj3515001663 的回复:我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊  man文档中的定义： struct dirent {     ino_t          d_ino;       /* inode number */     off_t          d_off;       /* offset to the next dirent */     unsigned short d_reclen;    /* length of this record */     unsigned char  d_type;      /* type of file; not supported                                    by all file system types */     char           d_name[256]; /* filename */ };

user: user-0
content: 引用 2 楼 ctrigger的回复:解决思路，仅供参考： 1. opendir 2. 循环readdir     a. 普通文件，比较文件名，扫描指定字符串 strstr函数。     c. 其他类型文件，忽略，continue。     b. 目录，递归opendir。 3. 结束 我有个问题，为什么我c语言打程序的时候声明结构体struct dirent里面没有d_type啊

user: user-1
content: 解决思路，仅供参考： 1. opendir 2. 循环readdir     a. 普通文件，比较文件名，扫描指定字符串 strstr函数。     c. 其他类型文件，忽略，continue。     b. 目录，递归opendir。 3. 结束

user: user-2
content: 首先要确定能访问这个文件，如果文件被程序互斥性打开，那后来的程序是打不开这个文件的。