これは私のコードです:
#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 します)。それで、なぜこれが起こるのですか?