The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"перемещение по файлу"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"перемещение по файлу" 
Сообщение от BsDr Искать по авторуВ закладки(ok) on 07-Окт-05, 16:43  (MSK)
Привет!!!
Помогите кто-нибудь, чем-нибудь.
Проблема такая: Есть файл, в нем хранится структура, поля которой два лонга.
Надо переодически их азменять, т.е. перезаписывать структуру. Но когда я пытаюсь записать изменненую стуктуру в начало файла она записывается почему-то в конец:

fseek(fp, 0, SEEK_SET);//выставил на 0
printf("ftell: %i\n", ftell(fp)); //печать позиции, на экране 0
fwrite(& tim_buf, 1, sizeof(tim_buf), fp);// запись в файл
printf("ftell: %i\n", ftell(fp)));////печать позиции, на экране 8

Т.е пермещение по файлу как надо, а запись нет и файл все время растет!

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "перемещение по файлу" 
Сообщение от A Искать по авторуВ закладки on 07-Окт-05, 17:02  (MSK)
>fwrite(& tim_buf, sizeof(tim_buf),1, fp);// запись в файл
                   ~~~~~~~~~~~~~~~~~

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "перемещение по файлу" 
Сообщение от BsDr Искать по авторуВ закладки(ok) on 07-Окт-05, 18:28  (MSK)
>>fwrite(& tim_buf, sizeof(tim_buf),1, fp);// запись в файл
Принципиальной разници нет сколько писать: 1 раз по 8 байт или 8 раз по 1 байту;


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "перемещение по файлу" 
Сообщение от A l e x Искать по авторуВ закладки on 09-Окт-05, 00:09  (MSK)
>Надо переодически их азменять, т.е. перезаписывать структуру. Но когда я пытаюсь записать
>изменненую стуктуру в начало файла она записывается почему-то в конец:
>Т.е пермещение по файлу как надо, а запись нет и файл все
>время растет!

Возможно, открываешь файл с флагом "на добавление".


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "перемещение по файлу" 
Сообщение от BsDr Искать по авторуВ закладки(ok) on 10-Окт-05, 10:19  (MSK)
>Возможно, открываешь файл с флагом "на добавление".

Да, открываю на добавление "а+", происходит следующее: если я пытаюсь писать в начало или в середину файла то запись происходит все время в конец,
если я откраваю файл с флагом "r+", то все впорядке: куда надо туда и пишется.
У меня такой вопрос: эта ситуация нормальная? Я почему-то думал что нет разници(для моей задачи) с каким флагом открывать:
"а+" или "r+", ну я имею ввиду на "допись" или на "недопись". Или я ошибаюсь?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "перемещение по файлу" 
Сообщение от A Искать по авторуВ закладки on 10-Окт-05, 11:31  (MSK)
>>Возможно, открываешь файл с флагом "на добавление".
>
>Да, открываю на добавление "а+", происходит следующее: если я пытаюсь писать в
>начало или в середину файла то запись происходит все время в
>конец,
> если я откраваю файл с флагом "r+", то все впорядке: куда
>надо туда и пишется.
>У меня такой вопрос: эта ситуация нормальная? Я почему-то думал что нет
>разници(для моей задачи) с каким флагом открывать:
>"а+" или "r+", ну я имею ввиду на "допись" или на "недопись".
>Или я ошибаюсь?

См. http://www.cplusplus.com/ref/cstdio/fopen.html

Цитата

"a+"
Open a file for reading and appending. All writing operations are done at the end of the file protecting the previous content to be overwritten. You can reposition (fseek, rewind) the pointer to anywhere in the file for reading, but writing operations will move back to the end of file. The file is created if it doesn't exist.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру