O.K. to use a file we first need to open it (make a connection in the form of a stream) this is acheived with fopen which returns a pointer to that file we then assign this returned pointer to a file pointer like so.
FILE *file_ptr;
file_ptr=fopen(filename,"mode");
so fopen returns a pointer which in turn is assigned to our pointer therefore is this a pointer to a pointer if so how come we don't need multiple indirection when declaring our file pointer like so FILE **file_ptr;.
thaks for pointing me in the right direction.