_qingtian_ 2013-10-31 03:11 采纳率: 0%
浏览 2070

用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 2014-12-28 07:43
    关注

    写完文件后调用fflush()

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容