到目前为止,我使用了四种方式卸载挂载点。第一种是使用system函数,但是没法获取umount失败时的字符串,比如说device is busy。第二种方式是使用系统函数umount,虽然可以得到设备忙的错误码,但是不能清楚系统文件/etc/mtab的记录。第三种方式是使用popen函数(参数1是“umount /mnt/wzhwho”,参数2是“r”),但是卸载挂载点失败时还是不能获取到字符串。第四种是使用pipe函数,fork函数和execlp函数,实现了我期望的效果。但是我不明白第三种方式为什么不行?
第三种和第四种的源程序如下: