В целом Вы не можете изменить эффективный идентификатор пользователя процесса vi, но можно сделать это:
:w !sudo tee myfile
Вы можете вызвать GetProcessIoCounters , чтобы получить общие данные дискового ввода-вывода для каждого процесса - вам нужно будет отслеживать дельты и преобразовывать скорость самостоятельно.
Этот API сообщит вам общее количество операций ввода-вывода, а также общее количество байтов.
WMI может это сделать, если вы периодически снимаете его, чтобы получить дифференциальную статистику для некоторого «недавнего» отрезка времени. В этом сообщении представлено странно смешанное решение: VBScript считывает информацию из WMI, а Perl постоянно отображает информацию в консоли Windows. Несмотря на странное сочетание языков, я думаю, что это хороший пример того, как получить нужную информацию (конечно, ее можно будет перекодировать на C ++).