android - fopen () не сбрасывает файл - PullRequest
2 голосов
/ 19 сентября 2011

Я использую собственную библиотеку, которая создает и записывает в двоичный файл (файл сетевого журнала) с помощью fopen ().Я использую эту библиотеку на Android и Windows.В Android файл не удаляется и не создается при вызове fopen (), в то время как в Windows это так.Это хлопотно, потому что я хочу, чтобы он сбрасывался при каждом запуске программы;как сейчас, регистратор просто накапливает данные, когда я запускаю его на Android.

Я fopen () файл, как это;

#ifdef ANDROID
        pcapFP = fopen("/mnt/sdcard/log.pcap","wb+");
#else 
        pcapFP = fopen("log.pcap","wb+");
#endif

Любая идея, почему файл Android неСброс?

Спасибо

РЕДАКТИРОВАТЬ: Кажется, что если процесс будет убит, то файл будет сброшен при перезапуске приложения, однако.Это не достаточно хорошо, однако, я хочу сбросить его, когда я хочу с * fopen () / fclose (). *

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Стандарт специально указывает в описании функции fopen:

7.19.5.3 / 3
...
w + b или wb + обрезать до нулевой длины или создать двоичный файл для обновления

так что, по-видимому, ваша реализация Android (компилятор и библиотека) не соответствует стандарту: (

Попробуйте разные флаги компиляции, может быть ???

0 голосов
/ 19 сентября 2011

как насчет удаления файла.Вы можете сделать это в любое время, до выхода, до чтения или при запуске приложения.я вижу, вы пометили это как c, что немного смущает меня, потому что Java обычно используется для Android.

File file = new File (ih.getImgPath (id));логическое значение удалено = file.delete ();

LINK 1

LINK 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...