Ваш код говорит:
Пока [fielAttributes fileSize] меньше чем fs, продолжайте вызывать freopen (...).
Это действительно то, чтоты хочешь?Я предполагаю, что вы могли бы предпочесть что-то вроде:
if ([fileAttributes fileSize] < fs) {
file = freopen([FILEPATH cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}
fwrite(file, "something to log");
fclose(file);
Конечно, это тоже не здорово, потому что он записывает информацию журнала для символов fs и затем останавливается.Вместо этого кажется, что вы, вероятно, хотите сохранить символы LAST fs.Если это так, то прагматичным подходом было бы просто скопировать последние символы fs в новый файл и время от времени удалять старый.