안녕하세요.
프로그램내(C언어 사용)에서 특정 DIR 의 사이즈를 확인 할 수 있는 방법이 있을까요?
프로그램 A 에서 특정 디렉토리의 사이즈를 주기적으로 확인 해야 하는데 어떤 방법을 사용 해야 할지 잘 모르겠습니다.
그럼 여러 고수님들의 답변 부탁 드립니다.
제가 생각한 방법은 du 시스템콜로 결과를 file 형태로 저장을 한다음에 file 에서 해당 결과를 얻어와 integer 형태로 conversion 하는 방법 입니다.
혹시 비슷한 고민을 하시는 분 계시면 이 방법을 사용해보세요.
#include
void main(int argc, char *argv[]) { int ch; FILE *fp; char buffer[20];
if (argc != 2) { printf("[USAGE] a.out stored_file\n"); return 1; }
system("du -sk ./BPKERNEL > test.txt");
if ((fp = fopen( argv[1], "rt")) == NULL) { printf("file open error (%s)\n", argv[1]); return 1; }
fread(&buffer, sizeof(10), 1, fp);
printf("DIR_SIZE(%d)\n", atoi(buffer));
remove(argv[1]);
return 0; }
어설푼 이..
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
제가 발견한 해결책 입니다. (북치고 장구치고 하네요 ^^;;;)
제가 생각한 방법은 du 시스템콜로 결과를 file 형태로 저장을 한다음에 file 에서
해당 결과를 얻어와 integer 형태로 conversion 하는 방법 입니다.
혹시 비슷한 고민을 하시는 분 계시면 이 방법을 사용해보세요.
#include
void main(int argc, char *argv[])
{
int ch;
FILE *fp;
char buffer[20];
if (argc != 2)
{
printf("[USAGE] a.out stored_file\n");
return 1;
}
system("du -sk ./BPKERNEL > test.txt");
if ((fp = fopen( argv[1], "rt")) == NULL)
{
printf("file open error (%s)\n", argv[1]);
return 1;
}
fread(&buffer, sizeof(10), 1, fp);
printf("DIR_SIZE(%d)\n", atoi(buffer));
remove(argv[1]);
return 0;
}
어설푼 이..
댓글 달기