我已经使用RDCOMClient与供应商软件进行了一段时间的交互。在大多数情况下,它运作良好。然而,最近,我需要遍历许多操作(几百个)。在RDCOM.err文件增长到非常大的大小(很容易出现GBs)时,我遇到了问题。这个文件放在C中:没有明显的选项来改变它。有什么方法可以阻止这个输出或为文件指定另一个位置吗?我不需要文件中的任何输出,所以压制它最好。
编辑:我试图在我的脚本中添加一个file.remove,但是R的文件被锁定了。唯一能解除锁的方法就是重新启动R。
谢谢。
发布于 2018-11-08 15:54:44
将权限设置为只读将是我建议的攻击。
一种稍微优雅的方法是编辑src/RUtils.h包中的一行C代码,从\#define errorLog(a,...) fprintf(getErrorFILE(), a, ##__VA_ARGS__); fflush(getErrorFILE());到\#define errorLog(a, ...) {}
但是,我对github上的包进行了一些简单的更新,添加了一个writeErrors()函数,可以用来切换是否写入了错误。这样就可以动态地打开和关闭它。因此,library(RDCOMClient) writeErrors(FALSE)将将错误日志关闭到文件。
发布于 2018-10-23 13:47:39
我在这附近找到了一份工作。我创建了C:\RDCOM.err和C:\RDCOM_server.err文件,并将它们标记为只读文件。我不确定是否有更好的方法来完成这个任务,但是现在我没有日志记录。
https://stackoverflow.com/questions/52948819
复制相似问题