makeDIR

programming/C_C++ 2017. 11. 30. 13:06
반응형

 

#include <stdio.h>      /* snprintf() fgets() pclose() */
#include <string.h>     /* memset() */
#include <libgen.h>     /* dirname() */

static void makeDIR(char* logFileName)
{
    char *dirName;
    char buff[256];
    struct stat st;
    int nRet;

    if( (logFileName == NULL) || (logFileName[0] == 0) ) {
        return;
    }

    memset(buff, 0x00, sizeof(buff));
    snprintf(buff, sizeof(buff), "%s", logFileName);

    dirName = dirname(buff);

    nRet = stat(dirName, &st);

    if( nRet < 0 ) {

        char cmd[1024];
        char line[256];

        FILE* fp = NULL;

        memset(cmd, 0x00, sizeof(cmd));
        memset(line, 0x00, sizeof(line));

        sprintf(cmd, "/bin/mkdir -p -m 755 %s", dirName);

        fp = popen(cmd, "r");

        if(fp) {
            while(fgets(line, sizeof(line), fp));
            pclose(fp);
        }

    }

    return;

}

 

 

 

---------------

NAME
       mkdir - 경로 만들기

SYNOPSIS
       mkdir [-p] [-m mode] [--parents] [--mode=mode] [--help] [--version] dir...

DESCRIPTION
       이   문 서는 더이상 최신 정보를 담고 있지않다.  그래서,  몇몇틀릴  경우도  있고,  부족한  경우도  있을  것이다.
       완전한매뉴얼을 원하면, Texinfo 문서를 참조하기 바란다.

       이 매뉴얼 페이지는 mkdir 명령의 GNU  버전에  대한  것이다.  mkdir 명령은 주워진 이름으로 경로를 만든다.  초기값
       으로는 그 만들어지는 경로의 모드는 0777이다.

   OPTIONS
       -m, --mode mode
              mode 로 사용할 것은 chmod(1)에서 사용하는 기호형식이나, 숫자형식이며, 이 값은 초기값으로 지정되는 모드를
              무시한다.

       -p, --parents
              필요한 경우에 상위 경로까지 만든다.  이 말은 가령 ‘mkdir ~/dest/dir1’ 명령을 사용했을 때, 만약  ‘~/dest’
              경 로가 없다면 오료 메시지를 보인다.  하지만, 이 옵션을 사용하면, ‘~/dest’ 경로를 만들고, 그 다음, 그 안
              에서 ‘dir1’ 경로를 만든다. 만들어 지는 상위경로의 모드값은 ‘u+wx’이다.

       --help 도움말을 보여주고 마친다.

       --version
              버전 정보를 보여주고 마친다.

 

 

반응형
Posted by 공간사랑
,