如何阻止iostreams::mapped_file_link创建可执行的txt文件
How to prevent iostreams::mapped_file_sink from creating executable txt files
EDIT:代码示例已损坏,缺少.is_open(),请不要使用它。我有一个很奇怪的问题。我使用boost iostreams,它们工作得很好,但问题是程序创建的文件是可执行的txt文件(我在ubuntu上,msg是:"lol2.txt"是一个可执行的文本文件。")。那么,有没有办法使它成为一个常规的不可执行文件呢。我想更改代码,这样它就不会创建可执行文件,我知道我可以在从终端或Nautilus创建文件后更改文件。顺便说一句,这是我正在使用的代码:
void write_file(const std::string& name,string data)
{
iostreams::mapped_file_params params;
params.new_file_size=data.size();
params.path=name;
iostreams::mapped_file_sink file(params);
memcpy(file.data(),&data[0],data.size());
}
您可以更改进程的文件创建掩码,默认情况下创建不可执行文件:
umask(getumask() & ~(S_IXUSR | S_IXGRP | S_IXOTH));
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 可执行文件C++包括.obj,.lib和.dll吗?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"