args3[1] = "hello\\ world";
should be
args3[1] = "hello world";
In the command cat hello\ world
, you need to escape the space between "hello" and "word" because you do not want shell to treat "hello world" as two words, therefore after shell processed the command line arguments properly, the first argument to cat
should be hello world
, not hello\ world
.