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

RPF*_*ltz 4 c++ linux executable file-permissions self-modifying

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

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

附加信息:我使用linux.

小智 21

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

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

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

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


Beh*_*ari 6

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

试试吧:

system("chmod 755 yourExeFile")
Run Code Online (Sandbox Code Playgroud)