go - go - 如何让程序在执行期间覆盖自己
问题描述
我试图编写一个程序,它可以自行打开,读取自身并查找某个地址或字节以替换为其他值。
我的目标是通过在第一次运行时修改一些字节来制作一个程序来了解它是否是第一次运行(而且我真的不喜欢在我的程序之外创建文件)
可执行文件可以读取自己,但是当它尝试自我覆盖时会引发错误(其他进程使用的文件......正如预期的那样)
程序有没有办法覆盖自己?如果不是,也许我可以只修改只包含数据的程序的一部分?还有其他我不知道的简单解决方案吗?
(我同时使用 Linux 和 Windows 作为操作系统。)
解决方案
据我了解,您的目标是了解该程序是否以前运行过。不要采用您提出的为什么不创建文件的想法,可以是任何文件,在运行时检查文件是否存在。如果它在那里,那么它已经在否则之前运行。
推荐阅读
- apache-kafka - 使用 --bootstrap-server 创建 Kafka 主题给出超时异常(kafka 版本 2.5)
- visual-studio-2015 - 加载数据库信息失败:SAP Crystal Reports ActiveX Designer
- ruby-on-rails - 表单提交后下拉选择菜单重置为默认选项选择
- php - setcookie() 不设置 cookie
- css - Element UI - VueJS - 在 IOS 上选择输入双击错误
- graph - 查找所有拓扑顺序
- .net-core - Task.IsFaulted 没有在我的 .Net 核心中捕获异常
- parsing - 如何在 CLion 中启用 CPP 文件的解析上下文切换器?
- c++ - 如何使用 open62541 一次使用 OPC-UA 编写多个节点?
- algorithm - 如何在时间 O(log(n)) 处拆分给定节点的 AVL 树?