[英]How I can monitor the output files and move/rename in desired directory
程序每15次迭代生成一个文本文件。 由于使用了相同的名称,它将用新的output.txt
(在第30步形成)覆盖output.txt
(在第15步形成)。 我无法在程序中修改文件名。 我可以在Ubuntu系统上与该程序同时运行一些脚本,该程序监视我的目录,并在形成它或更改输出文件名时将output.txt
文件移动到所需目录吗?
我无法在程序中修改文件名。
(我的意思是说您必须不更改文件名,而不是您不知道如何。)
您已将此帖子标记为C ++。
尽管可以运行一些脚本来监视目录,但是协调名称更改以及运行线程或其他进程(来自C ++)可能比其他选择更具挑战性。
如何使用更简单的方法:
我建议您每次要写入文件时,使用std :: stringstream生成唯一的pfn(路径文件名)。 例如,可以在不可修改文件名后附加一个递增的数字。
就像是:
std::string uniqueFileName(void)
{
std::stringstream ss;
// vvvvvvvvvv -- unmodifiable-file-name is not changed
ss << "output.txt" << ++fileCount;
uniqueFileName = ss.str();
return(uniqueFileName);
}
祝好运。
聚苯乙烯
如果您觉得必须先使用正确的文件名写入文件,然后将文件名更改为唯一的名称...是的,您可以在此程序中重命名文件(即微不足道的同步)
我会使用popen(),因为我觉得它提供了更多反馈,并且我之前已经使用过它。
其他人则喜欢system()之类的东西(大约有6个)。
无论哪种情况,都可以使用命令重命名现有文件(向每个文件提供bash命令,例如mv fromPfn toPfn,或者可能需要cp。
对于每个命令,在命令完成之前,您的代码不得继续进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.