]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/tmpfile-util.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
8 int fopen_temporary_at(int dir_fd
, const char *path
, FILE **ret_file
, char **ret_path
);
9 static inline int fopen_temporary(const char *path
, FILE **ret_file
, char **ret_path
) {
10 return fopen_temporary_at(AT_FDCWD
, path
, ret_file
, ret_path
);
13 int fopen_temporary_child_at(int dir_fd
, const char *path
, FILE **ret_file
, char **ret_path
);
14 static inline int fopen_temporary_child(const char *path
, FILE **ret_file
, char **ret_path
) {
15 return fopen_temporary_child_at(AT_FDCWD
, path
, ret_file
, ret_path
);
18 int mkostemp_safe(char *pattern
);
19 int fmkostemp_safe(char *pattern
, const char *mode
, FILE**_f
);
21 int tempfn_xxxxxx(const char *p
, const char *extra
, char **ret
);
22 int tempfn_random(const char *p
, const char *extra
, char **ret
);
23 int tempfn_random_child(const char *p
, const char *extra
, char **ret
);
25 int open_tmpfile_unlinkable(const char *directory
, int flags
);
26 int open_tmpfile_linkable_at(int dir_fd
, const char *target
, int flags
, char **ret_path
);
27 static inline int open_tmpfile_linkable(const char *target
, int flags
, char **ret_path
) {
28 return open_tmpfile_linkable_at(AT_FDCWD
, target
, flags
, ret_path
);
30 int fopen_tmpfile_linkable(const char *target
, int flags
, char **ret_path
, FILE **ret_file
);
32 typedef enum LinkTmpfileFlags
{
33 LINK_TMPFILE_REPLACE
= 1 << 0,
34 LINK_TMPFILE_SYNC
= 1 << 1,
37 int link_tmpfile_at(int fd
, int dir_fd
, const char *path
, const char *target
, LinkTmpfileFlags flags
);
38 static inline int link_tmpfile(int fd
, const char *path
, const char *target
, LinkTmpfileFlags flags
) {
39 return link_tmpfile_at(fd
, AT_FDCWD
, path
, target
, flags
);
41 int flink_tmpfile(FILE *f
, const char *path
, const char *target
, LinkTmpfileFlags flags
);
43 int mkdtemp_malloc(const char *template, char **ret
);
44 int mkdtemp_open(const char *template, int flags
, char **ret
);