_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 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题