在mount.c 中的 int fuse_mount_sys 函数中,如果注销掉 fd的open语句,此时fd一般为0.
然后,用普通用户运行ssfs且不加-f参数,一切显示正常 fuse_mount_sys返回的值是-2, 因此转入fuse_mount_fusermount函数,fuse_mount_fusermount函数整个过程运行也显示正常。但是所有地方都看不到挂载点。如果加-f参数,则可以,一切运行正常。
经过debug,根本原因是close(fd)关闭了stdin,如果在这之前返回-2,都不会出问题。
但是,为什么关闭stdin会引起这个问题呢,而且只影响不加-f参数?