mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-01-12 19:33:37 +00:00
41 lines
802 B
C
41 lines
802 B
C
#include <unistd.h>
|
|
#include <sys/types.h>
|
|
#include <sys/wait.h>
|
|
|
|
#include "utils.h"
|
|
#include "logging.h"
|
|
|
|
/* All the string should be freed manually!! */
|
|
int file_to_vector(const char* filename, struct vector *v) {
|
|
if (access(filename, R_OK) != 0)
|
|
return 1;
|
|
char *line = NULL;
|
|
size_t len = 0;
|
|
ssize_t read;
|
|
|
|
FILE *fp = xfopen(filename, "r");
|
|
if (fp == NULL)
|
|
return 1;
|
|
|
|
while ((read = getline(&line, &len, fp)) != -1) {
|
|
// Remove end newline
|
|
if (line[read - 1] == '\n')
|
|
line[read - 1] = '\0';
|
|
vec_push_back(v, line);
|
|
line = NULL;
|
|
}
|
|
fclose(fp);
|
|
return 0;
|
|
}
|
|
|
|
int vector_to_file(const char *filename, struct vector *v) {
|
|
FILE *fp = xfopen(filename, "w");
|
|
if (fp == NULL)
|
|
return 1;
|
|
char *line;
|
|
vec_for_each(v, line) {
|
|
fprintf(fp, "%s\n", line);
|
|
}
|
|
fclose(fp);
|
|
return 0;
|
|
} |