我正在使用C语言在Linux OS(ubuntu 12.04)上开发路由协议。我的问题是我需要将路由表保存在外部文件中,这样如果程序关闭或计算机关闭,程序应该能够在重新启动时从文件中获取路由表。
最简单的解决方案是什么?如果你能解释一下,我将不胜感激。如果它可以帮助您回答,我将表struct routing user_list[40]
保存在下面:较小的索引在表中具有较高的优先级。
struct routing {
int hop_distance;
char senderID[16]; // 192.168.001.122
char gateway[16];
};
struct routing user_list[40] = { [0] = {0, {0}, {0}, {0} } };
提前谢谢。
答案 0 :(得分:2)
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
...
RETURN VALUE
fread() and fwrite() return the number of items successfully read or written (i.e., not the number of charac‐
ters). If an error occurs, or the end-of-file is reached, the return value is a short item count (or zero).
最简单的解决方案
int nb_written = fwrite(&user_list, sizeof(struct routing), 40, myfile);
int nb_read = fread(&user_list, sizeof(struct routing), 40, myfile);
如评论中所示:
答案 1 :(得分:1)