Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C查找重复文件_C_Linux_Filesystems_Hashtable - Fatal编程技术网

使用C查找重复文件

使用C查找重复文件,c,linux,filesystems,hashtable,C,Linux,Filesystems,Hashtable,我试图编写一个C程序,搜索重复的文件,对文件进行分组,然后返回所有重复的文件。用户可以从命令行(argc)输入文件路径或指定要检查使用的文件。我将使用stat()遍历系统,我知道我需要使用哈希表来存储文件。但是,我有点不知所措,不知道该怎么做才能真正检查文件是否重复 我知道已经有一些课程可以为你做这些,但这是一个我需要完成的学术练习。我不是在寻找编码答案,只是关于我应该如何着手解决问题的更高层次的答案。任何反馈都是非常感谢的,包括我上面列出的建议以外的任何建议(同样,我必须从头开始编写这个程序)

我试图编写一个C程序,搜索重复的文件,对文件进行分组,然后返回所有重复的文件。用户可以从命令行(argc)输入文件路径或指定要检查使用的文件。我将使用stat()遍历系统,我知道我需要使用哈希表来存储文件。但是,我有点不知所措,不知道该怎么做才能真正检查文件是否重复

我知道已经有一些课程可以为你做这些,但这是一个我需要完成的学术练习。我不是在寻找编码答案,只是关于我应该如何着手解决问题的更高层次的答案。任何反馈都是非常感谢的,包括我上面列出的建议以外的任何建议(同样,我必须从头开始编写这个程序)


谢谢。

我有点困惑。你打算用哈希表做什么?这是一项具体要求吗?您是否正在考虑使用加密哈希函数对文件内容进行哈希处理?请说明您目前的研究/调试工作。请先阅读第页。@DavidSchwartz,我正计划使用哈希表来存储重复的文件,这样我就可以访问这些文件并将其输出。这不是一个具体的要求,只是讲师的建议。从阅读MD5和SHA1之类的函数开始。是的,@DavidSchwartz的建议是正确的。与显式比较文件的类似diff的程序不同,只需获取每个文件的md5哈希,对哈希字符串列表进行排序(携带相应的文件路径/名称),然后在排序后的列表中查找md5[i+1]=md5[i]。如果你必须自己从头开始编程,那么md5散列有点冗长,所以如果只是为了练习,也许一个更简单的散列就可以了。