'programming/C_C++'에 해당되는 글 279건

  1. 2016.03.24 디렉토리 체크 생성

반응형



/*** gcc a.c -lrt -o a.out ***/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>

int MakeLogDirChk();

int MakeLogDirChk()
{
    struct timespec tspec;
    struct tm       tm_now;

    DIR    *dp = NULL;

    char   chk_dir[256]={'\0'};
    char   tmp[32]={'\0'};

    clock_gettime(CLOCK_REALTIME, &tspec);
    localtime_r((time_t *)&tspec.tv_sec, &tm_now);

    memset(tmp, 0x00, sizeof(tmp));
    //strftime(tmp, sizeof(tmp), "%Y-%m-%d_%H:%M:%S", &tm_now);
    strftime(tmp, sizeof(tmp), "%Y-%m-%d", &tm_now);

#if DEBUG
    fprintf(stdout, "tmp[%s]\n", tmp); fflush(stdout);  fflush(stdout);
#endif

    memset(chk_dir, 0x00, sizeof(chk_dir));
    sprintf(chk_dir, "%s", tmp);

#if DEBUG
    fprintf(stdout, "chk_dir[%s]\n", chk_dir); fflush(stdout);  fflush(stdout);
#endif

    if( (dp = opendir(chk_dir)) == NULL ) {  // opendir 에러시 NULL 리턴


        if (mkdir(chk_dir, 0644) < 0) {  // mkdir 에러시 -1 리턴
            fprintf(stderr, "please check [%s] mkdir error [%d]=[%s]\n", chk_dir, errno, strerror(errno)); fflush(stderr);
            return (-1);
        }

    }
    else {  // opendir 성공

        closedir(dp);

    }

    return 1;
}

 

int main(int argc, char *argv[])
{

 

// ......

 

}


 


반응형
Posted by 공간사랑
,