>二、直接I/O文件操作
>函数 说明
> 下面就对这些函数一一说明:</P>
>1.open()
>符号 含义 符号 含义 符号 含义 # p7 w) j+ h3 R7 f- v: B) n3 p3 W
> 对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。</P>) Q6 c) j6 t. J4 [: {
>例:int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)</P> [5 D/ N6 ]5 c- \4 N
>2.close()
>例:close(handle)</P>
>3.lseek()7 o9 ~4 B1 O+ ~1 D$ g6 a, C
>例:</P>
> lseek(handle,-1234L,SEEK_CUR);//把存取位置从当前位置向前移动1234个字节。( }8 ~, Z# A, z& j& S9 s1 w
>4.read()9 E' M% h8 |. m* R1 t
>例:char x[200];read(hnd1,x,200);</P>1 V/ @+ G7 W0 K
>5.write()
>例:char x[]="I Love You";write(handle,x,strlen(x));</P>5 E( G: u# i# M
>7.eof()
>例:while(!eof(handle1)){……};</P>
>8.filelength()% q3 N* [+ E! B% ^
>例:long x=filelength(handle);</P>
>9.rename()
>例:rename("c:\\config.sys","c:\\config.w40");</P>
>10.chsize();
>例:chsize(handle,0x12345);</P>. F! M6 ^0 @. n5 O$ Y
>2 t5 \& ^2 L T+ t4 s$ F& \2 n
> 如果熟悉汇编可能会发现这种方式和汇编语言的DOS功能调用句柄式文件操作很像,比如open()就像DOS服务的3CH号功能调用,其实这种操作还有两种类型的函数就是直接用DOS功能来完成的,如_open(),_dos_open()等等。有兴趣可自已查询BCB的帮助。</P>3 i) [" y) d [: n
> 同流式文件操作相同,这种也提供了Unicode字符操作的函数,如_wopen()等等,用于9X/NT下的宽字符编程,有兴趣可自已查询BCB的帮助。</P>
> 另外,此种操作还有lock(),unlock(),locking()等用于多用户操作的函数,但在BCB中用得并不多,我就不介绍了,但如果要用C来写CGI,这些就必要的常识了,如果你有这方面的要求,那就得自已好好看帮助了。</P>6 P0 P& F/ |+ J' b* e* {
> 到这里,我就把基于C的文件操作介绍完了,下一篇将介绍基于C++的文件操作,敬请期待。</P>
> ' f+ Q1 `# t8 u: k| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |