>二、直接I/O文件操作5 N" y, g$ o4 _/ a+ }" j4 [8 q/ t
>函数 说明
> 下面就对这些函数一一说明:</P>/ H% S ]/ b0 E: p$ }7 O5 H
>1.open()
>符号 含义 符号 含义 符号 含义 # h% C3 a9 V4 P6 a
> 对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。</P>7 t6 U$ t2 o7 d- A$ r! _1 q( V
>例:int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)</P>4 x4 g) S2 Z; t2 p& v. i
>2.close()
>例:close(handle)</P>
>3.lseek()
>例:</P>
> lseek(handle,-1234L,SEEK_CUR);//把存取位置从当前位置向前移动1234个字节。- x* _0 y, \) \8 P
>4.read()# t5 ]( |( C9 Y1 l7 O/ p: i! \5 C( m
>例:char x[200];read(hnd1,x,200);</P>
>5.write()
>例:char x[]="I Love You";write(handle,x,strlen(x));</P>& w3 W) {/ t- X ~, ~9 h+ N
>7.eof()
>例:while(!eof(handle1)){……};</P>
>8.filelength()
>例:long x=filelength(handle);</P>
>9.rename()
>例:rename("c:\\config.sys","c:\\config.w40");</P>/ B9 w! e1 |8 v
>10.chsize();
>例:chsize(handle,0x12345);</P>
>
> 如果熟悉汇编可能会发现这种方式和汇编语言的DOS功能调用句柄式文件操作很像,比如open()就像DOS服务的3CH号功能调用,其实这种操作还有两种类型的函数就是直接用DOS功能来完成的,如_open(),_dos_open()等等。有兴趣可自已查询BCB的帮助。</P>' e1 a0 o3 `4 ]" D( w/ T
> 同流式文件操作相同,这种也提供了Unicode字符操作的函数,如_wopen()等等,用于9X/NT下的宽字符编程,有兴趣可自已查询BCB的帮助。</P> f1 i! J- b0 A5 L# t& A! ?
> 另外,此种操作还有lock(),unlock(),locking()等用于多用户操作的函数,但在BCB中用得并不多,我就不介绍了,但如果要用C来写CGI,这些就必要的常识了,如果你有这方面的要求,那就得自已好好看帮助了。</P>
> 到这里,我就把基于C的文件操作介绍完了,下一篇将介绍基于C++的文件操作,敬请期待。</P>
> | 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |