这是我的代码:
#include<fcntl.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#define FILE "./test.txt"
char buf[20]="Hello, World!";
int main()
{
int fd;
if((fd=open(FILE,O_EXCL|O_CREAT))==-1)
{
printf("File Already EXIST!\n");
if((fd=open(FILE,O_RDWR))==-1)
{
perror("open error");
exit(1);
}
}
else
{
if((fd=open(FILE,O_RDWR|O_CREAT,0666))==-1)
{
perror("create error");
exit(1);
}
}
if(write(fd,buf,sizeof(buf))==-1)
{
perror("write error");
exit(1);
}
else printf("Write Done.\n");
return 0;
}
当我运行程序时,奇怪的事情发生了。每次运行文本文件的模式都不一样(为了测试创建功能,我在运行程序后 rm 文本文件)。那么,为什么会发生这种情况?