2011-09-14 13 views
4

私は、生のタイプを標準出力に出力するのにかなりの時間をかけて苦労しています。私はstdoutに印刷された3つのすべてのバイト/文字を取得する方法を探しています生の型/バイトを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コアが接続APIを追加したいと思っています。その後、rApacheは以下のMattが指摘しているようにsendBinを取り除くことができました。 – Jeff

答えて

8

あなたが「猫」または同様のプログラムを持っているオペレーティングシステムを使用している場合は、私たちはそうのようにstdoutにパイプ任意のデータができます。

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

これは特に、我々ので、いくつかの時間のための課題となっています共通ゲートウェイインターフェイス(CGI)にRを使用したいと考えています。より直接的なルートがあるとは思いませんが、sendBinの機能がどのように実装されているかを確認するには、​​のソースコードを参照してください。

関連する問題