|
> 新規作成時は、できるのですが同一ファイルに対してopenすると
> 権限がないやすでに存在しますなのでエラーが発生します。
MS-C ではなく、Windows 2000 の Visula C++ 6.0 なので違うのかもしれませんが、
次のプログラムではエラーが出ません。もちろん、同じプログラムをもう一度動かすと、
O_CREAT: File exists のメッセージが出るのは言うまでもありません。
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
int fd;
fd = open("file.dat", O_WRONLY | O_CREAT | O_EXCL | O_BINARY, S_IREAD | S_IWRITE);
if (fd < 0) { perror("O_CREAT"); return 1; }
close(fd);
fd = open("file.dat", O_WRONLY | O_TRUNC | O_BINARY);
if (fd < 0) { perror("O_TRUNC.dat"); return 1; }
close(fd);
return 0;
}
質問するときは、エラーの出るプログラムと、実行時のエラーメッセージをそのまま改変せずに
提示すべきです。「説明不足で申し訳御座いませんが」なんて弁解するのは無意味です。
|