麻烦各位大侠指导下关于如何在Linux下使用mount函数实现nfs挂载

时间:2021-07-08 15:44:11

网上查了不少资料 感觉和第五个参数有关系,之前用了第五个参数用了NULL也不行
执行结果始终是

[root@localhost testNFS]# ./testNSF
nfsMount /mnt/nfs_gx  to 192.168.159.131:/home/work failed ret=-1 
mount error: Invalid argument

程序如下:

#include <stdio.h>
#include <sys/mount.h> 
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h> 


#define szNfsLocDir    "/mnt/nfs_gx"
#define NFServerDir    "192.168.159.131:/home/work"
#define TARGET           "/mnt"
#define ERROR   -1
#define OK        0


int main(int argc, char **argv)
{
    // 首先UnMount,以保证后续的Mount成功

    int ret=0;
    int fd = 0;
   // struct nfs_mount_data data;
    /*
    if(umount( szNfsLocDir)<0)
    {
        perror("umount error");
    }
*/
    ret=mount(NFServerDir, szNfsLocDir,"nfs", MS_MGC_VAL,"rw,tcp,soft,rsize=8192,wsize=8192,timeo=100,intr,retry=1");
        
  //  ret=system("mount -t nfs 192.168.159.131:/home/work1/ /mnt/nfs_gx/");


    if( OK == ret)
    {
        printf("nfsMount %s  to %s success\n",szNfsLocDir,NFServerDir);
        perror("mount success");
    }
    else
    {
        printf("nfsMount %s  to %s failed ret=%d \n",szNfsLocDir,NFServerDir,ret);
        perror("mount error");
        return -1;
    }
    return 0;
}

4 个解决方案

#1


system命令挂载成功吗?貌似很多时候要加上-o nolock参数。

#2


多谢回复 system可以正常挂载 但是我想用mount函数调用的方式进行挂载 网上查了很多貌似也没用成功的例子啊

#3


用函数时,参数和命令不一样

#4


能不能把第五个参数解释下,不是很懂!

#1


system命令挂载成功吗?貌似很多时候要加上-o nolock参数。

#2


多谢回复 system可以正常挂载 但是我想用mount函数调用的方式进行挂载 网上查了很多貌似也没用成功的例子啊

#3


用函数时,参数和命令不一样

#4


能不能把第五个参数解释下,不是很懂!