成功写入文件时回调,C

时间:2019-04-29 09:43:17

标签: c operating-system debian filesystems

尝试编写一些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;

但它也不起作用

1 个答案:

答案 0 :(得分:0)

按照mathieujamieguinan的建议,在重新启动之前调用sync()可以确保将更改写入磁盘 这样代码就这样结束了:

writeToConfFile("/etc/filename", extraString);  
sync();
reboot(RB_AUTOBOOT);