C: Синхронизация двух файловых указателей в одном файле

Мне нужны два файловых указателя (FILE *) действовать рядом друг с другом. Одним из них является применение операций добавления, а другим - чтение и перезапись.

Мне нужно добавить в файл один указатель, чтобы он был распознан другим указателем файла, чтобы другой указатель файла мог как правильно читать, так и перезаписывать эти добавленные данные.

Для синхронизации данных, кажется, что с помощью fflush() на добавляемый файл указатель работает (по крайней мере, для чтения он работает), но это правильный путь для достижения того, что я хочу, и это портативный?

Спасибо.

1 ответ

Решение

Вы должны быть в состоянии сделать это с одним указателем (и, следовательно, не нужно синхронизировать без необходимости). Просто используйте fseek(f, SEEK_END, 0); когда вы хотите добавить в конце. Используйте "rb+", чтобы сделать файл читаемым и доступным для записи.

Пока вы не используете несколько потоков для доступа к файлу, это должно работать нормально.

Другие вопросы по тегам