在 C++ 中修改后修复文件权限?

发布于 2025-01-05 16:11:13 字数 173 浏览 1 评论 0原文

我将数据保存在程序的可执行文件中。我将其复制到临时文件,覆盖以“魔术字符串”开头的部分,并将其重命名为原始文件。我知道这是一个坏主意,但我这样做只是为了实验。

到目前为止,一切正常,除了每次替换文件时我必须重新启用“允许作为可执行文件运行”。有哪些方法可以解决这个问题?

附加信息:我使用linux。

I'm saving my data in the executable file of the program. I copy it to a temporary file, overwrite a part starting at a 'magic string' and rename it to the original. I know this is a bad idea, but I'm doing it just for experimenting.

I got everything to work so far, except for that I have to re-enable "Allow running as an executable" each time the file is replaced. What ways are there to solve this?

Additional information: I use linux.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贩梦商人 2025-01-12 16:11:13

如果你想避免使用system(),你可以使用

#include <sys/stat.h>
int chmod(const char *path, mode_t mode);

它在http://linux中记录。 die.net/man/3/chmod

另请参阅:C++ - 如何设置文件权限(跨平台)。

If you want to avoid using system(), you can use

#include <sys/stat.h>
int chmod(const char *path, mode_t mode);

It is documented in http://linux.die.net/man/3/chmod.

See also: C++ - How to set file permissions (cross platform).

完美的未来在梦里 2025-01-12 16:11:13

如果包含 stdlib.h,则可以使用 system("command")

尝试一下:

system("chmod 755 yourExeFile")

If you include stdlib.h, you can use system("command").

Try it:

system("chmod 755 yourExeFile")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文