´ÙÀ½ µÎ ÇÔ¼ö´Â ÀÛ¾÷ µå¶óÀ̺긦 Á¶»çÇϰųª º¯°æÇÑ´Ù. µå¶óÀ̺ê´Â ¹øÈ£·Î Ç¥ÇöÇϴµ¥ 1ÀÌ A, 2°¡ B, 3ÀÌ C¼øÀÌ´Ù.
int _getdrive(void);
int _chdrive(int drive);
´ÙÀ½ ÇÔ¼ö´Â µð½ºÅ©ÀÇ ÃÑ ¿ë·® ¹× ³²Àº ¿ë·®À» Á¶»çÇÑ´Ù.
unsigned _getdiskfree(unsigned drive, struct _diskfree_t * driveinfo);
Á¶»çÇϰíÀÚ ÇÏ´Â µå¶óÀ̺êÀÇ ¹øÈ£¸¦ ÁÖ¸é ÀÌ µå¶óÀ̺êÀÇ ¿ë·®¿¡ ´ëÇÑ Á¤º¸¸¦ ´ÙÀ½ ±¸Á¶Ã¼¿¡ ä¿î´Ù.
struct _diskfree_t {
unsigned total_clusters;
unsigned avail_clusters;
unsigned sectors_per_cluster;
unsigned bytes_per_sector;
};
¸â¹öÀÇ À̸§¿¡ Àǹ̰¡ Àß ³ªÅ¸³ª ÀÖÀ¸¹Ç·Î º°µµÀÇ ¼³¸íÀº ÇÊ¿äÄ¡ ¾ÊÀ» °Í °°´Ù. ´ë¿ë·®ÀÇ µð½ºÅ©´Â Ŭ·¯½ºÅÍ ´ÜÀ§·Î ÆÄÀÏÀ» ±â·ÏÇϹǷΠ¸ðµç Á¤º¸µéµµ Ŭ·¯½ºÅÍ ¼ö·Î µÇ¾î ÀÖ´Ù. ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ Á¶»çÇÏ¸é µð½ºÅ©ÀÇ ÃÑ ¿ë·®°ú ³²Àº ¿ë·®À» ¾Ë ¼ö ÀÖ°í µÎ °ªÀÇ Â÷¸¦ ±¸ÇÏ¸é »ç¿ëÇÑ ¿ë·®µµ ½±°Ô °è»êÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ ÇÔ¼ö·Î C µå¶óÀ̺êÀÇ ÇöÀç »óŸ¦ Á¶»çÇÏ¿© Ãâ·ÂÇÑ´Ù.
|
¿¹ Á¦ : diskfree |
#include <Turboc.h>
#include <dos.h>
void main()
{
_diskfree_t df;
int bytes;
int total,avail;
_getdiskfree(3,&df);
bytes=df.sectors_per_cluster*df.bytes_per_sector;
total=MulDiv(df.total_clusters,bytes,1048576);
avail=MulDiv(df.avail_clusters,bytes,1048576);
printf("ÃÑ ¿ë·®=%dM, »ç¿ëÇÑ ¿ë·®=%dM, ³²Àº ¿ë·®=%dM, Ŭ·¯½ºÅÍ´ç ¹ÙÀÌÆ®=%dB.\n",
total,total-avail,avail,bytes);
}
´ë¿ë·® ÇÏµå µð½ºÅ©¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î Á¶»çÇϸé Á¤¼öÇüÀÇ ¹üÀ§¸¦ ³Ñ¾î ¹ö¸®±â ¶§¹®¿¡ ¸Þ°¡ ¹ÙÀÌÆ® ´ÜÀ§·Î °ªÀ» Ãâ·ÂÇϵµ·Ï Çß´Ù. MulDiv´Â Win32 API ÇÔ¼öÀε¥ ´ë´ÜÈ÷ Å« ¼ö¸¦ °öÇÑ ÈÄ ³ª´©±â¸¦ ÇÒ ¶§ ³»ºÎÀûÀ¸·Î 64ºñÆ® °è»êÇÏ¿© ÀÚ¸® ³Ñħ¿¡ ÀÇÇÑ ¿ÀÂ÷¸¦ Á¦°ÅÇØ ÁØ´Ù.