C ++ - 修改后修复文件权限

时间:2012-02-15 02:17:42

标签: c++ linux executable file-permissions self-modifying

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

到目前为止,我已经完成了所有工作,除了每次更换文件时我必须重新启用“允许作为可执行文件运行”。有什么方法可以解决这个问题?

其他信息:我使用linux。

2 个答案:

答案 0 :(得分:21)

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

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

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

另请参阅:C++ - How to set file permissions (cross platform)

答案 1 :(得分:6)

如果您加入stdlib.h,则可以使用system("command")

试一试:

system("chmod 755 yourExeFile")