code

C에서 새 디렉토리 만들기

codestyles 2020. 10. 5. 07:57
반응형

C에서 새 디렉토리 만들기


디렉토리의 존재를 확인하는 프로그램을 작성하고 싶습니다. 해당 디렉토리가 존재하지 않으면 디렉토리와 그 안에 로그 파일을 생성하지만 디렉토리가 이미 존재하면 해당 폴더에 새 로그 파일을 생성합니다.

Linux에서 C에서 어떻게 할 수 있습니까?


stat디렉토리가 존재하는지 확인하기위한,

그리고 mkdir, 디렉토리를 만듭니다.

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

struct stat st = {0};

if (stat("/some/directory", &st) == -1) {
    mkdir("/some/directory", 0700);
}

man 2 statman 2 mkdir명령을 사용하여 이러한 기능의 설명서를 볼 수 있습니다 .


mkdir을 사용할 수 있습니다.

$ man 2 mkdir

 #include <sys/stat.h>
 #include <sys/types.h>

 int result = mkdir("/home/me/test.txt", 0777);

(...) 디렉토리와 그 안에 (...) 파일을 생성하는 프로그램을 작성하고 싶습니다.

이것은 매우 일반적인 질문이기 때문에 여기에 여러 수준의 디렉토리를 만들고 fopen을 호출하는 코드가 있습니다. gnu 확장을 사용하여 printf로 오류 메시지를 인쇄하고 있습니다.

void rek_mkdir(char *path)
{
  char *sep = strrchr(path, '/' );
  if(sep != NULL) {
    *sep = 0;
    rek_mkdir(path);
    *sep = '/';
  }
  if( mkdir(path,0777) && errno != EEXIST )
    printf("error while trying to create '%s'\n%m\n",path ); 
}


FILE *fopen_mkdir( char *path, char *mode )
{
    char *sep = strrchr(path, '/' );
    if(sep ) { 
       char *path0 = strdup(path);
       path0[ sep - path ] = 0;
       rek_mkdir(path0);
       free(path0);
    } 
    return fopen(path,mode);
}

참고URL : https://stackoverflow.com/questions/7430248/creating-a-new-directory-in-c

반응형