开发者社区 问答 正文

用open在NTFS格式的U盘中创建文件时,要等待好久才能创建,怎么回事??

调用open函数在NTFS的U盘中创建一个文件,然后用write写入,函数返回值都正常,但是U盘里面就是没有文件。但是在FAT 格式的U盘创建文件却OK
code如下:
int fd ,size;
const char *filePath = "/mnt/sda1/data.txt";
const char *data = "abcdefg hijklmn opqrst uvwxyz";

fd = open(filePath1,O_WRONLY|O_CREAT|O_TRUNC,755);
if(fd == -1)
{

printf("open error!");
return -1;

}

size = write(fd,(char*)data,50);
if(size <= 0)
{

printf("can't write data to usb !\n");
return -1;

}
fdatasync(fd);
close(fd);

后来测试时又发现如果程序运行后,等上半分钟以上才会在NTFS 格式的USB中创建文件,不知道是怎么回事?
希望各位高手给指导下,感激不尽~~~

展开
收起
杨冬芳 2016-07-08 13:34:57 2149 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    写完文件后调用fflush()

    2019-07-17 19:53:18
    赞同 展开评论
问答地址: