code: def join_strings(strings, join_char="_"):
      """Join list of strings with an underscore.
  
      The strings must contain string.printable characters only, otherwise an
      exception is raised. If one of the strings has already an underscore, it
      will be replace by a null character.
  
      Args:
          strings: iterable of strings.
          join_char: str, the character to join with.
  
      Returns:
          The joined string with an underscore character.
  
      Examples:
      ```python
          >>> join_strings(['asd', '', '_xcv__'])
          'asd__\x00xcv\x00\x00'
      ```
  
      Raises:
          ValueError if a string contains an unprintable character.
      """
      all_cleaned = []
      for s in strings:
          if not s.isprintable():
              raise ValueError(
                  "Encountered unexpected name containing non-printable characters."
              )
          all_cleaned.append(s.replace(join_char, "\0"))
      return join_char.join(all_cleaned)
  
imports: import queue
  from functools import wraps
label_desc: Use image node_id 2 for calling a global function with example usage: join_strings(strings, join_char) and returns: join_char