mgtemp中的许多临时文件在使用cygwin&使

时间:2014-12-17 16:23:53

标签: bash makefile cygwin temp

我正在基于Cygwin的环境中进行开发。使用在Windows 7上运行的Cygwin附带的标准make等。

几天前,我发现我有大约65个大小为0的临时文件。这些文件的名称与mktemp的标准模式相匹配。 mktemp在一些情况下用于可能在构建期间处理的shell脚本中,所以我一直在寻找删除使用mktemp创建但未找到任何文件的文件。最后,我发现只需在最新的现有构建上调用make(因此make不做任何事情),在make完成后会留下7个临时文件。

我尝试使用sysinternals的Process Monitor,发现是的,这些文件实际上是由mktemp创建的。但是,来自Process Monitor的堆栈跟踪直接进入位于setpassent + 0x221c位置的cygwin1.dll,然后继续进入操作系统(Windows 7)。我原本期望堆栈包含bash,make或构建中使用的任何其他工具,但没有。

遇到类似情况并找到解决方案的任何人?有关如何继续搜索谁创建这些临时文件的任何提示或想法?它确实会影响开发人员工作站的性能,因此必须解决它。我不愿意添加一个通用的干净,因为这可能会影响不应该删除的临时文件。任何建议表示赞赏!

1 个答案:

答案 0 :(得分:-1)

(问题在评论中回答。见Question with no answers, but issue solved in the comments (or extended in chat)

@Etan Reisner写道:

  

仅仅为许多制作设置的记录而言,对于完全最新构建的目录,声明“make不做任何事情”是不正确的。它应该为真,但许多设置都没有正确写入。

     

我会尝试strace看看你是否可以弄清楚正在运行的是什么。{/ 1}。

OP写道:

  

你们都是对的。由于mktemp表达式,make确实运行了一些脚本,$(shell非常适合跟踪它。