Перезапись уже созданного файла, как это сделать |
Здравствуйте, гость ( Вход | Регистрация )
Перезапись уже созданного файла, как это сделать |
AD |
17.4.2012, 9:27
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Стоит следующая задачка. Сделать кольцевой файл - наподобие кольцевого буфера. В принципе уже все сделал. Но есть одна проблема: я возвращаю счетчик позиции в начало файла, с помощью lseek перевожу на начало файла, но самой перезаписи не вижу. То есть в итоге получается файл, в котором в начале вижу то, что записал сначала, а перезаписи не вижу. Может ошибка в каких-то флагах? Все делается с помощью POSIX функций.
|
|
|
maint |
17.4.2012, 11:58
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
работает 100 пудов, только проверил. Пишет в начало файла |
|
|
AD |
17.4.2012, 12:24
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
работает 100 пудов, только проверил. Пишет в начало файла По-моему, у функции lseek параметры надо поменять местами. Вот так:
А куда Вы пишете? В файл самой программы что-ли? А.... Понял.... Блин. Ваш код проверил. Работает. У меня чего-то не удается. Буду разбираться!!! Сообщение отредактировал AD - 17.4.2012, 12:13 |
|
|
maint |
17.4.2012, 12:27
Сообщение
#4
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
работает 100 пудов, только проверил. Пишет в начало файла По-моему, у функции lseek параметры надо поменять местами. Вот так:
А куда Вы пишете? В файл самой программы что-ли? А.... Понял.... Блин. Ваш код проверил. Работает. У меня чего-то не удается. Буду разбираться!!! в первый аргумент вызова open(argv[1]). Сама программа argv[0]. Ага параметры ошибся. Но не принципиально. SEEK_SET все равно нулю равен. Проверил еще раз, тот же результат Сообщение отредактировал maint - 17.4.2012, 12:30 |
|
|
AD |
17.4.2012, 13:12
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
в первый аргумент вызова open(argv[1]). Сама программа argv[0]. Ага параметры ошибся. Но не принципиально. SEEK_SET все равно нулю равен. Проверил еще раз, тот же результат Да-да. У меня тоже Ваш код работает. Понятно, что надо разбираться в коде, где-то накосячил! Спасибо. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 5:20 |