尝试编写一些C脚本,我有一些代码应在重新引导系统之前将字符串保存到文件中。两者都可以单独工作,但是尝试在重新启动之前立即写入文件失败...
int writeToConfFile(char* filename, char* newConf) {
FILE *fp;
int status;
fp = fopen(filename, "w");
fprintf(fp,"%s",&newConf[0]);
status = fclose(fp);
return status;
}
int main(int argc, char **argv){
char extraString[1024];
strcpy(extraString,"0");
writeToConfFile("/etc/filename", extraString);
reboot(RB_AUTOBOOT);
}
在sleep(10)
和writeToConfFile
之间添加reboot
可以达到目的,但是我想以更简洁的方式做到这一点。
编辑:操作系统是高度定制的传统debian。
edit2:尝试将writeToConfFile
更改为这样的结尾:
fp = fopen(filename, "w");
fprintf(fp,"%s",&newConf[0]);
fflush(fp);
status = fclose(fp);
return status;
但它也不起作用
答案 0 :(得分:0)
按照mathieu和jamieguinan的建议,在重新启动之前调用sync()可以确保将更改写入磁盘 这样代码就这样结束了:
writeToConfFile("/etc/filename", extraString);
sync();
reboot(RB_AUTOBOOT);