2011-09-14 4 views
4

원시 형식을 표준 출력으로 출력하는 데 꽤 많은 시간을 할애하고 있습니다. 내가 표준 출력에 인쇄 된 세 바이트/문자를 얻을 수있는 방법을 찾고 있어요원시 형식/바이트를 stdout에 쓰는 방법은 무엇입니까?

r <- as.raw(c(0x41, 0x00, 0x43)) # r = "A\0C" 
cat(rawToChar(r)) # displays warning and skips data after NULL (outputs "A") 
cat(r) # outputs "41 00 43" 
writeBin(r, stdout()) # error: can only write to binary connection 

: 는 여기에 내가 시도하고 원하는 방식으로 작동하지 않은 것입니다. 당신이 '고양이'또는 이와 유사한 프로그램을 가지고 운영 체제를 사용하는 경우

+0

불가능합니다. 기간. – Jeff

+0

'writeBin (r, "/ dev/stdout")' –

+0

가끔 쓰라린 말을 할 수 있습니까?)? R core가 연결 API를 추가하기를 바랍니다. 그런 다음 rApache는 아래에서 지적한 것처럼 MattB가 sendBin을 제거 할 수 있습니다. – Jeff

답변

8

, 우리는 파이프 임의의 데이터는과 같이 표준 출력 할 수 있습니다

con <- pipe("cat", "wb") 
writeBin(as.raw(c(0x41, 0x00, 0x43)), con) 
flush(con) 

이 약간의 시간에 대한 문제가있다, 특히 우리 때문에 공용 게이트웨이 인터페이스 (CGI)에 R을 사용하고 싶습니다. 좀 더 직접적인 경로가 있다고는 생각하지 않지만, sendBin 함수가 구현 된 방법을 보려면 RApache 소스 코드를 살펴보십시오.

관련 문제