2014-02-11 3 views
-4

디스크를 새로운 형식 (NTFS 또는 FAT32 아님)으로 포맷하고 디스크에서 읽고 쓸 수있는 프로그램을 작성하고 싶습니다. 이렇게하려면 단일 바이트를 디스크에 쓸 수있는 방법이 있어야합니다. 디스크 (파일을 만들지 않고). 어떻게해야합니까?C에서 디스크에 바이트를 쓰는 방법은 무엇입니까?

편집 : this을 찾았습니다. 하지만 Eli Bendersky가 CreateFile()을 사용하면 첫 번째 대답에서 (투표 순으로 정리할 때) 한 번에 한 바이트 (또는 한 비트)를 쓰지 않겠습니까? 아니면 전체 섹터를 써야합니까? 한 번에.

답변 : 답변이 완료되지 않았기 때문에 답변을 게시 할 수 없으므로 여기에 답장을 보내 드리겠습니다. 이를 수행하는 데 필요한 API 함수가 필요하지 않습니다. 다른 파일을 여는 것처럼 디스크를 열면됩니다. 이와 같이 :

int hFile; 
hFile=open("/dev/sdb",0_RDWR); 
+0

안녕하세요 이삭; 나는이 질문이 부정적인 표를 끌기를 계속할 것이라는 점을 의심합니다. 왜냐하면 주로 어떤 노력의 예를 제공하지 않기 때문입니다 (즉, 어떤 문서를 읽었으며, 어떤 코드를 시도했는지, 그리고 지금까지 무엇을 알고 있는지). 최선의 방법 인터넷 검색을하고 당신이 찾은 것을보아야합니다. –

+0

Windows는 디스크에 대한 직접적인 하드웨어 액세스를 차단합니다. 모든 것에 Win API 호출을 사용하기를 원합니다. 운전사는 작동 할 수있는 하나의 접근법이지만, 이것은 작성하는 데 엄청나게 복잡합니다. 기존 API를 사용해보십시오 : https://www.eldos.com/rawdisk/ 또한이 질문을보십시오. http://stackoverflow.com/a/8808596/656243 –

+0

어떤 API 호출을 사용할 수 있습니까? –

답변

-2

프로그램은 파일 시스템을 우회 할 때 드라이버와 직접 대화해야합니다.

+0

어떻게 드라이버를 작성합니까? 드라이버를위한 특별한 C 함수가 있습니까? –

+0

내 프로그램에서 어떤 드라이버를 사용해야합니까? –

+2

이미 허용 되었습니까? 나는이 대답이 앞으로 어떤 방문객을 도울지를 보지 못한다. – LittleBobbyTables