I would open the file for read, read the data, then close it.
If you decide you need to add something, then open the file for append, write out the data, then close it.
The only reason to keep a file open is because you have more of the same. Read, read, read, read, read, and when you're done, close. Write, write, write, write, write, and when you're done, close.
You can open the file for both reading and writing at the same time, but that can get complicated, as now you have to concern yourself with the byte position in the file of your most recent operation.
Searching can be as easy or complicated as you want to make it. If you want to keep it simple, each line of the file consists ONLY of a matchable name. E.g., you enter a name, "John Smith", and you search for "John Smith". You find "John Smith", great. But if you enter a name, "Smith", then you don't find that.
So, you open the file, you read a line, you use "strcmp" to compare the line to the name, and if they're not equal, you continue looping. Loop thru the file until you either hit EOF (End Of File) or find a matching name.
If you hit EOF before you find a match, the name wasn't there. Simple.