Linux 环境 c语言中 fopen 路径加时间,保证每次保存的唯一性
时间: 2024-03-28 21:41:35 浏览: 18
你可以使用 time.h 头文件中的 time() 函数来获取当前时间,然后将时间作为文件名的一部分。具体实现如下:
```c
#include <stdio.h>
#include <time.h>
int main() {
char filename[100];
time_t now = time(NULL); // 获取当前时间
strftime(filename, sizeof(filename), "file_%Y%m%d_%H%M%S.txt", localtime(&now)); // 将时间按照指定格式转换为字符串,并存储到 filename 中
FILE* fp = fopen(filename, "w"); // 打开文件,如果文件不存在则创建新文件
if (fp == NULL) {
printf("Error opening file!\n");
return 1;
}
fprintf(fp, "Hello, world!\n"); // 写入数据到文件
fclose(fp); // 关闭文件
return 0;
}
```
上述代码中,strftime() 函数将时间格式化为 "file_年月日_时分秒.txt" 的形式,并将结果存储到 filename 字符数组中。然后使用 fopen() 函数打开文件,文件名为 filename,如果文件不存在则创建新文件。最后写入数据到文件,并调用 fclose() 函数关闭文件。
相关问题
c语言中 fopen 路径加时间,保证每次保存的唯一性
在C语言中,可以使用`time.h`头文件中的`time()`和`strftime()`函数来获取当前的日期和时间,并将其拼接在文件名中,从而保证每次保存的唯一性。
示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
char time_str[20];
char file_path[50];
FILE *fp;
// 获取当前时间
current_time = time(NULL);
// 格式化时间字符串
strftime(time_str, sizeof(time_str), "%Y-%m-%d_%H-%M-%S", localtime(¤t_time));
// 拼接文件路径
sprintf(file_path, "./data_%s.txt", time_str);
// 打开文件并写入内容
fp = fopen(file_path, "w");
fprintf(fp, "Hello, world!");
fclose(fp);
return 0;
}
```
这个示例代码中,首先使用`time()`函数获取当前时间,然后使用`strftime()`函数将其格式化为`%Y-%m-%d_%H-%M-%S`的时间字符串,用于作为文件名的一部分。接着使用`sprintf()`函数将时间字符串拼接到文件路径中,最后打开文件并写入内容。这样每次保存的文件名都会包含唯一的时间戳,保证了每次保存的唯一性。
fopen 路径加时间,保证每次保存的唯一性
可以使用Python中的`datetime`模块来获取当前的日期和时间,并将其拼接在文件名中,从而保证每次保存的唯一性。
示例代码:
```python
import datetime
current_time = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
file_path = f'./data_{current_time}.txt'
with open(file_path, 'w') as f:
f.write('Hello, world!')
```
这个示例代码中,首先使用`datetime.datetime.now()`方法获取当前的日期和时间,然后使用`strftime()`方法将其格式化为`%Y-%m-%d_%H-%M-%S`的字符串,用于作为文件名的一部分。最后使用`file_path`作为文件路径,打开文件并写入内容。这样每次保存的文件名都会包含唯一的时间戳,保证了每次保存的唯一性。