перемотка (указатель файла) и затем fwrite. Не переписать ли fwrite содержимое файла? С - PullRequest
0 голосов
/ 11 марта 2011

Я пришел сюда где-то.

Файл записывается, затем выполняется перемотка (fileptr), а затем записывается то, что должно быть записано в начало файла. Но в начале записи, не перезаписать ли содержимое файла? Пожалуйста, сообщите.

1 Ответ

4 голосов
/ 11 марта 2011

Технически, да

Да, файл будет перезаписан, но только для длины записи.Если файл длиннее, в большинстве случаев (обычные файлы в основных системах) оставшиеся байты останутся неизменными.

Однако вам может быть интересно, будет ли файл при этом усечен точка: обычно (в тех же случаях) нет .Технически, усечение определяется реализацией для текстовых файлов и нет для двоичных файлов.

Я был бы удивлен, если бы современная система дажеУ было различие между текстом и двоичным кодом, разумеется, в системах Unix, Linux и BSD этого нет, и я подозреваю, что для некоторых теперь были добавлены определенные слова реализации *1026*, определенные для реализации.списанные ископаемые.Если это так, то в во всех важных случаях оставшиеся байты останутся неизменными и файл не будет усечен.

Теперь файловый API используется для многих вещей, которые не реализуютполный список абстракций файлов: например, UDP-сокеты, терминалы, накопители на магнитной ленте, произвольные контроллеры для оборудования, не предназначенного для хранения, и т. д. Было бы неразумно, по меньшей мере, даже использовать буферизованный пакет ввода-выводаписать такие каналы, но, возможно, они являются причиной пробела в спецификации.

...