UNIX/Linux操作系统将所有文件管理成一棵倒过来的树,根是目录'\
'。文件可以来自不同的设备,当一个新的设备要挂到这棵树上时,我们使用mount命令;反之我们使用umount命令。
在Linux shell中,我们可以这样做:
# mount -t ext3 /dev/vdd /opt3
# ls /opt3
dir_a dir_b lost+found
# umount /opt3
# ls /opt3
#
我们也可以用C语言中API mount()来实现上述功能:
# cat mount-exampe.c
#include <stdlib.h> //exit(), system()
#include <stdio.h> //printf()
#include <sys/mount.h> //mount()
#include <dirent.h> //struct dirent,DIR,opendir(),readdir()
#include <string.h> //strcmp()
void die(char *s)
{
perror(s);
exit(1);
}
#define TDIR "/opt4"
int main()
{
char cmd[64];
sprintf(cmd, "mkdir %s", TDIR);
if (system(cmd) != 0)
{
die("cmd");
}
if (mount("/dev/vdd", TDIR, "ext3", 0, NULL) != 0)
{
die("mount()");
}
struct dirent * entry;
DIR * dir;
dir = opendir(TDIR);
if (!dir)
{
die("opendir()");
}
while ((entry = readdir(dir)))
{
if (strcmp(entry->d_name, ".") == 0)
continue;
if (strcmp(entry->d_name, "..") == 0)
continue;
printf("%s ", entry->d_name);
}
printf("\n");
closedir(dir);
umount(TDIR);
sprintf(cmd, "rm -rf %s", TDIR);
if (system(cmd) != 0)
{
die("cmd");
}
}
# gcc mount-example.c -o mount-example && ./mount-example
dir_a dir_b lost+found
#
网友评论