truncate问题
7 static int fp;8
9 void clear()
10 {
11 fp=open("hello.txt",O_WRONLY|O_CREAT);//打开文件,没有就创建
12 if(fp==-1)
13 {
14 perror("fail to open:");
15 exit(1);
16 }
17
18 if(truncate("hello.txt",0)==-1)//用截短把文件清零
19 {
20 perror("fail to truncate:");
21 exit(1);
22 }
23
24 close(fp);
25 }
26
27 void write_in()
28 {
29 fp=open("hello.txt",O_WRONLY|O_TRUNC);
30 if(fp==-1)
31 {
32 perror("fail to open:");
33 exit(1);
34 }
35
36 if(write(fp,"hello world\n",32)==-1)//向文件写入数据
37 {
38 perror("fail to write:");
39 exit(1);
40 }
}
41
42 close(fp);
43 }
44
45
46 int main()
47 {
48 clear();
49 write_in();
50 return 0;
51 }
52
闲着没事做,书上说用truncate 截短后不能正常打开文件什么的,我就写了一个这样的小程序,但是数据我可以写进去,但是写入进去后却多一行:fail to write
运行结果是: hello world
fail to write
我的问题是 为什么会有fail to write 显示? 等一下后却又不见了......