写入文件成功时回调,C
callback on write to file success, C
尝试编写一些 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);
}
在 writeToConfFile
和 reboot
之间添加 sleep(10)
就可以了,但我想以更简洁的方式进行。
编辑:os 是一个高度定制的遗留 debian。
edit2:尝试将 writeToConfFile
更改为这样结束:
fp = fopen(filename, "w");
fprintf(fp,"%s",&newConf[0]);
fflush(fp);
status = fclose(fp);
return status;
但是也没用
如 mathieu and jamieguinan 所建议,在重新启动前调用 sync() 可确保将更改写入磁盘
所以代码这样结束:
writeToConfFile("/etc/filename", extraString);
sync();
reboot(RB_AUTOBOOT);
尝试编写一些 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);
}
在 writeToConfFile
和 reboot
之间添加 sleep(10)
就可以了,但我想以更简洁的方式进行。
编辑:os 是一个高度定制的遗留 debian。
edit2:尝试将 writeToConfFile
更改为这样结束:
fp = fopen(filename, "w");
fprintf(fp,"%s",&newConf[0]);
fflush(fp);
status = fclose(fp);
return status;
但是也没用
如 mathieu and jamieguinan 所建议,在重新启动前调用 sync() 可确保将更改写入磁盘 所以代码这样结束:
writeToConfFile("/etc/filename", extraString);
sync();
reboot(RB_AUTOBOOT);