1) du -sh www/     - www 폴더의 용량보기

2) du -h --max-depth=1   -디렉토리 별로 사용량 보기

3) du -sh /*   -전체디렉토리 합계는 안나옴

4) df -h  -전체 하드용량

5) ls -alh -MB 단위로 파일 보기
설명

난수를 생성합니다. rand()는 0부터 RAND_MAX 사이의 난수를 생성합니다. 그러나 문제는 프로그램을 새로 실행할 때 마다 매번 다른 난수를 만들어 내지 않고 계속 같은 난수를 반복하게 됩니다.

#include <stdio.h>
#include <stdlib.h>

int main( void)
{ 
   int   ndx;   
        
   for ( ndx = 0; ndx < 10; ndx++)
   {
      printf( "%d %dn", ndx, rand() % 100);
   }        
   
   return 0;
}
]$ ./a.out
0 83
1 86
2 77
3 15
4 93
]$ ./a.out
0 83
1 86
2 77
3 15
4 93
]$ 

결과를 보듯이 난수는 생성하지만 실행할 때마다 똑 같은 난수를 똑 같이 생성합니다.

이 문제를 해결하기 위해서는 난수를 생성하기 전에 난수를 생성하기 위한 씨앗 즉, 난수 seed를 바꾸어 주어야 하며, seed를 바꾸기 위해서는 srand()를 사용해야 합니다. 이에 대한 자세한 설명은 강좌 게시판의 "난수 만들기"를 참고하여 주십시오.

헤더stdlib.h
형태int rand( void);
반환

int

0부터 RAND_MAX 사이의 난수
예제
#include <stdio.h>
#include <stdlib.h>
#include <time.h>    // time()
#include <unistd.h>  // getpid()
int main( void)
{
   int   ndx;

   srand( (unsigned)time(NULL)+(unsigned)getpid());
   for ( ndx = 0; ndx < 5; ndx++)
      printf( "%d %dn", ndx, rand() %100 +1);

   return 0;
}

]$ ./a.out 0 45 1 48 2 72 3 60 4 78 ]$ ./a.out 0 2 1 80 2 63 3 99 4 93



설명

파일의 읽기/쓰기 위치를 파일의 처음 위치로 초기화합니다.

파일의 위치는 기준 옵션에 따라 앞으로 또는 뒤로 읽기/쓰기 위치로 건너 띕니다.

whence설명

SEEK_SET

파일의 시작
SEEK_CUR현재 읽기/쓰기 포인터 위치
SEEK_END파일의 끝

건너 띈다는 말씀은 인수로 받은 숫자의 위치로 이동한다는 뜻이 아니라 건너 띄듯이 count 한다는 뜻입니다. 아래의 그림을 참고하여 주십시오.

헤더stdio.h
형태int fseek( FILE *stream, long offset, int whence);
인수FILE *stream대상 파일 스트림
long offset이동할 바이트 수
int whence시작 시점
반환int0을 반환, 오류가 발생하면 -1을 반환
예제
#include <stdio.h>

int main( void)
{
   FILE *fp;
   char  str[1024];
   int   ndx;

   fp = fopen( "./test.txt", "r");

   printf( "%sn", fgets( str, 1024, fp));

   fseek( fp, 10, SEEK_SET);              // 파일의 시작에서 10번을 건너 띈다.
   printf( "%sn", fgets( str, 1024, fp));

   fseek( fp,  5, SEEK_SET);              // 파일의 시작에서 5번을 건너 띈다.
   fseek( fp,  5, SEEK_CUR);              // 현재 위치에서 다시 5번을 건너 띈다.
   printf( "%sn", fgets( str, 1024, fp));

   fseek( fp,  -5, SEEK_END);             // 파일의 시작에서 5번을 건너 띈다.
   printf( "%sn", fgets( str, 1024, fp));

   fclose( fp);

   return 0;
}

test.txt 파일에 16진수 문자, 0부터 f 까지 입력되어 있을 때 실행 결과입니다.

0123456789abcdef

]$ ./a.out 0123456789abcdef abcdef abcdef bcdef ]$



+ Recent posts