0

我继承了一个将数据从单板计算机记录到 USB 闪存驱动器的项目。执行此操作的代码是用 C 编写的。旧代码是:

  //Get the Start time
  sttime = localtime(&starttime);

  //Get the name of the drive
  sprintf(fname,"/mnt/SJ-HMIData%.4i%.2i%.2i%.2i%.2i%.2i.sjrd",(*sttime).tm_year+1900,(*sttime).tm_mon+1,(*sttime).tm_mday,(*sttime).tm_hour,(*sttime).tm_min,(*sttime).tm_sec);

  //Open an IO port with read only
  UsbFile = open(fname, O_CREAT|O_WRONLY|O_TRUNC);//Open csv on flash drive to be appended

我的问题是,这取决于我插入闪存驱动器的时间,即该程序运行的时间。我怎样才能做到这一点,这样我就不需要时间打开设备了?

4

1 回答 1

0

我怀疑日期/时间与安装无关。闪存驱动器很可能安装在 /mnt

日期和时间用于组装要写入已安装文件系统的文件的名称。如果您定期执行此操作,实际上在文件名中添加某种时间戳是很常见的做法 - 它比可能意外丢失或文件移动到另一个系统的文件系统日期字段更方便查看,更可靠或存储介质,然后再进行分析。

实际上,您似乎不应该在这里遇到问题。如果您想以该样式创建文件,请使用当前代码(最好至少将注释更新为它现在所做的,这看起来与编写它们的版本中所做的不同) . 如果您想使用不同的时不变名称创建文件,请执行此操作。

也许您的闪存驱动器没有自动挂载(也许它上面没有预期的文件系统,或者本应处理此问题的某些守护程序不起作用)。很可能是这种情况,但是您发布的代码与安装或安装失败无关。相反,它的代码尝试将可能已经安装的文件系统写入,或者失败,写入应该用作安装点的父文件系统的目录......

于 2012-05-05T05:51:12.043 回答