ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
¼³¸í
µð½ºÅ© Á¤º¸¸¦ Àоî¿É´Ï´Ù. ÆÄƼ¼Ç, ¸¶¿îÆ® ÆÄÀÏ, ÇÒ´çµÈ ºí·°°ú »ç¿ëÁßÀÎ ºí·°ÀÇ Å©±â¸¦ ¾ò¾î¿É´Ï´Ù. ½ÇÁ¦ dfÀ» ÅëÇØ¼ ¾òÀ» ¼ö ÀÖ´Â Á¤º¸µéÀ» °¡Á®¿É´Ï´Ù.
/dev/mountsÁ¤º¸¿Í statfs()ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ À§ÀÇ Á¤º¸µéÀ» ¾ò¾î¿É´Ï´Ù. »ç¿ë¹æ¹ýMOUNTP *dfopen(); MOUNTP *dfget(MOUNTP *MP); int dfclose(MOUNTP *);
struct f_size
{
long blocks; // ÇÒ´çµÈ ºí·°
long avail; // »ç¿ë°¡´ÉÇÑ ºí·°
};
typedef struct _mountinfo
{
FILE *fp; // /proc/mounts¿¡ ´ëÇÑ ÆÄÀÏ Æ÷ÀÎÅÍ
char devname[80]; // ÀåÄ¡À̸§
char mountdir[80]; // ¸¶¿îÆ® °æ·Î
char fstype[12]; // ÆÄÀϽýºÅÛ Á¾·ù
struct f_size size;
} MOUNTP;
#include "dfget.h" int main() { MOUNTP *MP; if ((MP=dfopen()) == NULL) { perror("error"); return 1; } while(1) { while(dfget(MP)) { printf("%-14s%-20s%10lu%10lu\n", MP->mountdir, MP->devname, MP->size.blocks, MP->size.avail); } printf("=========================\n\n"); sleep(1); } } ÄÚµå#include <stdio.h>
#include <string.h>
#include <libgen.h>
#include <sys/vfs.h>
#include <sys/stat.h>
#include <sys/types.h>
const char *MMOUNT = "/proc/mounts";
struct f_size
{
long blocks;
long avail;
};
typedef struct _mountinfo
{
FILE *fp;
char devname[80];
char mountdir[80];
char fstype[12];
struct f_size size;
} MOUNTP;
MOUNTP *dfopen()
{
MOUNTP *MP;
MP = (MOUNTP *)malloc(sizeof(MOUNTP));
if(!(MP->fp = fopen(MMOUNT, "r")))
{
return NULL;
}
else
return MP;
}
MOUNTP *dfget(MOUNTP *MP)
{
char buf[256];
char *bname;
char null[16];
struct statfs lstatfs;
struct stat lstat;
int is_root = 0;
while(fgets(buf, 255, MP->fp))
{
is_root = 0;
sscanf(buf, "%s%s%s",MP->devname, MP->mountdir, MP->fstype);
if (strcmp(MP->mountdir,"/") == 0) is_root=1;
if (stat(MP->devname, &lstat) == 0 || is_root)
{
if (strstr(buf, MP->mountdir) && S_ISBLK(lstat.st_mode) || is_root)
{
statfs(MP->mountdir, &lstatfs);
MP->size.blocks = lstatfs.f_blocks * (lstatfs.f_bsize/1024);
MP->size.avail = lstatfs.f_bavail * (lstatfs.f_bsize/1024);
return MP;
}
}
}
rewind(MP->fp);
return NULL;
}
int dfclose(MOUNTP *MP)
{
fclose(MP->fp);
}
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|