2009-11-11 11 views
2

C 프로그램에서 드라이브의 하드웨어 정보를 어떻게 읽을 수 있습니까? (즉, 드라이브가 SSD인지 기계식 디스크인지 확인하십시오.)C 언어를 사용하여 저장 장치 유형 (SSD 드라이브 또는 HHD. 기계식 드라이브)을 확인하는 방법

+0

는 "문자"가 무엇을 의미합니까 : 리눅스의 경우, 예를 들어, 당신은 sysfs를 통해 정보를 얻을 수 있습니까? 드라이브 문자? – Tim

+0

@ 팀 : SSD에 드라이브 문자 'D'가 있고 일반 HDD가 드라이브 문자 'E'인 경우, "C"를 통해 어떤 드라이브 문자를 사용하고 있는지 확인할 수 있습니다. Pun은 의도하지 않았습니다. : P –

+0

나는 비스타 이후부터 항상 부팅 드라이브 C를 만들 것이라고 생각한다. 나는 듀얼 부팅을 가지고 있었고, 윈도우즈 OSes는 그들의 기본 드라이브가 C.라고 생각했다. –

답변

-1

win32 라이브러리의 GetDriveType 메소드를 사용할 수 있으며, 그런 식으로 구분하거나 GetVolumeInformation을 사용하여 시도해 볼 수 있습니다 라벨에서.

+0

'내 애플 리케이션 어쩌면 어떤 호스트에서 실행할 수 있습니다, 그 레이블이 될지 모르겠다 ... 그래서 나는 생각 레이블이 적합하다고 생각합니다 –

+0

그 기능은 드라이브가 SSD인지 여부를보고하지 않습니다. –

1

기능을 확인하기 위해 읽기/쓰기 테스트를 고려한 적이 있습니까?

+0

아니, 내 응용 프로그램을 설치할 때, 나는 모든 드라이브를 확인합니다, 하나의 SSD가 있다면, 다른 방법으로 실행 중입니다 ... –

-2

이 추측은 길지만 나는 더 나은 것을 찾을 수 없습니다. 장치의 식별 구조에서 음향 관리를 지원하는지 확인하십시오. 오래된 디스크 드라이브는 그렇지 않았지만, 아마도 가장 현대적인 디스크 드라이브는 그렇습니다. 물론 SSD는 음향 관리가 필요하지 않지만 디스크 드라이브 인 척하지 않고 그들이 말하지 않기를 희망합니다.

+0

이것은 작동하지 않을 것입니다. Seagate는 현대적인 기존 드라이브에서 음향 관리 기능을 떨어 뜨 렸습니다. – ChrisInEdmonton

15

SSD는 자신을 비 회전식으로 식별해야합니다.

cat /sys/block/sda/queue/rotational 

는 0을 반환하는 경우, 당신은 SSD가 ...

+0

만약 내가 이것에게 1000 개의 upvotes를 줄 수 있다면, 나는 그렇게 할 것이다. 이것은 내가 찾고 있었던 바로 그 것이다. 감사! – Handyman5

+0

신뢰할 수 없습니다. 일부 드라이브는이 값을 사용합니다. 또한 HDD와 SSD 모두 하이브리드 드라이브는 어떻습니까? – Volomike

+0

음, @volomike, 나는 물었다. 그는 특히 SDD 또는 HDD를 말했습니다. 운전자가 그렇지 않은 경우 제조업체의 문제이며 Linus Tornvalds조차도 아무도이를 (Linus가 공개적으로 불평하고 영향을 미칠 수 있다는 점만 제외하면) 도움을 줄 수 있습니다 ... – pan1nx