skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

posixplz.h (1665B)


      1 /* ISC license. */
      2 
      3 #ifndef SKALIBS_POSIXPLZ_H
      4 #define SKALIBS_POSIXPLZ_H
      5 
      6 #include <sys/types.h>
      7 #include <sys/stat.h>
      8 #include <regex.h>
      9 
     10 #include <skalibs/gccattributes.h>
     11 #include <skalibs/functypes.h>
     12 
     13 
     14  /*
     15     Stuff that doesn't have its own POSIX header for some reason.
     16  */
     17 
     18 extern char **environ ;
     19 
     20 
     21  /*
     22     Non-POSIX functions that some OSes provide and others don't.
     23     setgroups() isn't included because it's its own kind of broken.
     24  */
     25 
     26 extern void *memmem (void const *, size_t, void const *, size_t) gccattr_pure ;
     27 extern char *strcasestr (char const *, char const *) gccattr_pure ;
     28 extern int getpeereid (int, uid_t *, gid_t *) ;
     29 
     30 
     31  /*
     32     Functions that aren't standard at all, but honestly could be. :P
     33  */
     34 
     35 extern void execvep (char const *, char const *const *, char const *const *, char const *) ;
     36 extern void execvep_loose (char const *, char const *const *, char const *const *, char const *) ;
     37 extern void unlink_void (char const *) ;
     38 extern void munmap_void (void *, size_t) ;
     39 extern pid_t doublefork (void) ;
     40 extern int touch (char const *) ;
     41 
     42 extern int mkfiletemp (char *, create_func_ref, mode_t, void *) ;
     43 extern int mklinktemp (char const *, char *, link_func_ref) ;
     44 extern int mkptemp (char *) ;
     45 extern int mkptemp2 (char *, unsigned int) ;
     46 extern int mkptemp3 (char *, mode_t, unsigned int) ;
     47 extern int mkltemp (char const *, char *) ;
     48 extern int mkhtemp (char const *, char *) ;
     49 extern int mkctemp (char *, mode_t, dev_t) ;
     50 extern int mkbtemp (char *, mode_t, dev_t) ;
     51 
     52 
     53  /*
     54     Wrappers around functions that should be specified better.
     55  */
     56 
     57 #define skalibs_regcomp(re, s, flags) regcomp(re, (s)[0] ? (s) : ".*", flags)
     58 
     59 #endif