zoukankan      html  css  js  c++  java
  • struct mntent linux挂载信息读取

    http://blog.csdn.net/ling1874/archive/2010/04/22/5516313.aspx 

    在 struct mntent 中的成员与 /etc/fstab 文件中的条目是直接对应的。它的内容如下:

    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);

    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;
    }

  • 相关阅读:
    SQL 判断字符包含在记录中出现了多少次
    JS 数据类型判断
    JS object转日期
    JS 日期转字符串
    Linux系统优化03-centos7网卡配置
    Linux系统安装02-centos7系统安装-分区及基本设置
    Linux系统安装01-centos7系统安装
    解决winserver2012R2安装VMware15(pro)问题
    Tomcat 如何设置Tomcat的标题,运行Tomcat显示为自己程序的命名
    IntelliJ Idea 常用快捷键列表
  • 原文地址:https://www.cnblogs.com/leaven/p/2038946.html
Copyright © 2011-2022 走看看