MOUNT
Section: 리눅스 프로그래머 매뉴얼 (2)
Updated: 1994년 11월 28일
Index
Return to Main Contents
이름
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
-
(블럭 장치가 요구되지 않는 경우:)
더미 장치 테이블이 꽉차 있다.
호환
이 함수는 리눅스에 의존하며 호환성을 염두에 둔 프로그램에서는 사용해서는
안된다.
관련 항목
mount(8),
umount(8)
역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 9월 16일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:58 GMT, March 25, 2004