我需要在特定目录中创建具有不同名称的新文件,与该目录中的所有文件不同。 它不必严格遵守 "c ++代码"。 它甚至可以是bash或perl脚本,我将使用execve调用该脚本,但我需要从c ++代码访问其名称。
如何实现这一点?
如何实现这一点?
C++
通过生成 UUID 来生成32位或64位数字,这取决于您要生成的文件数量。许多库都存在,例如如果您可以嵌入外部库,则可以使用带有boost的UUID库
,或者使用基于C的Linux函数。既然您标记了问题标签 gnu
和 linux
,您可以使用mkstemp()
函数:
描述
mkstemp()
函数从template
生成一个唯一的临时文件名,创建并打开该文件,并返回该文件的打开文件描述符。模板的最后六个字符必须是
"XXXXXX"
,并将其替换为一个使文件名唯一的字符串。由于它将被修改,因此模板不能是字符串常量,而应声明为字符数组。
例如:
char newFileName[] = "/path/to/new/file/someName.XXXXXX";
int newFileDescriptor = mkstemp( newFileName );
mkstemp()
函数的变体,可能更适合您实际的需求。