반응형
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 stat
및 man 2 mkdir
명령을 사용하여 이러한 기능의 설명서를 볼 수 있습니다 .
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
반응형
'code' 카테고리의 다른 글
.gitignore에 # * # glob을 추가 하시겠습니까? (0) | 2020.10.05 |
---|---|
Scala에서 커링하는 두 가지 방법; (0) | 2020.10.05 |
IntelliJ IDEA의 모든 UI 요소에서 글꼴을 늘리는 방법은 무엇입니까? (0) | 2020.10.05 |
`http.NewRequest (…)`를 사용하여 URL 인코딩 된 POST 요청을 만듭니다. (0) | 2020.10.05 |
소스 제어에 타사 라이브러리 저장 (0) | 2020.10.05 |