Hi Paul and Bob, I probably should also mention that I'm not a big C programmer, but am getting there. Here's the output of "cc -E tempname.c". I'm not sure if you want the whole lot, it's appended below.
On a very quick check of the system header files the only reference I could find to "__open" or "__open64" was in /usr/include/sys/fcntl.h and /usr/conf/sys/fcntl.h which have the following lines... fcntl.h:extern int __open64 __((const char *, int, ...)); fcntl.h:# define open __open64 fcntl.h: { return __open64(a,b,c); } Oh, and here is the part of config.log regarding mkstemp... =========================================================================================== configure:20328: checking for mkstemp configure:20385: cc -o conftest -D_LARGEFILE64_SOURCE conftest.c >&5 configure:20391: $? = 0 configure:20395: test -z || test ! -s conftest.err configure:20398: $? = 0 configure:20401: test -s conftest configure:20404: $? = 0 configure:20417: result: yes configure:20441: checking for mkstemp limitations configure:20477: cc -o conftest -D_LARGEFILE64_SOURCE conftest.c >&5 configure:20480: $? = 0 configure:20482: ./conftest configure:20485: $? = 1 configure: program exited with status 1 configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "GNU coreutils" | #define PACKAGE_TARNAME "coreutils" | #define PACKAGE_VERSION "5.94" | #define PACKAGE_STRING "GNU coreutils 5.94" | #define PACKAGE_BUGREPORT "bug-coreutils@gnu.org" | #define PACKAGE "coreutils" | #define VERSION "5.94" | #define _GNU_SOURCE 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 . . snip... . | #define HAVE_DECL_MEMRCHR 0 | #define HAVE_MEMSET 1 | #define mktime rpl_mktime | #define HAVE_DECL_GETENV 1 | #define HAVE_MKSTEMP 1 | /* end confdefs.h. */ | | # include <stdlib.h> | # include <unistd.h> | int main () | { | int i; | for (i = 0; i < 70; i++) | { | char template[] = "conftest.mkstemp/coXXXXXX"; | int fd = mkstemp (template); | if (fd == -1) | exit (1); | close (fd); | } | exit (0); | } | configure:20502: result: yes =========================================================================================== Regards, Simon Output of "cc -E tempname.c" =========================================================================================== # 1 "tempname.c" # 24 # 1 "/usr/include/sys/types.h" # 40 # 1 "/usr/include/sys/stdsyms.h" # 425 # 41 "/usr/include/sys/types.h" # 1 "/usr/include/sys/_inttypes.h" # 59 # 1 "/usr/include/sys/stdsyms.h" # 425 # 60 "/usr/include/sys/_inttypes.h" # 86 typedef char int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int uint32_t; typedef int intfast_t; typedef unsigned int uintfast_t; typedef long long int64_t; typedef unsigned long long uint64_t; typedef int64_t intmax_t; typedef uint64_t uintmax_t; # 116 typedef long intptr_t; typedef unsigned long uintptr_t; # 127 typedef char int_least8_t; typedef unsigned char uint_least8_t; typedef int int_fast8_t; typedef unsigned int uint_fast8_t; typedef short int_least16_t; typedef unsigned short uint_least16_t; typedef int int_fast16_t; typedef unsigned int uint_fast16_t; typedef int int_least32_t; typedef unsigned int uint_least32_t; typedef int int_fast32_t; typedef unsigned int uint_fast32_t; typedef int64_t int_least64_t; typedef int64_t int_fast64_t; typedef uint64_t uint_least64_t; typedef uint64_t uint_fast64_t; # 192 typedef uint32_t ptr32_t; typedef uint64_t ptr64_t; # 202 # 42 "/usr/include/sys/types.h" # 54 typedef int mqd_t; typedef int32_t dev_t; typedef uint32_t ino32_t; # 73 typedef uint64_t ino64_t; # 88 typedef unsigned long ino_t; typedef uint16_t mode_t; typedef uint16_t nlink_t; typedef int32_t fpos32_t; typedef int64_t fpos64_t; typedef long fpos_t; typedef uint32_t fsblkcnt32_t; typedef uint64_t fsblkcnt64_t; # 143 typedef unsigned long fsblkcnt_t; typedef int32_t off32_t; typedef int32_t sbsize32_t; typedef uint32_t bsize32_t; typedef int64_t off64_t; # 168 typedef int64_t sbsize64_t; typedef uint64_t bsize64_t; # 179 typedef long off_t; # 190 typedef long sbsize_t; typedef unsigned long bsize_t; typedef uint32_t fsfilcnt32_t; typedef uint64_t fsfilcnt64_t; # 213 typedef unsigned long fsfilcnt_t; typedef int32_t blkcnt32_t; typedef int64_t blkcnt64_t; # 235 typedef long blkcnt_t; typedef int32_t pid_t; typedef int32_t lwpid_t; typedef int32_t gid_t; typedef int32_t uid_t; typedef int32_t tid_t; typedef long ssize_t; typedef uint16_t __site_t; typedef uint16_t __cnode_t; # 289 typedef long time_t; # 297 typedef unsigned long size_t; # 304 typedef uint32_t clock_t; typedef int32_t key_t; typedef unsigned short __ushort; typedef int32_t __daddr_t; typedef char *__caddr_t; typedef int32_t __swblk_t; # 326 typedef __caddr_t caddr_t; # 334 typedef int32_t id_t; typedef uint32_t useconds_t; # 346 typedef uint32_t rlim32_t; typedef uint64_t rlim64_t; # 364 typedef unsigned long rlim_t; typedef __site_t site_t; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned int uint; typedef unsigned short ushort; typedef unsigned char ubit8; typedef unsigned short ubit16; typedef uint32_t ubit32; typedef char sbit8; typedef short sbit16; typedef int32_t sbit32; typedef __swblk_t swblk_t; typedef __daddr_t daddr_t; typedef __cnode_t cnode_t; # 1 "/usr/include/machine/vmtypes.h" # 45 typedef uintptr_t paddr_t; # 57 typedef intptr_t page_t; typedef int32_t pgcnt_t; typedef uint32_t upgcnt_t; typedef uint32_t physpfn_t; typedef uintptr_t iophyspfn_t; typedef uintptr_t pgaddr_t; typedef uint32_t space_t; typedef uint32_t prot_t; # 392 "/usr/include/sys/types.h" typedef unsigned long ulong_t; typedef int16_t cnt_t; typedef uint32_t cdno_t; typedef uint16_t use_t; typedef struct _physadr { intptr_t r[1]; } *physadr; typedef struct _quad { long val[2]; } quad; typedef int spu_t; typedef int ldom_t; typedef short cpu_t; typedef struct lkinfo { char *lk_name; int lk_flags; long lk_pad[2]; } lkinfo_t; typedef unsigned long pl_t; typedef int32_t aid_t; # 436 typedef pid_t sid_t; # 448 # 1 "/usr/include/sys/_fd_macros.h" # 82 typedef int32_t __fd_mask; # 91 typedef struct fd_set { long fds_bits[(((2048)+(((sizeof(long) * 8))-1))/((sizeof(long) * 8))) ]; } fd_set; # 148 # 449 "/usr/include/sys/types.h" # 457 typedef __fd_mask fd_mask; # 511 typedef int32_t dir_off_t; # 533 # 25 "tempname.c" # 1 "/usr/include/assert.h" # 20 extern void __assert(char *, char *, int); # 42 # 26 "tempname.c" # 1 "/usr/include/errno.h" # 28 extern int errno; # 1 "/usr/include/sys/errno.h" # 35 # 1 "/usr/include/sys/stdsyms.h" # 425 # 36 "/usr/include/sys/errno.h" # 48 extern int errno; # 251 # 31 "/usr/include/errno.h" # 46 # 28 "tempname.c" # 1 "/usr/include/stdio.h" # 10 # 1 "/usr/include/sys/types.h" # 533 # 11 "/usr/include/stdio.h" # 37 typedef struct { int __cnt; unsigned char *__ptr; unsigned char *__base; unsigned short __flag; unsigned char __fileL; unsigned char __fileH; } FILE; typedef struct { int __cnt; unsigned char *__ptr; unsigned char *__base; unsigned short __flag; unsigned char __fileL; unsigned char __fileH; unsigned char *__bufendp; unsigned char *__newbase; unsigned char __smbuf[8 +2*4]; void *__unused; int __filler1; char __filler2[8]; } _FILEX; # 97 # 1 "/usr/include/sys/_null.h" # 25 # 98 "/usr/include/stdio.h" # 1 "/usr/include/sys/_size_t.h" # 17 # 1 "/usr/include/sys/stdsyms.h" # 425 # 18 "/usr/include/sys/_size_t.h" # 29 # 102 "/usr/include/stdio.h" # 133 typedef double *__va_list; # 172 extern FILE __iob[]; # 223 extern int remove(const char *); extern int rename(const char *, const char *); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern void setbuf(FILE *, char *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *,...); extern int printf(const char *,...); extern int scanf(const char *,...); extern int sprintf(char *, const char *,...); extern int sscanf(const char *, const char *,...); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern FILE *tmpfile(void); extern int fgetpos(FILE *, fpos_t *); extern int fsetpos(FILE *, const fpos_t *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); # 265 extern int fseek(FILE *, long int, int); extern long int ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); # 361 extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); # 386 extern int __flsbuf(unsigned char, FILE *); extern int __filbuf(FILE *); # 464 extern char *ctermid(char *); extern int fileno(FILE *); extern FILE *fdopen(int, const char *); # 495 typedef double *va_list; # 507 extern char *optarg; extern int opterr; extern int optind; extern int optopt; # 520 extern int getopt(int, char * const [], const char *); extern char *cuserid(char *); # 540 extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); extern FILE *popen(const char *, const char *); extern char *tempnam(const char *, const char *); # 567 extern int vprintf(const char *, va_list); extern int vfprintf(FILE *, const char *, va_list); extern int vsprintf(char *, const char *, va_list); # 593 extern int snprintf(char *, size_t , const char *,...); extern int vsnprintf(char *, size_t , const char *, va_list ); extern int vscanf(const char *, __va_list); extern int vfscanf(FILE *, const char *, __va_list); extern int vsscanf(char *, const char *, __va_list); extern void flockfile(FILE *); extern int ftrylockfile(FILE *); extern void funlockfile(FILE *); # 647 extern unsigned char *__bufendtab[]; # 826 # 33 "tempname.c" # 46 # 1 "/usr/include/stddef.h" # 20 # 1 "/usr/include/sys/_null.h" # 25 # 21 "/usr/include/stddef.h" # 30 # 1 "/usr/include/sys/_wchar_t.h" # 36 typedef unsigned int wchar_t; # 31 "/usr/include/stddef.h" typedef long ptrdiff_t; # 47 "tempname.c" # 1 "/usr/include/stdlib.h" # 26 extern int abs(int); # 47 extern int __nl_char_size; # 60 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; # 103 extern double atof(const char *); extern int atoi(const char *); extern long int atol(const char *); extern double strtod(const char *, char **); extern long int strtol(const char *, char **, int); extern unsigned long int strtoul(const char *, char **, int); extern int rand(void); extern void srand(unsigned int); extern int atexit(void (*) (void)); extern void exit(int); extern char *getenv(const char *); extern int system(const char *); extern div_t div(int, int); extern ldiv_t ldiv(long int, long int); extern long int labs(long int); extern int mblen(const char *, size_t); extern int mbtowc(wchar_t *, const char *, size_t); extern int wctomb(char *, wchar_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern size_t wcstombs(char *, const wchar_t *, size_t); extern void free(void *); extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); # 168 extern void abort(void); extern void *bsearch(const void *, const void *, size_t, size_t, int (*) (const void *, const void *)); extern void *calloc(size_t, size_t); extern void *malloc(size_t); extern void *realloc(void *, size_t); # 229 extern void setkey(const char *); extern void lcong48( unsigned short [] ); # 250 extern double drand48(void); extern double erand48(unsigned short []); extern long jrand48(unsigned short []); extern long lrand48(void); extern long mrand48(void); extern long nrand48(unsigned short []); extern void srand48(long); extern unsigned short *seed48(unsigned short []); extern int putenv(const char *); # 281 extern int clearenv(void); extern int getopt(int, char * const [], const char *); extern char *getpass(const char *); extern void *memalign(size_t , size_t ); # 292 extern char *optarg; extern int optind; extern int opterr; # 1 "/usr/include/sys/wait.h" # 27 # 1 "/usr/include/sys/stdsyms.h" # 425 # 28 "/usr/include/sys/wait.h" # 1 "/usr/include/sys/types.h" # 533 # 29 "/usr/include/sys/wait.h" # 74 extern pid_t wait(int *); extern pid_t waitpid(pid_t, int *, int); # 91 # 1 "/usr/include/sys/resource.h" # 45 # 1 "/usr/include/sys/stdsyms.h" # 425 # 46 "/usr/include/sys/resource.h" # 1 "/usr/include/sys/types.h" # 533 # 50 "/usr/include/sys/resource.h" # 1 "/usr/include/sys/time.h" # 26 # 1 "/usr/include/sys/stdsyms.h" # 425 # 27 "/usr/include/sys/time.h" # 1 "/usr/include/sys/types.h" # 533 # 28 "/usr/include/sys/time.h" # 1 "/usr/include/sys/sigevent.h" # 47 typedef union sigval { struct { int __svi_int; } __svi_int_s; void * __sival_ptr; } sigval_t; # 65 typedef int pthread_attr_t; typedef struct sigevent { int __sigev_notify; int __sigev_signo; sigval_t __sigev_value; void (*__sigev_notify_function)(sigval_t); pthread_attr_t *__sigev_notify_attributes; # 95 int __sigev_reserved[8]; } sigevent_t; enum __sigev_types { __SIGEV_NONE = 1, __SIGEV_SIGNAL ,__SIGEV_THREAD }; # 125 # 29 "/usr/include/sys/time.h" # 100 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; # 121 struct timespec { time_t tv_sec; long tv_nsec; }; typedef struct timespec timestruc_t; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; typedef enum __clockid_t { CLOCK_INVALID = 0, CLOCK_REALTIME = 1, CLOCK_VIRTUAL = 2, CLOCK_PROFILE = 4, RTTIMER0 = 8, RTTIMER1 = 16 } clockid_t; typedef unsigned long timer_t; # 163 struct timeval { time_t tv_sec; long tv_usec; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; # 184 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct __cycles { uint32_t hi; uint32_t lo; } cycles_t; # 217 extern double difftime(time_t, time_t); extern time_t mktime(struct tm *); extern time_t time(time_t *); extern char *asctime(const struct tm *); extern char *ctime(const time_t *); extern struct tm *gmtime(const time_t *); extern struct tm *localtime(const time_t *); extern size_t strftime(char *, size_t, const char *, const struct tm *); # 392 extern clock_t clock(void); # 411 extern void tzset(void); # 420 extern char *tzname[2]; # 427 extern int clock_settime(clockid_t, const struct timespec *); extern int clock_gettime(clockid_t, struct timespec *); extern int clock_getres(clockid_t, struct timespec *); extern int timer_create(clockid_t, struct sigevent *, timer_t *); extern int timer_delete(timer_t); extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *); extern int timer_gettime(timer_t, struct itimerspec *); extern int timer_getoverrun(timer_t); extern int nanosleep(const struct timespec *, struct timespec *); # 461 extern char *strptime(const char *, const char *, struct tm *); # 472 extern long timezone; extern int daylight; # 500 extern int getitimer(int, struct itimerval *); extern int setitimer(int, const struct itimerval *, struct itimerval *); extern int utimes(const char *, const struct timeval[2] ); extern int gettimeofday(struct timeval *, void *); extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); # 530 extern int adjtime(const struct timeval *, struct timeval *); extern struct tm *getdate(const char *); # 544 extern int settimeofday(const struct timeval *, const struct timezone *); extern int stime(const time_t *); extern void profil(const void *, size_t , size_t , int); # 574 extern int getdate_err; # 625 struct ki_timeval { uint32_t pad1; uint32_t pad2; }; # 645 typedef uint64_t kt_t; # 695 # 51 "/usr/include/sys/resource.h" # 59 # 1 "/usr/include/sys/_rlimit_body.h" # 43 struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; }; # 60 "/usr/include/sys/resource.h" # 105 struct rusage { struct timeval ru_utime; struct timeval ru_stime; long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_ioch; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw; }; # 149 extern int getpriority (int, id_t) ; extern int getrusage (int, struct rusage *) ; extern int setpriority (int, id_t, int) ; extern int getrlimit (int, struct rlimit *) ; extern int setrlimit (int, const struct rlimit *) ; # 257 # 92 "/usr/include/sys/wait.h" # 109 extern pid_t wait3(int *, int, struct rusage *); # 125 # 1 "/usr/include/sys/types.h" # 533 # 126 "/usr/include/sys/wait.h" # 1 "/usr/include/sys/signal.h" # 40 # 1 "/usr/include/sys/types.h" # 533 # 41 "/usr/include/sys/signal.h" # 1 "/usr/include/sys/sigevent.h" # 125 # 42 "/usr/include/sys/signal.h" # 1 "/usr/include/sys/siginfo.h" # 41 # 1 "/usr/include/sys/stdsyms.h" # 425 # 42 "/usr/include/sys/siginfo.h" # 1 "/usr/include/sys/types.h" # 533 # 43 "/usr/include/sys/siginfo.h" enum __si_codes { SI_QUEUE = -2, SI_USER = -1, SI_TIMER = 1, SI_ASYNCIO= 2, SI_MESGQ = 3 }; # 1 "/usr/include/sys/sigevent.h" # 125 # 57 "/usr/include/sys/siginfo.h" typedef struct __siginfo { int si_signo; int si_code; int si_errno; sigval_t si_value; union { struct { pid_t __pid; union { struct { uid_t __uid; } __kill; struct { int __status; } __SIGCLD; } __pdata; } __proc; struct { void *__addr; } __fault; struct { int __fd; long __band; } __file; struct { void *__addr; void *__lockpage; long __dev_id; } __gfault; } __data; long __pad[9 ]; } siginfo_t; # 317 # 43 "/usr/include/sys/signal.h" # 1 "/usr/include/sys/newsig.h" # 49 typedef struct __sigset_t { unsigned int sigset[8]; } sigset_t; # 62 # 1 "/usr/include/sys/types.h" # 533 # 63 "/usr/include/sys/newsig.h" # 1 "/usr/include/machine/save_state.h" # 44 # 1 "/usr/include/sys/_inttypes.h" # 202 # 45 "/usr/include/machine/save_state.h" # 1 "/usr/include/sys/stdsyms.h" # 425 # 46 "/usr/include/machine/save_state.h" # 213 typedef struct __fp_dbl_block { double ss_fp0; double ss_fp1; double ss_fp2; double ss_fp3; double ss_fp4; double ss_fp5; double ss_fp6; double ss_fp7; double ss_fp8; double ss_fp9; double ss_fp10; double ss_fp11; double ss_fp12; double ss_fp13; double ss_fp14; double ss_fp15; double ss_fp16; double ss_fp17; double ss_fp18; double ss_fp19; double ss_fp20; double ss_fp21; double ss_fp22; double ss_fp23; double ss_fp24; double ss_fp25; double ss_fp26; double ss_fp27; double ss_fp28; double ss_fp29; double ss_fp30; double ss_fp31; } fp_dbl_block_t; typedef struct __fp_int_block { int ss_fpstat; int ss_fpexcept1; int ss_fpexcept2; int ss_fpexcept3; int ss_fpexcept4; int ss_fpexcept5; int ss_fpexcept6; int ss_fpexcept7; int ss_fp4_hi; int ss_fp4_lo; int ss_fp5_hi; int ss_fp5_lo; int ss_fp6_hi; int ss_fp6_lo; int ss_fp7_hi; int ss_fp7_lo; int ss_fp8_hi; int ss_fp8_lo; int ss_fp9_hi; int ss_fp9_lo; int ss_fp10_hi; int ss_fp10_lo; int ss_fp11_hi; int ss_fp11_lo; int ss_fp12_hi; int ss_fp12_lo; int ss_fp13_hi; int ss_fp13_lo; int ss_fp14_hi; int ss_fp14_lo; int ss_fp15_hi; int ss_fp15_lo; int ss_fp16_hi; int ss_fp16_lo; int ss_fp17_hi; int ss_fp17_lo; int ss_fp18_hi; int ss_fp18_lo; int ss_fp19_hi; int ss_fp19_lo; int ss_fp20_hi; int ss_fp20_lo; int ss_fp21_hi; int ss_fp21_lo; int ss_fp22_hi; int ss_fp22_lo; int ss_fp23_hi; int ss_fp23_lo; int ss_fp24_hi; int ss_fp24_lo; int ss_fp25_hi; int ss_fp25_lo; int ss_fp26_hi; int ss_fp26_lo; int ss_fp27_hi; int ss_fp27_lo; int ss_fp28_hi; int ss_fp28_lo; int ss_fp29_hi; int ss_fp29_lo; int ss_fp30_hi; int ss_fp30_lo; int ss_fp31_hi; int ss_fp31_lo; } fp_int_block_t; # 379 typedef struct __reg64 { int64_t ss_reserved; int64_t ss_gr1; int64_t ss_rp; int64_t ss_gr3; int64_t ss_gr4; int64_t ss_gr5; int64_t ss_gr6; int64_t ss_gr7; int64_t ss_gr8; int64_t ss_gr9; int64_t ss_gr10; int64_t ss_gr11; int64_t ss_gr12; int64_t ss_gr13; int64_t ss_gr14; int64_t ss_gr15; int64_t ss_gr16; int64_t ss_gr17; int64_t ss_gr18; int64_t ss_gr19; int64_t ss_gr20; int64_t ss_gr21; int64_t ss_gr22; int64_t ss_arg3; int64_t ss_arg2; int64_t ss_arg1; int64_t ss_arg0; uint64_t ss_dp; uint64_t ss_ret0; uint64_t ss_ret1; uint64_t ss_sp; uint64_t ss_gr31; uint64_t ss_cr11; uint64_t ss_pcoq_head; uint64_t ss_pcsq_head; uint64_t ss_pcoq_tail; uint64_t ss_pcsq_tail; uint64_t ss_cr15; uint64_t ss_cr19; uint64_t ss_cr20; uint64_t ss_cr21; uint64_t ss_cr22; uint64_t ss_cpustate; uint64_t ss_sr4; uint64_t ss_sr0; uint64_t ss_sr1; uint64_t ss_sr2; uint64_t ss_sr3; uint64_t ss_sr5; uint64_t ss_sr6; uint64_t ss_sr7; uint64_t ss_cr0; uint64_t ss_cr8; uint64_t ss_cr9; uint64_t ss_cr10; uint64_t ss_cr12; uint64_t ss_cr13; uint64_t ss_cr24; uint64_t ss_cr25; uint64_t ss_cr26; uint64_t ss_cr27; uint64_t ss_reserved2[2]; uint32_t ss_oldcksum; uint32_t ss_newcksum; } __reg64_t; typedef struct __reg32 { uint32_t ss_reserved[2]; uint32_t ss_gr1_hi; uint32_t ss_gr1_lo; uint32_t ss_rp_hi; uint32_t ss_rp_lo; uint32_t ss_gr3_hi; uint32_t ss_gr3_lo; uint32_t ss_gr4_hi; uint32_t ss_gr4_lo; uint32_t ss_gr5_hi; uint32_t ss_gr5_lo; uint32_t ss_gr6_hi; uint32_t ss_gr6_lo; uint32_t ss_gr7_hi; uint32_t ss_gr7_lo; uint32_t ss_gr8_hi; uint32_t ss_gr8_lo; uint32_t ss_gr9_hi; uint32_t ss_gr9_lo; uint32_t ss_gr10_hi; uint32_t ss_gr10_lo; uint32_t ss_gr11_hi; uint32_t ss_gr11_lo; uint32_t ss_gr12_hi; uint32_t ss_gr12_lo; uint32_t ss_gr13_hi; uint32_t ss_gr13_lo; uint32_t ss_gr14_hi; uint32_t ss_gr14_lo; uint32_t ss_gr15_hi; uint32_t ss_gr15_lo; uint32_t ss_gr16_hi; uint32_t ss_gr16_lo; uint32_t ss_gr17_hi; uint32_t ss_gr17_lo; uint32_t ss_gr18_hi; uint32_t ss_gr18_lo; uint32_t ss_gr19_hi; uint32_t ss_gr19_lo; uint32_t ss_gr20_hi; uint32_t ss_gr20_lo; uint32_t ss_gr21_hi; uint32_t ss_gr21_lo; uint32_t ss_gr22_hi; uint32_t ss_gr22_lo; uint32_t ss_arg3_hi; uint32_t ss_arg3_lo; uint32_t ss_arg2_hi; uint32_t ss_arg2_lo; uint32_t ss_arg1_hi; uint32_t ss_arg1_lo; uint32_t ss_arg0_hi; uint32_t ss_arg0_lo; unsigned int ss_dp_hi; unsigned int ss_dp_lo; unsigned int ss_ret0_hi; unsigned int ss_ret0_lo; unsigned int ss_ret1_hi; unsigned int ss_ret1_lo; unsigned int ss_sp_hi; unsigned int ss_sp_lo; unsigned int ss_gr31_hi; unsigned int ss_gr31_lo; unsigned int ss_cr11_hi; unsigned int ss_cr11_lo; unsigned int ss_pcoq_head_hi; unsigned int ss_pcoq_head_lo; unsigned int ss_pcsq_head_hi; unsigned int ss_pcsq_head_lo; unsigned int ss_pcoq_tail_hi; unsigned int ss_pcoq_tail_lo; unsigned int ss_pcsq_tail_hi; unsigned int ss_pcsq_tail_lo; unsigned int ss_cr15_hi; unsigned int ss_cr15_lo; unsigned int ss_cr19_hi; unsigned int ss_cr19_lo; unsigned int ss_cr20_hi; unsigned int ss_cr20_lo; unsigned int ss_cr21_hi; unsigned int ss_cr21_lo; unsigned int ss_cr22_hi; unsigned int ss_cr22_lo; unsigned int ss_cpustate_hi; unsigned int ss_cpustate_lo; unsigned int ss_sr4_hi; unsigned int ss_sr4_lo; unsigned int ss_sr0_hi; unsigned int ss_sr0_lo; unsigned int ss_sr1_hi; unsigned int ss_sr1_lo; unsigned int ss_sr2_hi; unsigned int ss_sr2_lo; unsigned int ss_sr3_hi; unsigned int ss_sr3_lo; unsigned int ss_sr5_hi; unsigned int ss_sr5_lo; unsigned int ss_sr6_hi; unsigned int ss_sr6_lo; unsigned int ss_sr7_hi; unsigned int ss_sr7_lo; unsigned int ss_cr0_hi; unsigned int ss_cr0_lo; unsigned int ss_cr8_hi; unsigned int ss_cr8_lo; unsigned int ss_cr9_hi; unsigned int ss_cr9_lo; unsigned int ss_cr10_hi; unsigned int ss_cr10_lo; unsigned int ss_cr12_hi; unsigned int ss_cr12_lo; unsigned int ss_cr13_hi; unsigned int ss_cr13_lo; unsigned int ss_cr24_hi; unsigned int ss_cr24_lo; unsigned int ss_cr25_hi; unsigned int ss_cr25_lo; unsigned int ss_cr26_hi; unsigned int ss_cr26_lo; unsigned int ss_cr27_hi; unsigned int ss_cr27_lo; unsigned int ss_reserved2[4]; unsigned int ss_oldcksum; unsigned int ss_newcksum; } __reg32_t; typedef struct __ss_narrow { int ss_gr1; int ss_rp; int ss_gr3; int ss_gr4; int ss_gr5; int ss_gr6; int ss_gr7; int ss_gr8; int ss_gr9; int ss_gr10; int ss_gr11; int ss_gr12; int ss_gr13; int ss_gr14; int ss_gr15; int ss_gr16; int ss_gr17; int ss_gr18; int ss_gr19; int ss_gr20; int ss_gr21; int ss_gr22; int ss_arg3; int ss_arg2; int ss_arg1; int ss_arg0; unsigned int ss_dp; unsigned int ss_ret0; unsigned int ss_ret1; unsigned int ss_sp; unsigned int ss_gr31; unsigned int ss_cr11; unsigned int ss_pcoq_head; unsigned int ss_pcsq_head; unsigned int ss_pcoq_tail; unsigned int ss_pcsq_tail; unsigned int ss_cr15; unsigned int ss_cr19; unsigned int ss_cr20; unsigned int ss_cr21; unsigned int ss_cr22; unsigned int ss_cpustate; unsigned int ss_sr4; unsigned int ss_sr0; unsigned int ss_sr1; unsigned int ss_sr2; unsigned int ss_sr3; unsigned int ss_sr5; unsigned int ss_sr6; unsigned int ss_sr7; unsigned int ss_cr0; unsigned int ss_cr8; unsigned int ss_cr9; unsigned int ss_cr10; unsigned int ss_cr12; unsigned int ss_cr13; unsigned int ss_cr24; unsigned int ss_cr25; unsigned int ss_cr26; unsigned int ss_cr27; unsigned int ss_mpsfu_low; unsigned int ss_mpsfu_ovflo; } __ss_narrow_t; typedef int ssflags_t; # 664 typedef struct __save_state { ssflags_t ss_flags; __ss_narrow_t ss_narrow; int ss_pad; union { fp_dbl_block_t fpdbl; fp_int_block_t fpint; } ss_fpblock; char ss_xor[4*32]; union { # 707 __reg64_t ss_64; __reg32_t ss_32; } ss_wide; } save_state_t; # 1553 # 64 "/usr/include/sys/newsig.h" typedef struct __stack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; typedef save_state_t mcontext_t; # 81 struct __sub_ctxt { struct __ucontext *__uc_link; sigset_t __uc_sigmask; stack_t __uc_stack; }; typedef struct __sub_ctxt __sub_ctxt_t; typedef struct __ucontext { mcontext_t uc_mcontext; int uc_spares[8]; unsigned int uc_created_by_getcontext:1; unsigned int uc_reserved_flags:31; struct __sub_ctxt uc_subcontext; } ucontext_t; # 135 # 44 "/usr/include/sys/signal.h" # 66 typedef unsigned int sig_atomic_t; # 79 struct sigaction { union { void (*__sa_sigaction)(int, siginfo_t *, void *); # 92 void (*__sa_handler)(int ); } __handler; sigset_t sa_mask; int sa_flags; }; # 108 typedef int pthread_t; # 143 struct sigstack { void *ss_sp; int ss_onstack; }; # 160 struct sigvec { void (*sv_handler)(int ); int sv_mask; int sv_flags; }; # 181 extern void (*signal(int, void (*) (int )))(int ); extern int raise(int); # 193 extern int kill(pid_t, int); extern int sigemptyset(sigset_t *); extern int sigfillset(sigset_t *); extern int sigaddset(sigset_t *, int); extern int sigdelset(sigset_t *, int); extern int sigismember(const sigset_t *, int); extern int sigaction(int, const struct sigaction *, struct sigaction *); extern int sigprocmask(int, const sigset_t *, sigset_t *); extern int sigsuspend(const sigset_t *); extern int sigpending(sigset_t *); # 219 extern int sigwait(const sigset_t *set, int *sig); extern int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); extern int pthread_kill(pthread_t thread, int sig); # 235 extern int sigwaitinfo(const sigset_t *set, siginfo_t *info); extern int sigtimedwait(const sigset_t *set, siginfo_t * info, const struct timespec *timeout); extern int sigqueue(pid_t pid, int signo, const union sigval value); # 249 extern void (*bsd_signal(int, void(*)(int)))(int); extern int killpg(pid_t, int); extern int sigstack(struct sigstack *, struct sigstack *); extern int sigaltstack(const stack_t *, stack_t *); extern int siginterrupt(int, int); # 268 extern void (*sigset(int, void (*)(int )))(int ); extern int sighold(int); extern int sigrelse(int); extern int sigignore(int); extern int sigpause(int); # 286 extern long sigblock(long); extern long sigsetmask(long); extern int sigvector(int, const struct sigvec *, struct sigvec *); extern int (*ssignal(int, int (*) (int )))(int ); extern ssize_t sigspace(ssize_t); extern int gsignal(int); # 384 extern long ___sysconf(int); # 515 # 1 "/usr/include/machine/save_state.h" # 1553 # 516 "/usr/include/sys/signal.h" # 545 # 1 "/usr/include/machine/frame.h" # 68 typedef struct frame_marker { int fm_edp; int fm_esr4; int fm_erp; int fm_crp; int fm_sl; int fm_clup; int fm_ep; int fm_psp; } frame_marker_t; # 177 # 546 "/usr/include/sys/signal.h" # 1 "/usr/include/sys/syscall.h" # 53 # 1 "/usr/include/sys/scall_define.h" # 852 # 54 "/usr/include/sys/syscall.h" # 67 # 1 "/usr/include/machine/sys/syscall.h" # 81 # 68 "/usr/include/sys/syscall.h" # 78 # 547 "/usr/include/sys/signal.h" # 558 struct siglocal_misc { int sm_syscall; int sm_onstack; int sm_omask; char sm_syscall_action; char sm_eosys; unsigned short sm_error; long sm_rval1; long sm_rval2; long sm_arg[4 ]; }; typedef struct siglocal_misc siglocal_misc_t; struct siglocal { struct siglocal_misc sl_misc; save_state_t sl_ss; }; # 590 struct siglocalx { struct siglocal_misc sl_misc; ucontext_t sl_uc; siginfo_t sl_si; }; # 610 struct __xsi { struct __sub_ctxt sc; int __padding; siginfo_t si; }; typedef struct __xsi __xsi_t; # 628 # 1 "/usr/include/machine/sys/sigcontext.h" # 45 struct sigcontext { union { struct siglocal sl; struct siglocalx sx; } sc_ctxt; long sc_args[4 ]; struct frame_marker sc_sfm; }; # 629 "/usr/include/sys/signal.h" # 711 # 127 "/usr/include/sys/wait.h" # 161 typedef enum { P_PID, P_PGID, P_SID, P_UID, P_GID, P_CID, P_ALL, P_LWPID } idtype_t; # 180 extern int waitid(idtype_t, id_t, siginfo_t *, int); # 197 union wait { int w_status; struct { unsigned short w_pad; unsigned int w_Retcode:8; unsigned int w_Coredump:1; unsigned int w_Termsig:7; } w_T; struct { unsigned short w_pad; unsigned int w_Stopsig:8; unsigned int w_Stopval:8; } w_S; }; # 245 # 299 "/usr/include/stdlib.h" # 311 extern int mkstemp(char *); extern char *mktemp(char *); extern int ttyslot(void); # 335 extern long a64l(const char *); extern char *l64a(long); extern char *fcvt(double, int, int *, int *); extern char *ecvt(double, int, int *, int *); extern char *gcvt(double, int, char *); extern int getsubopt(char **, char * const *, char **); extern int grantpt(int); extern char *ptsname(int); extern char *realpath(const char *, char *); extern int unlockpt(int); extern void *valloc(size_t ); extern char *initstate(unsigned int, char *, size_t ); extern char *setstate(const char *); extern void srandom(unsigned int); extern long random(void); # 400 struct mallinfo { int32_t arena; int32_t ordblks; int32_t smblks; int32_t hblks; int32_t hblkhd; int32_t usmblks; int32_t fsmblks; int32_t uordblks; int32_t fordblks; int32_t keepcost; }; typedef struct { uint32_t word1, word2, word3, word4; } long_double; # 430 # 1 "/usr/include/pwd.h" # 25 struct passwd { char *pw_name; char *pw_passwd; uid_t pw_uid; gid_t pw_gid; char *pw_age; char *pw_comment; char *pw_gecos; char *pw_dir; char *pw_shell; int32_t pw_audid; int pw_audflg; }; # 58 extern struct passwd *getpwuid(uid_t); extern struct passwd *getpwnam(const char *); # 89 extern void endpwent(void); extern struct passwd *getpwent(void); extern void setpwent(void); # 100 struct s_passwd { char *pw_name; char *pw_passwd; char *pw_age; int32_t pw_audid; int pw_audflg; }; # 120 extern int putpwent(const struct passwd *, FILE *); extern struct passwd *fgetpwent(FILE *); extern struct s_passwd *getspwent(void); extern struct s_passwd *getspwuid(uid_t); extern struct s_passwd *getspwaid(int32_t); extern struct s_passwd *getspwnam(char *); extern struct s_passwd *fgetspwent(FILE *); extern void setspwent(void); extern void endspwent(void); # 181 # 431 "/usr/include/stdlib.h" # 437 extern char *_ldecvt(long_double, int, int *, int *); extern char *_ldfcvt(long_double, int, int *, int *); extern char *_ldgcvt(long_double, int, char *); extern int getpw(int, char *); extern void l3tol(long *, const char *, int); extern void ltol3(char *, const long *, int); extern char *ltostr(long, int); extern char *ultostr(unsigned long, int); extern char *ltoa(long); extern char *ultoa(unsigned long); extern void memorymap(int); extern struct mallinfo mallinfo(void); extern int mallopt(int, int); extern long_double strtold(const char *, char **); # 513 # 48 "tempname.c" # 1 "/usr/include/string.h" # 8 # 1 "/usr/include/sys/_inttypes.h" # 202 # 9 "/usr/include/string.h" # 23 # 1 "/usr/include/sys/_null.h" # 25 # 24 "/usr/include/string.h" # 60 extern int memcmp(const void *, const void *, size_t); extern char *strncat(char *, const char *, size_t); extern int strncmp(const char *, const char *, size_t); extern void *memmove(void *, const void *, size_t); extern char *strcpy(char *, const char *); extern char *strncpy(char *, const char *, size_t); extern char *strcat(char *, const char *); extern int strcmp(const char *, const char *); extern int strcoll(const char *, const char *); extern size_t strxfrm(char *, const char *, size_t); extern char *strchr(const char *, int); extern char *strpbrk(const char *, const char *); extern char *strrchr(const char *, int); extern char *strstr(const char *, const char *); extern char *strtok(char *, const char *); extern char *strerror(int); # 194 extern void *memcpy(void *, const void *, size_t); extern void *memchr(const void *, int, size_t); extern void *memset(void *, int, size_t); extern size_t strcspn(const char *, const char *); extern size_t strspn(const char *, const char *); extern size_t strlen(const char *); # 254 extern void *memccpy(void *, const void *, int, size_t ); # 280 extern char *strdup(const char *); # 304 extern char *strrstr(const char *, const char *); extern int strcasecmp(const char *, const char *); extern int strncasecmp(const char *, const char *, size_t ); # 318 # 49 "tempname.c" # 1 "/usr/include/fcntl.h" # 9 # 1 "/usr/include/sys/fcntl.h" # 26 # 1 "/usr/include/sys/stdsyms.h" # 425 # 27 "/usr/include/sys/fcntl.h" # 1 "/usr/include/sys/types.h" # 533 # 32 "/usr/include/sys/fcntl.h" # 172 # 1 "/usr/include/sys/_flock_body.h" # 41 struct flock { short l_type; short l_whence; off_t l_start; off_t l_len; pid_t l_pid; }; # 173 "/usr/include/sys/fcntl.h" # 212 extern int fcntl (int, int, ...) ; extern int creat (const char *, mode_t) ; extern int open (const char *, int, ...) ; # 282 # 10 "/usr/include/fcntl.h" # 51 "tempname.c" # 63 # 1 "/usr/include/unistd.h" # 12 # 1 "/usr/include/sys/unistd.h" # 50 # 1 "/usr/include/sys/_inttypes.h" # 202 # 51 "/usr/include/sys/unistd.h" # 88 # 1 "/usr/include/sys/types.h" # 533 # 89 "/usr/include/sys/unistd.h" # 95 # 1 "/usr/include/utime.h" # 10 # 1 "/usr/include/sys/types.h" # 533 # 11 "/usr/include/utime.h" # 20 # 1 "/usr/include/sys/_time_t.h" # 18 # 1 "/usr/include/sys/stdsyms.h" # 425 # 19 "/usr/include/sys/_time_t.h" # 27 # 21 "/usr/include/utime.h" struct utimbuf { time_t actime; time_t modtime; }; extern int utime(const char *, const struct utimbuf *); # 49 # 96 "/usr/include/sys/unistd.h" # 107 extern void _exit (int) ; extern int access (const char *, int) ; extern int chdir (const char *) ; extern int chown (const char *, uid_t, gid_t) ; extern int close (int) ; extern char *ctermid (char *) ; extern char *cuserid (char *) ; extern int dup (int) ; extern int dup2 (int, int) ; extern int execl (const char *, const char *, ...) ; extern int execle (const char *, const char *, ...) ; extern int execlp (const char *, const char *, ...) ; extern int execv (const char *, char *const []) ; extern int execve (const char *, char *const [], char *const []) ; extern int execvp (const char *, char *const []) ; extern long fpathconf (int, int) ; extern char *getcwd (char *, size_t) ; extern int getgroups (int, gid_t []) ; extern char *getlogin (void) ; # 133 extern int isatty (int) ; extern int link (const char *, const char *) ; extern off_t lseek (int, off_t, int) ; extern long pathconf (const char *, int) ; extern int pause (void) ; extern int pipe (int *) ; extern ssize_t read (int, void *, size_t) ; extern int rmdir (const char *) ; extern int setgid (gid_t) ; extern int setpgid (pid_t, pid_t) ; extern pid_t setsid (void) ; extern int setuid (uid_t) ; extern unsigned int sleep (unsigned int) ; extern long sysconf (int) ; extern pid_t tcgetpgrp (int) ; extern int tcsetpgrp (int, pid_t) ; extern char *ttyname (int) ; # 159 extern int unlink (const char *) ; extern ssize_t write (int, const void *, size_t) ; # 174 extern unsigned int alarm (unsigned int) ; extern pid_t fork (void) ; extern gid_t getegid (void) ; extern uid_t geteuid (void) ; extern gid_t getgid (void) ; extern pid_t getpgrp (void) ; extern pid_t getpid (void) ; extern pid_t getppid (void) ; extern uid_t getuid (void) ; extern char *optarg; extern int opterr; extern int optind; extern int optopt; extern int getopt (int, char * const [], const char *) ; extern size_t confstr (int, char *, size_t) ; extern int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void)); # 208 extern int chroot (const char *) ; extern char *crypt (const char *, const char *) ; extern void encrypt (char [64], int) ; extern int fsync (int) ; extern char *getpass (const char *) ; extern int nice (int) ; # 221 extern int rename (const char *, const char *) ; extern void swab (const void *, void *, ssize_t) ; # 233 extern char **environ; extern int readlink (const char *, char *, size_t) ; extern int fchown (int, uid_t, gid_t) ; extern int ftruncate (int, off_t) ; extern int truncate (const char *, off_t) ; extern int setgroups (int, gid_t []) ; extern int symlink (const char *, const char *) ; extern pid_t setpgrp (void) ; # 269 extern pid_t vfork (void) ; # 284 extern int brk (void *) ; extern int fchdir (int) ; extern int getdtablesize (void) ; extern long gethostid (void) ; extern int gethostname (char *, size_t) ; extern int getpagesize (void) ; extern pid_t getpgid (pid_t) ; extern pid_t getsid (pid_t) ; extern char *getwd (char *) ; extern int lockf (int, int, off_t) ; extern int lchown (const char *, uid_t, gid_t) ; extern void *sbrk (int) ; extern int setregid (gid_t, gid_t) ; extern int setreuid (uid_t, uid_t) ; extern void sync (void) ; extern useconds_t ualarm (useconds_t, useconds_t) ; extern int usleep (useconds_t) ; # 319 extern ssize_t pread (int, void *, size_t, off_t) ; extern ssize_t pwrite (int, const void *, size_t, off_t) ; extern int fdatasync (int) ; # 334 extern void endusershell (void) ; extern int fsctl (int, int, void *, size_t) ; extern char *getcdf (const char *, char *, size_t) ; extern char *gethcwd (char *, size_t) ; extern int getpgrp2 (pid_t) ; extern char *getusershell (void) ; extern char *hidecdf (const char *, char *, size_t) ; extern int initgroups (const char *, gid_t) ; extern char *logname (void) ; extern void lsync (void) ; extern int prealloc (int, off_t) ; extern int sethostname (const char *, size_t) ; extern int setpgrp2 (pid_t, pid_t) ; extern int setresgid (gid_t, gid_t, gid_t) ; extern int setresuid (uid_t, uid_t, uid_t) ; extern void setusershell (void) ; extern long sgetl (const char *) ; extern void sputl (long, char *) ; extern int swapon (const char *, ...) ; extern int swapoff (const char *, int) ; extern char *ttyname (int) ; extern int64_t __sysconfx (int, int) ; # 373 extern int set_userthreadid (int) ; # 387 extern pid_t setpgrp3 (void) ; # 1055 extern int serialize (int, pid_t) ; # 1079 # 13 "/usr/include/unistd.h" # 64 "tempname.c" # 1 "/usr/include/sys/stat.h" # 26 # 1 "/usr/include/sys/stdsyms.h" # 425 # 27 "/usr/include/sys/stat.h" # 1 "/usr/include/sys/types.h" # 533 # 30 "/usr/include/sys/stat.h" # 37 # 1 "/usr/include/sys/_stat_body.h" # 43 struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; unsigned short st_reserved1; unsigned short st_reserved2; dev_t st_rdev; off_t st_size; time_t st_atime; int st_spare1; time_t st_mtime; int st_spare2; time_t st_ctime; int st_spare3; long st_blksize; blkcnt_t st_blocks; unsigned int st_pad:29; unsigned int st_aclv:1; unsigned int st_acl:1; unsigned int st_remote:1; dev_t st_netdev; ino_t st_netino; __cnode_t st_cnode; __cnode_t st_rcnode; __site_t st_netsite; short st_fstype; dev_t st_realdev; unsigned short st_basemode; unsigned short st_spareshort; uid_t st_uid; gid_t st_gid; int32_t st_spare4[3 ]; }; # 38 "/usr/include/sys/stat.h" # 84 extern int chmod (const char *, mode_t) ; extern int mkdir (const char *, mode_t) ; extern int mkfifo (const char *, mode_t) ; extern int fstat (int, struct stat *) ; extern int stat (const char *, struct stat *) ; extern mode_t umask (mode_t) ; extern int fchmod (int, mode_t) ; extern int lstat (const char *, struct stat *) ; extern int mknod (const char *, mode_t, dev_t) ; # 267 # 66 "tempname.c" # 1 "stat-macros.h" # 255 # 71 "tempname.c" # 114 static int direxists (const char *dir) { struct stat buf; return stat (dir, &buf) == 0 && ((buf.st_mode & 0170000)==0040000) ; } # 127 int __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, int try_tmpdir) { const char *d; size_t dlen, plen; if (!pfx || !pfx[0]) { pfx = "file"; plen = 4; } else { plen = strlen (pfx); if (plen > 5) plen = 5; } if (try_tmpdir) { d = getenv ("TMPDIR"); if (d != 0L && direxists (d)) dir = d; else if (dir != 0L && direxists (dir)) ; else dir = 0L ; } if (dir == 0L ) { if (direxists ("/var/tmp/" )) dir = "/var/tmp/" ; else if (strcmp ("/var/tmp/" , "/tmp") != 0 && direxists ("/tmp")) dir = "/tmp"; else { errno = (2) ; return -1; } } dlen = strlen (dir); while (dlen > 1 && dir[dlen - 1] == '/') dlen--; if (tmpl_len < dlen + 1 + plen + 6 + 1) { errno = (22) ; return -1; } sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx); return 0; } static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; # 202 int __gen_tempname (char *tmpl, int kind) { int len; char *XXXXXX; static uintmax_t value; uintmax_t random_time_bits; unsigned int count; int fd = -1; int save_errno = errno; struct stat st; # 220 unsigned int attempts_min = 62 * 62 * 62; unsigned int attempts = attempts_min < 17576 ? 17576 : attempts_min; len = strlen (tmpl); if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) { errno = (22) ; return -1; } XXXXXX = &tmpl[len - 6]; # 247 random_time_bits = time (0L ); value += random_time_bits ^ getpid (); for (count = 0; count < attempts; value += 7777, ++count) { uintmax_t v = value; XXXXXX[0] = letters[v % 62]; v /= 62; XXXXXX[1] = letters[v % 62]; v /= 62; XXXXXX[2] = letters[v % 62]; v /= 62; XXXXXX[3] = letters[v % 62]; v /= 62; XXXXXX[4] = letters[v % 62]; v /= 62; XXXXXX[5] = letters[v % 62]; switch (kind) { case 0 : fd = open (tmpl, 0000002 | 0000400 | 0002000 , 0000400 | 0000200 ); break; case 1 : fd = open (tmpl, 0000002 | 0000400 | 0002000 , 0000400 | 0000200 ); break; case 2 : fd = mkdir (tmpl, 0000400 | 0000200 | 0000100 ); break; case 3 : if (lstat (tmpl, &st) < 0) { if (errno == 2 ) { errno = (save_errno) ; return 0; } else return -1; } continue; default: ((! "invalid KIND in __gen_tempname") ? (void)0 : __assert("! \"invalid KIND in __gen_tempname\"", "tempname.c", 302)) ; } if (fd >= 0) { errno = (save_errno) ; return fd; } else if (errno != 17 ) return -1; } errno = (17) ; return -1; } =========================================================================================================== This email and any attachments may contain privileged and confidential information and are intended for the named addressee only. If you have received this e-mail in error, please notify the sender and delete this e-mail immediately. Any confidentiality, privilege or copyright is not waived or lost because this e-mail has been sent to you in error. It is your responsibility to check this e-mail and any attachments for viruses. No warranty is made that this material is free from computer virus or any other defect or error. Any loss/damage incurred by using this material is not the sender's responsibility. The sender's entire liability will be limited to resupplying the material. _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils