获取linux的文件系统相关信息的知识点
2010-04-20 09:43
591 查看
在 struct mntent 中的成员与 /etc/fstab 文件中的条目是直接对应的。它的内容如下:
setmntent() 是打开包含挂载点项目的文件, 其中的 filename 参数是要打开的文件名, type 参数就像 fopen() 的第二个参数, 代表只读、只写, 或读写皆可的存取模式 。返回FILE*。
getmntent() 则是循序读取整个档案,传回指向 static struct mntent 结构的指针,结构中会填入适当的值。
addmntent() 可以在已开启档案的末端加上资讯,它原本是给 mount 使用的。
endmntent() 的功用是关闭打开的文件。这不能只是呼叫 fclose() 而已,因为可能还有其它与FILE * 有关的内部资料结构需要清理。
hasmntopt() 是个比较特殊的函式。它会扫描第一个参数所传入的struct mntent,找出它的挂载选项是否符合第二个引数。假如找到选项就传回符合的子字符串的位址;否则传回NULL。
/etc/fstab、/etc/mtab 和 /proc/mounts 其中任何一个, 都可以在程序中使用 getmntent() 这组函数来读取
eg:
#include <mntent.h>
struct mntent* mnt;
FILE* fp;
fp = setmntent("/dev/mmc/mmcblk0", "r");
if ( !fp )
{
return FALSE;
}
if(mnt=getmntent(fp) )
{
#if 1
printf("woosoori[%s:%d] mnt->mnt_fsname=%s/n",__FUNCTION__,__LINE__, mnt->mnt_fsname);
printf("woosoori[%s:%d] mnt->mnt_dir=%s/n",__FUNCTION__,__LINE__, mnt->mnt_dir);
printf("woosoori[%s:%d]mnt->mnt_type=%s/n",__FUNCTION__,__LINE__,mnt->mnt_type);
printf("woosoori[%s:%d] mnt->mnt_opts=%s/n",__FUNCTION__,__LINE__, mnt->mnt_opts);
printf("woosoori[%s:%d]mnt->mnt_freq=%d/n",__FUNCTION__,__LINE__,mnt->mnt_freq);
printf("woosoori[%s:%d]mnt->mnt_passno=%d/n",__FUNCTION__,__LINE__,mnt->mnt_passno);
#endif
endmntent(fp);
return TRUE;
}
struct mntent { char *mnt_fsname; /* 挂载的文件系统的名字 */ char *mnt_dir; /* 挂载点 */ char *mnt_type; /* 文件系统类型:ufs、nfs 等 */ char *mnt_opts; /* 选项,以逗号为分隔符 */ int mnt_freq; /* Dump 的频率(以天为单位) */ int mnt_passno; /* fsck检查的次序 */ }; FILE *setmntent(const char *filename, const char *type); struct mntent *getmntent(FILE *filep); int addmntent(FILE *filep, const struct mntent *mnt); int endmntent(FILE *filep); char *hasmntopt(const struct mntent *mnt, const char *opt); |
getmntent() 则是循序读取整个档案,传回指向 static struct mntent 结构的指针,结构中会填入适当的值。
addmntent() 可以在已开启档案的末端加上资讯,它原本是给 mount 使用的。
endmntent() 的功用是关闭打开的文件。这不能只是呼叫 fclose() 而已,因为可能还有其它与FILE * 有关的内部资料结构需要清理。
hasmntopt() 是个比较特殊的函式。它会扫描第一个参数所传入的struct mntent,找出它的挂载选项是否符合第二个引数。假如找到选项就传回符合的子字符串的位址;否则传回NULL。
/etc/fstab、/etc/mtab 和 /proc/mounts 其中任何一个, 都可以在程序中使用 getmntent() 这组函数来读取
eg:
#include <mntent.h>
struct mntent* mnt;
FILE* fp;
fp = setmntent("/dev/mmc/mmcblk0", "r");
if ( !fp )
{
return FALSE;
}
if(mnt=getmntent(fp) )
{
#if 1
printf("woosoori[%s:%d] mnt->mnt_fsname=%s/n",__FUNCTION__,__LINE__, mnt->mnt_fsname);
printf("woosoori[%s:%d] mnt->mnt_dir=%s/n",__FUNCTION__,__LINE__, mnt->mnt_dir);
printf("woosoori[%s:%d]mnt->mnt_type=%s/n",__FUNCTION__,__LINE__,mnt->mnt_type);
printf("woosoori[%s:%d] mnt->mnt_opts=%s/n",__FUNCTION__,__LINE__, mnt->mnt_opts);
printf("woosoori[%s:%d]mnt->mnt_freq=%d/n",__FUNCTION__,__LINE__,mnt->mnt_freq);
printf("woosoori[%s:%d]mnt->mnt_passno=%d/n",__FUNCTION__,__LINE__,mnt->mnt_passno);
#endif
endmntent(fp);
return TRUE;
}
相关文章推荐
- 文件系统与linux相关知识点
- linux系统编程之文件与IO:stat()系统调用获取文件信息
- 获取Linux/Unix文件系统信息
- 获取Linux/Unix文件系统信息
- 文件系统与linux相关知识点
- linux stat系统调用,获取文件信息。
- linux 获取文件系统信息(磁盘信息)
- Linux 程序获取文件系统挂载信息
- Linux系统内存相关信息获取
- linux stat系统调用,获取文件信息。
- 【Linux】程序内获取文件系统挂载信息
- 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取
- Linux 不挂载设备,获取设备的文件系统信息
- 一个可以获取linux 系统硬件相关信息的类
- 使用C语言获取linux系统相关信息
- Linux 程序获取文件系统挂载信息
- linux 获取文件系统信息(磁盘信息)
- Linux系统编程之获取文件信息
- dumpe2fs命令_Linux dumpe2fs 命令用法详解:用于打印“ext2/ext3”文件系统的超级块和快组信息
- Android获取系统相关简单信息