code: func Touch(path string, when time.Time, mode os.FileMode) error {
  	// Try and create a file at the target path.
  	fd, err := os.OpenFile(path, (os.O_CREATE | os.O_RDWR), mode)
  	if err == nil {
  		if err := fd.Close(); err != nil {
  			return errors.Annotate(err, "failed to close new file").Err()
  		}
  		if when.IsZero() {
  			// If "now" was specified, and we created a new file, then its times will
  			// be now by default.
  			return nil
  		}
  	}
  
  	// Couldn't create a new file. Either it exists already, it is a directory,
  	// or there was an OS-level failure. Since we can't really distinguish
  	// between these cases, try opening for write (update timestamp) and error
  	// if this fails.
  	if when.IsZero() {
  		when = time.Now()
  	}
  	if err := os.Chtimes(path, when, when); err != nil {
  		return errors.Annotate(err, "failed to Chtimes").InternalReason("path(%q)", path).Err()
  	}
  
  	return nil
  }
docs: // Touch creates a new, empty file at the specified path.
  //
  // If when is zero-value, time.Now will be used.