Открытая/близкая стратегия/proc псевдофайла

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

5
задан codebox 8 September 2012 в 09:48
поделиться

2 ответа

Это не имеет значения, нет. Однако могут возникнуть проблемы с кэшированием / буферизацией, что означает, что на самом деле лучше (безопаснее всего) делать то, что вы делаете, и каждый раз открывать файл заново. Поскольку вы делаете это очень редко, от этого не добьетесь производительности, поэтому я бы рекомендовал сохранить ваше текущее решение.

3
ответ дан 14 December 2019 в 19:17
поделиться

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

FILE *f = fopen("/proc/net/dev", "r");
setvbuf(f, NULL, _IONBF, 0);
while (running)
{
    rewind(f);
    ...do your reading...
}
2
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: