1 /* 2 * Mailbox Daemon Temporary File helpers 3 * 4 * Copyright 2017 IBM 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 */ 19 20 #define _GNU_SOURCE 21 #include <stdio.h> 22 #include <stdlib.h> 23 #include <string.h> 24 #include <unistd.h> 25 26 #include "test/tmpf.h" 27 28 int tmpf_init(struct tmpf *tmpf, const char *template) 29 { 30 strncpy(tmpf->path, template, sizeof(tmpf->path) - 1); 31 32 tmpf->fd = mkstemp(tmpf->path); 33 if (tmpf->fd < 0) { 34 perror("mkstemp"); 35 return -1; 36 } 37 38 return 0; 39 } 40 41 void tmpf_destroy(struct tmpf *tmpf) 42 { 43 if (tmpf->fd) 44 close(tmpf->fd); 45 46 if (tmpf->path) 47 unlink(tmpf->path); 48 } 49