形参实参暂时不提.与原来一样.
这个程序的功能是移动读写位置.所以他有两种情况分别是读和写.
首先是读的情况.
因为有缓冲区的存在,如果已经打开了文件并且已经读取数据,那么当前位置是在缓冲区之后的那个字符.因为缓冲区也被视为已经被读取的,但是缓冲区的内容并没有实质的输出到某个文件或者屏幕上,所以暂时他们对于用户来说还是未读取的.所以以用户的角度要将当前的偏移量向前(也就是缓冲区的方向偏移),偏移直到缓冲区开头的offset个字符.(这个偏移不是在缓冲区中偏移而是在文件中偏移,所以后面要清空缓冲区)
然后调用lseek以此偏移量进行操作.
已经偏移后,清空缓冲区.
然后是写的情况.
首先要把缓冲区的内容全部写入到文件,然后才能以此进行偏移.不然如果缓冲区有内容,先改变了读写位置,文件关闭后缓冲区的内容写到文件中,当前的读写位置依然是错的(如果缓冲区有内容的情况下).
然后调用lseek正常操作.
最后是返回执行情况,是否出错.