go - 如何在Go执行期间使程序覆盖自身

标签 go overwrite self

我试图编写一个程序,该程序可自行打开,读取并查找某个地址或字节以替换为另一个值。

我的目标是通过在第一次运行时修改一些字节来制作一个了解它是否是第一次运行的程序(我真的不喜欢在程序外部创建文件)

可执行文件可以读取自身,但是在尝试进行自我覆盖时会引发错误(其他进程使用的文件...符合预期)

程序是否可以覆盖自身?如果不是,我是否可以修改仅包含数据的程序的一部分?
还有我不知道的其他简单解决方案吗?

(我同时使用Linux和Windows作为操作系统。)

最佳答案

据我了解,您的目标是找出程序是否以前运行过。您没有提出为什么不创建文件(可以是任何文件)的想法,而是在运行时检查文件是否存在。如果在那里,那么它已经运行了,否则就没有运行。

关于go - 如何在Go执行期间使程序覆盖自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61165093/

相关文章:

go - 反射(reflect)返回值

logging - 谁将日期和时间写入日志文件?

go - 为什么GoLand调试每次都会重建?怎么解决呢?

java - 如何覆盖android Assets ?

ruby - 如何根据位置将一些值写入ruby中的文本文件

python - 为什么我不能将模型方法用作默认值?无论如何,Python/Django 模型中的 self 是什么?

ruby - ruby如何解析lambda或block中的 `self`关键字?

web-services - 我如何将所有 goroutines 的数据/事件发布到 web 服务?

C: vsprintf 覆盖数组

c++ - 将 self 从 Objective C 传递到 C++,不再重新分配