이 름
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 [AT] soback.net>, 2000년 9월 16일