You question is kinda/sortof entirely system dependent. First you need a system that permits multiple readers/single writer. Most systems support this, so it is largely a theoretical hurdle.
Let's assume then that you can do this.
You would have the file open for reading. Some other process has it open for writing.
If you try to read at the same time someone else is writing, that's perfectly OK. The only issue is if you are trying to read a block that the writer is writing at the same time. In that cause, the data you get is unpredictable but you should be able to read.
In short, simultaneous reads and write would not, by themselves, cause a program to crash.