bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: gsort problem


From: Simon Wing-Tang
Subject: RE: gsort problem
Date: Mon, 22 May 2006 09:32:53 +1000

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 "address@hidden"
| #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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]