我看到了一些与我的问题相关的帖子,但没有一个完全解决它。 我需要在标准临时目录中创建一个文件,并在写入完成后将其移动到另一个位置。 这个想法是,在下载过程中该文件被视为临时文件,在下载完成后它变成永久文件。
我尝试通过调用mkstemp或tmpfile来实现这一点,然后在完成写入后调用rename。 然而,我需要文件的完整路径才能调用rename,而从文件描述符(由mkstemp返回)或FILE *(由tmpfile返回)获取文件名似乎并不是一个简单的过程。 它可以做到,但并不优雅。
是否有一个系统调用会创建一个临时文件并提供给我名称? 我知道关于mktemp和相关调用,但它们要么不能保证唯一性,要么已经被弃用。 或者也许有更好的方法来创建、写入和移动临时文件。
name
中”。 - cnicutar