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