Как раз-таки обфускацию кода автоматизированная программа найдёт достаточно быстро. Я даже рискну предположить, что на AppStore площадках за такие дела вас могут и забанить. Второй метод деобфускации - виртуальное исполнение, сам интерпретатор с такой задачей справиться в состоянии. Для скриптовых языков это даже проще сделать, для С/С++ - не давать право на исполнение кучи/стека кому попало.
Не то чтобы лимит, но в моих тестах создание пустых файлов было действительно намного медленнее ext4, причём на порядки. С другой стороны на практике столько и не нужно.
@bk0011m 100 Тб это копейки. Наверняка есть люди, которые не бекапят такие объёмы, но есть и такие, которые уже бекапят. Впрочем мы же про домашний компьютер говорим? Бекап важных файлов плюс списки неважных (которые можно легко закачать из интернета) и дело в шляпе.
P.S. На XFS уже лет 8. Радует тем, что с трёхтеррабайтного диска не "исчезает" 300 Гб непонятно куда, как с ext4.
Самый нормальный вариант, если приложение не многопоточное, конечно. Теоретически "определённая ситуация" может возникнуть в каком-нибудь параллельном потоке.
Для макоси тоже есть - смотрите на офф сайте. gcc на такие ошибки не всегда ругается, но взять за правило всегда собирать с флагами -Wall -Wextra - не повредит.
P.S. Можно если на то пошло поставить виртуалку с Linux. Для Fedora - ставите valgrind и компилятор (yum install valgrind gcc) и запускаете программу (valgrind ./myprog). Если программа несложная и не зависит от кучи библиотек - собрать её под Linux дело 5 минут.
@TiPo в таком случае вариант с шифрованием вполне подходит. Угробил пользователь сейвы - сам же и виноват. Можно объединить с другим советом - шифруйте и делайте резервную копию. Кому надо - всё равно взломает, но среднестатистический пользователь этим заниматься не станет.
Я не нахожу данный вопрос корректным в принципе. Из формулировки можно подумать, что вы либо хотите простую блокировку файла, либо делаете игру где не хотите давать пользователю редактировать сейвы, либо скрываетесь от спецслужб. Так какую цель преследуете?
Если понимать буквально, то в операционных системах Linux есть возможность выборочно давать права на доступ отдельным приложениям с помощью систем управления доступом (SELinux, AppArmor). Создаётся политика безопасности, согласно которой файл Х читать могут все, а редактировать - только программа У.
Для С++ вектор очень даже подходит. Сделайте массив указателей void, он гарантированно будет вмещать любой примитивный тип данных. Но то что вы хотите сделать - это больше похоже на Си. В С++ используйте вектор, шаблоны и перегрузку операторов.