crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Перезапись уже созданного файла, как это сделать
AD
  опции профиля:
сообщение 17.4.2012, 9:27
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Стоит следующая задачка. Сделать кольцевой файл - наподобие кольцевого буфера. В принципе уже все сделал. Но есть одна проблема: я возвращаю счетчик позиции в начало файла, с помощью lseek перевожу на начало файла, но самой перезаписи не вижу. То есть в итоге получается файл, в котором в начале вижу то, что записал сначала, а перезаписи не вижу. Может ошибка в каких-то флагах? Все делается с помощью POSIX функций.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
maint
  опции профиля:
сообщение 17.4.2012, 9:39
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(AD @ 17.4.2012, 15:27) *
Стоит следующая задачка. Сделать кольцевой файл - наподобие кольцевого буфера. В принципе уже все сделал. Но есть одна проблема: я возвращаю счетчик позиции в начало файла, с помощью lseek перевожу на начало файла, но самой перезаписи не вижу. То есть в итоге получается файл, в котором в начале вижу то, что записал сначала, а перезаписи не вижу. Может ошибка в каких-то флагах? Все делается с помощью POSIX функций.

с помощью каких POSIX функций ? От функций и флаги зависят
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 17.4.2012, 9:49
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(maint @ 17.4.2012, 10:39) *
с помощью каких POSIX функций ? От функций и флаги зависят

open, close, write, read, lseek
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 17.4.2012, 10:30
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(AD @ 17.4.2012, 15:49) *
Цитата(maint @ 17.4.2012, 10:39) *
с помощью каких POSIX функций ? От функций и флаги зависят

open, close, write, read, lseek

для перезаписи O_RDWR. И проверять код возврата из lseek, как и из write. Может и не было смещения и записи
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 17.4.2012, 10:41
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(maint @ 17.4.2012, 11:30) *
для перезаписи O_RDWR. И проверять код возврата из lseek, как и из write. Может и не было смещения и записи

Блин. Ну я не маленький все же. Уж такие вещи я точно знаю! ;) Конечно, это первое, что проверил! ;) Смещение в файле происходит! ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 12:43