[英]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.