嗯...自修看到一半也是发现范例的题目有点看不懂。
先把范例程式码附上:
1) #include <stdio.h>
2) #include <stdlib.h>
3) #include <fcntl.h>
4) #include <io.h>
5) #include <sys/stat.h>
6) #define SIZE 512
7) int main(void)
8) {
9) char buffer[SIZE];
10) int f1,f2,bytes;
11)
12) f1=open("example.txt",O_RDONLY|O_TEXT);
13) f2=creat("output1.txt",S_IWRITE);
14)
15) if((f1!=-1)&&(f2!=-1))
16) {
17) while(!eof(f1))
18) {
19) bytes=read(f1,buffer,SIZE);
20) write(f2,buffer,bytes);
21) }
22) close(f1);
23) close(f2);
24) printf("档案复制完成!!\n");
25) }
26) else
27) printf("档案开启失败!!\n");
30)
29) system("pause");
30) return 0;
31) }
问题:
(1)第19行我理解的是从f1(example.txt)读取,一次读取
SIZE个字节个资料,在存放至buffer阵列里,在设定给
Bytes,此时bytes的内容是什么阿?我怎么感觉是资料...
另外在19行跟20行间加入printf("%d\n",bytes);,发现
每次都没有读取SIZE个,怎么跟设定的不一样呢?
(2)把第19行的SIZE改为999或是888为什么就无法执行了
(3)如果把第6行的SIZE定义为0,第19行的SIZE更改为1,
为什么一样可以复制?buffer阵列是0耶.....
抱歉,因为真的搞不懂又想很久都想不到才来发问。
谢谢
※ 编辑: elohacp4 (111.251.5.212), 05/02/2015 00:05:17