[systemd-devel] [PATCH 1/3] fileio: split write_one_line_file into two

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Wed May 1 05:53:44 PDT 2013


The new function allows one to write to an already
open file.
---
 src/shared/fileio.c | 23 ++++++++++++++---------
 src/shared/fileio.h |  4 ++++
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/shared/fileio.c b/src/shared/fileio.c
index 48dd442..ad068bf 100644
--- a/src/shared/fileio.c
+++ b/src/shared/fileio.c
@@ -24,16 +24,8 @@
 #include "util.h"
 #include "strv.h"
 
-int write_string_file(const char *fn, const char *line) {
-        _cleanup_fclose_ FILE *f = NULL;
-
-        assert(fn);
-        assert(line);
-
-        f = fopen(fn, "we");
-        if (!f)
-                return -errno;
 
+int write_string_to_file(FILE *f, const char *line) {
         errno = 0;
         fputs(line, f);
         if (!endswith(line, "\n"))
@@ -47,6 +39,19 @@ int write_string_file(const char *fn, const char *line) {
         return 0;
 }
 
+int write_string_file(const char *fn, const char *line) {
+        _cleanup_fclose_ FILE *f = NULL;
+
+        assert(fn);
+        assert(line);
+
+        f = fopen(fn, "we");
+        if (!f)
+                return -errno;
+
+        return write_string_to_file(f, line);
+}
+
 int write_string_file_atomic(const char *fn, const char *line) {
         _cleanup_fclose_ FILE *f = NULL;
         _cleanup_free_ char *p = NULL;
diff --git a/src/shared/fileio.h b/src/shared/fileio.h
index 34ed3c1..0ca6878 100644
--- a/src/shared/fileio.h
+++ b/src/shared/fileio.h
@@ -21,10 +21,14 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 #include <stddef.h>
+#include <stdio.h>
+
 #include "macro.h"
 
+int write_string_to_file(FILE *f, const char *line);
 int write_string_file(const char *fn, const char *line);
 int write_string_file_atomic(const char *fn, const char *line);
+
 int read_one_line_file(const char *fn, char **line);
 int read_full_file(const char *fn, char **contents, size_t *size);
 
-- 
1.8.2.562.g931e949



More information about the systemd-devel mailing list