This question让我在没有遍历其内容的情况下搜索文件中的其他内容(无需使用ifstream或getc等输入内容)。
除文件大小和字符数外,我还可以收集哪些其他信息?我搜索了fseek
,发现我可以使用SEEK_SET
,SEEK_CUR
和SEEK_END
,这只允许我找到文件的结尾,文件的开头和当前指针
为了提出问题,我特别想问:
我问的是Microsoft Windows,而不是Linux。
答案 0 :(得分:3)
这里没有奇迹。前一个问题有一个“快捷方式”,因为文件中的字符数等于它的大小(以字节为单位)(更严格来说 - ansi-text文件被认为是一个字符序列,每个都由一个字节表示)。
答案 1 :(得分:3)
1)否,因为在不可预测的条件下搜索某些内容需要彻底检查内容。考试正在阅读中。当然,您之前可能会收集一些统计信息,但您需要遍历不少于一次的数据。您可以使用其他应用程序隐式执行此操作,但它们也将从最开始到最后遍历您的文件。您可以通过某种方式对文件进行组织,以便以最少的读取操作获取必要的信息,但这完全取决于您的任务,并且没有一般的方法(因为检查整个源结构的任何基本任务)。
2)同样否(见上文)
3)是。尽可能多地(或任务需要)存储在内存中(称为缓存)。例如,使用映射(请参阅MapViewOfFile for Windows和mmap(2)on * nix systems),这使用了一些系统内缓存机制。
答案 2 :(得分:2)
stat
structure包含有关该文件的信息,包括权限,所有权,大小,访问权限和创建日期信息。至于元数据,也许有一个API可以绑定到Windows搜索数据库,可能允许搜索其他条件,例如内容属性(我通常是Linux人员,因此我不知道Windows在这方面提供了什么)。