반응형
mkdir(2) 함수 원형
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
- pathname의 이름으로 디렉터리를 생성합니다.
- 중간 디렉터리가 생성되어 있지 않으면 오류가 발생합니다.
- ex) "/test" 디렉터리 하위에 test1/test2 디렉터리를 생성하려는 경우
- mkdir("test/test1/test2", 0755); : 오류
- mkdir("test/test1", 0755); mkdir("test/test1/test2", 0755); : 성공
- ex) "/test" 디렉터리 하위에 test1/test2 디렉터리를 생성하려는 경우
- man 페이지에서 확인하기 위해선 "man 2 mkdir"을 사용해야 mkdir(2) 내용을 확인할 수 있습니다.
- "man mkdir"을 사용하여 mkdir(1) 내용을 확인합니다.
매개변수
- pathname
- 생성하려는 디렉터리의 경로(상대 경로 또는 절대 경로)
- mode
- 생성하려는 디렉터리에 대한 접근 권한 설정 값
매크로 8진수 설명 S_IRWXU 0700 소유자(owner) 권한 마스크 S_IRUSR 0400 소유자(owner) 읽기 권한 S_IWUSR 0200 소유자(owner) 쓰기 권한 S_IXUSR 0100 소유자(owner) 실행(검색) 권한 S_IRWXG 0070 그룹(Group) 권한 마스크 S_IRGRP 0040 그룹(Group) 읽기 권한 S_IWGRP 0020 그룹(Group) 쓰기 권한 S_IXGRP 0010 그룹(Group) 실행(검색) 권한 S_IRWXO 0007 기타 사용자(Other) 권한 마스크 S_IROTH 0004 기타 사용자(Other) 읽기 권한 S_IWOTH 0002 기타 사용자(Other) 쓰기 권한 S_IXOTH 0001 기타 사용자(Other) 실행(검색) 권한 - 디렉터리에 대한 X(실행) 권한은 검색 권한입니다.
- 검색 권한은 해당 디렉터리에 접근할 수 있느냐 없느냐에 대한 권한입니다.
- 권한 설정은 or 연산으로 설정합니다.
- ex) 0755 = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
- 생성하려는 디렉터리에 대한 접근 권한 설정 값
반환값
- 0 : 성공
- -1 : 실패, 오류 내용은 errno 전역 변수에 설정됩니다.
예제
- sample
#include <stdio.h> #include <string.h> #include <sys/stat.h> #include <sys/types.h> #include <errno.h> int do_mkdir(const char *pasPathName, mote_t mode) { int nStatus = 0; struct stat st; if (stat(pszPath, &st) != 0) { if (0 != mkdir(pszPath, mode) && EEXIST != errno) { nStatus = -1; } } else if (!S_ISDIR(st.st_mode)) { nStatus = -1; } return(nStatus); { int main() { int nResult = 0; nResult = do_mkdir("./test", 0755); if (0 > nResult) { printf("디렉토리 생성 실패 \n"); } else { printf("티렉토리 생성 성공 \n"); } return 0; }
반응형
'C' 카테고리의 다른 글
[C/C++] stat(2), lstat(2), fstat(2) 파일 정보 확인 함수 사용법 (0) | 2024.03.11 |
---|---|
[C] Linux에서 System Log 사용 방법(openlog, syslog, closelog) (0) | 2023.11.10 |
[C/C++]임시 변수 없이 두 개의 정수 값을 교환하기 (2) | 2023.11.08 |
[C]Type Casting (0) | 2018.01.11 |
[C]변수 const (0) | 2018.01.11 |