如何解决C深度优先搜索-如何处理可用的文件指针不足?
如果我递归搜索目录并输入所有子目录,我该如何处理深度不超过可用文件指针不足并退出程序的操作(没有分段错误等)?
解决方法
从根本上来说,您有一个排队问题,因此您可能应该使用队列来解决。您拥有受保护的资源-可以一次打开的fds数量;因此,您要以q的一开始-您正在遍历的树的根。 遍历树时,当您发现遇到目录时,将一个具有该名称的项目放在队列中。完成目录后,从队列中取出一个项目并重复上述顺序。
如果变得聪明,则可以有多个线程从此队列中删除项目,并并行处理树。当然,您必须安排以某种合理的方式订购输出。但是请记住,如果只能打开N个fds,则只能在目录中移动M
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。