value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid ();
value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ __getpid ();
mkstemp (template)     char *template;{  static const char letters[62]    = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  static uint64_t value;  struct timeval tv;  char *XXXXXX;  size_t len;  int count;  len = strlen (template);  if (len < 6 || strcmp (&template[len - 6], "XXXXXX"))    {      __set_errno (EINVAL);      return -1;    }  /* This is where the Xs start.  */  XXXXXX = &template[len - 6];  /* Get some more or less random data.  */  __gettimeofday (&tv, NULL);  value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid ();  for (count = 0; count < TMP_MAX; ++count)    {      uint64_t v = value;      int fd;      /* Fill in the random bits.  */      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];      fd = open (template, O_RDWR|O_CREAT|O_EXCL, 0600);      if (fd >= 0)	/* The file does not exist.  */	return fd;      /* This is a random value.  It is only necessary that the next	 TMP_MAX values generated by adding 7777 to VALUE are different	 with (module 2^32).  */      value += 7777;    }  /* We return the null string if we can't find a unique file name.  */  template[0] = '\0';  return -1;}