Linux下对写保护的u盘操作问题
我在Linux下挂使用U盘,U盘带有写保护功能键,我设定为写保护状态。发现一个问题,具体如下:
1. mount U盘,调用mount
unsigned long ulMountFlag = MS_NOEXEC|MS_SYNCHRONOUS;
int nRet = mount(psName, "/mnt/", "vfat", ulMountFlag, NULL);
成功,nRet == 0;
2. FILE *pFile;
pFile = fopen("/mnt/abcd.txt", "a+");
也成功
问题是,我的U盘中并没有abcd.txt文件,U盘处于写保护状态,是不能创建文件的。
3.char psContent[] = "abcdABCD";
nRet = fwrite(psContent, strlen(psContent), 1, pFile);
返回nRet == 1,也成功。
4. 我调用nRet = fsync(fileno(pFile)),同步,返回也是0,成功。
通过调试发现,在上面的过程中,错误码也没有发生什么变化。
但是问题是,实际上是无法将内容写入U盘的,因为U盘处于写保护状态。
请问这样的现象原因在哪里?我如何判断U盘处于写保护状态(当然不是通过眼睛看:)),谢谢。