2 memegood123 memegood123 于 2013.10.31 11:11 提问

用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中创建文件,不知道是怎么回事?
希望各位高手给指导下,感激不尽~~~

1个回答

oyljerry
oyljerry   Ds   Rxr 2014.12.28 15:43

写完文件后调用fflush()

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!