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:

Code:
 int main ( const int argc, const char *const *argv )
We shall see what happens. Maybe you modify these variables in the program.