gpt4 book ai didi

c - 在内核重启后保留文件

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

我需要使用 reboot() 系统调用(用 ARM 重启内核 2.6.29)并且我尝试了下面的代码:

#include <stdio.h>
#include <linux/reboot.h>
#include <unistd.h>
int main()
{
reboot(LINUX_REBOOT_CMD_RESTART);
}

效果很好!但我想知道的是,在重新启动内核后,我丢失了正在保存的文件。我的意思是如果使用此代码,“url”文件在重启后不会保存。

int main()
{
FILE *pFile = fopen("url", "a"); // for .txt file
// write to file/read from file ... etc
fclose(pFile);

int fdUART = open("/dev/ttySAC0", O_RDWR | O_NOCTTY | O_NDELAY);
// some operations on UART port
close(fdUART);
/* Ethernet raw package process*/
/* Char dev driver open and communicate with FPGA fifo */
/* so on */
reboot(LINUX_REBOOT_CMD_RESTART);
}

我正在使用 UART、以太网、char 驱动程序,只是想知道 reboot() 调用系统对我的系统的影响。

非常感谢任何帮助。

最佳答案

您在评论中写到文件系统是 cramfs。

来自 the Wikipedia page for cramfs :

The compressed ROM file system (or cramfs) is a free (GPL'ed) read-only Linux file system designed for simplicity and space-efficiency. It is mainly used in embedded systems and small-footprint systems.

请注意,它是只读的:这意味着您的更改不会被保留。

您需要写入持久存储以保留您的更改。

关于c - 在内核重启后保留文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11496934/

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