【问题标题】:how to exclude the running executable C如何排除正在运行的可执行文件 C
【发布时间】:2021-03-11 06:48:05
【问题描述】:

我正在编写一个处理目录和文件的程序。该程序将打开所有可访问的目录并读取用户输入初始路径下的所有可访问文件。

问题是如果程序打开了正在运行的可执行文件,我会遇到段错误,我想知道是否有任何方法可以排除正在运行但包含所有其他文件的可执行文件?假设程序知道可执行文件的名称,但不知道可执行文件的位置,也不知道初始路径

【问题讨论】:

  • 为什么你认为打开当前程序的程序文件会导致段错误?
  • 你根本不应该有这个问题,即使它是你正在执行的问题。如果您遇到段错误,则说明您的代码有问题。
  • 您的班级群聊提供了不准确的信息。我建议改用权威文档。
  • 不,不会。正如我所说,如果你遇到了段错误,你的代码就有问题。
  • 只要你打开它只是为了阅读。如果您打开它进行写入,则会截断文件并导致错误。

标签: c executable


【解决方案1】:

要解决您的问题,请检查 fopen() 的返回值。如果您无法打开文件,它会返回NULL 并将原因放入errno。您可以使用strerror() 获取错误消息字符串。考虑在循环文件时使用perror() 输出错误消息。

还有其他可能性,例如不处理很长的行,但这是迄今为止最有可能出现的问题。

这不会获得可执行文件,但可以解决您遇到的一般段错误问题,无论如何这是更合理的做法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多