summaryrefslogtreecommitdiff
path: root/lib/misc.h
blob: 183891d7474d951db8bbdd21a79af95d02d65d01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef H_MISC
#define H_MISC

#include <unistd.h>
#include <sys/types.h>

#ifdef __cplusplus
extern "C" {
#endif

/*@only@*/char ** splitString(const char * str, int length, char sep);
void freeSplitString(/*@only@*/char ** list);
void stripTrailingSlashes(char * str);

int rpmfileexists(const char * filespec);

int rpmvercmp(const char * one, const char * two);

/* these are like the normal functions, but they malloc() the space which
   is needed */
int dosetenv(const char *name, const char *value, int overwrite);
int doputenv(const char * str);

/* These may be called w/ a NULL argument to flush the cache -- they return
   -1 if the user can't be found */
int unameToUid(char * thisUname, /*@out@*/uid_t * uid);
int gnameToGid(char * thisGname, /*@out@*/gid_t * gid);

/* Call w/ -1 to flush the cache, returns NULL if the user can't be found */
char * uidToUname(uid_t uid);
char * gidToGname(gid_t gid);

int makeTempFile(const char * prefix, /*@out@*/const char ** fnptr, /*@out@*/FD_t * fdptr);
char * currentDirectory(void);		/* result needs to be freed */

#ifdef __cplusplus
}
#endif

#endif	/* H_MISC */