17-4-¶ó.µð½ºÅ© °ü¸®

´ÙÀ½ µÎ ÇÔ¼ö´Â ÀÛ¾÷ µå¶óÀ̺긦 Á¶»çÇϰųª º¯°æÇÑ´Ù. µå¶óÀ̺ê´Â ¹øÈ£·Î Ç¥ÇöÇϴµ¥ 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ºñÆ® °è»êÇÏ¿© ÀÚ¸® ³Ñħ¿¡ ÀÇÇÑ ¿ÀÂ÷¸¦ Á¦°ÅÇØ ÁØ´Ù.