写入文件成功时回调,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);
}

writeToConfFilereboot 之间添加 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);