MOUNT(2) | 리눅스 프로그래머 매뉴얼 | MOUNT(2) |
이름¶
mount, umount - 파일 시스템을 마운트하거나 마운트를 푼다.
사용법¶
#include <sys/mount.h>
int mount(const char *specialfile, const char * dir , const char * filesystemtype, unsigned long rwflag , const void * data);
int umount(const char *specialfile);
int umount(const char *dir);
설명¶
mount 는 specialfile (자주 장치이름이라 불린다)에 의해 지정된 파일시스템을 dir로 지정한 디렉토리에 연결한다.
umount 는 specialfile 나 dir가 지정한 파일시스템의 연결을 제거한다.
슈퍼-유저만이 파일시스템을 마운트하거나 마운트를 풀수 있다.
filesystemtype인자는 /proc/filesystems 에 나열된 값들중 하나이어야 한다. ("minix", "ext2", "msdos", "proc", "nfs", "iso9660" 등등).
rwflag인자는 상위 16비트에 매직 수 0xC0ED 를 가지며 하위 16비트에 다양한 마운트 플래그를 (libc4에서는 <linux/fs.h>에 glibc2에서는 <sys/mount.h>에 정의되어 있다) 가진다.:
#define MS_RDONLY 1 /* 읽기-전용 마운트 */ #define MS_NOSUID 2 /* suid 그리고 sgid 비트를 무시 */ #define MS_NODEV 4 /* 특별 파일 장치 접근을 허용하지 않는다 */ #define MS_NOEXEC 8 /* 프로그램 실행을 허용하지 않는다 */ #define MS_SYNC 16 /* 쓰기를 일단 동기화 */ #define MS_REMOUNT 32 /* 마운트된 FS의 플래그를 수정 */ #define MS_MGC_VAL 0xC0ED0000매직 수가 없다면, 마지막 두 인자는 사용되지 않는다.
data인자는 다른 파일 시스템에 의해 해석된다.
반환값¶
성공시, 0이 리턴된다. 에러시, -1이 리턴되며 errno 는 적당한 값으로 설정된다.
에러¶
아래 보여준 에러들은 에러와 독립적인 파일 시스템 타입의 결과 때문이다. 각 파일 시스템 타입은 자기 자신의 특별한 에러를 가지고 있으며 자기 자신의 특별한 행동을 한다. 세부사항을 위해서 커널 소스를 참조해라.
- EPERM
- 사용자가 슈퍼-유저가 아니다.
- ENODEV
- Filesystemtype 가 커널에 설정되어 있지 않다.
- ENOTBLK
- Specialfile 는 블럭 장치가 아니다.(만일 장치가 요구된다면)
- EBUSY
- Specialfile 가 이미 마운트가 되어 있다. 또는 읽기-전용으로 다시 마운트 할수 없다. 왜냐하면 쓰기 위해 파일을 열었기 때문이다. 또는 dir 에 마운트할수 없다. 왜냐하면 dir 가 여전히 바쁘기 때문이다.(그것은 몇몇 태스크를 위한 작업 디렉토리에 있는 경우, 다른 장치의 마운트 포인트, 열린 파일을 가지고 있는 경우 등등이다)
- EINVAL
- Specialfile 가 유효한 슈퍼블럭이 아니다. 또는 재 마운트가 specialfile 가 dir에 이미 마운트되어 있지 않는 경우 시도 되었다. 또는 dir 가 마운트 포인터가 아닌 동안 마운트 푸는 걸 시도 했다.
- EFAULT
- 포인터 인자들중 하나가 유저 주소 공간 외를 가리키고 있다.
- ENOMEM
- 커널이 파일 이름이나 데이터를 복사하기 위한 여유 페이지를 할당할수 없다.
- ENAMETOOLONG
- 경로 이름이 MAXPATHLEN보다 길다.
- ENOENT
- 경로이름이 비어 있거나 존재하지 않는 요소이다.
- ENOTDIR
- 두번째 인자, 또는 첫 인자의 머릿부가 디렉토리가 아니다.
- EACCES
- 경로의 요소를
탐색할수 없다.
또는 일기-전용 파일 시스템 마운트가 MS_RDONLY 플래그를 주는것 없이 시도 되었다.
또는, 블럭 장치 Specialfile 가 MS_NODEV 옵션을 가지고 마운트 된 파일시스템 내에 위치해 있다. - ENXIO
- 블럭 장치 specialfile 의 주 넘버가 범위 밖에 있다.
- EMFILE
- (블럭 장치가 요구되지 않는 경우:) 더미 장치 테이블이 꽉차 있다.
호환¶
이 함수는 리눅스에 의존하며 호환성을 염두에 둔 프로그램에서는 사용해서는 안된다.
관련 항목¶
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2000년 9월 16일
1994년 11월 28일 | Linux 1.1.67 |