Comments (1)
Hi @SamuelMarks -- inih
itself doesn't provide a way to write files. I'd probably use the fprintf
approach myself. What you have there looks fine, though with the error handling it is a bit of a pain, isn't it? Perhaps you could restructure it or add a helper function or macro to simplify the error handling? Something like this (completely untested):
int config_dumper(const char *filename, const configuration *const config) {
int status = 0;
FILE *fh = fopen(filename, "w");
if (fh == NULL) return ENOENT;
#define _FPRINTF(...) if (status>=0) status = fprintf(fh, __VA_ARGS__);
_FPRINTF("[user]\n");
if (config->name) _FPRINTF("name = %s\n", config->name);
if (config->email) _FPRINTF("email = %s\n", config->email);
_FPRINTF("version = %d\n", config->version);
return fclose(fh) ? EOF : status;
#undef _FPRINTF
}
from inih.
Related Issues (20)
- pkg-config files have version `undefined` HOT 3
- possible NULL pointer dereference HOT 2
- unittest.sh doesn' report that tests succeeded? HOT 1
- Error attempting to link against libinih HOT 3
- Expected key/section missing error HOT 3
- Do you have plan to support write feature ? HOT 1
- Do you plan support buid with cmake HOT 3
- how to get all the sections, key-value pairs HOT 3
- Seems to not discard the rest of a long line? HOT 4
- meason.build distro_install option HOT 5
- Duplicate keys cause a trailing \n to be appended? HOT 1
- inih v57 fails to build using GCC 4.8.5 on CentOS 7 HOT 3
- Add support for UTF-16 HOT 5
- Add Cflags.private to support static linking on Windows
- strncpy0 should be in ini_ namespace HOT 8
- Undefined symbol when linking with LLD HOT 3
- undefined reference to `INIReader
- undefined reference to 'ini_parse'
- When loading the ini file,, all the spaces in the value will be deleted HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from inih.