Некоторое время я использую RDCOMClient для взаимодействия с программным обеспечением поставщика. По большей части он работал нормально. Однако в последнее время у меня возникла необходимость выполнить в цикле множество операций (несколько сотен). У меня возникают проблемы с увеличением размера файла RDCOM.err до очень большого размера (легко GB). Этот файл помещается в C: без видимой возможности изменить это. Есть ли способ подавить этот вывод или указать другое место для файла? Мне не нужен какой-либо вывод в файле, поэтому лучше всего его подавить.

РЕДАКТИРОВАТЬ: Я попытался добавить в свой сценарий file.remove, но R заблокировал файл. Единственный способ снять блокировку - это перезапустить R.

Спасибо.

0
fsumathguy 23 Окт 2018 в 15:12

2 ответа

Лучший ответ

Я предлагал установить разрешения только на чтение.
Чуть более элегантный подход - отредактировать одну строку кода C в пакете в src / RUtils.h из < Код > \ #define errorLog (a, ...) fprintf (getErrorFILE (), a, ## __ VA_ARGS__); fflush ( getErrorFILE ( ) ) ; в < Код > \ #define errorLog (a, ...) {}

Однако я разместил несколько простых обновлений пакета на github, которые добавляют функцию writeErrors (), которую можно использовать для переключения, записываются ли ошибки или нет. Таким образом, это позволяет динамически включать и выключать это. Так < Код > библиотека ( RDCOMClient ) writeErrors ( FALSE ) отключит запись ошибок в файл.

1
Duncan Temple Lang 8 Ноя 2018 в 15:54

Я нашел обходной путь для этого. Я создал файлы C: \ RDCOM.err и C: \ RDCOM_server.err и пометил их оба как доступные только для чтения. Я не уверен, есть ли лучший способ сделать это, но пока я работаю без регистрации.

0
fsumathguy 23 Окт 2018 в 13:47
52948819