2012-06-22 11 views
11

Một số khả năng bao gồm:Trong R, cách kinh điển để phát hiện nếu hệ điều hành là 64-bit là gì?

Sys.info()["machine"] == "x86-64" 
.Platform$r_arch == "x64" 
version$arch == "x86_64" 

Có lý do nào để thích một phương pháp hơn người khác?

liên quan: detecting operating system in R (e.g. for adaptive .Rprofile files)

+0

Tôi tin rằng những người sẽ tất cả thất bại cho ít nhất là kiến ​​trúc PowerPC và Itanium 64 bit. 'grep'ing' .Platform $ r_arch' cho "64" có thể làm việc cho hầu hết các kiến ​​trúc, nhưng tại sao lại bận tâm khi DWin cung cấp câu trả lời. – jthetzel

+0

Có lẽ cũng sẽ không thành công cho Solaris. –

Trả lời

12

Trên thực tế không ai trong số các phương pháp đó sẽ là kinh điển, mà tôi làm để có nghĩa là "điều gì sẽ Brian Ripley nói". Hãy thử điều này:

?.Machine 

sizeof.pointer ........ số byte trong loại C SEXP. Sẽ có 4 trên 32-bit được xây dựng và 8 trên 64-bit bản xây dựng của R.

64bit <- .Machine$sizeof.pointer == 8 
64bit 
#[1] TRUE 

Đối với đề cử của bạn chỉ có một trong số họ trả về TRUE trên máy tính của tôi:

> Sys.info()["machine"] == "x86-64" 
machine 
    FALSE 
> .Platform$r_arch == "x64" 
[1] FALSE 
> version$arch == "x86_64" 
[1] TRUE