>二、直接I/O文件操作6 g, |6 P' ~7 z, ?. ]( n& m
>函数 说明 0 h. N9 y9 ~! B+ t2 g+ G+ B' }
> 下面就对这些函数一一说明:</P>
>1.open()
>符号 含义 符号 含义 符号 含义 2 x; R$ Z3 m, ?; u" Z5 s
> 对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。</P>
>例:int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)</P>+ |" `8 i a" s S0 i& ]- }) k. o
>2.close()
>例:close(handle)</P>
>3.lseek() X) I# h/ e$ q
>例:</P>7 ^' q$ S1 J6 L5 w4 S. c
> lseek(handle,-1234L,SEEK_CUR);//把存取位置从当前位置向前移动1234个字节。7 a& k! h5 l |! B( t+ _
>4.read()
>例:char x[200];read(hnd1,x,200);</P>
>5.write()
>例:char x[]="I Love You";write(handle,x,strlen(x));</P>+ U7 q" V( R, v7 n3 g8 {: s. z& R
>7.eof()" b9 ~% h# D# A# J0 h
>例:while(!eof(handle1)){……};</P>$ X& j" _" j7 l9 I
>8.filelength()
>例:long x=filelength(handle);</P>( C+ T: M0 h% ^' p
>9.rename()
>例:rename("c:\\config.sys","c:\\config.w40");</P>& H) ?1 g! ^' J8 T! x
>10.chsize();
>例:chsize(handle,0x12345);</P>. f" B* D9 g' w$ ?# W
>
> 如果熟悉汇编可能会发现这种方式和汇编语言的DOS功能调用句柄式文件操作很像,比如open()就像DOS服务的3CH号功能调用,其实这种操作还有两种类型的函数就是直接用DOS功能来完成的,如_open(),_dos_open()等等。有兴趣可自已查询BCB的帮助。</P>- C8 v, l) ?2 s/ i$ g
> 同流式文件操作相同,这种也提供了Unicode字符操作的函数,如_wopen()等等,用于9X/NT下的宽字符编程,有兴趣可自已查询BCB的帮助。</P>3 z+ [- N7 G" ]. \" g
> 另外,此种操作还有lock(),unlock(),locking()等用于多用户操作的函数,但在BCB中用得并不多,我就不介绍了,但如果要用C来写CGI,这些就必要的常识了,如果你有这方面的要求,那就得自已好好看帮助了。</P>
> 到这里,我就把基于C的文件操作介绍完了,下一篇将介绍基于C++的文件操作,敬请期待。</P>5 [' X4 m9 } Y
> | 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |