No the way to escape any of the special characters, which include (from memory) [, ], ;, <space>, >, <, |, and & is to surround the argument that uses them in double quotes.
TBH I have been trying to reproduce your problem, and I can't no matter what I do. So I have to suspect you're doing something extremely wrong.
Compile main with the strictest definition possible:
We shall see what happens. Maybe you modify these variables in the program.Code:int main ( const int argc, const char *const *argv )