我正在编写一个处理目录和文件的程序。该程序将打开所有可访问的目录,并在用户输入的初始路径下读取所有可访问的文件。
问题是程序是否打开了正在运行的可执行文件,我会遇到段错误,我想知道是否有什么方法可以排除正在运行的可执行文件但包括所有其他文件?给定条件,程序知道可执行文件的名称,但不知道可执行文件在哪里,也不知道初始路径
要解决你的问题,请检查的返回值fopen()
。如果你无法打开文件,它将返回NULL
并将原因放入errno
。你可以使用来获取错误消息字符串strerror()
。perror()
遍历文件时,请考虑使用输出错误消息。
还有其他可能性,例如不处理很长的线,但这是迄今为止最可能出现的问题。
这不会获得可执行文件,但可以解决你遇到的一般段错误问题,无论如何这是一件更合理的事情。