
opendir 함수를 사용할 때, 디렉토리 경로를 지정할 때는 절대 경로 또는 상대 경로를 사용할 수 있습니다. 절대 경로는 루트 디렉토리부터 시작하여 디렉토리의 위치를 지정하는 방법입니다. 상대 경로는 현재 작업 디렉토리부터 시작하여 디렉토리의 위치를 지정하는 방법입니다.
예를 들어, 현재 작업 디렉토리가 `/home/user` 인 경우, 절대 경로로 `/home/user/mydir`를 지정할 수 있고, 상대 경로로 `./mydir` 또는 `../mydir`를 지정할 수 있습니다.
EACCES 오류가 발생했을 때, 디렉토리의 권한을 변경하는 방법은 다음과 같습니다.
1. `chmod` 명령어를 사용하여 디렉토리의 권한을 변경할 수 있습니다. 예를 들어, `chmod 755 mydir` 명령어를 사용하여 `mydir` 디렉토리의 권한을 변경할 수 있습니다.
2. `chown` 명령어를 사용하여 디렉토리의 소유자를 변경할 수 있습니다. 예를 들어, `chown user:group mydir` 명령어를 사용하여 `mydir` 디렉토리의 소유자를 변경할 수 있습니다.
3. `chmod` 명령어를 사용하여 디렉토리의 권한을 변경할 수 있습니다. 예를 들어, `chmod +x mydir` 명령어를 사용하여 `mydir` 디렉토리의 실행 권한을 부여할 수 있습니다.
opendir 함수를 사용할 때, 디렉토리 경로를 지정할 때는 다음 예제를 참고할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
DIR *dir;
struct dirent *ent;
// 절대 경로를 사용하여 디렉토리 열기
dir = opendir("/home/user/mydir");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
// 상대 경로를 사용하여 디렉토리 열기
dir = opendir("./mydir");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
// 디렉토리 열기
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
// 디렉토리 열기
dir = opendir("/home/user");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
// 디렉토리 열기
dir = opendir("..");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
closedir(dir);
return 0;
}
EACCES 오류가 발생했을 때, 디렉토리의 권한을 변경하는 방법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
// 디렉토리 권한 변경
chmod("mydir", 0755);
// 디렉토리 소유자 변경
chown("mydir", 1000, 1000);
// 디렉토리 실행 권한 부여
chmod("mydir", 0755 | S_IXUSR);
return 0;
}
2025-08-05 06:09