gpt4 book ai didi

c - 如何生成唯一的文件名?

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:45 25 4
gpt4 key购买 nike

这是将用户输入写入 enduser_custom_parameters.json 文件的代码。这是 enduser_setup module 的一部分esp8266/nodeMCU。

static int enduser_setup_write_file_with_extra_configuration_data(
char * configuration_string, int configuration_length
)
{
int p_file = 0;
lua_State *L = NULL;

ENDUSER_SETUP_DEBUG("enduser: opening enduser_custom_parameters.json for write");

// setup the file output
p_file = vfs_open("enduser_custom_parameters.json", "w");
if (p_file == 0)
{
ENDUSER_SETUP_DEBUG("Can't write to file!");
return 1;
}

/* Not certain what this does */
L = lua_getstate();

if (L != NULL)
{
lua_pushlstring(L, configuration_string, configuration_length);
}

vfs_write(p_file, configuration_string, configuration_length);
vfs_close(p_file);
return 0;
}

我应该如何修改这段代码,以便每次都将数据保存到单独的文件中?(我正在修改模块以充当 Captive Portal 以收集来自不同用户的数据)我想我可以使用 GUID、当前日期/时间或用户的 MAC(理想选项)作为文件名。但是不知道如何用 C 来做。

最佳答案

首先,获取mac地址。 station_info结构包含客户端的MAC地址,但需要将其传递给此函数才能使用,这里我使用AP的mac进行演示:

uint8_t mac[6];
wifi_get_macaddr(SOFTAP_IF, mac);

现在创建一个包含此地址的文件名:

char filename[64];
sprintf(filename, "enduser_custom_parameters_%02x%02x%02x%02x%02x%02x.json", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);

然后打开文件:

p_file = vfs_open(filename, "w");

关于c - 如何生成唯一的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50008136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com