Stdio is the legacy C library for performing input / output to streams. A stream can be a file or the special streams, stdin, stdout and stderr.
stdin normally caputres keyboard input, stdout is the text output in the current Wndow, stderr writes to the OS error console.
FILE is not a C++ Object in this library, all the functions deal with low level C data structures. (Not ++). The term object in the help is in lower case, its just badly worded.
FILE *pFile; - declares a pointer variable called pFILE that points to a data structure of type FILE in memory.
The * donates that its a pointer variable.
A pointer simply holds and address in memory where the data can be found, it is the programmers responsiblity to make sure there is something in the memory location with the right structure and allocate / release the memory as required.
I guess you could say a struct is a bit like a class but its a lot less powerful. You can't have methods and the members of the struct aren't really properties in the true sense. Also you can't create sub classes.
A struct is really a template you place over some data in memory so that you can chop it up into logical variables so its not just random data.
You still have to manage the allocation and deallocation of memory manually for a struct, unlike an object derived from a class in c++.
e.g.
struct item
{
char name[50];
int quantity;
};
struct item* ip = (struct item*) malloc(sizeof(struct item)); //allocate memory
/* Do stuff with struct here */
free(ip); // release memory