Black_Hole [?]
где написано что код объявленный через переменную, правильнее чистого кода
Попробую объяснить, как сам понимаю...
Что значит открыть файл? Это значит создать поток ввода-вывода. Один файл можно "открыть" несколько раз, т.е. создать несколько потоков и каждый из них использовать для работы с содержимым файла (чтение, запись, добавление, удаление и т.д.). Следовательно в конце нужно закрыть все созданные потоки. Пример
Каждая функция FileOpen() создаёт свой поток и возвращает так называемый файловый дескриптор. Другими словами - номер потока. В примере для одного файла создано три потока с номерами 1, 2 и 3. И каждый поток используется для записи. В конце все потоки закрываются. И, чтобы не запутаться в потоках, используют переменные для их хранения.
Здесь для файла создано четыре разных потока: первые два использованы для записи и НЕ закрыты, а последние два закрыты не будучи использованными.
Здесь дескриптор файла (единица) совпадает со значением, возвращаемым функцией записи (тоже единица). Поэтому файл закрывается.
Black_Hole, для создания командного файла не нужно открывать его в бинарном режиме (16). Достаточно использовать функцию FileWrite(), как советуют
ivsatel и
BIOS, с полным путём к файлу. Эта функция создаст файл, откроет его, запишет данные и закроет. Никаких проблем с дескрипторами.