Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中修改后修复文件权限+;?_C++_Linux_Executable_File Permissions_Self Modifying - Fatal编程技术网

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。这是你的工作!也很简单。也许在上面加上分号?:)