Временный файл в C - PullRequest
       1

Временный файл в C

1 голос
/ 24 октября 2011

Я пишу программу, которая выводит файл.Этот файл состоит из двух частей.Вторая часть, однако, вычисляется до первой.Я думал о создании временного файла, записи данных в него.Затем создайте постоянный файл, затем поместите содержимое временного файла в постоянный и удалите этот файл.Я видел некоторые сообщения, что это не работает, и это может вызвать некоторые проблемы у разных компиляторов или что-то в этом роде.

Данные представляют собой кучу chars.Каждые 32 символа должны появляться на другой строке.Я могу сохранить его в связанном списке или что-то в этом роде, но мне не нужно писать связанный список для этого.

У кого-нибудь есть предложения или альтернативные методы?

Ответы [ 2 ]

4 голосов
/ 24 октября 2011

Может быть создан временный файл, хотя некоторые люди говорят, что у них есть проблемы с этим, я лично использовал их без проблем.Использование функций платформы для получения временного файла - лучший вариант.Не думайте, что вы можете писать в c: \ etc на окнах, так как это не всегда возможно.Не думайте, что имя файла связано с тем, что файл уже используется и т. Д. Неправильное использование временных файлов является причиной проблем людей, а не плохих временных файлов

Есть ли причина, по которой вы не можете просто оставить вторую часть в оперативной памяти, покаготовы к первому?В противном случае, вы можете определить размер, необходимый для первой части, и оставить этот раздел файла пустым, чтобы вернуться к заполнению позже.Это исключило бы необходимость временного файла.

1 голос
/ 24 октября 2011

Оба решения, которые вы предлагаете, могут работать. Вы можете вывести промежуточные результаты во временный файл, а затем добавить этот файл в файл, содержащий набор данных, который вы хотите представить первым. Вы также можете хранить свои промежуточные данные в памяти. Правильная структура данных зависит от того, как вы хотите организовать данные.

Как отмечает один из других ответчиков, файлы по своей природе зависят от платформы. Если ваш код будет работать только на одной платформе, это не будет проблемой. Если вам нужно поддерживать несколько платформ, то вам может понадобиться специальный случай некоторых или всех этих платформ, если вы используете временное файловое решение. То, насколько это важно для вас, зависит от того, насколько сложна эта сложность по сравнению со структурированием и хранением ваших данных в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...