Possibly the most complex function, c_open() performs the following:
We'll look at the individual sub-tasks listed above, and then delve into the code walkthrough for the c_open() call itself at the end.