/
niceSOFT
/
systemd
Обзор
Документация
Войти
/
niceSOFT
/
systemd
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/basic/tmpfile-util.h
61 строка
3 KB
Yu Watanabe
Rename basic-forward.h, sd-forward.h, and shared-forward.h to forward.h
14 июл 2026, 20:18
14 июл 2026, 20:18
01e1303
Код
Авторство
О чём код?
/* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include "forward.h" int fopen_temporary_at(int dir_fd, const char *path, FILE **ret_file, char **ret_path); static inline int fopen_temporary(const char *path, FILE **ret_file, char **ret_path) { return fopen_temporary_at(AT_FDCWD, path, ret_file, ret_path); } int fopen_temporary_child_at(int dir_fd, const char *path, FILE **ret_file, char **ret_path); static inline int fopen_temporary_child(const char *path, FILE **ret_file, char **ret_path) { return fopen_temporary_child_at(AT_FDCWD, path, ret_file, ret_path); } int mkostemp_safe(char *pattern); int fmkostemp_safe(char *pattern, const char *mode, FILE**_f); void unlink_tempfilep(char (*p)[]); int tempfn_xxxxxx(const char *p, const char *extra, char **ret); int tempfn_random(const char *p, const char *extra, char **ret); int tempfn_random_child(const char *p, const char *extra, char **ret); int open_tmpfile_unlinkable(const char *directory, int flags); int open_tmpfile_linkable_at(int dir_fd, const char *target, int flags, char **ret_path); static inline int open_tmpfile_linkable(const char *target, int flags, char **ret_path) { return open_tmpfile_linkable_at(AT_FDCWD, target, flags, ret_path); } int fopen_tmpfile_linkable_at(int dir_fd, const char *target, int flags, char **ret_path, FILE **ret_file); static inline int fopen_tmpfile_linkable(const char *target, int flags, char **ret_path, FILE **ret_file) { return fopen_tmpfile_linkable_at(AT_FDCWD, target, flags, ret_path, ret_file); } typedef enum LinkTmpfileFlags { LINK_TMPFILE_REPLACE = 1 << 0, LINK_TMPFILE_SYNC = 1 << 1, } LinkTmpfileFlags; int link_tmpfile_at(int fd, int dir_fd, const char *path, const char *target, LinkTmpfileFlags flags); static inline int link_tmpfile(int fd, const char *path, const char *target, LinkTmpfileFlags flags) { return link_tmpfile_at(fd, AT_FDCWD, path, target, flags); } int flink_tmpfile_at(FILE *f, int dir_fd, const char *path, const char *target, LinkTmpfileFlags flags); static inline int flink_tmpfile(FILE *f, const char *path, const char *target, LinkTmpfileFlags flags) { return flink_tmpfile_at(f, AT_FDCWD, path, target, flags); } int mkdtemp_malloc(const char *template, char **ret); int mkdtemp_open(const char *template, int flags, char **ret); /* A helper for removing link_tmpfile_at() via _cleanup_() */ struct cleanup_tmpfile_data { int *dir_fd; char **filename; }; void cleanup_tmpfile_data_done(struct cleanup_tmpfile_data *d); #define _CLEANUP_TMPFILE_AT(u, dir_fd, filename) \ _unused_ _cleanup_(cleanup_tmpfile_data_done) struct cleanup_tmpfile_data UNIQ_T(cta, u) = { &(dir_fd), &(filename) } #define CLEANUP_TMPFILE_AT(dir_fd, filename) \ _CLEANUP_TMPFILE_AT(UNIQ, dir_fd, filename)