易截截图软件、单文件、免安装、纯绿色、仅160KB

获取linux的文件系统相关信息的知识点


在 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


相关文档:

linux api笔记(7):系统调用如何摆脱信号的干扰

在linux环境下编程有一个很让人头疼的问题就是信号对系统调用的干扰,在系统调用过程中如果受到信号的干扰,
部分系统调用会将errno设置成EINTR,我们不得不编写下面的错误处理代码来防止这种情况的发生:
syscall:
int ret = syscall(...);
if (ret < 0 && EINTER == errno)
goto syscall;
el ......

linux 系统密码忘记后的 5 种方法【转】

如果你既没做系统启动软盘,同时多系统的引导LILO 和GRUB 又被删除,那么只能使用Linux 系统安装盘来恢复root的密码,步骤如下。 一. lilo引导在出现 lilo: 提示时键入 linux single Boot: linux single 回车可直接进入linux单用户模式 vi /etc/passwd 删除root项中的密码 (这里也可以直接使用passwd命令重新设置root的密码 ......

Linux 内核体系简介【转】

1.Linux 内核简介 现在让我们从一个比较高的高度来审视一下 GNU/Linux 操作系统的体系结构。您可以从两个层次上来考虑操作系统,如图 1 所示。 图 1. GNU/Linux 操作系统的基本体系结构 最上面是用户(或应用程序)空间。这是用户应用程序执行的地方。用户空间之下是内核空间,Linux 内核正是位于这里。 GNU C Lib ......

linux 驱动加载测试命令

#insmod ./driver_xx.ko
此时#cat /proc/devices 能看到 driver_xx 设备
#mknod /dev/mygpio c 230 0 (230是主设备号,0是子设备号)
{这里可以修改设备名称,但是要和测试程序中一致 fd_pio = open(“/dev/mygpio”, O_RDWR);
最好和register_chrdev(MY_PIO_MAJOR, "mygpio", &my_pio_fops)中的一致}
使 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号