4
루아 (5.1)의 stdout을 콘솔이 아닌 파일로 리디렉션하려고합니다.루아에서 stdout을 파일로 리디렉션하는 방법은 무엇입니까?
데이터의 직렬화 세트를 출력하는 기능을 포함 (I은 수정할 수 없습니다) 타사 API가있다(필자는 인쇄, 인쇄의 일종을지지 않는 기능 모른다())
이 데이터는 화면에 표시하기에는 너무 길기 때문에 스크롤 할 수는 없으므로이 기능의 출력을 콘솔 대신 파일로 보내야합니다.
나는 루아 버전을 패치하거나 조작 할 능력이 없다.
저의 생각은 제대로 문서화되지 않은 io.output() 파일을 사용하여 stdout을 파일로 변경하려고했으나 전혀 작동하지 않는 것 같습니다.
io.output("foo") -- creates file "foo", should set stdout to "foo"?
print("testing. 1, 2, 3") -- should print into "foo", goes to console instead
함수 출력을 파일로 강제 적용하거나 모든 stdout을 콘솔 대신 파일로 강제 변환하는 방법을 아는 사람이 있습니까? TIA.
실제로 변경할 수없는 타사 API 함수에서 실제 인쇄가 이루어 지므로이 방법은 도움이되지 않습니다./(그러나 다르게 알고있는 것이 좋습니다). – cwbit
그것은 다른 질문입니다;). API 함수가 여전히 전역'print' 함수를 사용한다면 (C API에 해당하지 않는), 자신의'print'로 대체 할 수 있습니다 :'print = function (...) io.write (table.concat ({.. .}, "\ t") end'. C API를 사용하고 있다면 리다이렉트하거나 monkeypatch 할 수있는 방법이 없다고 생각합니다. 자세한 내용은이 스레드를보십시오 : http://lua-users.org/lists/ lua-l/2012-11/msg00125.html –
컴퓨터 크래프트에는 fs API가 있습니다. 정확하게 기억하면 다음과 같이 사용합니다 : 'foo = fs.open ("foo", "w")' 'foo .writeLine ("testing. 1, 2, 3")' 'foo.close()' – CHlM3RA