1)
file_var_read returns 0 if there are no futher numbers, this is a little bit "dumb" because imho its possible to have files including zeros and thus you can not only "filter" for a zero in a file_var_read return value.
file_str_read returns a -1 if the end of a file is reached.
This information was found in the mighty manual.