chiark / gitweb /
fileio: split write_one_line_file into two
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 4 May 2013 15:38:23 +0000 (11:38 -0400)
committerLennart Poettering <lennart@poettering.net>
Mon, 6 May 2013 20:51:47 +0000 (22:51 +0200)
The new function allows one to write to an already
open file.

src/shared/fileio.c
src/shared/fileio.h

index 48dd44239fa6dc9930072b808eb2e140d3a7ffb9..ad068bf30da6c4687b80393a6c387ca388ee74ea 100644 (file)
 #include "util.h"
 #include "strv.h"
 
 #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"))
         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;
 }
 
         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;
 int write_string_file_atomic(const char *fn, const char *line) {
         _cleanup_fclose_ FILE *f = NULL;
         _cleanup_free_ char *p = NULL;
index 34ed3c1e978fe62e219d88978c8acdfb1998f4e9..0ca6878ea48e487bf6c7b340cb7c8e899602ae74 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 #include <stddef.h>
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 #include <stddef.h>
+#include <stdio.h>
+
 #include "macro.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 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);
 
 int read_one_line_file(const char *fn, char **line);
 int read_full_file(const char *fn, char **contents, size_t *size);