Сохранение состояния объекта в файле означает его сериализацию.
Чтение состояния объекта из файла означает его десериализацию.
У вас есть для использования сериализации / десериализации, чтобы делать то, что вы хотите.
Поскольку вам нужно делать это на разных языках, использование встроенных сериализаторов, вероятно, не очень поможет.
Вы можете использовать один из сериализаторов XML для части C #, но тогда придется анализировать XML в c.
Другой вариант - написать свой собственный serizlizer для этого. Таким образом, вы имеете полный контроль над форматом файла.