Pass the command and arguments as discrete items to system() rather than joining them together with spaces, which causes the resulting string to be interpreted by the system shell, in which case, the application fails to launch if any arguments contain spaces or special characters.
Pass the command and arguments as discrete items to system() rather than
joining them together with spaces, which causes the resulting string to
be interpreted by the system shell, in which case, the application fails
to launch if any arguments contain spaces or special characters.

wstephenson/launchy,kapil-utexas/launchy,copiousfreetime/launchy,mecampbellsoup/launchy