c plus plus codereview的过程中,针对“临时目录能否唯一”的问题,检查点有哪些?请举代码一一说明。需要有错误代码示范和正确代码示范,并有示范代码的说明。并给出业界标准做法。
时间: 2023-02-14 14:39:02 浏览: 92
基于Mybatis Plus实现代码生成器CodeGenerator
在 C++ 代码审核过程中,针对“临时目录能否唯一”的问题,可以检查以下几个点:
1. 临时目录是否使用了系统提供的函数来生成,例如 `std::tmpnam()` 或 `std::tmpfile()`。使用这些函数可以保证生成的目录名是唯一的。
```c++
#include <cstdio>
// 错误示范
const char* temp_dir1 = "temp_dir";
// 正确示范
char temp_dir2[L_tmpnam];
std::tmpnam(temp_dir2);
```
2. 如果使用了自己定义的方式来生成临时目录名,是否使用了随机数来保证唯一性。
```c++
#include <cstdio>
#include <ctime>
#include <cstdlib>
// 错误示范
const char* temp_dir1 = "temp_dir";
// 正确示范
srand(time(NULL));
char temp_dir2[100];
sprintf(temp_dir2, "temp_dir%d", rand());
```
3. 临时目录是否使用了系统提供的函数来删除,例如 `std::remove()` 或 `std::remove()`。
```c++
#include <cstdio>
// 错误示范
rmdir("temp_dir");
// 正确示范
std::remove("temp_dir");
```
在业界中,常用的做法是使用系统提供的函数来生成唯一的临时目录名,并在使用完之后使用系统提供的函数来删除临时目录。如果使用了自己定义的方式来生成临时目录名,需要确保使用了随机数来保证
阅读全文