libite
2.6.1
src
fexist.c
Go to the documentation of this file.
1
/* Check if file exists
2
*
3
* Copyright (c) 2008 Claudio Matsuoka <http://helllabs.org/finit/>
4
*
5
* Permission is hereby granted, free of charge, to any person obtaining a copy
6
* of this software and associated documentation files (the "Software"), to deal
7
* in the Software without restriction, including without limitation the rights
8
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
* copies of the Software, and to permit persons to whom the Software is
10
* furnished to do so, subject to the following conditions:
11
*
12
* The above copyright notice and this permission notice shall be included in
13
* all copies or substantial portions of the Software.
14
*
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
* THE SOFTWARE.
22
*/
23
30
31
#include <errno.h>
32
#include <stdio.h>
33
#include <stdarg.h>
34
#include <stdlib.h>
35
#include <unistd.h>
36
37
#include "
lite.h
"
38
45
int
fexist
(
const
char
*file)
46
{
47
if
(!file) {
48
errno = EINVAL;
49
return
0;
/* Doesn't exist ... */
50
}
51
52
if
(-1 == access(file, F_OK))
53
return
0;
54
55
return
1;
56
}
57
68
int
fexistf
(
const
char
*fmt, ...)
69
{
70
va_list ap;
71
char
*file;
72
int
len;
73
74
va_start(ap, fmt);
75
len = vsnprintf(NULL, 0, fmt, ap);
76
va_end(ap);
77
78
file = alloca(len + 1);
79
if
(!file) {
80
errno = ENOMEM;
81
return
-1;
82
}
83
84
va_start(ap, fmt);
85
vsnprintf(file, len + 1, fmt, ap);
86
va_end(ap);
87
88
return
fexist
(file);
89
}
90
fexistf
int fexistf(const char *fmt,...)
Definition
fexist.c:68
fexist
int fexist(const char *file)
Definition
fexist.c:45
lite.h
Generated by
1.13.2