2
A
回答
2
"#include <hdreg.h>"
並使用ioctl HDIO_GET_IDENTITY
獲得struct hd_driveid
。
在此結構上,x->sector_bytes
字段是扇區大小。
#include <stdlib.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <cctype>
#include <unistd.h>
int main(){
struct hd_driveid id;
char *dev = "/dev/hdb";
int fd;
fd = open(dev, O_RDONLY|O_NONBLOCK);
if(fd < 0) {
perror("cannot open");
}
if (ioctl(fd, HDIO_GET_IDENTITY, &id) < 0) {
close(fd);
perror("ioctl error");
} else {
close(fd);
printf("Sector size: %du\n", id.sector_bytes);
}
}
相關問題
- 1. 從扇區軟盤
- 2. 瞭解硬盤扇區大小
- 3. CD/DVD引導扇區
- 4. 定製引導扇區虛擬CD
- 5. 從CD加載扇區
- 6. Windows:直接寫入CD-R扇區
- 7. 在linux內核級別,如何讀寫硬盤扇區
- 8. 如何查找linux的socket緩衝區大小
- 9. 可更改USB閃存盤的扇區大小?
- 10. 爲什麼當你有扇區時需要塊,爲什麼塊的大小是扇區大小的倍數?
- 11. 如何將bin文件(512字節)寫入軟盤* .img文件的第一個扇區(扇區0)?
- 12. 如何找到在linux -exec CD/UNIX
- 13. 如何在Linux中查找堆的大小?
- 14. 在Linux上使用C++讀取硬盤扇區
- 15. Linux:確定原始磁盤扇區是否正在使用
- 16. 具有FAT12文件系統的軟盤引導扇區
- 17. 如何在Linux內核中使用bio請求讀取扇區
- 18. BIOS如何從軟盤和CD-ROM啓動不同?
- 19. 查找Linux安裝的總大小
- 20. 用於高級格式化硬盤的Windows XP物理扇區大小
- 21. 閱讀單扇區
- 22. 複製扇區?
- 23. 如何查找同名子文件夾的磁盤大小
- 24. 如何在linux上獲取磁盤上的文件大小?
- 25. 尋找硬盤驅動器扇區佔用的文件
- 26. 如何查找Cassandra中列的大小
- 27. 在Linux中查找包含特定文件大小的文件
- 28. 確定處理器的緩存扇區大小
- 29. 如何在Linux環境中禁用區分大小寫
- 30. 如何查找在C#中保存給定分區的磁盤?
非常感謝。一個問題,爲什麼open需要O_NONBLOCK標誌? – IUnknownPointer 2010-06-28 08:20:05
請參閱:http://opengroup.org/onlinepubs/007908799/xsh/open.html – clyfe 2010-06-28 10:36:36
嘿,@clyfe,它不起作用... ioctl總是返回錯誤。 – IUnknownPointer 2010-07-19 09:43:48