C++ 在C+中修改后修复文件权限+;?
我正在将数据保存在程序的可执行文件中。我将其复制到一个临时文件中,覆盖一个以“神奇字符串”开头的部分,并将其重命名为原始文件。我知道这是个坏主意,但我只是为了试验 到目前为止,我已经完成了所有工作,除了每次替换文件时都必须重新启用“允许作为可执行文件运行”。有什么办法可以解决这个问题C++ 在C+中修改后修复文件权限+;?,c++,linux,executable,file-permissions,self-modifying,C++,Linux,Executable,File Permissions,Self Modifying,我正在将数据保存在程序的可执行文件中。我将其复制到一个临时文件中,覆盖一个以“神奇字符串”开头的部分,并将其重命名为原始文件。我知道这是个坏主意,但我只是为了试验 到目前为止,我已经完成了所有工作,除了每次替换文件时都必须重新启用“允许作为可执行文件运行”。有什么办法可以解决这个问题 附加信息:我使用linux 如果包含stdlib.h,则可以使用system(“命令”) 试试看: system("chmod 755 yourExeFile") 如果要避免使用system(),可以使用 #in
附加信息:我使用linux 如果包含
stdlib.h
,则可以使用system(“命令”)
试试看:
system("chmod 755 yourExeFile")
如果要避免使用system(),可以使用
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
#包括
int chmod(常量字符*路径,模式\u t模式);
它记录在
另请参见:。您可以将其添加到make文件或脚本中,具体取决于您所知道的脚本类型,以便在需要时以您认为合适的方式对其进行chmod。这样我就明白了:您正在将可执行映像复制到其他位置,寻找特定模式,修改二进制映像,然后计划再次执行它?这只能以眼泪结束。@Chris我知道;最好将数据存储在其他地方。想象一下如果PC在修改文件时崩溃了会发生什么?你想从C++程序中运行“CHMOD+X”吗?或者更糟的是,如果它不这样做会发生什么。如果你不想被黑客攻击,使用755。这是你的工作!也很简单。也许在上面加上分号?:)